深度拆解以太坊八大擴容路,V神選擇了最難的那條!

買賣虛擬貨幣

眾所周知,以太坊網路有限的交易處理能力極大阻礙了其成為“世界計算機”的步伐。以太坊創始人Vitalik曾多次公開示,在保持既有安全性與去中心化特性的前提下實現區塊鏈擴容,是當下以太坊技術團隊的核心工作。

然而,由於時至今日,遲遲未見其擴容技術方案帶來的質性飛躍,眾多開發者和使用者對以太坊智慧合約平臺的擁堵現狀及應用前景日漸憂慮。

自2016年以來,以太坊的種種擴容嘗試就經常性湧入公眾視野(包括Plasma、Sharding、Casper等等),究竟其擴容方案都經歷了哪些變化,當前進展以及最新規劃如何,小蔥特此對以太坊的擴容長征路進行了梳理與分析。

擴容呼聲日漸迫切  V神丟出新構想

近日,以太坊客戶端Parity的開發人員Afri Schoedon指出以太坊已經超負荷執行,提醒使用者“不要繼續在以太坊網路部署DAPP”,並呼籲開發人員轉移到以太坊經典(ETC)或POA網路(基於以太坊的側鏈),他認為這些網路的交易處理能力依然很強。

對此,Vitalik當即迴應表示“不同意”Schoedon的看法,並指出,“1)大多數DAPP都有最佳化gas的空間,就算你不這樣做,只要你的DAPP抬高了gas費用,增加了網路壓力,其它DAPP也會進行最佳化;2)以太坊鏈上還有很多毫無價值的垃圾交易;3)每個人都應該研究關注二層方案。”

並且,Vitalik在以太坊技術論壇上發文表示,二層方案不需要權衡資料的可行性,也沒有活躍度要求。如果部署得當,使用zk-snarks進行批次交易驗證,以太坊可以“大量”擴容,每次交易的成本不會高於1000 gas,最多可完成每秒500筆鏈上交易,十分安全,且不依賴第二層擴充套件方案(如Plasma或RDN/" target="_blank"">雷電網路)。

在該論壇上,Vitalik與眾多開發者就該方案的實現進行了討論。他承認運用zk-snark技術實現批次交易驗證將伴隨大量的零知識證明計算工作(證明的生成),不過他認為,證明計算的效能無需擔憂,從長遠來看,可以將這些工作外包給採礦業和GPU農場。

Vitalik指出利用零知識證明技術做批次交易驗證是一個二層解決方案,其設計難點在於:要求每個驗證器都實際擁有所有資料,需要隨機抽樣的驗證器子集來證明不同資料子集的所有權,而這就需要透過“分片”設計來解決,這是難點所在。

小蔥注:zk-snark,是一項隱私應用非常廣泛的技術,全稱是Zero knowledge succinct non-interactive argument of knowledge(零知識簡潔非互動知識的證據),已在Zcash專案裡經過實踐檢驗,被認為是較成熟的技術。zk-snark技術的亮點在於,生成證明的簡潔,以及驗證速度的高速。本次Vitalik提出的方案中使用該技術的目的旨在提升可擴充套件性,而非強化隱私。就目前來看,以太坊2.0中具體如何落地這一技術還處於探討之中。

以太坊開發人員很久之前就注意到區塊鏈擴容的重要性。也討論和提出過諸多實驗方案。

擴容伊始 :那些被pass的理論方案

替代幣(altcoin)擴容方案

理論上,可使用替代幣(altcoin)解決擴容問題。該方案是將轉賬計算放在鏈下進行,並且接受同時存在多個替代幣,它們各自擁有自己的區塊鏈。如此一來,每個區塊鏈減少的流量,能讓整個區塊鏈得以擴容。但它造成的直接後果是,每個區塊鏈有更少的節點,容易被攻擊或出現惡意使用者。使用替代幣維持了去中心化和提高了擴容性,卻極大捨棄了安全性

增加區塊大小

以太坊網路中增加區塊大小,即提高gas值限制。2017年6月,以太坊基金會聯合創始人Hudson Jameson曾呼籲礦工手動修改Gas限制以提高網路的交易吞吐量。但該方案也存在諸多弊端:隨著Gas值上限被放大,網路易於被那些擁有大量驗證處理能力的超級計算機掌控,淪為中心化系統;且該方案會導致以太坊網路出現叔塊(處於非最長鏈上的區塊)的機率升高,所以大部分礦工對這一擴容方式未作過多響應

儘管擴容實現遇到種種阻礙,但以太坊開發者們不斷尋求擴容問題的出路,並先後提出了多項技術方案。

擴容探索:多項技術方案並行研究

EIP648擴容提案:並行活動

2017年6月17日,V神在Github 開原始碼庫上釋出了名為 EIP 648 的擴容提案。

該方案旨在透過各節點間的高效並行來緩解交易擁堵問題。節點在多個核心上並行程序,允許在一個執行緒上單獨執行ICO,而以太坊網路保持不變。簡言之即分流,將ICO活動與以太坊網路執行分開進行,這樣就能在不影響正常以太坊網路流量的情況下同時處理多個 ICO 專案(據V神的說法,最多可達到8個)。但即使透過將這些活動分開執行,也終究是治標不治本,非長久之計。

小蔥注:EIP(Ethereum Improvement Proposals),即以太坊改進建議。為促進以太坊網路發展的去中心化,以太坊社羣內每件與以太坊未來發展有關的意見建議, 都可以用EIP格式提交出來,經過討論該提案被大家選上後,會正式列入EIPs清單。EIP648就是一類擴容改進提案,但小蔥發現它並未被列入EIPs清單內。

雷電網路(Raiden):把一部分交易放在鏈外

網路(Raiden Network)是一種利用鏈下支付通道網路實現以太坊擴容的技術。該專案始於2015年,與BTC/" target="_blank"">比特幣上的閃電網路原理類似,雷電技術把以太坊區塊上的絕大多數交易轉移至鏈外處理,允許使用者透過私下交換轉賬簽名資訊實現交易,從而大幅度增加交易處理速度。

2017年9月,雷電專案的測試網路在以太坊上部署完成,同年12月,“微型雷電網路”(uRaiden)上線以太坊主網。uRaiden是雷電網路的MVP版本,旨在提供一種小額支付機制,類似於比特幣的閃電網路。雷電網路方案的主要好處是,能大幅降低每筆交易的燃料費用,但它也主要適用於經常性小額支付場景。

Plasma:把資料放在鏈外

與雷電網路類似,Plasma也是一種鏈下擴容解決方案。Plasma專案將區塊鏈設計為樹狀結構,使用大量“子區塊鏈”來分擔主鏈上的資料儲存量,每個子鏈都能處理和維護它自己的轉賬記錄,同時使用特定技術實現“主鏈”與“子鏈”的連線,由主鏈維護其安全性,主鏈只需在子鏈中出現爭議時才進行計算,從而實現最最佳化交易處理速度和效率。如果子鏈上的節點願意,它們也可以提交轉賬資訊並輸出他們的轉賬記錄到主鏈。

該方案允許每個Plasma鏈都可以有自己的標準,也即不同子鏈可以支援有不同需求的交易(如私有鏈),且所有交易都處在同樣安全的生態系統內。

2017年8月9日,以太坊創始人與閃電網路白皮書聯合作者Joseph Poon提出新型擴容方案“Plasma”。2017年11月,V神在推特上稱Plasma實現已經開始。2018年1月,今年1月公佈了Plasma MVP版本,是一種基於Plasma的開源合約。據悉,Plasma方案可實現每秒十億次交易處理量,但具體實施效果怎麼樣還有待驗證,且目前看來,它主要是為代幣轉移(ERC/ETH)而設計,如何擴充套件至更復雜的代幣(如ERC721)或甚至更通用的狀態轉換還是未知數。不過,把部分資料放在主鏈之外處理似乎是一大主流擴容趨勢

Sharding(分片)

與Plasma和雷電網路不同,分片(Sharding)是一種鏈上擴容技術,旨在提升協議基礎層的容量。

受傳統資料庫啟發而來,分片就是把區塊中的資料分成很多不同的“片段”並分別存放在各個節點中,減少每個節點資料儲存量的同時,提高系統的驗證速度。目前,以太坊上的交易是以線性順序執行,每個礦工都在執行同樣的程式,整個網路的計算能力取決於單臺電腦的計算能力。而分片是一種動態的分割槽驗證交易的解決方案,由使用者自行選擇由哪一個分片執行自己的交易,允許區塊處理並行進行。這種“鏈上”解決方案透過多個網路計算機來分配交易負載,允許更多的交易在同一時間得到確認,從而達到擴容效果。

2017年11月,V神在以太坊開發者大會及臺北舉行的區塊鏈技術交流會議上表示,分片技術或是可擴充套件性問題最有可能的解決方案,同時也正是以太坊2.0發展路線圖中的重點。今年4月30日,V神釋出了一條“分片即將到來”的推文,並分享了一個新的程式碼庫,演示如何把分片擴充套件解決方案“拴在”以太坊主鏈上,似乎想表示分片技術正在開始走向落地和實現。

V神從不吝嗇對分片技術前景的看好,他相信分片將大幅度改善以太坊現有的併發限制,真正實現擴容。分片被業界視為更為長期有效的、且理論上可行的擴容方案,不過該方案的實施還面臨諸多技術挑戰。比如,需要確保每個片區有足夠多的節點來防止單分片接管攻擊,因為一個片區節點太少容易出現妥協和欺詐;再如跨分片交易也是一大難點,目前需要冗長的收據和證明;此外,還有在收到無效排序規則時,各片區節點如何識別和驗證欺詐行為,並拒絕這個排序規則,以及資料可用性問題等等。

Casper

Casper在內容上更廣泛,但也有擴容效果

Casper專案致力於將以太坊主網共識演算法從POW轉向POS,自2014年就被提出,四年來,以太坊開發者們就該協議實施需克服的種種問題(如長程攻擊、無利害攻擊、51% 攻擊、網路分割槽恢復等)做了大量的技術嘗試,並發展出2條研究分支Casper FFG(一種混合POW/POS的共識機制,相當於POS的初級階段)以及Casper CBC(Vlad Zamfir正在構建的完整的POS版本)。據V神稱,二者但主要權衡是,後者有更好的理論屬性,而前者更容易實現。

最終的Casper協議比純粹對擴容方案內涵更廣,包括能源消耗改善和安全性的提高。不過,正因為(與POW相比)單個節點消耗能源更少,該網路擴容難度更高。儘管Casper並非專為擴容而設計,但它會對以太坊網路容量產生積極影響

根據V神今年8月份連續釋出的75條推特對POS與Casper研究歷史的回顧闡述,由於後期Casper FFG 方案遇到種種困難開發工作慢了下來,且團隊經歷分散在Casper專案和分片專案之間,導致了很多重複性工作。

因此,2018年6月,以太坊核心開發者電話會議上,團隊最終決定徹底放棄“用合約實現混合 Casper FFG”的想法,而是集中精力追求完全 Casper 的獨立鏈,將Casper與分片設計進行融合。這一決定正式宣告了EIP1011(PoW 與 PoS)既有的 Capser FFG 協議的終止

以太坊2.0(Casper & Sharding):擴容收官之戰?

根據以太坊Casper + Sharding chain v2.1工作進展描述文件(該文件最早於6月底釋出,持續更新中,最近一次更新在2天前),以太坊2.0將有一項新的設計——信標鏈(Beacon),而這項新設計將對以太坊的可擴充套件性和分散性產生巨大影響。

小蔥注:在社羣內部各類開發文件中,以太坊2.0被稱為“A sharded POS Ethereum 2.0”,可見其同時嵌入了分片與POS演算法機制,融合這兩大技術的新型主鏈被稱作信標鏈。這是近年來以太坊一個比較大的動作。目前,以太坊2.0的路線圖尚未確定,其相關的設計和規範也在不斷變化。

雖說擴容是一項持續性需求,但根據ETH2.0的設計,信標鏈似乎會帶來質的飛躍,有望成為一項里程碑式的擴容收官之戰。與這項新設計相關的術語見下表:

信標鏈是POS系統的“主鏈”,與當前的以太坊區塊鏈並行執行。當然,現有的以太坊區塊鏈未來將被納入新系統。信標鏈主要職責有:

  • 儲存和維護一組活躍且有序的驗證者
  • 處理分片與信標鏈之間的各項“交連”
  • 處理自己的逐塊共識以及最終確定性

存款流程和區塊鏈結構(來自Pocket Pool的Darren Langley)

信標鏈(Beacon Chain)會隨機抽取驗證者進行出塊提議和投票,以防止驗證者之間的相互勾結。此外,由於驗證者只能以非常有限的方式和鏈互動,信標鏈中將不再使用EVM這類執行引擎處理投票事務(團隊正在開發EWASM替代EVM),因此投票效率會更高。由於不需要預估算力,所有信標鏈上的交易也都是免費的(gas free),整個過程會更有成本效益

信標鏈與分片鏈(來自Pocket Pool的Darren Langley)

分片鏈(Shard Chains)負責處理交易並儲存帳戶資料,每個分片鏈(目前設定為1024個)都跟主鏈相連線;每個分片鏈是一個獨立的POS鏈,它們各自有自己的狀態(如賬戶餘額、智慧合約等)和交易歷史,同時和信標鏈同使用POS共識機制。每隔一段時間(約1小時),系統會隨機給各驗證節點分配一個分片,負責驗證和確認該分片上的區塊。“交連(cross link)”將用於確認各分片鏈中的哪些區塊進入信標鏈,同時交連也是各分片鏈之間互操作的主要方式。

據估計,分片後的以太坊每秒將能處理超過15000筆交易,這與當前的以太坊網路效能(每秒約處理15筆交易)相比,實現了真正意義上的質的飛躍。

目前,關於信標鏈和以太坊2.0的設計仍在進行中,許多技術團隊也早已開始研究信標鏈客戶端應用,如Lighthouse專案,Prysm專案,Trinity,Nimbus,Harmony等等。據Rocket Pool區塊鏈高階工程師Darren Langley於9月初發布的文章稱,目前信標鏈已經完成的工作包括:信標鏈狀態資料結構與持續力、單個區塊狀態轉換、分叉選擇實現、驗證者洗牌、區塊提案者角色、資料結構序列化以及P2P協議。但仍然還有很多領域尚在研究之中。

小蔥小結:“短期求創新、長期求保守”

綜合上述梳理,我們可以看到,針對長久以來的區塊鏈網路擁堵現象,以太坊核心團隊曾從多個角度進行過理論與技術方案的探索和實踐,包含提高 gas 值限制、發行 EIP648 擴容方案、提出Plasma、採納分片技術(Sharding)等等,小蔥根據時間線簡要梳理了一下以太坊的擴容動態事件。

據各公開渠道(以太坊相關論壇、推特、Reddit)資訊進行的不完全彙總

透過這一系列擴容提案的出現、轉變及衍生,我們不難看出以太坊核心團隊持續的技術探索能力和應變能力。同時這些主流的擴容方案之間並不衝突,甚至會在實踐中走向融合(正如Casper和Sharding那樣)。

或許,以太坊的擴容口號喊了太久,而擴容成效來的太慢,故而引發社羣內外眾多開發者的急不可耐(如開篇提到的Afri Schoedon呼籲開發人員轉移到其他鏈);此外,EOS專案創始人BM也曾公開指出V神在解決可擴充套件性問題上考慮地過於複雜

確實,我們看到在以太坊的整個擴容規劃中,納入了很多底層技術層面的考量,它試圖在實現可擴充套件性,同時考慮可持續性、效率以及靈活性,這牽涉到多個領域的技術改進和應用部署,不僅僅是引入某個二層擴容方案,把一部分資料/交易放到鏈外處理這麼簡單,而是從區塊鏈協議層實現擴充套件。

按照V神的話,他希望多種擴容方案並行使用。在Layer-1(即區塊鏈協議層)擴容方向上的主導思想是“短期求創新,長期求保守。他認為:

Layer-1 長期來看必定趨於穩定,不會在所有技術改進上去競爭,只會盡力提供一個穩定平臺,使得 Layer-2 上的創新能夠發生。因為在 Layer-1上尋求解決方案要求進行持續的協議變更,而基礎層的變更往往牽涉到治理和共識問題,但迄今為止,還沒有哪個公鏈能在不淪為中心化的前提下,完成持續“活躍”的創新和治理。不過短期內,Layer-1的創新和完善是必要的。

而 Layer-2 也必定將承擔起越來越多持續創新的、有挑戰的重任。去中心化應用平臺、加密貨幣支付手段、去中心化交易所機制、拍賣、隱私保護方案、支援隱私保護的程式語言等等,絕大多數可以在區塊鏈上做的,都是重要且需要持續創新的領域。將這些功能全部“整合”進底層區塊鏈顯然不妥,會帶來很高的治理成本和協調升級成本。

因此,當下以太坊在擴容上首先需要完成Layer-1的創新升級,而長期來看,會利用Plasma、雷電網路乃至更多新型的二層擴容方案以適應未來的商業應用。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;