當前位置: 華文星空 > 財經

Odaily星球日報 | Sui創始人親筆:以「擠公交」為例闡述Sui的效能優勢

2022-09-13財經

更多優質內容請點選「Odaily星球日報」官網進行閱讀:https://www. odaily.news/

原文作者:Mysten Labs 行政總裁兼聯合創始人 Evan Cheng

譯者:Odaily 星球日報 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 的了解。

    相關閱讀

    盤點Sui生態20個值得關註的專案,其中8個已進入測試階段