大多數區塊鏈的儲存以帳戶為中心,每個帳戶都包含一個鍵值儲存。Sui 偏離了這個模型,並將儲存以物件為中心。物件是智能合約可程式實體。它們是儲存資料並儲存在區塊鏈上的數位實體。
智能合約本身是對象,也稱為移動包。在進行事務處理時,事務中涉及的物件會動態分組並按該群組進行處理。
擁有一個地址:地址擁有的物件只能由該所有者地址簽署的交易使用
由另一個對象擁有:也稱為子對象,父對象的擁有者需要簽署存取子對象的交易
不可變:沒有人可以修改或擁有該對象,但可以讀取該對象。移動包是不可變的對象
共享:任何人都可以根據處理該物件的智慧合約定義的存取控制機制與該物件互動並存取該物件。這些需要對讀取和寫入的順序達成共識,並且可以在執行期間實現自己的存取控制。
大多數區塊鏈都面臨著需要在每筆交易之間實施總排序的瓶頸。然而,許多事務實際上並不競爭相同的資源,並且不需要相對於彼此排序。為了解決這個瓶頸,Sui 設計了兩個協定:
拜占庭一致性廣播處理簡單交易
Narwhal 和 Bullshark 共識協議用於處理具有強烈相互依賴性的交易或一組交易,並且可以從共享對像中受益,其中多個用戶可以透過智能合約規則改變這些對象
更具體地說,Sui 區分了兩種類型的資產來並行運行這些共識機制
只能由其特定擁有者修改的擁有對象
沒有擁有者且可由多個使用者修改的共用對象
Sui 放棄了對所擁有對象的共識,並將其歸類為簡單交易。簡單交易的一個例子是將資產轉移給某人。共享物件將被歸類為具有強烈相互依賴性的交易或交易集,將透過共識。一個例子是去中心化的永續交易所。
兩種協議都經歷類似的過程:
發送者向所有 Sui 驗證者廣播交易
每個 Sui 驗證器都會單獨檢查該交易的物件是否存在以及是否有足夠的 Gas。根據驗證者擁有的質押,每張投票都有一定的權重
發送者在證書中收集這些選票的絕大多數,並將其廣播回所有 Sui 驗證者。所有驗證者都會驗證證書並執行花費gas的交易。然後,他們回覆一份交易對國家影響的摘要。
寄件者收集絕大多數回覆;這將解決交易,確保交易不會被撤銷(可選)
共識機制的不同之處在於第3步,證書本身在執行之前透過共識進行排序。下圖展示了交易的處理方式。
共識:獨角鯨和牛鯊
Sui 使用一種新穎的分裂機制來達成共識,其中 Narwhal 是 Sui 的內存池,Bullshark 是 Sui 的共識引擎。
換句話說,Narwhal 負責確保提交共識的資料的可用性,而 Bullshark 的責任是就該資料的特定順序達成一致。
Narwhal 記憶體池是一個有向無環圖 (DAG)。