區(qū)塊鏈無法擴(kuò)展:至少現(xiàn)在不能,但有希望(一)區(qū)塊鏈
去中心化數(shù)字貨幣,一個(gè)曾經(jīng)遙不可及的目標(biāo),最終正在逐漸走向主流。
區(qū)塊鏈要想構(gòu)建Dapp生態(tài),要想走向主流人群,優(yōu)先要解決擴(kuò)展性問題。但區(qū)塊鏈?zhǔn)侨ブ行幕南到y(tǒng),任何節(jié)點(diǎn)都可以自由加入,要在多樣化的節(jié)點(diǎn)快速達(dá)成共識,是非常困難的事情。那么,區(qū)塊鏈的真的無法擴(kuò)展了嗎?雖然現(xiàn)在不能,但未來有希望。
第一篇比特幣論文是在2008年首次發(fā)布的。我對于區(qū)塊鏈技術(shù)潛力的激情也是從那時(shí)候開始建立起來的。
去中心化數(shù)字貨幣,一個(gè)曾經(jīng)遙不可及的目標(biāo),最終正在逐漸走向主流。它的自身價(jià)值是非常激動(dòng)人心的,而我個(gè)人則對去中心化app的潛力感到更加興奮。金融交易,預(yù)測市場和資產(chǎn)管理平臺都飽含著巨大的潛力。
支撐它們的去信任系統(tǒng)是非常有趣的:身份驗(yàn)證系統(tǒng),智能財(cái)產(chǎn),抵制審查的社會平臺,以及類似于DAO的自治結(jié)構(gòu)和監(jiān)管模型。最具顛覆性的用例也許還遠(yuǎn)沒有被創(chuàng)造出來。
但是在可以預(yù)見的未來,這個(gè)夢想仍然只是夢想 - 雖然一些早期愛好者和企業(yè)家正在試驗(yàn)構(gòu)建這類app,目前的工作仍然存在一個(gè)阻止這些app獲得成功的巨大缺陷:擴(kuò)展性。區(qū)塊鏈,按照現(xiàn)在的情況來看,受限于它們的可擴(kuò)展能力。
并不是說這個(gè)問題會永遠(yuǎn)存在,但目前的確是這樣。事實(shí)上,我想證明這是目前區(qū)塊鏈技術(shù)所面臨的最大技術(shù)屏障之一。它已經(jīng)很快成為了社區(qū)和加密貨幣中的一個(gè)非常熱門的研究領(lǐng)域。
為什么區(qū)塊鏈無法擴(kuò)展?
目前,所有的區(qū)塊鏈共識協(xié)議(如比特幣、以太坊、瑞波、Tendermint)都有一個(gè)極具挑戰(zhàn)性的限制:網(wǎng)絡(luò)中的每個(gè)全節(jié)點(diǎn)必須處理每筆交易。回憶一下區(qū)塊鏈固有的關(guān)鍵特性 - “去中心化” -意味著網(wǎng)絡(luò)中的單個(gè)節(jié)點(diǎn)需要執(zhí)行每一筆交易并維護(hù)完整狀態(tài)的一份拷貝。
一個(gè)去中心化共識機(jī)制需要提供一些關(guān)鍵優(yōu)勢,例如容錯(cuò)性、強(qiáng)安全性保證、政治中立性和真實(shí)性,因此需要犧牲一些可擴(kuò)展性。區(qū)塊鏈能夠處理的交易筆數(shù)不可能超過網(wǎng)絡(luò)中單一節(jié)點(diǎn)的處理能力。
事實(shí)上,隨著網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)的增加區(qū)塊鏈變得更加孱弱了,因?yàn)楣?jié)點(diǎn)間的延遲會隨著每個(gè)新增節(jié)點(diǎn)呈對數(shù)性增長。
在一個(gè)傳統(tǒng)數(shù)據(jù)庫系統(tǒng)中,擴(kuò)展方案是增加更多的服務(wù)器(也就是算力)來處理增加的交易。在去中心化的區(qū)塊鏈?zhǔn)澜纾總€(gè)節(jié)點(diǎn)需要處理和驗(yàn)證每筆交易,這就需要我們?yōu)榫W(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)增加更多的算力來進(jìn)行加速。然而我們無法控制網(wǎng)絡(luò)中的每一個(gè)公共節(jié)點(diǎn),這就讓我們陷入了困境。
最終,以去中心化方式運(yùn)作的所有公開的區(qū)塊鏈共識協(xié)議在低交易吞吐量和高中心化程度之間進(jìn)行了折衷。也就是說,隨著區(qū)塊鏈規(guī)模的增長,對網(wǎng)絡(luò)中全節(jié)點(diǎn)的存儲、帶寬和算力的要求也在增加。在某一時(shí)刻,它將變得極其笨重,唯一可行的是讓一小部分節(jié)點(diǎn)處理一個(gè)區(qū)塊- 從而導(dǎo)致中心化風(fēng)險(xiǎn)。
為了能夠擴(kuò)展,區(qū)塊鏈協(xié)議必須找出一種機(jī)制來限制驗(yàn)證每筆交易所需要的參與節(jié)點(diǎn)數(shù),同時(shí)不損傷網(wǎng)絡(luò)的可信性以保證每筆交易都有效。這聽起來很簡單,但是在技術(shù)上非常困難。為什么呢?
1. 由于每個(gè)節(jié)點(diǎn)不能夠驗(yàn)證每筆交易,節(jié)點(diǎn)需要有一種統(tǒng)計(jì)和經(jīng)濟(jì)手段來確保其他區(qū)塊(那些它們不能親自驗(yàn)證的區(qū)塊)是安全的。
2. 必須有某種方法來保證數(shù)據(jù)的可用性。也就是說,即使一個(gè)不直接驗(yàn)證區(qū)塊的節(jié)點(diǎn)認(rèn)為該區(qū)塊是有效的,如果這個(gè)區(qū)塊的數(shù)據(jù)變得不可用了,將會導(dǎo)致網(wǎng)絡(luò)中沒有其他驗(yàn)證者可以驗(yàn)證交易或者生產(chǎn)新區(qū)塊,我們就卡死在了當(dāng)前的狀態(tài)下。(有很多種原因會導(dǎo)致節(jié)點(diǎn)掉線,包括惡意攻擊和突然斷電)
3. 交易需要被不同節(jié)點(diǎn)并行執(zhí)行以獲得可擴(kuò)展性。然而,區(qū)塊鏈上的狀態(tài)轉(zhuǎn)換也包含一些無法并行(串行)的部分,因此我們在轉(zhuǎn)換狀態(tài)的過程中均衡并行性與效用時(shí)會面臨一些限制。
給我指標(biāo)
那么這些可擴(kuò)展性指標(biāo)實(shí)際看上去是什么樣子呢?讓我們來看一看。
一個(gè)以太坊節(jié)點(diǎn)的最大理論交易處理容量是1000筆/秒。不幸的是,實(shí)際上遠(yuǎn)遠(yuǎn)達(dá)不到這個(gè)吞吐量,因?yàn)橐蕴挥小癵as限制”,目前平均每個(gè)區(qū)塊的gas限制是6,700,000。
Source: etherscan.io
快速科普一下“gas”,如果你之前沒有聽過這種測量方式:在以太坊中,gas是一種測量算力消耗的方式,每一種操作都被指定了一個(gè)固定的gas(例如,獲取賬戶余額消耗400gas,創(chuàng)建一個(gè)合約消耗32,000gas,發(fā)送一筆交易消耗21,000gas等等)。
交易有一個(gè)“gas限制”字段來指定發(fā)送方想要購買的最大gas。因此,每個(gè)區(qū)塊的“gas限制”決定了有多少交易可以被打包進(jìn)區(qū)塊,取決于區(qū)塊中每筆交易指定的gas限制。
以太坊的gas限制某種程度上和比特幣的1MB區(qū)塊大小限制類似,區(qū)別是以太坊的gas限制是由礦工動(dòng)態(tài)設(shè)置的而比特幣的區(qū)塊大小限制則是硬編碼進(jìn)協(xié)議中的。
以太坊的gas限制給每個(gè)區(qū)塊的網(wǎng)絡(luò)算力強(qiáng)加了一個(gè)軟頂:按照目前6,700,000的gas限制,每筆標(biāo)準(zhǔn)交易平均大約消耗21K的gas,可以算出每個(gè)區(qū)塊大約包含300筆標(biāo)準(zhǔn)交易。
目前的平均出塊速度是20秒,相當(dāng)于最多每秒15筆交易(300/ 20 = 15)。如果包含復(fù)雜交易,這一數(shù)值將會更低(例如智能合約消耗的平均gas是50K,意味著每秒~7筆交易)。
如果同時(shí)考慮到以太坊網(wǎng)絡(luò)中的交易數(shù)量正在與日俱增,你會發(fā)現(xiàn)這是一個(gè)相當(dāng)大的問題。從2016年第二季度到2017年第二季度,每天的交易數(shù)量從40K增加到了240K,達(dá)到了500%的年增長率。
此外,上個(gè)月的交易數(shù)量達(dá)到了每天440K筆的峰值!我們可以很快算一下,相當(dāng)于每秒5筆交易。
哦,不。
類似的,比特幣,先不管每秒4000筆交易的理論限制,目前有每秒7筆小交易和3筆復(fù)雜交易的硬頂。
注意這些限制在私有鏈上并不存在。私有鏈實(shí)際上可以在以太坊或者比特幣上達(dá)到1,000筆/秒。
為什么?因?yàn)槟阍谶\(yùn)行一個(gè)私有鏈,你有能力確保網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都是高性能計(jì)算機(jī)并擁有很高的帶寬。對區(qū)塊鏈進(jìn)行擴(kuò)展,要求我們?yōu)槊總€(gè)節(jié)點(diǎn)增加更多的算力以變得更快。由于私有管理網(wǎng)絡(luò)可以控制網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn),他們可以這么做。
此外,由于你在一個(gè)私有網(wǎng)絡(luò)上,你可以線下處理一些線上的活動(dòng),比如確保每個(gè)參與的節(jié)點(diǎn)正在運(yùn)行一個(gè)真實(shí)的節(jié)點(diǎn)。
我曾經(jīng)在以太坊上設(shè)計(jì)和實(shí)現(xiàn)了一種新的協(xié)議,親身經(jīng)歷并且進(jìn)一步證明了可擴(kuò)展性存在的問題。我個(gè)人非常沉迷于如何解決這個(gè)問題的研究、討論和和實(shí)驗(yàn)。在本文余下的部分,我將描述一些社區(qū)中提出的用于解決可擴(kuò)展性問題的方案。每一種都有獨(dú)特的優(yōu)勢和折衷。
事情的真相是:沒有一種方案能夠?yàn)榻鉀Q可擴(kuò)展性問題提供完美的答案。在現(xiàn)實(shí)中,每一種方案都可以為改善可擴(kuò)展性前進(jìn)一小步。如果把它們組合在一起,區(qū)塊鏈可擴(kuò)展性的未來一片光明。
請注意本文的目標(biāo)不是探討所有的技術(shù)難點(diǎn)或者討論每種方案的優(yōu)點(diǎn)。我的目標(biāo)是讓你對我所知的一些方案有一個(gè)總體的了解(10,000英尺的視角)。如果讀者們有興趣,我可以在以后的文章中深入探討某些特定方案的細(xì)節(jié)。本文假設(shè)你對區(qū)塊鏈如何工作有一些基本的了解。
開始我們的分析。
方案
擴(kuò)展區(qū)塊鏈?zhǔn)且粋€(gè)已知的挑戰(zhàn)并且多年來已經(jīng)成為了一個(gè)熱門的研究領(lǐng)域。特別的,如果你曾經(jīng)經(jīng)歷過比特幣社區(qū)多年的災(zāi)難,你應(yīng)該聽過兩種比特幣的特定擴(kuò)展方案:SegWit和增大區(qū)塊到2MB。
這兩種方案的目標(biāo)都是解決比特幣的特定問題:比特幣區(qū)塊鏈有一個(gè)內(nèi)建的1MB區(qū)塊大小的硬限制,從而限制了可以被打包進(jìn)區(qū)塊的交易數(shù)量。
最終,比特幣面臨了處理和確認(rèn)交易的延遲問題(有時(shí)候是幾小時(shí)甚至幾天)。類似的,正如我們在上一節(jié)所看到的,以太坊也在擴(kuò)展能力上面臨局限。
直到我們找出擴(kuò)展區(qū)塊鏈的方法,否則應(yīng)用場景的增長速度和廣度都將受到限制。我們看一下現(xiàn)存的一些解決方案。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會明確標(biāo)注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時(shí)務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。