分片計算,吞吐量解決方案

買賣虛擬貨幣
今天要講的是區塊鏈中另一個重要技術——分片計算。眾所周知,區塊鏈得到廣泛應用的瓶頸之一在於緩慢的交易速度:比特幣的底層設計僅支援每秒7筆交易,還不及傳統支付工具Visa每秒8000筆交易的一個零頭,更別說支付寶在去年雙十一創造的每秒25.6萬筆的記錄。這嚴重製約了去中心化應用的發展。因此,區塊鏈擴容性問題成為了當前業界關注的熱點。接下來我們要討論的分片技術,被認為是一種有效的、能夠解決區塊鏈吞吐量問題的解決方案。什麼是分片在傳統資料庫裡,分片是指把整個資料庫分成不同的部分,儲存在不同的伺服器裡。這可以提高資料庫的讀寫效率,突破單一伺服器的效能瓶頸。
類似的,在區塊鏈裡,分片也是將資料劃分成若干部分,交給不同的群組處理。每個群組都被稱為一個「分片」。把節點進行分組就是分片。那為什麼要進行分片呢?這是因為在比特幣這類傳統區塊鏈設計中,在一個鑄塊週期內,只會選擇一個節點來出塊,所以節點數量與出塊的速度沒有必然聯絡。區塊鏈的效能瓶頸並不是因為單節點的計算能力不足,而是受限於無法水平擴充套件。小T圖解
這就好比,有一個50人的班級,老師有一份50題的卷子要交給大家做,按照比特幣的方式是,1號學生做完第一題,才能輪到2號做第二題,然後又要等2號學生做完第二題,才到3號做,直到50題做完,這其實是效率很低的做法,即便50個學生各個都聰明絕頂,但是在每一次只能做一題的規則下,效率也極其有限。很顯然,影響效率的並不是學生,而是規則本身。那麼就會有人問了,為什麼不能50個學生一起做題目呢?

沒錯,分片技術就可以理解成你可以讓50個學生分為10組同來同時做題。這樣一來,就變成了一個簡單的算術題了,如果一個分片一秒鐘可以處理10個交易,那10個分片一秒鐘就可以處理100個交易。吞吐量(TPS)自然就能得到一定的提升。

TASchain的分片計算並行框架

Chiron共識機制下3000+的TPS已經可以足夠支撐大多數的商業化應用,但考慮到對超大規模應用的擴充套件性支援,TAS借鑑了Google的MapReduce和阿里雲批次計算思想,設計了分片並行交易執行框架,以進一步提高吞吐量。

在TAS的平行計算框架中,將重節點邏輯上分為計算節點和提案節點。也就是說,在一個鑄塊週期裡,根據上一區塊產生的隨機數可以選定多個提案節點(詳見Chiron共識機制),而根據簽名與交易發起人的地址的運算,選定的節點稱之為計算節點。計算節點負責執行交易,提案節點負責塊的生成。

小T解讀

TASchian的分片計算過程可以這樣理解,一個班級要大掃除,班主任根據以往的值日情況,把同學們分成了若干個掃地組,掃地組負責各個角落的清潔工作。等大家都掃完了,班主任確認這次大掃除的獎品。

其中有幾個概念小T再為各位做進一步解釋。

交易分片:每當一筆交易進入網路時,TAS會根據交易傳送者的地址和上一塊的簽名,將交易透過VRF輸出隨機傳送到不同的分片中,這一過程被稱為交易分片。並且相同的交易發起人發起的多筆交易,都將落到同一個計算節點。這個設計既提高了效率,又保證了用最小時間視窗即可驗證雙花問題。

交易執行:計算節點會根據當前賬戶狀態執行交易,同時記錄賬戶狀態變化等情況。對於交易的執行往往需要依賴狀態資料,例如賬戶餘額、合約內儲存的使用者資料等。在TAS的設計中,計算節點儲存了完整的狀態資訊,一旦接受到一個新塊,就會更新本地狀態。所以計算節點本地即可完成交易的執行,無需進行跨鏈等複雜互動。

合併:對於每一筆交易的執行結果,計算節點提交給提案節點的內容包括賬戶狀態樹根hash(簡稱根hash)、交易影響的賬戶、賬戶狀態的差值。提案節點遍歷收到的所有結果,對比本地根hash與結果中的根hash,篩選出交易結果,稱之為候選集。提案節點將候選集中的賬戶狀態差值,合併到本地賬戶之上,生成最終的賬戶狀態。

驗證:驗證組接收到候選區塊後,以組協作方式來完成候選區塊驗證,並透過門限簽名方式在達成組內共識的同時也產生當前輪的真隨機數R1,在新塊B1中寫入R1,將新塊B1向全網廣播。 

與有著“分片之王”的Zilliqa相比,TAS系統下驗證組內所有成員收到門限簽名後均能恢復出最終組簽名,不需選定某位成員成為Leader,完成最後的多重簽名聚合操作,系統的魯棒性以及安全性要優於Zilliqa。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;