作者:Mysten Labs 首席執行官兼聯合創始人 Evan Cheng
編譯:Azuma
過去一段時間,市面上出現了解析 Sui 的文章,但這些文章大多數都錯過了一項最關鍵的創新—— Sui 的數據模型及交易處理通道。我將在接下來的推文中分三部分就此進行解釋:
Part1:傳統區塊鏈的交易處理通道
Part2:Sui 的交易處理通道
Part3:Sui 的優勢
區塊鏈的運行邏輯是,隨著時間的推移,驗證者們會共同向鏈上添加新的區塊。交易處理通道位於「構建區塊——共識——執行——更新默克爾樹」這套流程的最前方,所有交易在向該流程的下游繼續推進之前必須被處理。而當新的區塊開始構建之時,交易的處理也會被暫停。
下面是一幅關於傳統區塊鏈的交易處理通道及其問題的示意圖。我們已看到許多項目都在嘗試在用不同的方法解決這些問題。
Sui 的做法是通過「對象(objects)」 來區分、組織數據。某款 NFT 、某個代幣的餘額、某項智能合約,這些都是不同的對象(可以理解為類型),意味著Sui 鏈上的交易可以根據對象的不同來分組處理。
下圖是一個簡單的例子,描述了可分為3 組的5 筆不同交易(稍後我們將回來繼續聊特定對象和共享對象)。這3 組交易完全可以實現並行處理。
而在其它傳統的區塊鏈中,單個區塊內所有不相關的交易都需要依次處理。比如Bob 向Bruce 發送了一個BAYC NFT,Alice 向Alex 發送了一個Punk NFT,Jane 用了某個 DEX 等等,所有這些交易都需要按照共識集體排序,執行,並最終表現在默克爾樹上。
打個比方,這就像是坐公交車。在傳統區塊鏈上,所有乘客必須排隊(共識)上車,每一位乘客都需要在發車前檢票(執行),然後再於同一個地點下車(默克爾樹更新),只有當公交車再次空開之後才能繼續容納新乘客,鏈才能繼續向前運行;而在Sui 之上,鏈會根據目的地(對象)對所有旅客進行分組,各組旅客的票都會並行檢查,然後再由不同的車輛並行送往目的地。
Sui 的創新並不僅僅在於交易的並行處理(關於這點,未來會分享更多內容),交易結果在執行之後也會被提交至對象(比如某個代幣的餘額為10,發送了5,餘額還剩5),它們可以被立即用作未來交易的輸入(input)。 Sui 將默克爾樹作為了新建區塊的部分檢查點,待一系列相關交易最終確定後才會記賬。
此外需要注意的一點是,在前文的案例中,有些交易只對應一個特定的對象,比如只有Bob 可以發起關於他所擁有的BAYC NFT 的交易。特定對像類的交易可以跳過共識(只需要拜占庭一致廣播),因為所有者可以確認交易順序。
而對於另一類的交易,即所謂的共享對象型交易(比如DEX 智能合約),則必須經過協商一致,因為沒有單一的所有者來決定順序。這就是我們Narwhal & Bullshark 共識的用武之地。
簡單來說就是,特定對像類交易可以並行執行,共享對象型交易彼此間也可並行執行,但在各個共享的對像是需要順序執行的(這裡應用了其他靜態/動態技術)。
總而言之,你可以理解為:
-
對於常規區塊鏈來說,所有交易都需要集體排序,然後執行。
-
對於Sui 來說,所有交易都會根據一定的邏輯區分、整理後再排序,然後執行。數據模型可以使不同交易之間的依賴關係更清晰,只有共享對象的交易才需要集體排序,特定對象的交易則不需要這一共識協商過程。
那麼,Sui 的這一架構可以解決哪些產品問題呢?讓我們繼續往下看。
首先是水平擴容的能力。在Sui 之上,每組交易都是並行處理的,這就好比是前文說的每組旅客都會乘坐不同的車,所以如果有更多組旅客(交易),Sui 只需要再配備更多的車。關於這一點,Sui 可以通過內部驗證器來分片擴容—— 更多的工作者去處理更多的交易。
為什麼水平擴展擴容的能力很重要?想一想一些大型項目在考慮底層時的需求吧,他們需要確保底層可以承載其規模的持續增長,有性能上限的區塊鏈將成為這些項目入駐的阻礙,Sui 的設計正是為了應對這樣的需求高峰。
其次是可組合性。有什麼是在Sui 上可行,但在其他智能合約平台上不可行的?比如將資產作為參數傳遞給函數,比如從函數中返還某種資產,再比如將資產存儲在一個數據結構內,或是直接存儲在另一個資產內。
以後我可能會專門再寫一篇關於可組合性的推文,因為這是一個相當複雜的主題。我只想說,Sui 在合約級別和資產級別(不同類型的對象可以嵌套在其他對像中)顯著提高了可組合性。
再然後是部分重播的能力。區塊鏈提供了所有交易的歷史記錄,這對檢查過往信息很有幫助。然而,如果某個產品需要關心一些鏈上數據,讀取可能會非常昂貴。 Sui 的構架允許這些項目只關注它們所關心的對象的演化,即部分重播。
例如,一款將所有角色放在Sui 上的RPG 遊戲可以簡單地觀看代表著這些角色的對象。他們不需要從默克爾樹數據結構中挖掘所有數據。
最後是鏈上存儲。各類資產數據,比如游戲的種族、等級、經驗等等,都可以存儲在Sui 的對像中。 Sui 可以使用傳統的方法來擴展鏈上存儲,現在更新鏈上資產的成本要低得多。
這一篇長推到此結束。這些內容維度較高,但並不是很全面。不過,我希望你能通過這些內容加深對Sui 的了解。
來源:https://twitter.com/EvanWeb3/status/1569414553322274818