区块链BaaS云服务(28)TOP Network 之全分片主链(Layer-1)
1. 概述
TOP Network在計算、狀態和網絡這三個方面,是一個全面的多層動態分片。
1.1 VRF-FTS 隨機分片算法
“單片接管攻擊(Single-Shard Takeover Attack)”: 將網絡拆分成一個個小組后,惡意節點攻占分片變得更加容易
解決方法:分片都是隨機進行的。隨機分片讓攻擊變得越來越難,因為惡意實體無法讓它們的節點進入任何特定的分片,降低合謀概率。
-可驗證隨機函數(Verifiable Random Function)
將輸入映射為可驗證的偽隨機輸出的加密方案: 允許創建無法被預測,卻可被公開驗證的隨機種子。這些通過VRF生成的隨機種子,經過"FTS(follow-the-satoshi)"算法加權計算后生成隨機數,將驗證節點隨機加入到分片中,以及將審計節點隨機加入到集群中。
1.2 動態分片
- 每隔一段時間,分片中的一些節點會被重新分配到節點候選池,當其他分片進行選舉時,這些節點會從候選池被選舉到新分片。
- 隨著時間的推移,分片將具有與先前完全不同的節點。因為每次僅有少數節點被重新分配,當節點分配到新分片的時候,會同步新分片的區塊數據,所以分片的共識過程不會被中斷。
- 在路由/審核網絡中也是采取同樣的方法,其中審計節點是持續在集群之間被重新分配。此雙層動態分片方案讓自適應攻擊變得幾乎不可能。
1.3 多級分片
分片的目的是實現系統性能的線性擴展。這意味著可擴展性隨節點數量的增加而線性增加。為了實現線性擴展,單個節點工作量必須脫離節點總數和全網交易總量。
- 對區塊鏈的所有資源進行分片處理,包括狀態(存儲)、計算(交易驗證和智能合約執行)和網絡(區塊廣播、跨分片通信等)。
1.4 雙層狀態分片
鏈的狀態信息包括所有用戶賬戶和智能合約的狀態信息。每個用戶賬戶和智能合約都由一個賬戶數據對象表示。每個賬戶對象包含多個屬性、關聯函數和一個小型NoSQL數據庫。
狀態以兩種方式分片。
- 實現全局狀態的分區:節點物理機只存儲節點所在分片里的賬戶狀態信息,
- 由于驗證節點只存儲與該分片關聯的子賬戶空間的狀態信息,因此它們無法充分驗證從其他分片發送的交易,除非它們知道發送交易的賬戶狀態已正確更新。
1.4.1 使用表
-
存儲最近有過變更的賬戶的最新狀態信息。當前所有的分片平分1024個表。賬戶需要被均勻平分,以便每個表負責大小相等的賬戶子空間。通過賬戶交易的Hash值可以快速確定賬戶與表的關系。這使得分片可以快速地從其他分片中提取相關狀態信息,并在提交交易之前檢查是否正確地更新了余額。
-
表還可用于批處理交易從而提高吞吐量。來自同一賬戶,及同一子賬戶空間中其他賬戶的多比交易,可以一起被打包在一個表中。這些表可以在一輪共識中被同時驗證,大大提高了系統吞吐量。
1.5 三層計算分片
交易驗證和智能合約的執行都需要消耗計算資源,兩者都是hpPBFT共識機制。我們使用三層設計來實現可靠的計算分片。
- 當交易被分發到分片進行驗證時,該分片中的部分節點被隨機選中用于hpPBFT共識驗證。
- 分片的其余節點可以監視驗證節點并輔助隨后的同步過程。
- 集群中的審計節點也通過二次審計參與hpPBFT共識驗證。
1.6 三層共識網絡
- The Edge Network:充當客戶端的接入點,所有交易在被轉發到路由網絡之前都會被先發送給邊緣網絡的邊緣節點。
- The Audit Network:由隨機劃分為分片的審計節點組成。此層網絡負責處理跨分片通信和同步,同時參與交易驗證。當前Audit Network有2個分片,每個分片下轄2個Validate Network分片。
- The Validate Network:由包含驗證節點的分片組成。這里是進行交易驗證的地方。在每個分片中,驗證節點使用并行pBFT算法驗證和確認交易。
使用分層網絡的原因:
- 多種類型節點之間劃分職責有助于降低對節點的要求。
- 路由網絡處理大多數對帶寬要求較高的需求,例如跨分片通信,這就允許降低對驗證節點的帶寬要求。
- 因為客戶端只能將交易直接發送到邊緣節點,從而保護路由和核心網絡免受泛濫交易的攻擊。
TOP Network所有網絡都支持分片擴展。
總結
以上是生活随笔為你收集整理的区块链BaaS云服务(28)TOP Network 之全分片主链(Layer-1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 区块链BaaS云服务(28)TOP Ne
- 下一篇: 区块链BaaS云服务(28)TOP Ne