深入探討:為何在Move/Sui建設DeFi


撰文:Typus Finance

前言

當我們建立Typus時,我們經常被問到「為什麼使用Move語言?」或「為什麼選擇Sui?」。這篇深度探索希望向大家闡述Move語言和Sui Move語言的一些核心概念,從而解釋為何我們認為Sui是部屬DeFi的最佳選擇。我們希望這篇文章能提供開發人員或其他項目方一些洞見。

在我們正式談論Sui Move之前,先來了解原始的Diem-style Move語言。

第一部分:為何在Move上建設DeFi?

Move語言是為DeFi而生

Move最初是由Facebook為Diem區塊鏈開發的,旨在打造一個全球金融基礎設施,以支援數十億用戶。

Move設計初衷是成為一種用於操作數位資產(digital assets)的語言。它必須能夠以精確、易懂和可驗證的方式來闡述Libra貨幣和治理規則。

長遠來看,Move必須可以將各種資產及對應的商業邏輯代碼化,從而建立金融基礎設施。

Move的解決方案是「頭等資源(first-class resources)」——將資產視為程式語言界的頭等公民。用戶可以通過資源(resource)的四種不同能力來輕鬆定義和操作數位資產:

1.複製(copy)

2.索引(key)

3.丟棄(drop)

4.儲存(store)

為了打造強大且可拓展的DeFi生態系統,我們需要從程式語言的三個方面來提供支援:

1.數字資產的稀缺性

2.強制存取控制

3.資產安全性

1.數字資產的稀缺性

稀缺性是有價值的實物資產的重要屬性,但數位資產本身沒有內建稀缺性的特質。因此,我們必須通過程式來強制為數位資產賦予稀缺性。

也就是說,資產供給量不應是無限的。程式設計上,必須可以防止人們複製資產,並且應該要把創建新資產設為一種特權。

為實現稀缺性,Move規定資產永遠不能被複製或丟棄,只能在不同的儲存場所之間移動。 (Move的名稱由此而來)

Move如何實現這一點呢?

Move有一個類型系統(type system),由字節代碼驗證器來強制執行。當開發人員將Move字節代碼發佈到區塊鏈時,該系統將可以用來防範資產價值整個失控。

重複使用——如果我編寫了一段以硬幣作為某函數的輸入項,然後再編寫另一段代碼,試圖複製該硬幣(譯:從而影響該函數的輸出結果),那麼類型系統將會糾錯,並回傳錯誤(譯:讓開發者知道該操作不可被執行)。

雙重支付——如果我擁有一枚硬幣,並嘗試將其傳遞給某個接受硬幣作為付款的函數,它會防止同一枚硬幣被重複傳遞。

深入探討:為何在Move/Sui建設DeFi

銷毀——如果我有一些以硬幣作為輸入項的函數,那麼我不應該有能力去重新指定該硬幣的存量,因為憑空讓硬幣的存量減少代表有硬幣被丟棄。

深入探討:為何在Move/Sui建設DeFi

上述設定都是為了讓數位資產的特性類似於實體資產。使用Move,開發人員可以通過上述設計來讓數位資產滿足資產該有的特性。

2.強制存取控制

在Solidity中,數據中心化儲存在合約裡。當合約中存在漏洞時,一旦駭客獲得合約權限,所有用戶數據都會受到攻擊。

Move 開發團隊認為數據應該儲存在擁有者的賬戶中,而不是儲存在合約中。在Move 中,有模組的概念,模組可以是一個程式庫,也可以是一個允許創建、儲存或轉移資產的程序。類似於以太坊中的合約,但更像是一間採用物件導向程式語言的銀行。

Move 限定只有公共模組可以被其他模組調動。同樣,結構中的欄位只能在其模組內訪問和更改。每個資源都儲存在由所有者賬戶控制的模組中。

該功能讓所有權資訊和數位資產的特殊權限得以在智能合約下被維護。即使某個數位資產被發送到智能合約,該資產的所有權也不會改變。

更直白的例子是,如果駭客獲得了Move 智能合約的訪問權限,他/她也無法將資產提取到自己的錢包中。

3.資產安全

DeFi 的安全風險越來越令人擔憂,我們屢屢聽到造成超過1 億美元損失的駭客攻擊。據SlowMist 統計,2022 年上半年就發生了約100 起DeFi 安全事件,損失超過16.3 億美元,其中項目缺陷和合約漏洞是常見原因。

作為一種專注於金融場景的語言,Move 從Solidity 可能存在的安全漏洞中獲得了經驗教訓,並高度重視「智能合約安全和正確性」。

字節碼驗證器(bytecode verifier)

Move 的字節碼驗證器可以在執行每個字節碼程序之前檢查它們,防止許多常見的漏洞。安全預防措施由驗證器強制執行,開發者不能繞過編譯器,直接使用字節碼編寫代碼。它在代碼被發佈到區塊鏈時直接強制執行。

先前提到的資產稀缺性功能是通過字節碼驗證器實現的,它可以預設強制執行稀缺性。開發者依賴語言的強大支援,確保代碼中的不變性,無論攻擊者嘗試什麼都不會改變其代碼特性。

第二部分:為何在Sui上建設DeFi?

我們已經解釋完為何我們認為Move對DeFi而言是最佳的開發語言,接下來讓我們談談為什麼我們優先選擇在Sui上部屬我們的項目。

這個決策背後的三大支柱是:

1.共識機制——釋放驗證者和共識資源,讓區塊鏈更有餘裕處理DeFi交易。

2.平行協議——沒有上限的橫向可擴展性,以滿足DeFi的需求。

3.存儲基金的代幣經濟學設計——為DeFi應用提供更具資本效率的模型,以將數據儲存在鏈上。

1.共識機制

Sui的共識機制和處理簡單/Compound交易的能力被認為是其最有價值的創新,也是提供更穩定的DeFi交易環境的關鍵。 Sui的共識取決於為兩種物件設定——自有物件和共享物件。

自有物件對應簡單交易

在Sui上,自有物件是由單個地址擁有的,例如代幣或NFT。這種場景包括像P2P代幣轉移、大量鑄造NFT、投票、在dApp上發送消息等簡單交易。

對於簡單交易,Sui使用了一種稱為拜占庭一致廣播的演算法,這是一種比傳統共識方法更簡單的演算法,可以消除過多的開銷。 Sui指出,它「針對單寫物件進行優化,允許放棄共識的這種設計以處理簡單交易」。

深入探討:為何在Move/Sui建設DeFi

因為驗證者不需要像傳統共識一樣相互溝通,所以這種演算法讓簡單交易只需消耗比較少的運算資源。

共享物件對應Compound交易

在Sui 上,共享物件是沒有特定所有者的物件,任何人都可以讀取或寫入。這些場景主要包括像自動化造市、開放大眾競標的拍賣或接受任意交易的中央限價單簿等複雜的DeFi 交易。

在復雜交易方面,Sui採用了Narwhal-Bullshark共識引擎。這個機制有兩個主要組件:Narwhal(Sui的記憶體礦池)和Bullshark(用來確保交易的排序)。

將Narwhal比喻成一個管家,它會將待處理的交易打包成一個無人領導的圖並標記為「集(collection)」。整個圖形結構允許系統在每一輪中插入交易。最後會生成證書,用以證明各輪次每個「集」當中的資料的可用性。

深入探討:為何在Move/Sui建設DeFi

透過Narwhal,交易被建立成一個有向無環圖(directed acyclic graph, DAG),就像一個檔案樹,其中活動的順序以圖形方式呈現。

Bullshark優化了Narwhal提供的DAG結構,著重於減少網絡驗證者之間的通訊開銷。

深入探討:為何在Move/Sui建設DeFi

原始的Narwhal和Tusk(Bullshark的前身)論文指出,當Narwhal和Tusk一起使用時,它們可以實現「每秒160,000筆交易,延遲約3秒鐘」的效果。

深入探討:為何在Move/Sui建設DeFi

當Yuga Labs 的Otherside NFT 推出時,它曾一度使以太坊網路出現問題。它是史上最大的NFT 發行之一,數量是其他NFT項目的好幾倍。根據用於進行此次發行的gas 數據,需求遠遠超出了所有人的預期。這次發行的規模非常大,最終導致Etherscan 網站無法正常運行。

深入探討:為何在Move/Sui建設DeFi

在Solana 上發生過更糟糕的情況,由於大量NFT 的創建導致網絡斷線好幾次。

深入探討:為何在Move/Sui建設DeFi

透過這種共識機制,Sui 的驗證者不會像以太坊或Solana 那樣面臨運算壓力。像NFT 大量鑄造等交易被分離出來,把它們與DeFi 活動相關的交易區隔開來,因此不需要共識(譯:也就是不需要全局排序),釋放了驗證者和共識資源,為DeFi 提供了一個不那麼擁擠、穩定的環境,以處理和部署DeFi 交易。

2.平行協議

EVM 的主要限制之一是交易必須依序執行——一次只能執行一筆交易,其他交易必須等待其完成執行。這個模型可能有潛在的有趣用途,但缺乏可擴展性和效率。

平行執行指的是識別獨立的交易,並同時執行它們。然後,按照執行順序來對相依交易進行排序並將其序列化。平行處理的概念很簡單,但其困難點通常在於識別交易之間的相依關係。

深入探討:為何在Move/Sui建設DeFi

Sui 利用Move 的所有權類型和其自身的物件中心數據模型,明確識別交易之間的相依關係。由於Sui 上的物件代表可共享的資產,因此可以通過檢查交易是否使用相同的物件來識別相依關係。

正如前面在共識機制段落中所解釋的,拜占庭一致廣播理論上允許Sui水平擴展以滿足應用需求,同時保持每筆交易極低的運營成本。

這種設計突破了現有區塊鏈的一個關鍵瓶頸——它消除了在一系列交易的總排序列表上達成全局共識的需求。

3.存儲基金的代幣經濟學設計

在區塊鏈上,寫入資料和讀取資料之間需要承擔財務成本,這是一個具有挑戰性的問題。以以太坊為例,寫入1MB的數據成本可能高達數万至數十萬美元。區塊鏈存儲的市場機制還沒有成熟的解決方案,所以它急需一種可行的商業模式。驗證者需要儲存大量數據才能運營區塊鍊網路,通常這些成本將會被轉嫁給終端用戶。

存儲的問題在於時間,這是經濟學家所稱的外部性(externality)。在其他的一些區塊鏈上,舊用戶沒有將存儲成本內部化,導致新用戶間接要為舊用戶先前存放的數據買單。因此,Sui提出了存儲基金代幣經濟模型來解決這一問題。

舉例而言,Alice從Sui網絡剛開始使用時,鏈上儲存的數據量不大,她可以享受較低的gas費用。而Bob等到Sui網絡成熟後才開始使用,由於此時鏈上儲存的數據量較大,他被迫支付較高的gas費用。

Sui的代幣經濟模型旨在永久解決存儲成本的問題。當用戶在Sui上進行交易時,他們要提前支付計算和存儲的費用。存儲費用會存入一個存儲基金,用於調整未來獎勵給予驗證者和委託人的份額。

深入探討:為何在Move/Sui建設DeFi

存儲基金是由過去的交易所資助的,並作為在不同時期轉移gas費用的工具。它包括刪除的這個選項——當用戶刪除先前儲存的鏈上數據時,用戶可以獲得退款。這鼓勵用戶不停思考自己在鏈上儲存的數據是否有必要繼續儲存。

租賃模型通過按期支付結構來讓用戶支付存儲費用,這種設計有利於那些打算在Sui上部署的項目。它引入了一個市場機制,讓用戶依照經濟效益去決定是否釋放存儲空間。具體來說,DeFi協議可以刪除過去已經結束的拍賣紀錄,NFT協議可以刪除不再使用的NFT元數據等。

總而言之

資產導向的程式設計使得Move語言很自然地成為部署DeFi項目的好選擇。技術邏輯方面的各種設計,如存取控制、形式驗證等,為去中心化資產的安全提供了多重保障。

資產和所有權是智能合約的基礎和DeFi的關鍵支柱,但現有的其他程式語言沒有辦法很好地描繪它們。 Move是第一種解決這個問題的智能合約語言。

Sui Move不僅利用了Move的所有權/資產導向程式設計,其基於物件的資料模型設定也為其錦上添花。根據設計,Sui驗證者可以有效地無限擴展網路吞吐量,以滿足開發者的需求。 Sui的可擴展性不僅限於交易處理。儲存也是低成本和水平可擴展的。

通過Move和Sui Move的組合,Typus相信我們選擇了一個出色的基礎設施來定義和建構一個鏈上DeFi原語,從而實現即時和低延遲的交易。

資訊來源:由0x資訊採集自互聯網。版權歸作者“Typus Finance”所有,未經許可,不得轉載

Total
0
Shares
Related Posts