區(qū)塊鏈技術(shù)中常見的擴(kuò)容方案有哪些
區(qū)塊鏈里有一個不可能三角:去中心化、安全性、可拓展性無法同時滿足。目前區(qū)塊鏈基礎(chǔ)設(shè)施存在可拓展性問題,無法滿足大規(guī)模應(yīng)用的需求。
同時資源瓶頸決定了公鏈的性能上線,與鏈上共識機(jī)制、數(shù)據(jù)結(jié)構(gòu)等無關(guān)。這也導(dǎo)致區(qū)塊鏈的基礎(chǔ)設(shè)置無法無法滿足大規(guī)模的應(yīng)用的需求,限制了區(qū)塊鏈行業(yè)的發(fā)展。
人們開始研究如何實(shí)現(xiàn)區(qū)塊鏈擴(kuò)容,拓展公鏈的性能。常見的擴(kuò)容方案有如下幾種:
鏈上擴(kuò)容
1.增加區(qū)塊鏈容量
比特幣一個區(qū)塊容量大小為1M,每秒最多支持7筆交易,以太坊每秒也只有10幾筆,EOS號稱要實(shí)現(xiàn)百萬級的TPS,目前也只有4000左右。這個和visa過萬支付寶幾十萬的TPS相比還相差甚遠(yuǎn)。所以有人提出增加區(qū)塊的容量,比如將比特幣現(xiàn)在的1M擴(kuò)容到2M、8M等,通過擴(kuò)容來提升公鏈性能。但不足的地方在于分叉率提高,可能還會導(dǎo)致空塊。
2.隔離見證
隔離見證是由比特幣長期團(tuán)隊(duì)開發(fā)的對于Bitcoin Core的擬議更新,將非必要簽名信息移除區(qū)塊,使得區(qū)塊容量降低一半。但即使這樣,性能只提升一倍,提升幅度有限。
3.更改共識機(jī)制
在POW共識之后,提出了PoS、DPoS等多種共識算法。相比POW,PoS和DPoS機(jī)制沒有大量能源的消耗,性能也得到了顯著提升,但這是犧牲了去中心化為代價的,現(xiàn)階段還未出現(xiàn)完美解決三元悖論的共識算法。
4.DAG技術(shù)
稱為:有向無環(huán)圖,將原始的鏈?zhǔn)浇Y(jié)構(gòu)改為網(wǎng)狀結(jié)構(gòu),大幅提升并發(fā)性能。像IOTA就是采用DAG技術(shù),并非區(qū)塊鏈,也引起了一波熱炒,不過現(xiàn)在也還沒有實(shí)地的技術(shù)落地應(yīng)用出來。安全性和一致性上還未得到充分的驗(yàn)證。
5.分片技術(shù)
分片技術(shù)將全網(wǎng)的工作量分配到各個分片中并行處理,改變網(wǎng)絡(luò)驗(yàn)證的方式來增加吞吐量。不過分片技術(shù)的開發(fā)難度大,狀態(tài)分片需要克服諸多挑戰(zhàn)。
鏈下擴(kuò)容
1.狀態(tài)通道
狀態(tài)通道是通過在不同用戶之間或用戶和服務(wù)之間建立一個雙向通道,為不同實(shí)體之間提供狀態(tài)維護(hù)服務(wù)。它允許把區(qū)塊鏈上的許多操作在鏈外進(jìn)行管理,等完成鏈外操作后多方簽名確認(rèn)后,才將最終結(jié)果上鏈。
我們用銀行和余額寶的例子來講解一下狀態(tài)通道,首先我們把銀行比作區(qū)塊鏈,我們把部分的錢從銀行存到余額寶中,用余額寶進(jìn)行小額交易,當(dāng)我們想提現(xiàn)時,直接從余額寶提現(xiàn)至銀行卡即可。狀態(tài)通道對應(yīng)余額寶,當(dāng)有一方要關(guān)閉狀態(tài)通道時,相當(dāng)于提現(xiàn)操作,余額寶中保存了當(dāng)前賬戶的狀態(tài),關(guān)閉狀態(tài)通道時將狀態(tài)更新至鏈上,相當(dāng)于更新銀行賬戶狀態(tài)。
2.側(cè)鏈
側(cè)鏈技術(shù)是一種分開獨(dú)立的區(qū)塊鏈,其會使用一個雙向錨定來依附于主鏈。你可以將資產(chǎn)移動到側(cè)鏈上,也可以轉(zhuǎn)移回主鏈。這種雙向錨定可以在主鏈和側(cè)鏈之間按照預(yù)先設(shè)定的速率進(jìn)行資產(chǎn)的內(nèi)部交換。初始的區(qū)塊鏈通常代表著主鏈,而且所有新增的區(qū)塊鏈都被定義為側(cè)鏈。
3.跨鏈
跨鏈就是信息從一條鏈到另外一條鏈,區(qū)塊鏈之間互通性極大程度的限制了區(qū)塊鏈的應(yīng)用空間。不論對于公有鏈還是私有鏈來看,跨鏈技術(shù)就是實(shí)現(xiàn)價值互聯(lián)網(wǎng)的關(guān)鍵,它是把區(qū)塊鏈從分散的孤島中拯救出來的良藥,是區(qū)塊鏈向外拓展和連接的橋梁。
4.鏈下計(jì)算
就是將復(fù)雜的任務(wù)放到鏈下處理,再將結(jié)果返回鏈上。以太坊聲稱要做計(jì)算機(jī),EOS 要做全球操作系統(tǒng),但無論是做計(jì)算機(jī)還是做操作系統(tǒng)都得正視計(jì)算這個問題,鏈上計(jì)算的開銷是非常大的,鏈上每一個 EVM 的 Code 計(jì)算需要全球計(jì)算機(jī)都算一遍,才能得出結(jié)果,所以有人做了這么一個計(jì)算的擴(kuò)展,在鏈外做計(jì)算。