本文來源: MystenLabs

編譯:Sui World

自十年前比特幣誕生以來,區塊鏈技術已經取得了長足的進步。隨著遊戲和NFT等新用例的出現,區塊鏈社區正在不斷探索提高技術效率的方法,特別是在處理高負載和提供實時延遲方面。 L1 區塊鏈面臨兩大挑戰,一是需要在保持低延遲的同時實現高吞吐量,二是確保共識協議長期穩定。在解決這些挑戰的同時,應該通過驗證節點的動態參與和驗證節點的重新配置來保持去中心化。

實現高吞吐量的一種方法是使用基於DAG 的共識協議,例如Sui使用的narwhale / Bullshark。這些共識協議使區塊鏈能夠同時處理大量交易,使其成為遊戲和nft等用例的理想選擇。然而,基於DAG 的協議會導致幾秒鐘的延遲,這對於普通的轉賬或遊戲操作來說時間成本較高。

另一方面,無共識協議,例如FastPay,在減少延遲和擴展方面顯示出巨大的希望。這些協議消除了對共識的需求,允許快速處理交易,而無需對並行處理的獨立交易進行總排序。但是,它們僅限於一類受限的簡單區塊鏈操作,這限制了他們可以表現的智能合約,並且重新配置動態變化的驗證者集可能具有挑戰性。

儘管它們具有潛力,但這些方法目前都沒有用於生產級區塊鏈,它們目前只在學術會議上發表,並沒有被區塊鏈社區廣泛使用。 Sui Lutris 是支持Sui 的協議,它結合了基於DAG 的共識和無共識的方法,以實現兩全其美:亞秒級延遲和每秒數千筆交易的持續吞吐量。 Sui 完成了這兩個任務,並保持了在共享對像上表達複雜合約、生成檢查點以及跨時期重新配置驗證者集的能力。

結合基於共識和非共識的方法

Sui Lutris 採取了一種獨特的方法,將上述兩種方法結合起來。為了確保對單個所有者擁有的資產(擁有的對象)進行操作的安全性,系統在驗證者之間採用了一致的廣播協議,這導致延遲低於共識。 Sui Lutris 僅依靠共識來處理在共享對像上運行的複雜智能合約,即任何用戶都可以改變的對象。 Sui Lutris 還支持網絡維護操作,例如定義檢查點和重新配置驗證器。在復制的拜占庭環境中處理交易時,這種新穎的策略提供了兩全其美的方法。

深入研究Sui Lutris,了解Sui Network高性能的秘密

Sui Lutris 中的高級描述和交易生命週期。

擁有私鑰的用戶創建並簽署用戶交易,以改變他們擁有的對象,或者他們擁有的對象和共享對象的混合體, 交易被發送到每個Sui Lutris 驗證節點(通常通過全節點),驗證節點執行一系列有效性和安全性檢查,對其進行簽名,並將已簽名的交易返回給客戶端,客戶端收集來自絕大多數驗證節點的響應以形成交易證書,在這一點上,交易可以被認為是不可逆的(達到最終性)。

證書組裝完成後,將被發送回所有驗證節點,驗證節點檢查其有效性並向客戶確認收到。如果交易涉及獨占對象,交易證書可以立即處理並執行,無需等待共識引擎(直接快速路徑)。所有證書都轉發到我們基於DAG 的共識協議(也由Sui 驗證節點操作)。共識最終輸出證書的總順序;驗證節點檢查並執行包含共享對象的那些交易,客戶可以收集絕大多數驗證節點的響應,將它們組裝成一個效果證書,並將其用作交易結算的證明, 隨後,為每個共識提交形成檢查點,這也用於驅動重新配置協議。

除了上圖所示的主要交易流程外,Sui Lutris 還提供了許多設施來支持生產級區塊鏈:

1)在達到最終確定性後實施檢查點協議,該協議產生系統中所有交易的因果歷史。這用於完整的審計,以及以有效的方式保持完整節點和滯後驗證節點同步。

2)Sui Lutris 支持在每個時期結束時重新配置,此時驗證者集及其投票權可能會發生變化,為確保所有最終交易都包含在一個紀元中,每個紀元都需要仔細關閉並確認最終是安全的。

3)在以前的無共識協議中,當有漏洞的客戶端雙花資產時,資產將被永遠鎖定,Sui Lutris 在epoch 結束時安全地“解鎖”錯誤鎖定的資產,將bug 的損害降到最低。

Sui Lutris 支持Sui,這是一個為用戶管理大量價值的區塊鏈,完整的技術報告提供了有關安全和活性協議如何運行的更多詳細信息,以及它們在標準分佈式系統模型中與部分同步的拜占庭參與者的安全性證明。

關於Sui Lutris,完整的技術報告可以點擊了解:

https://github.com/MystenLabs/sui/blob/main/doc/paper/sui-lutris.pdf?ref=tech.mystenlabs.com