第一層應該在短期內創新,但長期來說需減少

In 未分類
31 8 月, 2018

區塊鏈設計的關鍵權衡中其中一部分是是否在基礎層區塊鏈中構建更多功能(第1層),或者將其構建為位於區塊鏈之上的協議,並且可以在不更改區塊鏈的情況下創建和修改區塊鏈本身(第2層)。到目前為止,這種權衡在規模化辯論中表現最為明顯,一方面區塊大小增加(和分片),另一方面有二層解決方案,如等離子和通道,在某種程度上區塊鏈治理,丟失和偷竊的恢復可以通過DAO fork或其他像是EIP 867的概括或通過第2層解決方案(例如可逆以太(RETH))來解決。那麼哪種方法最終更好?那些了解我的人,或者把我看作是一個中間派的骯髒人,都知道我將不可避免地說“兩者兼而有之”。然而,從長遠來看,我確實認為隨著區塊鏈變得越來越成熟,第1層必然會穩定下來,而第2層將承擔越來越多的持續創新和變革的負擔。

有幾個原因。 首先,第1層解決方案需要在基礎協議層進行持續的協議更改,基礎層協議變更需要管理,而且從長遠來看,仍然沒有證明高度“激進”的區塊鏈管理可以繼續而不會導致長久政治不確定性或融入集權化。

以另一個領域為例,考慮Moxie Marlinspike對Signal的集中和非聯合性質的辯護。一家公司捍衛其維持對其主要業務所依賴的生態系統的控制權的文件,應當要保持懷疑的態度,但人們仍然可以從這些論點中受益。

 

我們早期對Signal做的一件有爭議的事情就是把它作為一個非聯合服務來建構。我們開發的任何協議都不需要集中化;完全有可能建立一個基於聯邦信號協議的信使,但我不再相信有可能建立一個有競爭力的聯邦信使。?

 

他們的反駁是”愚蠢”,如果沒有第三方定義的可互操作協議,互聯網會走多遠?”我想到了這一點。我們獲得了IP的第一個生產版本,並且在過去的20年裡一直在努力轉向第二個生產版本的IP,但收效甚微。我們在1997年獲得了HTTP版本1.1,直到現在一直被困在那裡。同樣SMTP、IRC、DNS、XMPP也大致在20世紀90年代末期被凍結。要回答他的問題,這就是互聯網的發展程度,它走到了90年代末。它使我們走得很遠,但不可否認的是,一旦你聯合你的協議,就很難做出改變。而現在,在應用程式層面,在生態系統正在發展的世界中,停滯不前的事情並不是很好……只要聯合意味著停滯,而集中意味著移動,聯合協議將在軟件中存在問題趨勢需要像今天這樣的行動。

 

在這個時間點,在中段時期,顯而易見的是,分散的應用程式平台、加密貨幣支付、身份系統、信譽系統、分散交換機制、拍賣、隱私解決方案、支持隱私解決方案的編程語言,以及大多數其他可以在區塊鏈上完成的有趣事情是那些將繼續進行重大和持續創新的領域。分散的應用程式平台通常需要持續減少確認時間、付款需要快速確認、低交易成本、隱私和許多其他內置功能,各種形式交易所,包括鏈上自動化做市商頻繁的批量拍賣組合拍賣等。因此,將上敘這些“構建”到基礎層區塊鏈中將是一個壞主意,因為它會創建高水平的管理開銷,因為平台必須不斷討論、實施、協調和改進新發現的技術。出於同樣的原因,聯邦信使很難在沒有重新集中的情況下開始工作,區塊鏈也需要在採取激進主義治理、需要承擔的風險和落後於新出現的替代方案之間做出選擇。

即使是以太坊的特定應用程序特定功能,預編譯,也已經看到了一些這樣的影響。不到一年前,以太坊採用了Byzantium硬分叉,包括使用alt-bn128曲線促進環簽名,ZK-SNARK和其他應用所需的橢圓曲線運算的操作。現在,Zcash和其他區塊鏈正朝著BLS-12-381發展,而以太坊需要再次分叉才能趕上。為了避免將來出現類似的問題,以太坊社區正在尋求將EVM升級到E-WASM,這是一種效率足夠高的虛擬機,因此很少需要整合特定於應用程式的預編譯。

但也有第二個論點支持第2層解決方案,這個解決方案不依賴於預期技術發展的速度:有時會有不可避免的權衡,沒有單一的全局最優解決方案。這在以太坊1.0風格的區塊鏈中不太容易看見,其中某些模型具有相當普遍性(例如,以太坊的基於賬戶的模型是一個)。然而,在分片區塊鏈中,以太坊中不存在的一種問題如下:如何進行交叉分片交易?也就是說,假設區塊鏈狀態具有區域A和B,其中很少或沒有節點正在處理A和B,兩個系統如何處理影響A和B的事務?

當前的答案涉及非同步交叉碎片通訊,這足以傳輸資產和其他一些應用程式,但對其他許多應用程式來說還是不夠的。同步操作(例如,解決火車和酒店問題)可以通過交叉分片處理來固定在頂部,但這需要多次交叉分片交互,導致顯著的延遲。我們可以通過同步執行方案解決這些問題,但這需要幾個權衡:

  • 系統無法為每個區塊處理同一帳戶的多個事務
  • 事務必須事先聲明它們影響的分片和地址
  • 特定交易失敗的風險很高(並且仍然需要支付費用!),如果交易僅在其影響的某些分片中被接受而在其他分支中不被接受

也許可能會開發出一個更好的方案,但它會更複雜,並且很可能具有該方案所沒有的局限性。已知的結果阻止了完美; 至少,Amdahl 的法律對某些應用程式和某些類型的交互的能力施加了硬性限制,通過並行化來處理每秒的更多事務。

那麼我們如何創建一個可以測試和部署更好方案的環境呢?答案是一個可以歸功於Justin Drake的想法:第2層執行引擎。用戶可以將資產發送到”橋樑合約”,這將使用一些替代規則來計算(使用某些間接技術,如交互式驗證ZK-SNARKs)狀態底層來處理區塊鏈(將其視為等效於第二層”後協議”,比如在比特幣上的Mastercoin / OMNICounterparty,除了因為橋樑合約這些協議能夠處理”基礎分類賬本”在底層協議上定義的資產,並且會處理成僅當備用規則集生成提款請求時才提取。

第一層應該在短期內創新,但長期來說需減少

請注意,任何人都可以隨時創建第2層執行引擎,不同的用戶可以使用不同的執行引擎,並且可以非常快速地從一個執行引擎切換到任何其他執行引擎或基本協議。基礎區塊鏈不再需要擔心成為最佳的智能合約處理引擎;它只需要一個具有準圖靈完整執行規則的數據可用性層,這樣任何第2層橋樑合約都可以建構在最頂層,並允許基本操作在分片之間傳送狀態(實際上,只有ETH傳輸是可互換的跨分片就足夠了,但是只需要很少的精力來允許跨分片調用,所以我們也可以支持它們,但不需要復雜性。還要注意,第2層執行引擎可以具有與第1層不同的狀態管理規則,例如。沒有儲存租金;任何事情都會發生,因為該特定執行引擎的用戶有責任確保它是可持續的,如果他們不這樣做,後果將包含在該特定執行引擎的用戶中。

從長遠來看,第1層不會積極參與所有這些改進; 它只是為第二層創新提供了一個穩定的平台。這是否意味著,分片是一個壞主意,我們應該保持區塊鏈大小和狀態,即使是10歲的計算機也可以處理每個人的交易?絕對不。即使執行引擎部分或完全轉移到第2層,對數據排序和可用性的共識仍然是一個高度概括和必要的功能;要了解第2層執行引擎在沒有第1層可擴展數據可用性共識的情況下有多困難,請參閱等離子體研究中的困難,以及其自然擴展到完全通用區塊鏈的難度,例如。如果人們希望將每秒100兆字節的數據投入到需要就可用性達成共識的系統中,那麼我們需要每秒百兆字節的數據可用性共識。

此外,第1層仍然可以改善延遲;如果第1層是緩慢的,那麼實現非常低延遲的唯一策略是狀態通道,其通常具有高資本要求並且可能難以概括。由於狀態通道僅需要單個網絡消息,當狀態通道只需要一個網路訊息時, 狀態通道總是會在延遲中擊敗第1層區塊鏈, 但在狀態通道無法正常工作的情況下,第1層區塊鏈依然會比現在更接近。

因此,另一個極端的狀態,即區塊鏈基礎層可以真正絕對最小化,並且不打算使用準圖靈完成執行引擎或超出單個節點容量的可擴展性,也顯然是錯誤的; 基礎層具有足夠強大的複雜性,以便應用程式能夠在它們之上構建,並且我們尚未達到該級別。需要額外的複雜性,但應該非常謹慎地選擇,以確保它是最大限度的通用目的,而不是針對特定的應用程式或技術,這些應用程式或技術由於失去興趣或更好的替代方案而在兩年內會過時。

即使在未來,基礎層也需要繼續進行一些升級,特別是如果新技術(例如STARK達到更高的成熟度)允許它們實現比以前更強的性能。今天的開發人員可以注意製造基礎層平台最大限度地向前兼容這種潛在的改進,因此繼續提高第1層和第2層之間的平衡以繼續提高可擴展性、隱私性和多功能性將繼續成為現實,儘管第2層將繼續在創新中佔據越來越大的份額。

 

Source:

https://vitalik.ca/general/2018/08/26/layer_1.html