以太坊開發(fā)人員很久之前就明白網(wǎng)絡(luò)擴容是一個值得討論和投入的話題。但是這個問題直到2017年下半年才被開發(fā)社區(qū)注意到,那時候有個去中心化應(yīng)用叫做虛擬貓占據(jù)了太多流量,從而使得整個網(wǎng)絡(luò)的速度都被降低了。除了網(wǎng)絡(luò)延時,需要用來在以太坊區(qū)塊鏈上運行智能合約所需的燃料費用激增,因為用戶競爭著想讓自己的交易生效。
雖然這個故事有些過度報導(dǎo),但是虛擬貓的情況揭示了現(xiàn)階段的以太坊也許還沒有為成功運dApp提供所需流量做好準(zhǔn)備。較慢的速度和昂貴的使用成本使得用戶開始離開這個平臺和應(yīng)用。DApp開發(fā)人員正在全力釋放首個廣泛應(yīng)用的app,所以開發(fā)人員必須繼續(xù)攻克區(qū)塊鏈擴容問題。
“三元悖論”區(qū)塊鏈技術(shù)的其中一個理論是網(wǎng)絡(luò)可以支持以下的兩個:安全,去中心化和擴容性。這個“三元悖論”,已經(jīng)成為了以太坊開發(fā)人員的挑戰(zhàn),因為他們想要在為了更廣泛應(yīng)用和實施的同時,也能維持區(qū)塊鏈的核心特征(去中心化和安全)。有些擴容解決方案會嚴(yán)重影響安全或者去中心化:
1. 使用替代幣是解決擴容問題的理論解決方案。這個方案是將轉(zhuǎn)賬計算放在鏈下進行,而且接受多個替代幣同時存在的模型,這些都會在獨立的區(qū)塊鏈上運行。每個區(qū)塊鏈減少的流量,可以讓整個區(qū)塊鏈進行擴容。但是,隨著每個區(qū)塊鏈有更少的節(jié)點,每個區(qū)塊鏈就會更容易被攻擊以及產(chǎn)生欺詐用戶。因此,使用替代幣維持了去中心化和提高了擴容性,但是也很大地影響了安全。
2. 增加區(qū)塊大小是另一個解決擴容問題的理論方案。如果以太坊社區(qū)投票增加每個區(qū)塊的大小,所有節(jié)點也仍然可以運行各種操作,但是在同樣的時間里,可能會發(fā)生更多的轉(zhuǎn)賬。但是,隨著更大的區(qū)塊大小,每個轉(zhuǎn)賬需要更多的能源,那么越來越少的節(jié)點可以承擔(dān)這部分能源。結(jié)果就是未來網(wǎng)絡(luò)會被一些擁有大量驗證每個區(qū)塊的處理能力的超級計算機掌控。因此,增加區(qū)塊大小保證了安全和擴容,但是顯著降低了網(wǎng)絡(luò)的去中心化。
區(qū)塊鏈發(fā)展最初的問題是安全和去中心化。因此,對于擴容最重要的阻礙是每個節(jié)點都需要處理每比交易。因為絕對地安全和去中心化,系統(tǒng)對于擴容不會有太多的增值性。因此問題來了,我們的以太坊工程師如何能夠在不影響安全和去中心化的前提下進行擴容。
現(xiàn)在有4種正在開發(fā)的協(xié)議,可以解決擴容的問題。分片,Plasma和雷電都是為了幫助以太坊擴容。第四種協(xié)議,Casper,在內(nèi)容上更廣泛,但是也會有擴容的效果。
分片分片這種擴容方案還是將交易放在原來的區(qū)塊鏈上,因此被稱為“鏈上”方案。分片解決了在以太坊網(wǎng)絡(luò)上交易都是線性的,因為每個節(jié)點都需要處理交易。分片可以讓節(jié)點同時運行,因此提高了整體區(qū)塊鏈可以處理的每秒交易。有了分片,以太坊網(wǎng)絡(luò)可以分成很多組節(jié)點。每組都是一個分片,并且每個分片都會處理組內(nèi)的交易。這就可以讓分片同時地處理不同的交易。
每個分片內(nèi)部,某些節(jié)點會定期創(chuàng)建“collaTIon”,或者是一系列關(guān)于分片的信息。每個collaTIon都會包括以下信息:
1. 每個分片collaTIon來自何處
2. 在交易完成之前分片狀態(tài)的信息
3. 在交易完成之后分片狀態(tài)的信息
4. 來自2/3 collator的數(shù)字簽名驗證collaTIon中的信息
在網(wǎng)絡(luò)中,每個分片中的collation都會存到單個區(qū)塊,并且加到以太坊區(qū)塊鏈上。因此分片技術(shù)可以讓這些群體節(jié)點去處理和驗證交易,但是只有collation中的信息會加到區(qū)塊鏈上。假設(shè)有10個片區(qū),每個片區(qū)處理5筆交易,那么下個區(qū)塊就可以在區(qū)塊鏈上包含50個區(qū)塊的交易信息,而不是節(jié)點都需要按順序地去處理所有交易。
但是分片技術(shù)會有2個問題。首先,每個片區(qū)都必須要有足夠多的節(jié)點來確保網(wǎng)絡(luò)的安全。如果一個片區(qū)有太少的節(jié)點,2/3的collator可能會被妥協(xié),從而開始進行欺詐。其次,要處理在2個片區(qū)之間的交易會比1個片區(qū)要難很多(如果是一個片區(qū),就不會有問題,因為就是整個區(qū)塊鏈)。目前的方法需要冗長的收據(jù)和證明。
PlasmaPlasma是另一種在 “鏈下” 處理交易的解決方案,也就是說,交易并不是在以太坊主網(wǎng)上進行。Plasma可以讓很多區(qū)塊鏈(子鏈)從原來的區(qū)塊鏈上分離出來(根鏈)。因此,每個子鏈都能處理和維護它自己的轉(zhuǎn)賬記錄,當(dāng)然這是基于根鏈的底層安全性。通過Plasma,根鏈?zhǔn)撬凶渔湴l(fā)生計算的推動。但是根鏈只需要在子鏈中有爭議的時候才會進行計算。這種方案可以使得所有子鏈來分配區(qū)塊鏈上的所有轉(zhuǎn)賬信息,從而可以最優(yōu)化速度和效率。如果子鏈上的節(jié)點愿意,他們可以提交轉(zhuǎn)賬信息,并且輸出他們的轉(zhuǎn)賬記錄到根鏈。
這個方法有一個非常大的好處。每個Plasma鏈都能有自己的標(biāo)準(zhǔn),這意味著不同的子鏈可以支持有不同需求的交易(例如,私有鏈),并且所有的交易都處在同樣,安全的生態(tài)系統(tǒng)中。
雷電網(wǎng)絡(luò)雷電網(wǎng)絡(luò)是另一種鏈下擴容解決方案,可以讓節(jié)點在不用根鏈驗證每筆交易的前提下,去維護轉(zhuǎn)賬記錄。兩個節(jié)點之間可以開通一個“狀態(tài)通道”,這是在用戶間的雙向通道。交易信息會在兩個節(jié)點之間進行,同時會由各方簽名來保證不可篡改性。雷電網(wǎng)絡(luò)是專門為經(jīng)常性支付使用的,也就是說,知道自己將要給某個公司每周支付10美金來獲得服務(wù),或是你會在某個地方經(jīng)常性消費的。將這兩個節(jié)點間的交易記錄并且驗證,而不是通過整個區(qū)塊,根鏈可以釋放出大量的流量。任何時候,狀態(tài)通道的參與者可以選擇關(guān)閉交易,并且所有交易的結(jié)果都會記錄在根連上,并包含在下個區(qū)塊。這意味著在你使用了每周10美元的服務(wù)1年后,用戶會有驗證520美元交易的區(qū)塊,而不是52比10美元的交易。
雷電網(wǎng)絡(luò)解決方案有一個問題,也有一個好處。問題在于節(jié)點只可以和他們的“鄰居”交流,也就是說如果節(jié)點A和節(jié)點B打開狀態(tài)通道,并且節(jié)點B和C的狀態(tài)通道打開,A就不能直接發(fā)送資金給C。但是,這樣通過通道來進行轉(zhuǎn)賬,可以保證資金不會盜竊和鎖定。A節(jié)點能夠通過B作為中介來發(fā)送資金給C,這樣節(jié)點B就不可能偷取資金。雷電網(wǎng)絡(luò)最主要的好處,就是可以大幅度地降低每筆交易的燃料費用。
CasperCaper是以太坊目前的工作量證明即將轉(zhuǎn)去的權(quán)益證明協(xié)議。通過工作量證明算法,礦工目前必須要提高能源使用來解決加密難題,從而挖出區(qū)塊。如果解決難題,那么他們就可以獲得獎勵,但是這個過程需要大量能源(并且現(xiàn)在需要的越來越多)。這很燒錢并且也非常地對能源不利,目前每年需要消耗120億美元來維持工作量證明。
在權(quán)益證明中,驗證節(jié)點會代替礦工,并且他們會在區(qū)塊鏈上驗證區(qū)塊,而不是挖出區(qū)塊。這樣就不會是在某個區(qū)塊上進行不斷地提高能源消耗,驗證節(jié)點會在某個區(qū)塊鏈進行權(quán)益抵押。有最多權(quán)益的區(qū)塊就會被驗證,從而加入到區(qū)塊鏈上。最終,驗證節(jié)點通過在合約上鎖定資金投注某個區(qū)塊會被加到鏈上,直到下一個區(qū)塊被加入。如果最后的區(qū)塊是正確地,那么他們就會獲得獎勵。如果他們惡意去想要驗證錯誤或者帶有賄賂信息的區(qū)塊,那么他們的資金就會丟失。
從概念上來說,這樣的轉(zhuǎn)變可以保護區(qū)塊鏈被惡意攻擊。通過工作量證明算法,失敗的區(qū)塊鏈攻擊會消耗攻擊者的時間和能源。但是在權(quán)益證明算法中,失敗的攻擊會直接導(dǎo)致他們損失錢,因為他們會立刻失去壓在錯誤區(qū)塊上的權(quán)益資金。
Casper最終的實施會被分為2個協(xié)議的迭代:Casper FFG和Casper CBC。
Casper FFGCasper FFG將會成為Casper的首個迭代版本,大概會在以太坊下個硬分叉的時候發(fā)布。在Casper FFG中,區(qū)塊依舊是由工作量證明挖出的。但是,經(jīng)過每50個區(qū)塊,驗證節(jié)點會介入測試權(quán)益證明的機制。這個檢查點會使用權(quán)益證明協(xié)議來評估最終性。這個最終性的意思是這次操作已經(jīng)完成并且完全不可篡改。在FFG中,驗證節(jié)點會把資金作為權(quán)益來完成鏈上前50個區(qū)塊的驗證。
Casper CBCCasper CBC會是Casper的第二個迭代。這個協(xié)議會被正式驗證,并且證明可以滿足所有給定的屬性。在CBC協(xié)議中,PoS協(xié)議只會被部分設(shè)定,然后進一步精細(xì)調(diào)整,以滿足其屬性符合要求。最終,和一開始就完全定義好不同,這個協(xié)議是逐漸推進和完善的。這是通過實現(xiàn)一個被稱為“理想對手”的協(xié)議來實現(xiàn)的,這個協(xié)議可以提出問題,錯誤和協(xié)議未來可能出現(xiàn)的問題。
最終的Casper協(xié)議可能會通過學(xué)習(xí)FFG和CBC進行布署。這個協(xié)議會比單純的擴容更加寬泛,包括能源和安全性的提高。但是,每個節(jié)點消耗更少的能源意味著網(wǎng)絡(luò)會提高現(xiàn)有擴容的難度。盡管Casper并不是為了擴容專門設(shè)定的,它也肯定會為網(wǎng)絡(luò)承擔(dān)更多流量做出積極影響。
向前看以上這四個方案互不排斥,他們可以并且也有可能都會實施到某種程度來幫助以太坊逐漸擴容。擴容問題是2018年以太坊開發(fā)者最關(guān)心的。因為越來越多的dApp在被開發(fā)并且啟動,我們會看到擴容解決方案的不斷推進,從而能讓以太坊發(fā)揮它全部的潛力。