比特幣為什么要擴(kuò)容?為什么說擴(kuò)容是區(qū)塊鏈最大的問題
目前區(qū)塊鏈平臺(tái)***的問題,可以用一個(gè)簡單的類比來說明:
二十一世紀(jì)初,互聯(lián)網(wǎng)的速度非常緩慢。當(dāng)時(shí)如果你有一個(gè)博客,用戶要訪問它既費(fèi)時(shí)又費(fèi)錢。人們注意到這個(gè)問題,但同時(shí)也認(rèn)識(shí)到了互聯(lián)網(wǎng)的用處。為了解決此問題,很多人努力改進(jìn)互聯(lián)網(wǎng)的基礎(chǔ)設(shè)施和設(shè)計(jì)。與此同時(shí),人們還構(gòu)建了更強(qiáng)大的硬件來運(yùn)行這些互聯(lián)網(wǎng)的設(shè)施。
由于這些改進(jìn),互聯(lián)網(wǎng)變得更快,訪問成本變得更低。以前,開發(fā)人員們只能創(chuàng)建單個(gè)網(wǎng)頁。但現(xiàn)在,開發(fā)者可以在改進(jìn)的基礎(chǔ)設(shè)施上建立像臉譜網(wǎng)、谷歌和Twitter這樣的網(wǎng)站。所有這些都是可能的,因?yàn)榛ヂ?lián)網(wǎng)的速度和容量得到了極大提升。
區(qū)塊鏈技術(shù)也面臨著類似的問題——緩慢而昂貴。
許多區(qū)塊鏈公司都致力于構(gòu)建可擴(kuò)容的基礎(chǔ)設(shè)施,從而使區(qū)塊鏈平臺(tái)在未來成為主流。一旦那一天到來,人們不僅可以使用區(qū)塊鏈進(jìn)行支付,還可以在其之上構(gòu)建類似于谷歌和臉書的應(yīng)用程序。
01區(qū)塊鏈和擴(kuò)容能力問題
在解釋擴(kuò)容問題之前,必須要先解釋吞吐量的概念。假設(shè)你在火車站等車,每趟火車間隔一小時(shí),只能做10個(gè)人。一旦火車滿載,第十一名乘客只能等待下一趟。與這個(gè)做類比,乘客代表交易,比特幣或以太坊這樣常見的區(qū)塊鏈平臺(tái)每秒平均可以處理大約10次交易。
相比之下,像VISA這樣的支付公司目前平均每秒處理5000到8000次交易。任務(wù)處理的速率稱為吞吐量。與Visa等支付平臺(tái)相比,區(qū)塊鏈平臺(tái)目前的吞吐量非常低。
現(xiàn)在假設(shè)你在同一個(gè)火車站,但這次還有另外一百人個(gè)想坐這列火車?;疖噥砹耍燮眴T看了看人群,說:“付錢最多的10個(gè)人可以上火車。”你因?yàn)橼s時(shí)間,所以你就付了一大筆錢買票上火車。
由于區(qū)塊鏈平臺(tái)的吞吐量低,交易費(fèi)用不斷上升。例如,一筆10美元的交易在擁擠的區(qū)塊鏈平臺(tái)上很可能需要支付2美元的交易費(fèi)用。因此,緩慢和高成本是互聯(lián)網(wǎng)上的主流交易往區(qū)塊鏈平臺(tái)上遷移的巨大障礙。
02提升擴(kuò)容能力
為了提升區(qū)塊鏈平臺(tái)的主流接受度,這些平臺(tái)需要進(jìn)行擴(kuò)容。區(qū)塊鏈公司們?yōu)榇颂岢隽藥追N解決方案。
2.1增加區(qū)塊大小
***種最直接的方法是增加區(qū)塊大小?;氐交疖囶惐龋@意味著將火車的容量從10人增加到20人。這樣,火車就可以在特定時(shí)間內(nèi)運(yùn)送更多的乘客,減少車站的擁擠。
比特幣當(dāng)前的區(qū)塊大小1MB,提高到2MB可以使其每秒處理量增加一倍。區(qū)塊越大,每秒處理量就越高。
但這在實(shí)踐中是有問題的,假設(shè)你將塊大小從1MB增加到1GB,當(dāng)你創(chuàng)建塊時(shí),必須將其傳送給網(wǎng)絡(luò)中的其他人,而網(wǎng)絡(luò)無法快速處理龐大的文件。就像你使用電子郵件,當(dāng)你上傳一個(gè)大文件時(shí),郵箱會(huì)不接受。這就是增加區(qū)塊大小的毛病,不能超越某個(gè)臨界點(diǎn),所以這種解決方案的能力是有限的。
2.2鏈下解決方案
第二種可能性是鏈下解決方案,比如比特幣的閃電網(wǎng)絡(luò),以太坊的雷電網(wǎng)絡(luò),和Neo的本體網(wǎng)絡(luò)。
在當(dāng)前的情況下,每次交易處理,都必須得到網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的驗(yàn)證。(節(jié)點(diǎn)是運(yùn)行算法并處理交易的計(jì)算機(jī)。
例如,你想在一個(gè)月時(shí)間里每天從一個(gè)特定的咖啡店買一杯咖啡,咖啡的價(jià)格是1美元,但在網(wǎng)絡(luò)上每天交易1美元是非常昂貴的,你不想為1美元的交易而擁擠整個(gè)網(wǎng)絡(luò)。因此你和咖啡館老板簽了一個(gè)合同。合同規(guī)定,你每天都要付象征1美元的通證作為咖啡費(fèi)。你向網(wǎng)絡(luò)發(fā)送一筆交易來標(biāo)記合同的開始,30天后再發(fā)送一筆交易來標(biāo)志該合同的結(jié)束,合同結(jié)束后,咖啡館老板可以在網(wǎng)絡(luò)上把這30個(gè)通證交換為30美元。
因?yàn)檫@些是在區(qū)塊鏈網(wǎng)絡(luò)之外發(fā)生的私人協(xié)議,所以它們被稱為鏈下解決方案。這種交易系統(tǒng)的缺點(diǎn)是,整個(gè)過程都集中在托管這些鏈下交易的服務(wù)器上,這些鏈下網(wǎng)絡(luò)也是黑箱,其透明性和安全性是值得懷疑的。
2.3代理共識(shí)協(xié)議
目前區(qū)塊鏈網(wǎng)絡(luò)上的處理速度是非常慢的,因?yàn)榫W(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都必須參與處理。如果網(wǎng)絡(luò)中有一千個(gè)節(jié)點(diǎn),那么一千個(gè)節(jié)點(diǎn)都必須參與處理網(wǎng)絡(luò)中的每筆交易。
如果一個(gè)社區(qū)里有1000個(gè)人,每個(gè)人都必須達(dá)成一致,過程不僅漫長,而且會(huì)非?;靵y。相反,如果你從社區(qū)中選出10名代表,任命他們?yōu)樯鐓^(qū)的管理員,讓這10個(gè)人投票,達(dá)成共識(shí)會(huì)更快和更容易。
類似的,您可以委托一組節(jié)點(diǎn)來運(yùn)行協(xié)議并在事務(wù)上達(dá)成一致,代理節(jié)點(diǎn)的共識(shí)將代表社區(qū)的共識(shí)。
大多數(shù)可擴(kuò)容的區(qū)塊鏈項(xiàng)目都采用這種協(xié)議。為了進(jìn)入治理聯(lián)盟,社區(qū)成員必須登記興趣并通過測試(稱為權(quán)益證明或權(quán)威證明)。如果他們成功通過,將被授予加入治理聯(lián)盟的權(quán)證并運(yùn)行共識(shí)協(xié)議。
2.4分片技術(shù)
分片技術(shù)是一種把網(wǎng)絡(luò)分割成碎片的鏈上擴(kuò)容方案,但分片不是數(shù)據(jù)庫領(lǐng)域中的新概念。分片技術(shù)將大型數(shù)據(jù)庫分成更小、更快、更易于管理的部分,稱為數(shù)據(jù)碎片。
為了展示它的工作原理,現(xiàn)在假設(shè)你有一個(gè)包含五個(gè)步驟的問題。
想象你在一個(gè)班級(jí)里有10個(gè)學(xué)生可以幫你這個(gè)問題,而且這個(gè)問題可以分成5個(gè)并行的步驟。于是你把班級(jí)分成5組,每組兩人,每組解決一個(gè)子任務(wù)。
一旦有小組完成了它的子任務(wù),就會(huì)把信息傳遞給老師了,老師就會(huì)匯總五個(gè)組的所有答案,并將完整的答案傳遞給所有的組。這樣,即使各個(gè)小組專注于他們的子任務(wù)時(shí),并不知道其它組在做什么,但最終所有的參與者都會(huì)得到答案。
在這個(gè)例子中,學(xué)生是網(wǎng)絡(luò)上的節(jié)點(diǎn)。班級(jí)就是網(wǎng)絡(luò)中所有的節(jié)點(diǎn),而小組則是分片。老師則代表了目錄服務(wù)委員會(huì)(DS),而它本身就是一個(gè)分片。
如果把比特幣網(wǎng)絡(luò)比作一個(gè)教室,學(xué)生們必須自己解決每一步的問題,這要花費(fèi)長得多的時(shí)間,而且每個(gè)參與者的負(fù)擔(dān)也要大得多。
但是使用網(wǎng)絡(luò)分片技術(shù),如果你有10000個(gè)節(jié)點(diǎn),通過工作量證明過程,它們將被隨機(jī)分為10組,每個(gè)組被稱為一個(gè)分片。每個(gè)分片處理一組不同的數(shù)據(jù),并得出小組內(nèi)一致同意的答案。然后,各分片將這些數(shù)據(jù)的摘要報(bào)告提交給一個(gè)名為目錄服務(wù)委員會(huì)的分片,由它來統(tǒng)籌不同分片的數(shù)據(jù)摘要,并將它們組合起來形成一個(gè)更大的數(shù)據(jù)集,稱為最終區(qū)塊,最終區(qū)塊的數(shù)據(jù)又會(huì)被返回所有分片。
從上面的分析可以看到,分片技術(shù)是一種去中心化的、安全的鏈上擴(kuò)容方案,具有線性的擴(kuò)容能力——也就是說,節(jié)點(diǎn)越多,得到的吞吐量就越大。
分片技術(shù)有兩種類型:網(wǎng)絡(luò)分片和狀態(tài)分片,以太坊正在開發(fā)的技術(shù)是狀態(tài)分片。兩種技術(shù)的不同之處在于,在網(wǎng)絡(luò)分片中,不是每個(gè)節(jié)點(diǎn)都必須處理每條信息,但是每個(gè)節(jié)點(diǎn)都必須存儲(chǔ)網(wǎng)絡(luò)中其它分片的信息;如果使用狀態(tài)分片,每個(gè)節(jié)點(diǎn)都只存儲(chǔ)它們自己處理過的信息子集,雖然這減少了每個(gè)節(jié)點(diǎn)的負(fù)擔(dān),但分片之間的互通會(huì)變得復(fù)雜。
03分片技術(shù)的缺點(diǎn)是設(shè)計(jì)和部署的復(fù)雜性
部署一個(gè)簡單版本的分片很容易,但是要正確且安全地運(yùn)行很難,這就是為什么現(xiàn)在很少的團(tuán)隊(duì)研究它。與最簡單的解決方案相比較,增加區(qū)塊容量只需調(diào)整一個(gè)參數(shù)——區(qū)塊大小,然后吞吐量就增加了。但是當(dāng)引入分片技術(shù)時(shí),需要考慮的事情就非常多。
如何合理地劃分小組成員?如何分配任務(wù)?所有這些都給系統(tǒng)帶來了復(fù)雜性。但如果做得正確,系統(tǒng)將是分布式的、安全的,并且有線性的擴(kuò)容能力。
04寬帶和存儲(chǔ)容量是所有擴(kuò)容方案的通病
對(duì)于比特幣和以太坊這些的區(qū)塊鏈平臺(tái)來說,這個(gè)問題還不嚴(yán)重,因?yàn)樗鼈兊耐掏铝亢艿?。比特幣和以太坊每秒處?0筆交易,按目前的速度,一年內(nèi)的所有交易數(shù)據(jù)將達(dá)到幾GB。
但是,當(dāng)我們每天處理數(shù)億筆交易時(shí),數(shù)據(jù)就會(huì)爆棚。為了存儲(chǔ)所有這些數(shù)據(jù),我們必須找到更好的存儲(chǔ)解決方案,這不是網(wǎng)絡(luò)分片可以直接解決的。