(1)網絡分片
網絡按照一定規則選取節點形成分片。實施分片的第一步就是創建分片,因此網絡分片是交易分片、計算分片和狀態分片的基礎。
(2)交易分片
交易分片:將交易按某種規則分配到不同分片。其思路為,按一定規則將交易分配到同一個分片處理,則既能夠達到并行處理的目的又能避免雙花問題的出現。在不同的記賬方式下,對交易分片的要求有所區別。
目前區塊鏈網絡中存在兩類記賬方式,分別為UTXO(Unspent Transaction Outputs,未使用交易輸出)模型和賬戶/余額模型,典型代表分別如BTC和ETH。
UTXO模型:在BTC交易中,每筆交易都會有一個或多個輸出,UTXO指尚未花費的區塊鏈交易的輸出,可以作為新交易的輸入,而已花費的交易輸出不可再花費,類似紙幣交易情況下的支付和找零,顧客將一張或多張紙幣支付給店家,店家則將一張或多張紙幣找零給顧客。
賬戶/余額模型:系統記錄每個賬戶的余額,在進行交易時,系統檢查賬戶是否有足夠余額用于支付,類似于銀行轉賬時,銀行會記錄每個賬戶的余額,只有賬戶余額大于所需轉賬金額時,交易才能夠進行。
UTXO模型下,交易分片需要跨分片通信。在賬戶/余額模型下,由于一筆交易只有一個輸入,因此只要將交易按照發送者地址進行分片,就可以保證同一個賬戶的多筆交易在同一個分片中處理,有效防止雙花。在UTXO模型下,一筆交易可能包括多個輸入和多個輸出,僅僅按照地址分片無法避免雙花問題,分片之間不得不進行通信,如果限制跨分片交易將限制平臺的可用性,而允許跨分片交易則不得不權衡跨分片通信的成本和性能提升帶來的收益。
(3)計算分片
計算分片:只有網絡的一個子集(如一個分片)執行計算,從而高效執行運算密集的任務。
(4)狀態分片
狀態分片:特定的分片只存儲部分狀態,而不是完整的區塊鏈狀態。狀態分片能夠減少狀態儲存冗余,狀態分片是最為理想化的分片方式,但是面臨著一系列挑戰,如跨分片通信、數據有效性和數據可用性等。
區塊鏈網絡中驗證節點的主要任務包括:
1)處理交易,隨著處理交易量的不斷增長,節點將需要更多的計算能力;
2)將已被驗證的交易和已完成的區塊中繼給其他節點,隨著需要中繼的交易的數量不斷增長,節點將需要更多的網絡帶寬;
3)存儲整個網絡的狀態,隨著狀態的增多,節點將需要更多的存儲空間,即便TPS不增加,節點的存儲需求依然會不斷增加。
這三項任務中的每一項都對驗證節點提出了越來越高的要求,分片一方面能夠降低驗證節點的負載,網絡分片、交易分片和計算分片可以很好地解決計算能力瓶頸,而狀態分片則能夠解決網絡帶寬和存儲能力瓶頸,另一方面降低了需要驗證事務的節點的數量。
2
分片挑戰
對于目前的區塊鏈而言,分片是一個令人興奮和充滿希望的方向,但是分片在提升了效率的同時也帶來了新的問題,主要包括分片內部的安全和效率問題,以及跨分片交易引發的跨分片安全和效率問題。
分片的第一步即網絡分片,將網絡中的節點按照某種規則分配到不同的分片,這里的問題是,單個分片的算力以及單個分片內的驗證節點數量遠低于分片之前的整個區塊鏈網絡,從而導致對采用PoW共識的單個分片發起51%攻擊,或者對采用非PoW共識的分片發動女巫攻擊(Sybil Attacks)的成本也極大地降低了。因此,采用何種共識機制、如何劃分分片大小以及如何為分片分配節點以防止惡意節點控制分片變得至關重要?,F有的分片設計主要通過某種隨機性分配驗證節點,降低作惡者控制單個分片的概率,針對惡意分叉問題可以通過將部分分片鏈上的區塊連接到信標鏈(信標鏈負責協調系統的參與者,如隨機分配驗證節點到分片及從分片接收狀態更新等),并將分叉選擇規則設定為首選交叉連接到信標鏈的鏈。對女巫攻擊問題的解決方案包括要求節點提供抵押物或執行PoW等,以提升作惡成本。
此文由 中國比特幣官網 編輯,未經允許不得轉載?。?a href="http://www.huohuxiazai.com/">首頁 > 比特幣行情 » 分片:分而治之,無限擴展 ――區塊鏈技術引卷之四