自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何客觀評估區(qū)塊鏈性能?

區(qū)塊鏈
圍繞性能和可擴(kuò)展性的討論,是整個加密世界最經(jīng)久不衰的辯題。

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

關(guān)于一層和二層解決方案優(yōu)劣以及有效性的爭論一直在進(jìn)行,不過由于缺乏標(biāo)準(zhǔn)化的指標(biāo)和考核標(biāo)準(zhǔn),爭論中各方拿出的數(shù)據(jù)往往缺乏一致性,無疑進(jìn)一步加劇了觀點的分歧。

簡單來說,我們需要一種更加細(xì)致和更加徹底的方法來進(jìn)行性能的比較,比如說我們需要把性能分為幾個維度進(jìn)行分別對比,并找到一個綜合性的權(quán)衡標(biāo)準(zhǔn)。本文中,我將從基本術(shù)語講起,概述目前市場所面臨的挑戰(zhàn),并針對評估區(qū)塊鏈性能時需要牢記的一些基本原則進(jìn)行展開。

可擴(kuò)展性 & 性能

首先,讓我們定義兩個術(shù)語,可擴(kuò)展性和性能。這兩個詞具有標(biāo)準(zhǔn)的計算機(jī)科學(xué)含義,但卻經(jīng)常在區(qū)塊鏈環(huán)境中被濫用。性能一般用于衡量系統(tǒng)所能夠?qū)崿F(xiàn)的目標(biāo)功效,性能指標(biāo)可能包括每秒能處理的進(jìn)程數(shù)量或者特定需求下所需要的時間長短。而可擴(kuò)展性則是被用于衡量系統(tǒng)通過添加一定資源來提升性能的能力如何。

為什么說我們要先明確定義,因為實際上許多提高性能的方法根本不會提高可擴(kuò)展性。一個簡單的例子是使用更高效的數(shù)字簽名方案,例如 BLS 簽名,其大小大約是 Schnorr 或 ECDSA 簽名的一半。如果比特幣從 ECDSA 切換到 BLS,每個區(qū)塊的交易數(shù)量可能會增加 20-30%,從而在一夜之間提高性能。但是我們只能這樣做一次——沒有更節(jié)省空間的簽名方案可以切換(BLS 簽名也可以聚合以節(jié)省更多空間,但這同樣也只是另一個一次性的技巧)。

實際上,區(qū)塊鏈網(wǎng)絡(luò)中還有很多提升的技巧也是一次性的(例如 SegWit),但對于我們來說,真正需要的是一個可擴(kuò)展的架構(gòu)來實現(xiàn)持續(xù)的性能改進(jìn),只有這樣我們才能通過持續(xù)添加資源來持續(xù)提升性能。實際上在 Web2 時代,這已經(jīng)是一種通用的手段了,以搭建服務(wù)器為例,雖然我們可以直接搭建一個足夠快的服務(wù)器,但最終一般都需要升級成為多服務(wù)器架構(gòu),其間就需要通過不斷添加新的服務(wù)器來滿足不斷增長的數(shù)據(jù)存儲 / 處理需求。

理解這種區(qū)別后還有助于避免在諸如「某區(qū)塊鏈具有高度可擴(kuò)展性,它每秒可以處理多少筆交易!」之類的陳述中出現(xiàn)常識性錯誤。雖然這種話術(shù)可能很具有煽動性,但事實上處理多少筆交易是性能指標(biāo)而不是可擴(kuò)展性指標(biāo)。

可擴(kuò)展性本質(zhì)上需要利用并行性。在區(qū)塊鏈領(lǐng)域,一層擴(kuò)展往往需要分片或看起來像分片的東西。分片的基本概念其實就是將狀態(tài)分成幾塊,以便讓不同的驗證者可以獨立處理其中一部分,而這與可擴(kuò)展性的定義非常吻合。當(dāng)然,二層還有更多選項允許添加并行處理,包括鏈下通道、Rollup 和側(cè)鏈等等。

延遲與吞吐量

過去我們往往習(xí)慣用延遲和吞吐量兩個維度評估區(qū)塊鏈的性能:延遲可用于衡量單筆交易可以多快得到確認(rèn),而吞吐量則用于衡量特定時間內(nèi)可以確認(rèn)的交易總量。這種衡量方式既適用于一層和二層網(wǎng)絡(luò),甚至在區(qū)塊鏈以外的其他類型計算機(jī)系統(tǒng)中也完全適用。

不幸的是,延遲和吞吐量這兩個緯度實際上都很難測量和比較。而且另一個很重要點在于,個人用戶實際上并不關(guān)心吞吐量,他們真正關(guān)心的只有延遲和交易費用。交易費用是區(qū)塊鏈系統(tǒng)中的一個重要維度,而這個在傳統(tǒng)計算機(jī)領(lǐng)域中并不存在。

測量延遲的挑戰(zhàn)

延遲的測量看起來似乎很簡單:交易需要多長時間才能得到確認(rèn)?但實際操作中問題才會顯現(xiàn)出來。首先,我們在不同時間點測量的延遲往往是不一樣的,我們究竟是從用戶本地點擊提交按鈕開始計算?還是在任務(wù)到達(dá)內(nèi)存池的那一刻開始計算?還有就是當(dāng)區(qū)塊確認(rèn)時,我們是否要立即停止計時?不同的操作細(xì)節(jié)都會帶來不同的結(jié)果。

最常見的方法是從驗證者的角度來衡量,從客戶首次廣播交易到交易被合理確認(rèn)的時間(從某種意義上說,現(xiàn)實世界的商家會考慮收到付款并發(fā)出商品)。當(dāng)然,不同的商戶可能采用不同的接受標(biāo)準(zhǔn),甚至單個商戶也可能根據(jù)交易金額的大小而采用不同的標(biāo)準(zhǔn)。

以驗證者為中心的方法忽略了一些在實踐中很重要的事情。首先,它忽略了點對點網(wǎng)絡(luò)上的延遲(從客戶端廣播交易到大多數(shù)節(jié)點聽到它需要多長時間?)和客戶端延遲(準(zhǔn)備交易需要多長時間?在客戶端的本地機(jī)器上需要加載多久?)。對于簽署以太坊支付等簡單交易,客戶端延遲可能非常小且可預(yù)測,但對于更復(fù)雜的情況(例如證明隱私交易是正確的)就不同了。

即使我們標(biāo)準(zhǔn)化了測量延遲的時間窗口,最終的答案也依舊是視情況而定的。從來沒有一個加密貨幣系統(tǒng)能保證恒定的交易延遲。要記住的基本經(jīng)驗法則其實是:延遲是一個分布,而不是一個數(shù)字。

網(wǎng)絡(luò)研究社區(qū)早就意識到了這一點,并指出長尾至關(guān)重要,即使是 0.1% 的進(jìn)程出現(xiàn)延遲也會嚴(yán)重影響最終的用戶體驗。

對于區(qū)塊鏈來說,確認(rèn)延遲可能會因多種原因而有所不同:

批處理:大多數(shù)系統(tǒng)以某種方式批處理事務(wù),這會導(dǎo)致產(chǎn)生可變延遲,因為某些事務(wù)必須等到批處理隊列被填滿后才會被處理。網(wǎng)絡(luò)參與者可能會很幸運(yùn)地乘上該批次的末班車。這些交易會立即得到確認(rèn),不會出現(xiàn)任何額外的延遲,但那些提前進(jìn)入隊列的人們就必須要花費更長的時間去等待確認(rèn)。

不確定的擁堵:大多數(shù)系統(tǒng)都經(jīng)歷過擁堵的狀況,這意味著發(fā)布的交易超過了系統(tǒng)可以立即處理的數(shù)量。當(dāng)交易在不可預(yù)測的時間(通常抽象為泊松過程)廣播時,或者當(dāng)新交易的速率在一天或一周內(nèi)發(fā)生變化時,或者響應(yīng)外部事件時,擁堵程度可能會有所不同。

共識層差異:在一層確認(rèn)交易通常需要一組分布式節(jié)點才能就區(qū)塊達(dá)成共識,這可能會增加可變延遲,而不受擁堵的影響。工作量證明系統(tǒng)在不可預(yù)測的時間發(fā)現(xiàn)塊。權(quán)益證明系統(tǒng)還可能增加各種延遲。

由于這些原因,一個好的指導(dǎo)方針是:關(guān)于延遲的聲明應(yīng)該以確認(rèn)時間的分布呈現(xiàn),而不是像平均值或中位數(shù)這樣的單個數(shù)字。

雖然平均值、中位數(shù)或百分位數(shù)等匯總統(tǒng)計數(shù)據(jù)也能表明部分規(guī)律,但準(zhǔn)確評估系統(tǒng)需要考慮整個分布。在某些應(yīng)用程序中,如果延遲分布相對簡單,平均延遲可以提供很好的洞察力。但在加密貨幣中這種理想狀況并不多見:通常情況下,確認(rèn)時間會很長。

支付渠道網(wǎng)絡(luò)(例如閃電網(wǎng)絡(luò))就是一個很好的例子。作為經(jīng)典的 L2 擴(kuò)展解決方案,這些網(wǎng)絡(luò)在大多數(shù)情況下都提供非??焖俚闹Ц洞_認(rèn)服務(wù),但有時它們需要通道重置,而這就可能會導(dǎo)致延遲提升幾個數(shù)量級。

即使我們對確切的延遲分布有很好的統(tǒng)計數(shù)據(jù),它們也可能會隨著系統(tǒng)和系統(tǒng)需求的變化而隨時間變化,如何比較競爭系統(tǒng)之間的延遲分布也非常模糊。例如,考慮一個系統(tǒng),它確認(rèn)事務(wù)的均勻分布延遲在 1 到 2 分鐘之間(平均和中位數(shù)為 90 秒)。如果一個競爭系統(tǒng)在 1 分鐘內(nèi)準(zhǔn)確地確認(rèn)了 95% 的交易,而在 11 分鐘內(nèi)確認(rèn)了另外 5%(平均 90 秒,中位數(shù)為 60 秒),那么哪個系統(tǒng)更好?答案是不同類別的應(yīng)用可能選擇并不一致。

最后,需要注意的是,在大多數(shù)系統(tǒng)中,并非所有事務(wù)的優(yōu)先級都相同。用戶可以支付更多費用來獲得更高的包含優(yōu)先級,因此除了上述所有內(nèi)容之外,延遲還取決于支付的交易費用??傊貉舆t很復(fù)雜。前提條件中的細(xì)節(jié)越多越好。理想情況下,應(yīng)在不同的擁堵條件下測量完整的延遲分布。將延遲分解為不同的組件(本地、網(wǎng)絡(luò)、批處理、共識延遲)也很有幫助。

測量吞吐量的挑戰(zhàn)

吞吐量乍一看似乎也很簡單:一個系統(tǒng)每秒可以處理多少事務(wù)?但事實上問題同樣被隱藏在水面之下。難點主要體現(xiàn)在兩個方面,第一是究竟什么算交易,我們是在衡量一個系統(tǒng)今天做了些什么?還是要去衡量他能做到些什么?

雖然每秒交易筆數(shù)(或 TPS)是衡量區(qū)塊鏈性能的通用標(biāo)準(zhǔn),但交易作為衡量單位是有問題的。對于提供通用可編程性(智能合約)甚至比特幣的多重交易或多重簽名驗證選項等限定功能的系統(tǒng),一個最基本的問題是:并非所有交易都是平等的。

在以太坊網(wǎng)絡(luò)中,交易可以包含任意代碼以及任意狀態(tài)。以太坊中的 Gas 概念用于量化(并收取費用)交易正在執(zhí)行的總工作量,但這是高度限定于 EVM 執(zhí)行環(huán)境的。沒有簡單的方法可以將一組 EVM 事務(wù)完成的工作總量與使用 BPF 環(huán)境的一組 Solana 事務(wù)進(jìn)行直接比較。將其中任何一個與一組比特幣交易進(jìn)行直接比較也并不合理。

將交易層分為共識層和執(zhí)行層的區(qū)塊鏈可以使這一點更加清晰。在(純)共識層,吞吐量可以以每單位時間添加到鏈中的字節(jié)數(shù)來衡量。而執(zhí)行層會復(fù)雜很多。

更簡單的執(zhí)行層,例如只支持支付交易的 rollup 服務(wù)器,避免了量化計算的困難。但是,即使在這種情況下,支付的輸入和輸出數(shù)量也會有所不同。支付渠道交易所需的可變參數(shù)數(shù)量可能會有所不同,這會影響吞吐量。rollup 服務(wù)器的吞吐量可能取決于一批事務(wù)可以在多大程度上「歸結(jié)」為一組較小的數(shù)據(jù)包。

吞吐量的另一個挑戰(zhàn)是超越憑經(jīng)驗測量當(dāng)今的性能來評估理論容量。這引入了各種建模問題來評估潛在容量。首先,我們必須確定執(zhí)行層的實際事務(wù)工作負(fù)載。其次,真實系統(tǒng)幾乎從未達(dá)到理論容量,尤其是區(qū)塊鏈系統(tǒng)。出于穩(wěn)健性的原因,我們希望節(jié)點實現(xiàn)在實踐中是異構(gòu)的和多樣化的(而不是所有客戶端都運(yùn)行一個軟件實現(xiàn))。這使得區(qū)塊鏈吞吐量的準(zhǔn)確模擬更加難以進(jìn)行。

總的來說,權(quán)衡吞吐量需要仔細(xì)解釋交易工作量和驗證者的數(shù)量。在沒有任何明確標(biāo)準(zhǔn)的情況下,只能以以太坊這種比較流行的網(wǎng)絡(luò)歷史負(fù)載作為標(biāo)準(zhǔn)來對比計量。

延遲與吞吐量二者的綜合考量

延遲和吞吐量各自統(tǒng)計過后,我們還需要在二者之間進(jìn)行綜合權(quán)衡。正如 Lefteris Kokoris-Kogias 所述,這種權(quán)衡通常并不順利,當(dāng)系統(tǒng)負(fù)載接近其最大吞吐量時,延遲會急劇上升。

ZK Rollup 系統(tǒng)提供了吞吐量 / 延遲權(quán)衡的自然示例。大批量交易增加了證明時間,從而增加了延遲。但是,在證明大小和驗證成本方面,鏈上算力將像更大規(guī)模的交易簇傾斜,從而提高吞吐量。

交易費用

可以理解的是,最終用戶更關(guān)心延遲和費用之間的權(quán)衡,而不是延遲和吞吐量。用戶根本沒必要關(guān)心吞吐量,他們只希望可以以盡可能低的費用快速確認(rèn)交易(一些用戶更關(guān)心費用,而其他用戶更關(guān)心延遲)。總體而言,費用受多種因素影響:

  • 有多大的市場需求?
  • 系統(tǒng)可實現(xiàn)的總吞吐量是多少?
  • 該系統(tǒng)為驗證者或礦工提供了多少收入?
  • 這筆收入中有多少是基于交易費用與通貨膨脹獎勵?

簡單來說,在其他條件相同的情況下,更高的吞吐量應(yīng)該會導(dǎo)致更低的費用。不過上面提到的第 3 點和第 4 點是區(qū)塊鏈系統(tǒng)設(shè)計的基本問題。盡管對區(qū)塊鏈共識協(xié)議進(jìn)行了許多經(jīng)濟(jì)分析,但對于驗證者需要多少收入,我們?nèi)匀粵]有達(dá)成一個共識性的模型。今天大多數(shù)系統(tǒng)都建立在有根據(jù)的猜測之上,即提供多少收入足以讓驗證者誠實行事的同時還不會影響網(wǎng)絡(luò)對于用戶的吸引力。在簡化的模型中,讓發(fā)起 51% 攻擊的成本與驗證者的獎勵成正比即可。

提高攻擊成本是一件好事,但我們也不知道多少安全性「夠用」。想象一下,您正在考慮去兩個游樂園。其中一個聲稱在乘車維護(hù)上的花費比另一個少 50%。去這個公園是個好主意嗎?可能是它們效率更高,并且能以更少的錢獲得同等的安全性。也許另一個人的花費超過了保持游樂設(shè)施安全所需的費用,而沒有任何好處。但也可能是第一個公園很危險。區(qū)塊鏈系統(tǒng)是類似的。一旦考慮到吞吐量,費用較低的區(qū)塊鏈費用較低,因為它們獎勵較少。我們今天沒有好的工具來評估這是否可行,或者它是否會使系統(tǒng)容易受到攻擊??偟膩碚f:比較系統(tǒng)之間的費用可能會造成一定程度的誤導(dǎo)。盡管交易費用對用戶來說很重要,但除了系統(tǒng)設(shè)計本身之外,它們還受到許多因素的影響。吞吐量是分析整個系統(tǒng)的更好指標(biāo)。

結(jié)論

公平而準(zhǔn)確地評估性能是很困難的。衡量區(qū)塊鏈和衡量一款車值不值得買一樣復(fù)雜,不同的人會關(guān)心不同的事情,對于汽車來說,一些用戶會關(guān)心極限速度或百公里加速成績,有一些人關(guān)心油耗,還有一些人則只關(guān)心這輛車能裝多少貨。正因如此,美國環(huán)境保護(hù)署甚至直接出臺了一個汽車評定準(zhǔn)則的指導(dǎo)方針。

而區(qū)塊鏈領(lǐng)域中,我們還遠(yuǎn)沒有來到可以出臺一個標(biāo)準(zhǔn)化準(zhǔn)則的時刻,某些時候我們可能會找到一個標(biāo)準(zhǔn)的工作負(fù)載并以此繪制區(qū)塊鏈網(wǎng)絡(luò)吞吐量和延遲分布的「標(biāo)準(zhǔn)圖表」,但現(xiàn)如今對于研究者和建設(shè)者來說,最好的方法只有去收集盡可能多的數(shù)據(jù),并在發(fā)表觀點前盡可能詳盡地描繪出測試環(huán)境,因為只有這樣我們才能得到一個相對客觀的對比結(jié)果。?

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2021-09-23 22:40:10

區(qū)塊鏈比特幣技術(shù)

2018-03-27 09:52:30

區(qū)塊鏈數(shù)字貨幣比特幣

2021-05-10 15:09:47

區(qū)塊鏈互聯(lián)網(wǎng)金融

2018-06-14 10:32:25

2019-01-24 15:50:06

區(qū)塊鏈數(shù)字貨幣比特幣

2021-03-16 14:33:12

區(qū)塊鏈比特幣加密貨幣

2021-04-12 10:57:28

區(qū)塊鏈信任銀行

2021-04-11 11:31:05

區(qū)塊鏈記賬比特幣

2018-05-06 16:17:01

2020-08-18 10:58:05

區(qū)塊鏈比特幣區(qū)塊鏈戰(zhàn)略

2022-04-18 14:50:00

區(qū)塊鏈安全交易

2021-02-20 22:35:17

區(qū)塊鏈比特幣記賬

2021-05-17 14:51:23

鏈碼區(qū)塊鏈網(wǎng)絡(luò)

2022-06-02 14:11:42

區(qū)塊鏈藥品供應(yīng)鏈數(shù)據(jù)

2018-02-06 05:03:00

2021-11-12 15:52:16

區(qū)塊鏈開發(fā)技術(shù)

2019-12-05 10:26:26

區(qū)塊鏈技術(shù)智能

2019-08-21 09:20:29

區(qū)塊鏈區(qū)塊鏈技術(shù)區(qū)塊鏈存儲

2021-10-18 14:28:35

區(qū)塊鏈結(jié)算支付

2019-09-16 18:38:06

點贊
收藏

51CTO技術(shù)棧公眾號