背景
目前市場上已經提出了許多方法來擴充套件區塊鏈效能。最流行的方法是如Lightning或Plasma,擴大區塊容量,DAG和分片等技術。
關於DAG的注意事項
IOTA,Byteball和Nano等專案已經提出了有向無環圖(DAG)。他們認為每個人擁有一個全域性狀態並不重要,而是節點應該只需要與他們相關的本地狀態以及與其他節點的足夠連線來驗證他們的本地狀態就行。
在沒有全域性狀態的情況下,攻擊者可以佔入受害者節點的傳入連線,則可能發生諸如Eclipse攻擊之類的攻擊。直到2019年5月,IOTA透過每個人都連線到集中協調器解決了這個問題。這可以說是推翻了DAG的全部觀點。他們最近宣佈從協調員轉變為投票模組Coordicide。預計共識參與者將主動對沖突交易進行投票,我認為這聽起來與傳統的區塊鏈共識非常相似。
分片
分片系統類似於DAG,它們承認全域性狀態檢視的重要性,並在分類賬上施加正式結構,以確保整個系統保持一致。分片將區塊鏈的驗證工作分成若干組,每個組分片負責工作的一個子集。
許多設計都是為了分片而做的,但是現在很少有分片設計在正式生產中使用。主要的設計考慮是是否有一個信標鏈。信標鏈的作用非常類似於傳統的區塊鏈,但它不驗證交易和分類賬狀態本身,而是依賴於每個碎片對自己的狀態達成共識。然後這個狀態被壓縮成一個merkle根,由一個shard驗證器的仲裁簽名。然後信標鏈將分片的根編織成一個完整的鏈根。
可以在沒有信標鏈的情況下進行分片,但必須更加最大公平地劃分資源並防止大規模重組和分片接管攻擊。
複雜性
在分片系統中,透過劃分多個分片數量,從而增加吞吐量。第一個關鍵問題是理解分片是如何劃分的。要什麼採取保護措施,以確保不被不誠實的驗證者控制大量分片。
上面是一個視覺化的展示,即使只有1%的驗證者集中在一個分片上也會造成嚴重的破壞。以太坊計劃使用一個重組過程,以一種不可預知的方式將驗證者分配給分片,以防止不誠實參與者接管分片。
跨分片通訊
這些分片的邊界會發生什麼?它們是如何相互交流的?一個顯而易見的答案是,如果一個應用程式不在我的分片上,我可以在另一個分片上建立一個新帳戶,或者我甚至可以使用一個交叉分片服務,在一個分片上獲取我的錢包地址,並允許我與任何其他分片上的應用程式互動。
想象一下,您希望從與您不在同一分片中的網路參與者收到付款。 你怎麼能從你沒參加的分片中收到錢?
以太坊研究人員提出的視覺化樣本方法
在這裡,我們引用收據的概念。收件人透過提供來源分片中的事務的merkle路徑,顯示他們將從外部分片接收到代幣的證據。目標分片會使用收據並記入收件人的帳戶,這些過程必須原子方式完成。
傳輸中的交易
真正跨分片的原子事務是一個難題,因為它需要在不同分片之間的驗證者同步通訊。如果對跨分片事務的需求非常高,則會導致效能降低,因為更多分片驗證者必須協作以處理跨分片事務。
分片系統必須建立信任機制,確保網路不會從外圍的分片中逆轉這些事務。如何保護自己免受可能發生的大規模重組的影響?
我們迄今為止的最佳答案是確保分片中的驗證者數量高於某個最小閾值,這樣不誠實的驗證者數量壓倒單個分片的機率就非常低。定期(但不是過於頻繁)進行驗證者輪換,限制了池中的驗證者潛在賄賂的能力。但如果驗證者輪換太頻繁,則執行節點的成本將增加,並且分散將受到損害,因為節點將需要更多儲存和頻寬以跟上分片變化。
最終性
最終性是大大簡化這些問題的一個特徵。一旦一個區塊被系統中的經濟多數人標記為最終區塊,我們就可以確定外部分割槽不會在我們的下方發生變化。 最終性將整個分類賬密封起來,這樣就不會發生變化,而且以前的交叉分片交易可以被視為像只有一條鏈一樣安全。
股權證明能夠保證最終結果,而工作證明永遠不能。這就是以太坊開發人員將PoS和分片整合到他們的Eth2.0路線圖計劃中的原因。