原文:《 Why DeFi on Move/Sui? A Two-Part Deep Dive. 》
編譯:SUI World
眾所周知,SUI Network 是基於Move 語言的新L1 公鏈之一,它的技術發展得到了很多開發者和創業者的關注。目前已經有數十個Defi 項目在SUI 測試網運行,Defi 是區塊鏈生態項目不可缺少的一部分。本文將向大家展示SUI Network 和Defi 開發的適配性,為什麼創業者會選擇在SUI 上構建Defi 項目?
Move 語言,為金融而生
Move 最初是由Facebook 為Diem 區塊鏈開發的,該區塊鏈最初設想為全球金融賦能數十億的金融基礎設施。 Move 被設定為一種為運行數字資產而設計的語言,它必須能夠以精確、可理解和可驗證的方式表達Libra 貨幣和治理規則。
從長遠來看,Move 必須具備對構成金融基礎設施的各種資產和相應的業務邏輯進行編碼的能力。 Move 對此的解決方案是將資產編程為「頭等資源」, 用戶可以通過資源的4種不同能力輕鬆定義和操作數字資產:
1. Copied copy
2. Indexed key
3. Discarded drop
4. Stored store
為了促進健壯且可擴展的DeFi 生態系統,需要編程語言以3 種方式提供支持:
1. 數字資產的稀缺性
2. 加強訪問控制
3.資產安全
- 數字資產的稀缺性
稀缺性是有價值的實物資產的重要屬性,但數字資產不存在內在的實物稀缺性,數字資產計算規則必須以編程方式強制執行稀缺性。也就是說,系統內的資產供給不能無限制的,必須完全禁止代碼漏洞導致資產被複製。
對此,為了實現稀缺性,Move 規定資產永遠不能被複製或隱式丟棄,只能在存儲位置之間移動。 (因此得名“Move”。)
- Move 如何執行此操作?
Move 有一個由字節碼驗證器強制執行的類型系統,每當開發人員將Move 字節碼發佈到區塊鏈以防止濫用資產價值時,該驗證器就會運行。
複製——如果我編寫了一些將代幣作為輸入的函數,然後嘗試編寫另一個代碼來複製該代幣,類型系統將產生錯誤。
雙花——如果我有一枚代幣,並且我正試圖將它傳遞給某個接受該代幣作為支付的函數,它會阻止發送該代幣兩次。
銷毀——如果我採用某個以代幣作為輸入的函數,我不應該能夠重新分配持有該代幣的變量,因為銷毀就是把代幣扔掉。
Move語言的這些設計確保了數字資產的行為與實物資產一樣保證稀缺性。
- 加強訪問控制
在Solidity 中,數據集中存儲在合約中,當合約存在漏洞時,黑客一旦獲得合約權限,所有用戶數據都會被攻擊。
Move 開發團隊認為數據應該存儲在擁有它的賬戶中,而不是在合約中。 Move 中的模塊可以是庫或程序,可以創建、存儲或傳輸資產。就像以太坊中的合約,但更像是使用面向對象編程的銀行。 Move 指定只有公共模塊可以被其他模塊訪問,結構中的字段只能在其模塊內訪問和更改,每個資源都存儲在所有者帳戶控制的模塊中。
此功能允許在智能合約中維護數字資產的所有權信息和特權,如果資產被發送到智能合約,所有權不會改變。一個更簡單的例子是,如果黑客獲得了Move 智能合約的訪問權限,他/她也將無法將資產提取到自己的錢包中。
- 資產安全
DeFi 安全風險越來越令人擔憂,1 億美元以上的黑客攻擊已成為新常態。據慢霧科技統計,2022 年上半年DeFi 安全事件約100 起,損失超過16億美金,其中主要的原因是項目缺陷和合約漏洞。
作為一門專注於金融場景的語言,Move從設計上借鑒了Solidity可能存在的安全漏洞,非常重視“智能合約的安全性和正確性”。
- 字節碼校驗器
許多常見的錯誤可以通過移動字節碼驗證器來防止,該驗證器在執行之前檢查每個字節碼程序,由驗證者執行安全預防措施,開發人員無法通過跳過編譯器並直接在字節碼中編寫代碼來繞過它們,每當將代碼發佈到區塊鏈時,它都會直接執行。
前面提到的資產稀缺性是通過字節碼驗證器實現的,默認強制稀缺性,開發人員依靠語言的強大支持來確保無論攻擊者試圖做什麼,他們的代碼中的不變性都將保持不變。
為什麼選擇在SUI 上構建Defi?
上面提到的所有屬性是關於Move 語言的,而不是Sui 本身的,接下來,一起來談談Sui 為什麼適合部署Defi 協議,主要有三個原因:
1. 共識機制
2. 平行協議
3. 存儲基金代幣經濟學
Sui 上的共識分為兩種—— 擁有的對象和共享的對象。
擁有的對象由單個地址擁有,包括簡單的txns,如p2p token 傳輸、大規模鑄造NFT 等。
簡單的txns 使用拜占庭一致性廣播,這是一種繞過共識的算法。
由於驗證者不需要相互通信(在傳統共識的情況下),該算法允許簡單的交易使用非常少的計算資源。
共享對象(複雜交易)
Sui 上的共享對像是沒有特定所有者的對象,任何人都可以讀取或寫入,場景主要包括複雜的DeFi 交易,如AMM、公開競價的拍賣或接受任意交易的中央限價訂單簿。
對於復雜的交易,Sui 使用Narwhal-Bullshark 共識引擎。該機制有兩個主要組成部分:Narwhal(Sui 的內存池)和Bullshark(確保交易順序)。
將Narwhal 想像成一個管家,控制未決的共識交易,它本質上需要一堆待處理的交易,並將它們形成一個無領導的批次圖,這些批次被標記為集合。圖結構允許在每一輪中在系統中插入更多交易,證書證明每個集合在每一輪的數據可用性。
通過Narwhal,交易被創建到一個有向無環圖(DAG) 中,可以把它想像成一個文件樹,其中活動的順序通過圖形直觀地呈現出來。
Bullshark 針對Narwhal 提供的DAG 結構進行了優化,專注於減少網絡上驗證者之間的通信開銷。
最初的Narwhal 和Tusk(Bullshark 的前身)論文指出,當Narwhal 和Tusk 結合使用時,它們可以達到“160,000 tx/sec,延遲大約3 秒”。
Yuga Labs 的Otherside NFT 推出時是歷史上規模最大的NFT mints,在Mint 的過程中,由於規模太龐大對以太坊的gas 需求遠遠超過鏈上任何一個時期,導致Etherscan 崩潰,這是以太坊網絡的黑暗時刻。
Solana 上發生的情況更為糟糕,由於大量鑄造NFT 的需求造成了網絡擁堵,甚至造成網絡多次完全宕機。
通過Sui 的共識機制,Sui 驗證者不會面臨與以太坊或Solana 相同的計算壓力,像NFT 大量鑄造這樣的交易與涉及DeFi 活動的交易是分開的,它繞過了共識,因此為DeFi 釋放了驗證節點和共識資源——為處理和部署DeFi 交易提供了一個不那麼擁擠但卻穩定的環境。
平行協議
EVM 的主要限制之一是交易的順序執行,一次執行一個交易,所有其他交易都被擱置,直到它完成執行,該模型允許潛在有趣的用例,但不可能實現擴展或高效執行。
並行執行識別獨立交易,它可以同時執行它們,然後對相關交易進行排序以供執行,並行處理的概念很簡單,挑戰在於識別交易之間的依賴關係。 Sui 利用Move 強大的所有權類型和它以對象為中心的數據模型來明確識別交易之間的依賴關係,由於Sui 上的對象代表資產並且可以共享,因此很容易通過檢查交易是否使用相同的對象來識別依賴關係。
正如前面在共識機制中解釋的那樣,拜占庭一致性廣播理論上允許Sui 無上限地水平擴展以滿足應用程序需求,同時保持極低的每筆交易運營成本。
這一設計突破消除了現有區塊鏈中的一個關鍵瓶頸:需要就總有序交易列表達成全球共識。
存儲基金代幣經濟學
區塊鏈的強大之處在於它允許我們將數據寫入其中並在以後讀取的能力,挑戰在於從寫入數據到讀取數據,都會產生經濟成本。
在以太坊上,寫入1MB 的數據需要花費數万至數十萬美元,驗證者需要存儲大量數據來運行網絡,並且通常會將這些成本轉嫁給最終用戶,這是一個迫切需要解決的市場需求。
存儲的問題是時機,經濟學家稱之為外部性,今天將數據寫入存儲的用戶不會將其成本內部化,而未來的用戶被迫為他們不擁有的過去存儲付費。一個簡單的類比是:
Alice 從一開始就使用Sui Network,雖然鏈上存儲的數據還不多,但她享受低gas 費用。
Bob 在Sui Network 成熟後開始使用,因為屆時鏈上存儲了大量數據,Bob 被迫支付高額gas 費用。
Sui 的代幣經濟學旨在永遠解決存儲成本問題。當用戶在Sui 上進行交易時,他們需要預先支付計算和存儲費用,存儲費存入存儲基金,用於調整分配給驗證者和委託者的未來股權獎勵的份額。
存儲基金由過去的交易提供資金,並用作跨不同時期轉移GAS費的工具,它包括一個刪除選項,允許用戶在刪除以前存儲的鏈上數據時獲得回扣,這會激勵用戶考慮將不必要的數據從鏈上刪除。
這種用戶通過按期付費結構為存儲付費的租賃模式,引入了一種基於市場的機制,當鏈上數據過載的時候能夠讓用戶主動釋放存儲,DeFi 協議可以刪除過去已經結束的拍賣,NFT 協議可以刪除不再存在的NFT 元數據等,能有效幫助部署在SUI 上的協議降低成本。
總的來說,面向資產的編程設計使得Move 語言非常適合部署DeFi 應用程序,訪問控制、形式化驗證等技術邏輯為去中心化資產的安全提供多重保障。
Sui Move 不僅利用了Move 的所有權/面向資產的編程設計,其基於對象的數據模型也起到了錦上添花的作用。通過設計,Sui 驗證者可以有效地無限擴展網絡吞吐量,以滿足構建者和創作者的需求,Sui 的可擴展性不僅限於交易處理,也使存儲變得低成本和水平可擴展的。