iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0
Web 3

從BlockChain看Web3系列 第 20

[Day 20] 所謂Object - Sui是如何運作的?

  • 分享至 

  • xImage
  •  

物件 - Object

大多數區塊鏈的儲存以帳戶為中心,每個帳戶都包含一個鍵值儲存。Sui 偏離了這個模型,並將儲存以物件為中心。物件是智能合約可程式實體。它們是儲存資料並儲存在區塊鏈上的數位實體。

智能合約本身是對象,也稱為移動包。在進行事務處理時,事務中涉及的物件會動態分組並按該群組進行處理。

Sui 中物件的所有權有 4 種類型:

  1. 擁有一個地址:地址擁有的物件只能由該所有者地址簽署的交易使用

  2. 由另一個對象擁有:也稱為子對象,父對象的擁有者需要簽署存取子對象的交易

  3. 不可變:沒有人可以修改或擁有該對象,但可以讀取該對象。移動包是不可變的對象

  4. 共享:任何人都可以根據處理該物件的智慧合約定義的存取控制機制與該物件互動並存取該物件。這些需要對讀取和寫入的順序達成共識,並且可以在執行期間實現自己的存取控制。

兩個協議

大多數區塊鏈都面臨著需要在每筆交易之間實施總排序的瓶頸。然而,許多事務實際上並不競爭相同的資源,並且不需要相對於彼此排序。為了解決這個瓶頸,Sui 設計了兩個協定:

拜占庭一致性廣播處理簡單交易

Narwhal 和 Bullshark 共識協議用於處理具有強烈相互依賴性的交易或一組交易,並且可以從共享對像中受益,其中多個用戶可以透過智能合約規則改變這些對象

更具體地說,Sui 區分了兩種類型的資產來並行運行這些共識機制

  1. 只能由其特定擁有者修改的擁有對象

  2. 沒有擁有者且可由多個使用者修改的共用對象

Sui 放棄了對所擁有對象的共識,並將其歸類為簡單交易。簡單交易的一個例子是將資產轉移給某人。共享物件將被歸類為具有強烈相互依賴性的交易或交易集,將透過共識。一個例子是去中心化的永續交易所。

兩種協議都經歷類似的過程:

  1. 發送者向所有 Sui 驗證者廣播交易

  2. 每個 Sui 驗證器都會單獨檢查該交易的物件是否存在以及是否有足夠的 Gas。根據驗證者擁有的質押,每張投票都有一定的權重

  3. 發送者在證書中收集這些選票的絕大多數,並將其廣播回所有 Sui 驗證者。所有驗證者都會驗證證書並執行花費gas的交易。然後,他們回覆一份交易對國家影響的摘要。

  4. 寄件者收集絕大多數回覆;這將解決交易,確保交易不會被撤銷(可選)

共識機制的不同之處在於第3步,證書本身在執行之前透過共識進行排序。下圖展示了交易的處理方式。


共識:獨角鯨和牛鯊

Sui 使用一種新穎的分裂機制來達成共識,其中 Narwhal 是 Sui 的內存池,Bullshark 是 Sui 的共識引擎。

換句話說,Narwhal 負責確保提交共識的資料的可用性,而 Bullshark 的責任是就該資料的特定順序達成一致。

Narwhal 記憶體池是一個有向無環圖 (DAG)。

參考資料

Guide to Sui


上一篇
[Day 19] Tutorial-Step 8:為模組編寫正式規範
下一篇
[Day 21] SUI的白皮書
系列文
從BlockChain看Web330
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言