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