新聞中心
?圍繞性能和可擴(kuò)展性的討論,是整個(gè)加密世界最經(jīng)久不衰的辯題。

關(guān)于一層和二層解決方案優(yōu)劣以及有效性的爭(zhēng)論一直在進(jìn)行,不過(guò)由于缺乏標(biāo)準(zhǔn)化的指標(biāo)和考核標(biāo)準(zhǔn),爭(zhēng)論中各方拿出的數(shù)據(jù)往往缺乏一致性,無(wú)疑進(jìn)一步加劇了觀點(diǎn)的分歧。
簡(jiǎn)單來(lái)說(shuō),我們需要一種更加細(xì)致和更加徹底的方法來(lái)進(jìn)行性能的比較,比如說(shuō)我們需要把性能分為幾個(gè)維度進(jìn)行分別對(duì)比,并找到一個(gè)綜合性的權(quán)衡標(biāo)準(zhǔn)。本文中,我將從基本術(shù)語(yǔ)講起,概述目前市場(chǎng)所面臨的挑戰(zhàn),并針對(duì)評(píng)估區(qū)塊鏈性能時(shí)需要牢記的一些基本原則進(jìn)行展開。
可擴(kuò)展性 & 性能
首先,讓我們定義兩個(gè)術(shù)語(yǔ),可擴(kuò)展性和性能。這兩個(gè)詞具有標(biāo)準(zhǔn)的計(jì)算機(jī)科學(xué)含義,但卻經(jīng)常在區(qū)塊鏈環(huán)境中被濫用。性能一般用于衡量系統(tǒng)所能夠?qū)崿F(xiàn)的目標(biāo)功效,性能指標(biāo)可能包括每秒能處理的進(jìn)程數(shù)量或者特定需求下所需要的時(shí)間長(zhǎng)短。而可擴(kuò)展性則是被用于衡量系統(tǒng)通過(guò)添加一定資源來(lái)提升性能的能力如何。
為什么說(shuō)我們要先明確定義,因?yàn)閷?shí)際上許多提高性能的方法根本不會(huì)提高可擴(kuò)展性。一個(gè)簡(jiǎn)單的例子是使用更高效的數(shù)字簽名方案,例如 BLS 簽名,其大小大約是 Schnorr 或 ECDSA 簽名的一半。如果比特幣從 ECDSA 切換到 BLS,每個(gè)區(qū)塊的交易數(shù)量可能會(huì)增加 20-30%,從而在一夜之間提高性能。但是我們只能這樣做一次——沒(méi)有更節(jié)省空間的簽名方案可以切換(BLS 簽名也可以聚合以節(jié)省更多空間,但這同樣也只是另一個(gè)一次性的技巧)。
實(shí)際上,區(qū)塊鏈網(wǎng)絡(luò)中還有很多提升的技巧也是一次性的(例如 SegWit),但對(duì)于我們來(lái)說(shuō),真正需要的是一個(gè)可擴(kuò)展的架構(gòu)來(lái)實(shí)現(xiàn)持續(xù)的性能改進(jìn),只有這樣我們才能通過(guò)持續(xù)添加資源來(lái)持續(xù)提升性能。實(shí)際上在 Web2 時(shí)代,這已經(jīng)是一種通用的手段了,以搭建服務(wù)器為例,雖然我們可以直接搭建一個(gè)足夠快的服務(wù)器,但最終一般都需要升級(jí)成為多服務(wù)器架構(gòu),其間就需要通過(guò)不斷添加新的服務(wù)器來(lái)滿足不斷增長(zhǎng)的數(shù)據(jù)存儲(chǔ) / 處理需求。
理解這種區(qū)別后還有助于避免在諸如「某區(qū)塊鏈具有高度可擴(kuò)展性,它每秒可以處理多少筆交易!」之類的陳述中出現(xiàn)常識(shí)性錯(cuò)誤。雖然這種話術(shù)可能很具有煽動(dòng)性,但事實(shí)上處理多少筆交易是性能指標(biāo)而不是可擴(kuò)展性指標(biāo)。
可擴(kuò)展性本質(zhì)上需要利用并行性。在區(qū)塊鏈領(lǐng)域,一層擴(kuò)展往往需要分片或看起來(lái)像分片的東西。分片的基本概念其實(shí)就是將狀態(tài)分成幾塊,以便讓不同的驗(yàn)證者可以獨(dú)立處理其中一部分,而這與可擴(kuò)展性的定義非常吻合。當(dāng)然,二層還有更多選項(xiàng)允許添加并行處理,包括鏈下通道、Rollup 和側(cè)鏈等等。
延遲與吞吐量
過(guò)去我們往往習(xí)慣用延遲和吞吐量?jī)蓚€(gè)維度評(píng)估區(qū)塊鏈的性能:延遲可用于衡量單筆交易可以多快得到確認(rèn),而吞吐量則用于衡量特定時(shí)間內(nèi)可以確認(rèn)的交易總量。這種衡量方式既適用于一層和二層網(wǎng)絡(luò),甚至在區(qū)塊鏈以外的其他類型計(jì)算機(jī)系統(tǒng)中也完全適用。
不幸的是,延遲和吞吐量這兩個(gè)緯度實(shí)際上都很難測(cè)量和比較。而且另一個(gè)很重要點(diǎn)在于,個(gè)人用戶實(shí)際上并不關(guān)心吞吐量,他們真正關(guān)心的只有延遲和交易費(fèi)用。交易費(fèi)用是區(qū)塊鏈系統(tǒng)中的一個(gè)重要維度,而這個(gè)在傳統(tǒng)計(jì)算機(jī)領(lǐng)域中并不存在。
測(cè)量延遲的挑戰(zhàn)
延遲的測(cè)量看起來(lái)似乎很簡(jiǎn)單:交易需要多長(zhǎng)時(shí)間才能得到確認(rèn)?但實(shí)際操作中問(wèn)題才會(huì)顯現(xiàn)出來(lái)。首先,我們?cè)诓煌瑫r(shí)間點(diǎn)測(cè)量的延遲往往是不一樣的,我們究竟是從用戶本地點(diǎn)擊提交按鈕開始計(jì)算?還是在任務(wù)到達(dá)內(nèi)存池的那一刻開始計(jì)算?還有就是當(dāng)區(qū)塊確認(rèn)時(shí),我們是否要立即停止計(jì)時(shí)?不同的操作細(xì)節(jié)都會(huì)帶來(lái)不同的結(jié)果。
最常見的方法是從驗(yàn)證者的角度來(lái)衡量,從客戶首次廣播交易到交易被合理確認(rèn)的時(shí)間(從某種意義上說(shuō),現(xiàn)實(shí)世界的商家會(huì)考慮收到付款并發(fā)出商品)。當(dāng)然,不同的商戶可能采用不同的接受標(biāo)準(zhǔn),甚至單個(gè)商戶也可能根據(jù)交易金額的大小而采用不同的標(biāo)準(zhǔn)。
以驗(yàn)證者為中心的方法忽略了一些在實(shí)踐中很重要的事情。首先,它忽略了點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)上的延遲(從客戶端廣播交易到大多數(shù)節(jié)點(diǎn)聽到它需要多長(zhǎng)時(shí)間?)和客戶端延遲(準(zhǔn)備交易需要多長(zhǎng)時(shí)間?在客戶端的本地機(jī)器上需要加載多久?)。對(duì)于簽署以太坊支付等簡(jiǎn)單交易,客戶端延遲可能非常小且可預(yù)測(cè),但對(duì)于更復(fù)雜的情況(例如證明隱私交易是正確的)就不同了。
即使我們標(biāo)準(zhǔn)化了測(cè)量延遲的時(shí)間窗口,最終的答案也依舊是視情況而定的。從來(lái)沒(méi)有一個(gè)加密貨幣系統(tǒng)能保證恒定的交易延遲。要記住的基本經(jīng)驗(yàn)法則其實(shí)是:延遲是一個(gè)分布,而不是一個(gè)數(shù)字。
網(wǎng)絡(luò)研究社區(qū)早就意識(shí)到了這一點(diǎn),并指出長(zhǎng)尾至關(guān)重要,即使是 0.1% 的進(jìn)程出現(xiàn)延遲也會(huì)嚴(yán)重影響最終的用戶體驗(yàn)。
對(duì)于區(qū)塊鏈來(lái)說(shuō),確認(rèn)延遲可能會(huì)因多種原因而有所不同:
批處理:大多數(shù)系統(tǒng)以某種方式批處理事務(wù),這會(huì)導(dǎo)致產(chǎn)生可變延遲,因?yàn)槟承┦聞?wù)必須等到批處理隊(duì)列被填滿后才會(huì)被處理。網(wǎng)絡(luò)參與者可能會(huì)很幸運(yùn)地乘上該批次的末班車。這些交易會(huì)立即得到確認(rèn),不會(huì)出現(xiàn)任何額外的延遲,但那些提前進(jìn)入隊(duì)列的人們就必須要花費(fèi)更長(zhǎng)的時(shí)間去等待確認(rèn)。
不確定的擁堵:大多數(shù)系統(tǒng)都經(jīng)歷過(guò)擁堵的狀況,這意味著發(fā)布的交易超過(guò)了系統(tǒng)可以立即處理的數(shù)量。當(dāng)交易在不可預(yù)測(cè)的時(shí)間(通常抽象為泊松過(guò)程)廣播時(shí),或者當(dāng)新交易的速率在一天或一周內(nèi)發(fā)生變化時(shí),或者響應(yīng)外部事件時(shí),擁堵程度可能會(huì)有所不同。
共識(shí)層差異:在一層確認(rèn)交易通常需要一組分布式節(jié)點(diǎn)才能就區(qū)塊達(dá)成共識(shí),這可能會(huì)增加可變延遲,而不受擁堵的影響。工作量證明系統(tǒng)在不可預(yù)測(cè)的時(shí)間發(fā)現(xiàn)塊。權(quán)益證明系統(tǒng)還可能增加各種延遲。
由于這些原因,一個(gè)好的指導(dǎo)方針是:關(guān)于延遲的聲明應(yīng)該以確認(rèn)時(shí)間的分布呈現(xiàn),而不是像平均值或中位數(shù)這樣的單個(gè)數(shù)字。
雖然平均值、中位數(shù)或百分位數(shù)等匯總統(tǒng)計(jì)數(shù)據(jù)也能表明部分規(guī)律,但準(zhǔn)確評(píng)估系統(tǒng)需要考慮整個(gè)分布。在某些應(yīng)用程序中,如果延遲分布相對(duì)簡(jiǎn)單,平均延遲可以提供很好的洞察力。但在加密貨幣中這種理想狀況并不多見:通常情況下,確認(rèn)時(shí)間會(huì)很長(zhǎng)。
支付渠道網(wǎng)絡(luò)(例如閃電網(wǎng)絡(luò))就是一個(gè)很好的例子。作為經(jīng)典的 L2 擴(kuò)展解決方案,這些網(wǎng)絡(luò)在大多數(shù)情況下都提供非??焖俚闹Ц洞_認(rèn)服務(wù),但有時(shí)它們需要通道重置,而這就可能會(huì)導(dǎo)致延遲提升幾個(gè)數(shù)量級(jí)。
即使我們對(duì)確切的延遲分布有很好的統(tǒng)計(jì)數(shù)據(jù),它們也可能會(huì)隨著系統(tǒng)和系統(tǒng)需求的變化而隨時(shí)間變化,如何比較競(jìng)爭(zhēng)系統(tǒng)之間的延遲分布也非常模糊。例如,考慮一個(gè)系統(tǒng),它確認(rèn)事務(wù)的均勻分布延遲在 1 到 2 分鐘之間(平均和中位數(shù)為 90 秒)。如果一個(gè)競(jìng)爭(zhēng)系統(tǒng)在 1 分鐘內(nèi)準(zhǔn)確地確認(rèn)了 95% 的交易,而在 11 分鐘內(nèi)確認(rèn)了另外 5%(平均 90 秒,中位數(shù)為 60 秒),那么哪個(gè)系統(tǒng)更好?答案是不同類別的應(yīng)用可能選擇并不一致。
最后,需要注意的是,在大多數(shù)系統(tǒng)中,并非所有事務(wù)的優(yōu)先級(jí)都相同。用戶可以支付更多費(fèi)用來(lái)獲得更高的包含優(yōu)先級(jí),因此除了上述所有內(nèi)容之外,延遲還取決于支付的交易費(fèi)用??傊貉舆t很復(fù)雜。前提條件中的細(xì)節(jié)越多越好。理想情況下,應(yīng)在不同的擁堵條件下測(cè)量完整的延遲分布。將延遲分解為不同的組件(本地、網(wǎng)絡(luò)、批處理、共識(shí)延遲)也很有幫助。
測(cè)量吞吐量的挑戰(zhàn)
吞吐量乍一看似乎也很簡(jiǎn)單:一個(gè)系統(tǒng)每秒可以處理多少事務(wù)?但事實(shí)上問(wèn)題同樣被隱藏在水面之下。難點(diǎn)主要體現(xiàn)在兩個(gè)方面,第一是究竟什么算交易,我們是在衡量一個(gè)系統(tǒng)今天做了些什么?還是要去衡量他能做到些什么?
雖然每秒交易筆數(shù)(或 TPS)是衡量區(qū)塊鏈性能的通用標(biāo)準(zhǔn),但交易作為衡量單位是有問(wèn)題的。對(duì)于提供通用可編程性(智能合約)甚至比特幣的多重交易或多重簽名驗(yàn)證選項(xiàng)等限定功能的系統(tǒng),一個(gè)最基本的問(wèn)題是:并非所有交易都是平等的。
在以太坊網(wǎng)絡(luò)中,交易可以包含任意代碼以及任意狀態(tài)。以太坊中的 Gas 概念用于量化(并收取費(fèi)用)交易正在執(zhí)行的總工作量,但這是高度限定于 EVM 執(zhí)行環(huán)境的。沒(méi)有簡(jiǎn)單的方法可以將一組 EVM 事務(wù)完成的工作總量與使用 BPF 環(huán)境的一組 Solana 事務(wù)進(jìn)行直接比較。將其中任何一個(gè)與一組比特幣交易進(jìn)行直接比較也并不合理。
將交易層分為共識(shí)層和執(zhí)行層的區(qū)塊鏈可以使這一點(diǎn)更加清晰。在(純)共識(shí)層,吞吐量可以以每單位時(shí)間添加到鏈中的字節(jié)數(shù)來(lái)衡量。而執(zhí)行層會(huì)復(fù)雜很多。
更簡(jiǎn)單的執(zhí)行層,例如只支持支付交易的 rollup 服務(wù)器,避免了量化計(jì)算的困難。但是,即使在這種情況下,支付的輸入和輸出數(shù)量也會(huì)有所不同。支付渠道交易所需的可變參數(shù)數(shù)量可能會(huì)有所不同,這會(huì)影響吞吐量。rollup 服務(wù)器的吞吐量可能取決于一批事務(wù)可以在多大程度上「歸結(jié)」為一組較小的數(shù)據(jù)包。
吞吐量的另一個(gè)挑戰(zhàn)是超越憑經(jīng)驗(yàn)測(cè)量當(dāng)今的性能來(lái)評(píng)估理論容量。這引入了各種建模問(wèn)題來(lái)評(píng)估潛在容量。首先,我們必須確定執(zhí)行層的實(shí)際事務(wù)工作負(fù)載。其次,真實(shí)系統(tǒng)幾乎從未達(dá)到理論容量,尤其是區(qū)塊鏈系統(tǒng)。出于穩(wěn)健性的原因,我們希望節(jié)點(diǎn)實(shí)現(xiàn)在實(shí)踐中是異構(gòu)的和多樣化的(而不是所有客戶端都運(yùn)行一個(gè)軟件實(shí)現(xiàn))。這使得區(qū)塊鏈吞吐量的準(zhǔn)確模擬更加難以進(jìn)行。
總的來(lái)說(shuō),權(quán)衡吞吐量需要仔細(xì)解釋交易工作量和驗(yàn)證者的數(shù)量。在沒(méi)有任何明確標(biāo)準(zhǔn)的情況下,只能以以太坊這種比較流行的網(wǎng)絡(luò)歷史負(fù)載作為標(biāo)準(zhǔn)來(lái)對(duì)比計(jì)量。
延遲與吞吐量二者的綜合考量
延遲和吞吐量各自統(tǒng)計(jì)過(guò)后,我們還需要在二者之間進(jìn)行綜合權(quán)衡。正如 Lefteris Kokoris-Kogias 所述,這種權(quán)衡通常并不順利,當(dāng)系統(tǒng)負(fù)載接近其最大吞吐量時(shí),延遲會(huì)急劇上升。
ZK Rollup 系統(tǒng)提供了吞吐量 / 延遲權(quán)衡的自然示例。大批量交易增加了證明時(shí)間,從而增加了延遲。但是,在證明大小和驗(yàn)證成本方面,鏈上算力將像更大規(guī)模的交易簇傾斜,從而提高吞吐量。
交易費(fèi)用
可以理解的是,最終用戶更關(guān)心延遲和費(fèi)用之間的權(quán)衡,而不是延遲和吞吐量。用戶根本沒(méi)必要關(guān)心吞吐量,他們只希望可以以盡可能低的費(fèi)用快速確認(rèn)交易(一些用戶更關(guān)心費(fèi)用,而其他用戶更關(guān)心延遲)??傮w而言,費(fèi)用受多種因素影響:
- 有多大的市場(chǎng)需求?
- 系統(tǒng)可實(shí)現(xiàn)的總吞吐量是多少?
- 該系統(tǒng)為驗(yàn)證者或礦工提供了多少收入?
- 這筆收入中有多少是基于交易費(fèi)用與通貨膨脹獎(jiǎng)勵(lì)?
簡(jiǎn)單來(lái)說(shuō),在其他條件相同的情況下,更高的吞吐量應(yīng)該會(huì)導(dǎo)致更低的費(fèi)用。不過(guò)上面提到的第 3 點(diǎn)和第 4 點(diǎn)是區(qū)塊鏈系統(tǒng)設(shè)計(jì)的基本問(wèn)題。盡管對(duì)區(qū)塊鏈共識(shí)協(xié)議進(jìn)行了許多經(jīng)濟(jì)分析,但對(duì)于驗(yàn)證者需要多少收入,我們?nèi)匀粵](méi)有達(dá)成一個(gè)共識(shí)性的模型。今天大多數(shù)系統(tǒng)都建立在有根據(jù)的猜測(cè)之上,即提供多少收入足以讓驗(yàn)證者誠(chéng)實(shí)行事的同時(shí)還不會(huì)影響網(wǎng)絡(luò)對(duì)于用戶的吸引力。在簡(jiǎn)化的模型中,讓發(fā)起 51% 攻擊的成本與驗(yàn)證者的獎(jiǎng)勵(lì)成正比即可。
提高攻擊成本是一件好事,但我們也不知道多少安全性「夠用」。想象一下,您正在考慮去兩個(gè)游樂(lè)園。其中一個(gè)聲稱在乘車維護(hù)上的花費(fèi)比另一個(gè)少 50%。去這個(gè)公園是個(gè)好主意嗎?可能是它們效率更高,并且能以更少的錢獲得同等的安全性。也許另一個(gè)人的花費(fèi)超過(guò)了保持游樂(lè)設(shè)施安全所需的費(fèi)用,而沒(méi)有任何好處。但也可能是第一個(gè)公園很危險(xiǎn)。區(qū)塊鏈系統(tǒng)是類似的。一旦考慮到吞吐量,費(fèi)用較低的區(qū)塊鏈費(fèi)用較低,因?yàn)樗鼈儶?jiǎng)勵(lì)較少。我們今天沒(méi)有好的工具來(lái)評(píng)估這是否可行,或者它是否會(huì)使系統(tǒng)容易受到攻擊??偟膩?lái)說(shuō):比較系統(tǒng)之間的費(fèi)用可能會(huì)造成一定程度的誤導(dǎo)。盡管交易費(fèi)用對(duì)用戶來(lái)說(shuō)很重要,但除了系統(tǒng)設(shè)計(jì)本身之外,它們還受到許多因素的影響。吞吐量是分析整個(gè)系統(tǒng)的更好指標(biāo)。
結(jié)論
公平而準(zhǔn)確地評(píng)估性能是很困難的。衡量區(qū)塊鏈和衡量一款車值不值得買一樣復(fù)雜,不同的人會(huì)關(guān)心不同的事情,對(duì)于汽車來(lái)說(shuō),一些用戶會(huì)關(guān)心極限速度或百公里加速成績(jī),有一些人關(guān)心油耗,還有一些人則只關(guān)心這輛車能裝多少貨。正因如此,美國(guó)環(huán)境保護(hù)署甚至直接出臺(tái)了一個(gè)汽車評(píng)定準(zhǔn)則的指導(dǎo)方針。
而區(qū)塊鏈領(lǐng)域中,我們還遠(yuǎn)沒(méi)有來(lái)到可以出臺(tái)一個(gè)標(biāo)準(zhǔn)化準(zhǔn)則的時(shí)刻,某些時(shí)候我們可能會(huì)找到一個(gè)標(biāo)準(zhǔn)的工作負(fù)載并以此繪制區(qū)塊鏈網(wǎng)絡(luò)吞吐量和延遲分布的「標(biāo)準(zhǔn)圖表」,但現(xiàn)如今對(duì)于研究者和建設(shè)者來(lái)說(shuō),最好的方法只有去收集盡可能多的數(shù)據(jù),并在發(fā)表觀點(diǎn)前盡可能詳盡地描繪出測(cè)試環(huán)境,因?yàn)橹挥羞@樣我們才能得到一個(gè)相對(duì)客觀的對(duì)比結(jié)果。?
本文標(biāo)題:如何客觀評(píng)估區(qū)塊鏈性能?
本文來(lái)源:http://www.dlmjj.cn/article/dpceihj.html


咨詢
建站咨詢
