擴展區(qū)塊鏈的挑戰(zhàn)得到了很好的證明。當今運行中最成功的區(qū)塊鏈形成了一個線性鏈,其中每個區(qū)塊或更新都引用前面的區(qū)塊。網絡上的每個節(jié)點都存儲了賬本歷史記錄中的完整副本。線性鏈模型在保持整個世界的共識方面非常有效。不幸的是,它在總體網絡吞吐量方面相當有限,因為每個節(jié)點都需要接收和驗證全局發(fā)生的每個交易。
背景
已經提出了許多方法來幫助區(qū)塊鏈擴展。目前最流行的方法是第2層解決方案,如閃電網絡或等離子體。有兩種可能性可以替代線性區(qū)塊鏈:DAG和分片。
關于DAG的注意事項
有向無環(huán)圖(DAG)是由IOTA、Byteball和Nano等項目提出的。他們認為,對于每個人來說,擁有全局狀態(tài)并不重要,相反,節(jié)點應該只需要與它們相關的本地狀態(tài),以及與其他節(jié)點的足夠連接來驗證它們的本地狀態(tài)是否與其他節(jié)點的視圖沖突。
在沒有全局狀態(tài)的情況下,如果攻擊者能夠獨占受害者節(jié)點的傳入連接,那么Eclipse攻擊之類的攻擊是可能的。直到2019年5月,IOTA通過一個每個人都可以連接的集中式協(xié)調器解決了這個問題。可以說,這推翻了DAG的全部觀點。他們最近宣布從協(xié)調器切換到稱為Coordicide的投票模塊。共識參與者將被期望對沖突的交易進行積極的投票,在我看來,這聽起來很像傳統(tǒng)的區(qū)塊鏈共識。
分片
分片系統(tǒng)類似于DAG,但它們承認全局狀態(tài)視圖的重要性,并對賬本施加正式結構,以確保整個系統(tǒng)保持一致。分片將區(qū)塊鏈的驗證工作劃分為幾個組,每個組負責工作的一個子集。
目前有許多用于分片的設計,但很少用于生產。主要的設計考慮是是否有一個信標鏈。信標鏈的行為很像傳統(tǒng)的區(qū)塊鏈,但它不是驗證交易和賬本狀態(tài)本身,而是依賴于每個分片在自己的狀態(tài)上達成一致。然后,將此狀態(tài)壓縮為一個merkle根,該根由分片驗證器的仲裁簽名。然后,信標鏈將分片根編織成一個整體的鏈根。
沒有信標鏈的分片是可能的,但是必須付出更多的努力來公平分配資源,防止大規(guī)模重組和分片接管攻擊。
復雜性
在分片系統(tǒng)中,指定的目標是將工作分配給工作人員,從而提高吞吐量。首要的關鍵問題之一是理解工作是如何劃分的。必須采取保護措施,以確保不誠實的驗證器不能覆蓋特定的分片。
上面的可視化提示,如果只關注單個分片,那么即使只有1%的驗證器也可能造成嚴重破壞。以太坊計劃使用一個改組過程,以不可預知的方式將驗證器分配給分片,以防止壞參與者接管分片。
跨分片通信
這些分片的邊界上發(fā)生了什么?它們是如何相互作用的?一個顯而易見的答案是, 如果一個應用程序不在我的分片上,我可以在不同的分片上創(chuàng)建一個新的帳戶,或者我甚至可以使用一個跨分片服務,它將我的錢包地址放在一個分片上,并允許我與任何其分片片上的應用程序交互。
想象一下,您希望從與您不在同一分片中的網絡參與者那里收到一筆付款。您如何從您沒有參與的分片中收到錢?
以太坊研究人員提出的可視化樣本方法
這里,我們使用收據(jù)的概念來說明。通過提供源分片中交易的merkle路徑,收件人可以證明他們將從一個外國分片中來接收代幣。目標分片使用收據(jù)并記入收件人的帳戶。這必須以原子的方式完成。發(fā)送方和接收方的帳戶要么一起修改,要么不一起修改。如果有一個缺口或一端失敗了,發(fā)送者可以欺騙接收者,讓他們相信他們已經收到了他們永遠不會得到的資金。
在途交易
真正的跨分片的原子交易是一個困難的問題,因為它需要分片之間同步通信的驗證器。如果對跨分片交易的需求足夠高,那么性能可能會下降,因為必須有更多的分片工作人員協(xié)作來處理跨分片交易。
分片系統(tǒng)必須開發(fā)信任網絡不會從外部分片逆轉這些交易的機制。如何保護自己免受可能發(fā)生的大規(guī)模重組的影響?
到目前為止,我們得到的最佳答案是確保一個分片中的驗證器數(shù)量超過某個最小閾值,這樣不誠實的驗證器壓倒單個分片的幾率就會很低。定期(但不是過于頻繁)的驗證器旋轉限制了池中驗證器集潛在賄賂的能力。如果驗證器旋轉太頻繁,那么運行一個節(jié)點的成本將會增加,而分散化將會受到損害,因為節(jié)點將需要更多的存儲和帶寬來跟上分片的變化。
終結性
一個顯著簡化這些問題的特性是終結性。一旦一個區(qū)塊被系統(tǒng)中的多數(shù)派認定為最終區(qū)塊,我們可以肯定,我們腳下的外國分片不會發(fā)生變化。終結性會將整個賬本密封起來,這樣就不能對其進行修改,而且以前的跨分片交易也可以被認為是安全的,就像只有一條鏈一樣。
權益關系證明能夠保證終結性,而工作量證明永遠不能。這就是以太坊開發(fā)人員將PoS和分片組合到他們的Eth2.0路線圖計劃中的原因。