如何定義區(qū)塊鏈的可擴(kuò)展性?
區(qū)塊鏈可擴(kuò)展性一直是個(gè)熱門話題。幾乎所有的區(qū)塊鏈網(wǎng)絡(luò)都將每秒交易量(TPS)作為賣點(diǎn)。然而,TPS 并不是比較區(qū)塊鏈網(wǎng)絡(luò)的有效指標(biāo),這也使得評(píng)估它們的相對(duì)性能成為挑戰(zhàn)。此外,高 TPS 通常要付出代價(jià)。這就出現(xiàn)了一個(gè)問(wèn)題:這些網(wǎng)絡(luò)是否真的有那么高擴(kuò)展性,還是它們只是提高了吞吐量?
我們首先來(lái)看看如何定義可擴(kuò)展性,為實(shí)現(xiàn)可擴(kuò)展性做出了哪些取舍,以及為什么有效性證明是可擴(kuò)展性的終極解決方案。
并非所有的交易都平等
首先我們要確定,簡(jiǎn)單的 TPS 指標(biāo)并不是可擴(kuò)展性的準(zhǔn)確衡量標(biāo)準(zhǔn)。
為對(duì)節(jié)點(diǎn)執(zhí)行交易進(jìn)行補(bǔ)償(并阻止用戶用不必要的計(jì)算來(lái)擾亂網(wǎng)絡(luò)),區(qū)塊鏈會(huì)按照鏈上計(jì)算收取一定比例費(fèi)用。在以太坊?上,計(jì)算負(fù)擔(dān)的復(fù)雜性以 gas 來(lái)衡量。由于用 gas 衡量交易復(fù)雜性非常方便,因此該術(shù)語(yǔ)將在本文中也應(yīng)用于非以太坊區(qū)塊鏈,盡管它通常是以太坊專有的。
交易在復(fù)雜性上存在顯著差異,那對(duì)應(yīng)的 Gas? 也是如此。比特幣?是無(wú)需信任的點(diǎn)對(duì)點(diǎn)交易的先驅(qū),只支持基本的比特幣腳本。這種地址對(duì)地址的簡(jiǎn)單轉(zhuǎn)移消耗的 gas 很少。相比之下,以太坊或 Solana? 等智能合約?鏈,支持虛擬機(jī)?和圖靈完備的編程語(yǔ)言,允許進(jìn)行更復(fù)雜的交易。因此,像 Uniswap 這樣的 DApp 需要更多的 Gas。
這就是為什么比較不同區(qū)塊鏈之間的 TPS 沒(méi)有意義。相反,我們應(yīng)該比較的是計(jì)算能力,或者是吞吐量。
所有區(qū)塊鏈都有一個(gè)(可變的)區(qū)塊大小和區(qū)塊時(shí)間,它們決定了每個(gè)區(qū)塊可以處理多少個(gè)「計(jì)算單元」以及新出塊的速度。這兩個(gè)變量共同決定了區(qū)塊鏈的「吞吐量」。
什么限制了可擴(kuò)展性?
區(qū)塊鏈的終極目標(biāo)是實(shí)現(xiàn)去中心化、包容性最大化的網(wǎng)絡(luò)。要實(shí)現(xiàn)這個(gè)目標(biāo),有兩個(gè)特性必須得關(guān)注。
硬件要求
區(qū)塊鏈網(wǎng)絡(luò)的去中心化是由網(wǎng)絡(luò)中最弱的節(jié)點(diǎn)驗(yàn)證驗(yàn)證區(qū)塊鏈以及其保持狀態(tài)的能力所決定。因此,運(yùn)行一個(gè)節(jié)點(diǎn)的成本(硬件、帶寬和存儲(chǔ))應(yīng)盡可能低,以讓更多的個(gè)體成為無(wú)需信任網(wǎng)絡(luò)中的無(wú)需許可參與者。
狀態(tài)增長(zhǎng)
狀態(tài)增長(zhǎng)指的是區(qū)塊鏈增長(zhǎng)的速度。一條區(qū)塊鏈在單位時(shí)間內(nèi)的吞吐量越大,區(qū)塊增長(zhǎng)速度就越快。全節(jié)點(diǎn)存儲(chǔ)網(wǎng)絡(luò)歷史,它們必須能夠驗(yàn)證網(wǎng)絡(luò)的狀態(tài)。通過(guò)使用樹狀等高效結(jié)構(gòu),以太坊的網(wǎng)絡(luò)狀態(tài)得以儲(chǔ)存和引用。隨著狀態(tài)增長(zhǎng),新的葉子和分支添加到其中,使得執(zhí)行某些行動(dòng)變得越來(lái)越復(fù)雜和耗時(shí)。隨著鏈的增長(zhǎng),節(jié)點(diǎn)執(zhí)行最差情況也會(huì)惡化,從而導(dǎo)致驗(yàn)證新區(qū)塊的時(shí)間不斷增長(zhǎng)。隨著時(shí)間推移,這也增加了同步一個(gè)全節(jié)點(diǎn)的總時(shí)長(zhǎng)。
增加吞吐量的不利影響節(jié)點(diǎn)數(shù)
運(yùn)行一個(gè)節(jié)點(diǎn)的最低要求以及節(jié)點(diǎn)數(shù)量是:
- 比特幣:350GB 硬盤空間,5M/s 帶寬,1GB 內(nèi)存,CPU 大于 1Ghz。節(jié)點(diǎn)數(shù)量約 1 萬(wàn)
- 以太坊:500GB 以上的 SSD 硬盤空間,25 M/s 帶寬,4 至 8GB 內(nèi)存,CPU 2-4 核。節(jié)點(diǎn)數(shù)量約 6 千
- Solana:1.5TB 以上的 SSD 硬盤空間,300M/s 帶寬,128GB 內(nèi)存,CPU 12 核以上。節(jié)點(diǎn)數(shù)量約 1.2 千
請(qǐng)注意,區(qū)塊鏈的吞吐量對(duì)節(jié)點(diǎn)的 CPU、帶寬和存儲(chǔ)要求越高,網(wǎng)絡(luò)上的節(jié)點(diǎn)數(shù)量就越少,導(dǎo)致去中心化程度越弱,網(wǎng)絡(luò)的包容性越差。
同步全節(jié)點(diǎn)的時(shí)間
當(dāng)?shù)谝淮芜\(yùn)行節(jié)點(diǎn)時(shí),需要與現(xiàn)有的所有節(jié)點(diǎn)進(jìn)行同步,下載并驗(yàn)證從創(chuàng)世區(qū)塊到鏈頂端的網(wǎng)絡(luò)狀態(tài)。這個(gè)過(guò)程應(yīng)盡可能快且有效,以允許任何人都可以成為無(wú)需許可的協(xié)議參與者。
以 Jameson Lopp 的 2020 年比特幣節(jié)點(diǎn)?和 2021 年節(jié)點(diǎn)同步測(cè)試為指標(biāo),下表比較了在普通消費(fèi)級(jí) PC 上同步一個(gè)比特幣與以太坊與 Solana 的完整節(jié)點(diǎn)所需的時(shí)間。
上表顯示,增加吞吐量會(huì)導(dǎo)致更長(zhǎng)的同步時(shí)間,因?yàn)樵絹?lái)越多的??數(shù)據(jù)??需要處理和存儲(chǔ)。
盡管節(jié)點(diǎn)軟件在不斷地優(yōu)化(降低磁盤占用空間,加快節(jié)點(diǎn)速度,增強(qiáng)崩潰恢復(fù)能力,組件??模塊化??等等),以應(yīng)對(duì)區(qū)塊鏈持續(xù)增長(zhǎng)帶來(lái)的挑戰(zhàn),但節(jié)點(diǎn)顯然仍然無(wú)法跟上吞吐量增加的步伐。
應(yīng)該如何定義可擴(kuò)展性?
可擴(kuò)展性是區(qū)塊鏈領(lǐng)域中誤解最多的術(shù)語(yǔ)。雖然提升吞吐量是可取的,但它也只是難題的一部分。
可擴(kuò)展性意味著在相同的硬件上有更多的交易。
所以,可擴(kuò)展性可分為兩類。
?排序可擴(kuò)展性
排序是網(wǎng)絡(luò)中交易的排序和處理行為。如前所述,任何區(qū)塊鏈都可以通過(guò)提高區(qū)塊大小和縮短區(qū)塊時(shí)間來(lái)微弱地增加其吞吐量,直至對(duì)其去中心化的負(fù)面影響顯著到無(wú)法忽視為止。但是,調(diào)整這些簡(jiǎn)單的參數(shù)并不能達(dá)到所需的提升。以太坊 EVM? 理論上可以處理高達(dá)約 2 千 TPS?,但這不足以滿足長(zhǎng)期區(qū)塊空間需求。為擴(kuò)展排序,Solana 做出了創(chuàng)新:利用可并行的執(zhí)行環(huán)境和一個(gè)巧妙的共識(shí)機(jī)制,讓吞吐量的效率大大提高。但是,盡管有這些改進(jìn),它既不充分,也不具備可擴(kuò)展性。隨著吞吐量的增加,Solana 運(yùn)行節(jié)點(diǎn)和處理交易的硬件成本也在增加。
驗(yàn)證可擴(kuò)展性
驗(yàn)證可擴(kuò)展性是在不增加硬件成本加重節(jié)點(diǎn)負(fù)擔(dān)的情況下增加吞吐量的方法。具體來(lái)說(shuō),指的是像有效性證明這樣的密碼學(xué)創(chuàng)新,讓區(qū)塊鏈得以可持續(xù)地?cái)U(kuò)展。
什么是有效性證明 Rollup
有效性證明 Rollup(也稱為 ZK-Rollup)將計(jì)算和狀態(tài)存儲(chǔ)轉(zhuǎn)移到鏈下,鏈上只保留少量的特定數(shù)據(jù)。底層區(qū)塊鏈上的一個(gè)智能合約維護(hù) Rollup 的狀態(tài)根。在 Rollup 上,一批高度壓縮的交易,連同當(dāng)前的狀態(tài)根,發(fā)送到一個(gè)鏈下的證明器。證明器計(jì)算交易、生成結(jié)果和新?tīng)顟B(tài)根的有效性證明,并將其發(fā)送給鏈上的驗(yàn)證器。驗(yàn)證器驗(yàn)證有效性證明,存儲(chǔ) Rollup 狀態(tài)的智能合約將其更新為證明器提供的新?tīng)顟B(tài)。
有效性證明 Rollup 如何在相同的硬件要求下進(jìn)行擴(kuò)展?
證明器對(duì)硬件要求確實(shí)高,但它們不會(huì)影響區(qū)塊鏈的去中心化,因?yàn)榻灰椎挠行允怯蓴?shù)學(xué)上可驗(yàn)證的證明來(lái)保證的。
重要的是驗(yàn)證證明的要求。由于所涉及到的數(shù)據(jù)被高度壓縮,并很大程度上通過(guò)計(jì)算被抽象化,它對(duì)底層區(qū)塊鏈節(jié)點(diǎn)的影響是最小的。
驗(yàn)證器(以太坊節(jié)點(diǎn))不需要高端硬件,批次的大小也不會(huì)增加硬件要求。只有狀態(tài)轉(zhuǎn)換和少量的調(diào)用數(shù)據(jù)需要由節(jié)點(diǎn)處理和存儲(chǔ)。這允許所有以太坊節(jié)點(diǎn)用現(xiàn)有的硬件可以來(lái)驗(yàn)證有效性 Rollup 的批量交易。
交易越多越便宜
在傳統(tǒng)區(qū)塊鏈中,交易越多,區(qū)塊空間占用越大,也就越昂貴。這就導(dǎo)致用戶需要在手續(xù)費(fèi)市場(chǎng)上競(jìng)價(jià)來(lái)優(yōu)先打包交易。
而對(duì)有效性證明 Rollup 來(lái)說(shuō),這種動(dòng)態(tài)是相反的。在以太坊上驗(yàn)證一批交易有一定成本。隨著一批交易內(nèi)交易數(shù)量的增加,驗(yàn)證該批交易的成本增加速度會(huì)以指數(shù)級(jí)降低。有效性證明中,一個(gè)批次里交易數(shù)量增多,盡管批量交易驗(yàn)證費(fèi)用增加,但單筆交易費(fèi)用反而更便宜,因?yàn)榭偨灰壮杀居赏慌蝺?nèi)所有交易均攤。有效性證明希望一個(gè)批次內(nèi)有盡可能多的交易,這樣驗(yàn)證費(fèi)用就可以由批次內(nèi)所有用戶平攤。當(dāng)批次規(guī)模增長(zhǎng)到無(wú)限大時(shí),每筆交易的平攤費(fèi)用就會(huì)接近于零,也就是說(shuō),有效性證明的交易越多,對(duì)每個(gè)用戶來(lái)說(shuō)就越便宜。
dYdX,一個(gè)由有效性證明驅(qū)動(dòng)的 DApp,經(jīng)常有超過(guò) 1.2 萬(wàn)交易的批次規(guī)模。對(duì)比在以太坊主網(wǎng)和在有效性證明上,同樣的交易的 Gas 消耗,可以說(shuō)明可擴(kuò)展性的提升:
在以太坊主網(wǎng)上結(jié)算一筆 dYdX 交易:200,000 Gas
在 StarkEx 上結(jié)算一筆 dYdX 交易:低于 500 Gas
從另一個(gè)方面來(lái)看,有效性證明 Rollup 的主要成本與同一批次的用戶數(shù)量成線性比例。
為什么 Optimistic Rollup 不像大家想的那樣可擴(kuò)展
從理論上來(lái)講,Optimistic Rollup 提供了與有效性證明幾乎相同的可擴(kuò)展性優(yōu)勢(shì)。但有一個(gè)重要的區(qū)別,Optimistic Rollup 針對(duì)平均情況進(jìn)行優(yōu)化,而有效性證明針對(duì)最壞情況進(jìn)行優(yōu)化。因?yàn)閰^(qū)塊鏈系統(tǒng)是在極端對(duì)抗的條件下運(yùn)行的,針對(duì)最壞情況進(jìn)行優(yōu)化是實(shí)現(xiàn)安全的唯一途徑。
在 Optimistic Rollup 的最壞情況下,用戶的交易不會(huì)被欺詐檢查器檢查。因此,為了質(zhì)疑欺詐,用戶必須同步一個(gè)以太坊全節(jié)點(diǎn),一個(gè) L2 全節(jié)點(diǎn),并自己計(jì)算可疑的交易。
在有效性證明 Rollup 的最壞情況下,用戶只需要同步一個(gè)以太坊全節(jié)點(diǎn)來(lái)驗(yàn)證有效性證明,這就節(jié)省了計(jì)算負(fù)擔(dān)。
與有效性證明相比,Optimistic Rollup 的成本與交易數(shù)量呈線性關(guān)系,而不是用戶數(shù)量,這也使得它的交易更昂貴。
最后的難題 — Rollup 狀態(tài)的無(wú)需許可訪問(wèn)
用戶只需運(yùn)行一個(gè)以太坊節(jié)點(diǎn)就能保證交易的有效性。然而,用戶和開發(fā)人員可能會(huì)出于各種目的想要查看、運(yùn)行 Rollup 的狀態(tài)和執(zhí)行。「索引 L2 節(jié)點(diǎn)」完美滿足了這個(gè)需求,它不僅可以讓用戶看到網(wǎng)絡(luò)中的交易,而且也是生態(tài)系統(tǒng)運(yùn)作所必需的關(guān)鍵基礎(chǔ)設(shè)施?。像 The Graph?、Alchemy? 和 Infura? 這樣的索引器,還有 Chainlink? 這樣的預(yù)言機(jī)網(wǎng)絡(luò),以及區(qū)塊瀏覽器,無(wú)需許可的索引 L2 節(jié)點(diǎn)都可以完全支持。
結(jié)論
許多解決區(qū)塊鏈可擴(kuò)展性的方案錯(cuò)誤地集中在增加吞吐量上。但是忽略了吞吐量對(duì)節(jié)點(diǎn)的影響:處理區(qū)塊和存儲(chǔ)歷史網(wǎng)絡(luò)的硬件要求不斷增加,會(huì)妨礙網(wǎng)絡(luò)的去中心化。
而有效性證明密碼學(xué)的出現(xiàn),不給節(jié)點(diǎn)不斷加重成本負(fù)擔(dān),允許廣泛的去中心化的情況下,讓區(qū)塊鏈可以實(shí)現(xiàn)真正的可擴(kuò)展性?,F(xiàn)在同樣的硬件可以進(jìn)行更多復(fù)雜且強(qiáng)大交易計(jì)算。這就逆轉(zhuǎn)了手續(xù)費(fèi)市場(chǎng)的困境 — 有效性證明上的活動(dòng)越多,就越便宜!