Abstract
分片技術作爲以太坊2.0更新的主要目標之一,是爲了解決以太坊中的可拓展性問題。分片技術的核心思路是讓以太坊從網絡上的每個節點都要驗證一筆交易的模式,轉型到只需要少部分節點來驗證每筆交易的模式,只要驗證每筆交易的節點足夠多,那麼整個系統就會仍是安全的。
Background Knowledge
- 狀態:系統當前狀態的信息集合。在以太坊中包括賬戶餘額、隨機數、合約代碼、存儲數據
- 歷史:自創世區塊發佈以來,按順序記錄在區塊鏈中的所有交易記錄
- 狀態轉移方程:獲取狀態和交易然後輸出一個新的狀態的方程。涉及的操作包括減少和增加相關轉賬用戶的賬戶餘額、驗證發起人的數字簽名以及運行智能合約代碼
- 收據:是交易的產物,不存儲在狀態中,而是存儲在Merkle樹中,最終被提交到區塊中,在分片模型中,收據用來實現分片之間的異步通信
- 輕型客戶端:一中隊算力資源要求低、與區塊鏈互動的方法。
- 狀態根:代表狀態的Merkle樹的散列根
分片技術的實現
“分片”的大致設計思路是:將區塊鏈網絡中的每個區塊變爲一個子區塊鏈,子區塊鏈中可以容納若干(目前爲 100 個)打包了交易數據的 Collation(大概可以稱爲“校驗塊”,爲了在分片的情景中將其與區塊的概念區分開),這些 Collation 最終組成一個在主鏈上區塊;因爲這些 Collation 是整體作爲區塊存在的,所以其數據必定是全部由某個特定的礦工所打包生成,本質上和現有協議中的區塊沒有區別,所以不再需要增加額外的網絡確認。這樣,每個區塊的交易容量就大概擴大了 100 倍;而且這種設計還有利於未來的繼續擴展。(下面針對拓展性的問題進行展開)
(上面這個圖可以十分詳細的展示整個過程)
拓展性
拓展性可分爲四個階段 reference1。
下面介紹幾個需要了解的幾個概念:
校驗器管理合約(Validator Manager Contract, VMC):置於主鏈(最長權益證明鏈)用於管理分片系統,同時授權驗證器
驗證器:在任何時間被授權在任意分片上創建區塊。
Main Chain | Sharding |
---|---|
Block | Collection |
BlockHeader | CollectionHeader |
Proposer | Collator |
結論
分片(Sharding)作爲以太坊擴容的方案,它的提出伴隨着PoS(Proof of Stake)共識機制,讓以太坊這個分佈式系統在不可能三角(可拓展性、去中心化、安全性)上更加合理。
Reference
[1] https://www.jianshu.com/p/fc6ce8b38129
[2] https://github.com/ethereum/sharding/blob/develop/docs/doc.md