Sui是一條新的區塊鏈,除了使用Rust編程開發和融合Move智能合約外,並行共識是Sui網絡的核心,本文重點解釋這個部分。
傳統的區塊鍊是眾多驗證器共同構建一個共享賬本,每次驗證者想要對區塊鏈進行增量添加時,會做區塊提案並對提案進行排序。最終狀態達成一致。
而網絡里大部分交易與區塊鏈狀態的其他任意部分沒有相互依賴性,所以Sui網絡利用了這個思路,實現並行。
大概的方式是,Sui鎖定一筆交易相關數據,將驗證獨立。利用Move的所有權模型,可以進一步將這種方法擴展到更多交易。這樣所有的交易都是一個通道,這種“多通道”方法可以作為事務驗證的方式,互不影響,並行進行。
當每筆交易成功,會迅速獲得一份最終證明。該證明表示交易完成,並可信。
依靠這樣的獨立驗證,Sui並不需要像其他區塊鏈一樣,要對對客戶端提交的事務進行一個總排序,除共享對像外。這很像DAG中前一筆交易和後一筆交易相關,用不斷連續的相關性來確保交易順序。
很多使用DAG技術實現共識的鏈,就是利用了這樣的因果關係。
這樣的並行方式,為交易驗證節省了時間。
但在這樣的情況下,交易驗證是可以加速了。網絡仍需要賬本一致性。
也就是Sui需要兩個共識協議:
1. 基於拜占庭一致廣播的協議來處理簡單的交易,即賬本共識。
2. 因果關係的獨立協議來處理獨立的交易。
這樣代表著,交易獨立驗證後進行賬本共識的時候需要一些gas消耗。
官方指出這個過程大概需要200毫秒,總確認時間在2-3秒範圍內。這種消耗需求,是安全地組合兩種共識協議所必需的。其他區塊鏈大都會直接將交易提交給共識協議單獨完成。
為了找到這個思路的驗證邏輯。
筆者去思考了交易出塊的過程,對於傳統區塊鏈,一個交易被發出之後,會先同步到網絡中,等待驗證節點驗證,這個過程是一個不確定過程,交易被打包之後,會繼續廣播,因為要有一個最長鏈的競爭過程,無論是pos還是pow,都會有這個過程,這也是個比較浮動的過程。
似乎,Sui是先利用因果關係快速將交易驗證完,然後再讓共識驗證交易證明,兩次的過程,都以快於傳統共識來設計。
我們再去找到這兩個共識的一些數據。
其一:每個客戶端提交一批100 筆交易(即,轉移到100 個不同的接收者),並帶有一個簽名。這種配置實現了高度可擴展區塊鏈的預期使用模式。例如,大規模運行的託管錢包或遊戲服務器可能需要每秒提交數百或數千個鏈上交易。批量大小為1時,在一台機器上運行的8核驗證器可以處理20,000 TPS,並且隨著添加更多核,吞吐量呈現相同的線性增長。
其二:截至2022 年3 月19 日,在8 核M1 Macbook Pro 上運行的未優化單工Sui 驗證器每秒可以執行和提交120,000 個token傳輸事務(TPS)。吞吐量與內核數量呈線性關係,同一台機器在單核配置中處理25,000 TPS。
以上可以看到,在未將網絡完全分佈式搭建時,其表現為20000tps-25000tps,而很明顯的,當網絡開始以分佈式結構搭建起時,因為p2p網絡通信的原因,網絡中第二個共識,即確定賬本一致性的共識就會受到影響,也就會影響其表現。
Sui網絡的設計,目前看來基本得益於DAG的確認方式,交易並行,就能把壓力分散,至少,在網絡資源消耗上,就可以跳出以太坊等區塊鏈的共識運作思路,去看到可能性,Sui網絡很快將上線測試網,上線後官方會公佈更多測試數據,屆時可再次具體分析。