撰文:Tripoli
編譯:0x11,Foresight News
本週早些時候,我在以太坊基金會舉辦的Reddit AMA 上提出了一個問題,其中一個回答引起了我的注意:
我期待看到合併後交易打包時間的改變!
理論上合併後平均打包時間應該降低約二分之一,因為下一個區塊的預期時間現在是6 秒,而之前是13 秒,更規律的打包時間也減小了峰值。根據我的個人經驗,如今的交易打包速度非常快,甚至與EIP-1559 之後、合併之前的那段時間相比也是如此。看看數據具體的數據會很有趣。
– /u/vbuterin
比特幣區塊時間動態被研究得更多,數據可用性更高。因此,我將把以太坊的工作量證明轉移到比特幣上進行分析【1】。這兩個系統非常相似,主要區別在於難度調整將比特幣的平均出塊時間保持在10 分鐘,而以太坊的平均出塊時間保持在13 秒左右【2】。
然而,區塊時間平均值是一個巨大的簡化。媒體經常將比特幣礦工稱為一群解決複雜數學問題的計算機,但事實並非如此。解決這個詞隱含的意思是,這類主流類比表明採礦設備不斷接近解決方案,但這不是加密挖礦的工作方式。最簡單的散列類比是拋硬幣並嘗試連續77 次正面朝上【3】。不正確的散列不會提供有意義的進展,這是賭徒謬誤的一個版本:所有散列都是獨立的,當散列失敗時就沒有進展。
嘗試的獨立性和由此導致的缺乏進展被描述為失憶。不管上一個區塊已經過去了多長時間,比特幣礦工發現下一個區塊的可能性總是一樣的:下一個區塊出現的平均時間總是在10 分鐘後。
如果你對比特幣區塊間隔方差的數據感興趣,Jameson Lopp 幾年前寫了一篇很棒的文章。簡單來說就是,忽略源自非常快速出現的區塊的邊緣案例,區塊間隔遵循指數概率分佈。
比特幣出塊時間方差:理論與現實;資料來源:Jameson Lopp
為了討論交易打包時間,我們需要在分析中添加另一層。天真的說法是,當比特幣交易被提交時,它應該被包含在下一個區塊中,該區塊平均會在10 分鐘內完成;因此,打包時間應為10 分鐘。在實踐中,區塊空間的競爭本質扭曲了打包時間並挑戰了可交換性的假設。
下圖顯示了2022 年9 月2 日待處理交易的攀升。圖表中的每個斷崖或下降都表示發現了一個新區塊並處理了一批最有價值的交易。為了方便,網格豎線以10 分鐘為間隔,既比特幣平均出塊時間。
比特幣內存池
該圖顯示了區塊發現中的非典型但並非罕見的差距。從10:20 到12:18,只發現了兩個區塊,而不是預期的十二個。
雖然在10:20 發送12 sat/vB 交易似乎是安全的,但它可能直到13:00 才被處理,至少8 個,可能多達11 個區塊。延遲的兩個來源是區塊時間方差和不對稱時間信息,即較晚提交的交易具有額外信息的優勢,並且能夠支付更大的費用以跳過交易隊列。
從緩慢發現的區塊中隨機抽取樣本並分析其中包含的交易,在交易提交時間和包含在下一個區塊中的交易相對密度之間出現了一個清晰的模式【4】。慢速區塊包含的交易來自緊接在發現區塊之前的時間倉,比來自緊接在前一個區塊之後的時間倉多出大約50%。
與此形成鮮明對比的是,如果我們查看快速區塊,則提交時間的分佈要均勻得多【5】。這表明在快速區塊中的時間競爭沒有意義。
大多數區塊都可以很快發現,所以這有什麼關係嗎?
如果我們計算預期出塊時間,長尾區塊的貢獻其實出奇的大。如果計算平均出塊時間但忽略20+ 或30+ 分鐘這樣的異常值,則預期的出塊時間將下降到6-8 分鐘。
關於打包時間,區塊空間的時間競爭基本上忽略了這些長尾塊。例如,我們假設超過20 分鐘的交易被新的更高費用的交易取代,那麼進入第一個區塊的交易的平均打包時間理論上應該下降到只有6 分鐘。
實際上,並沒有下降到6 分鐘。我們在慢速區塊分佈中看到交易沒有被完全替換,但我預計第一個區塊打包時間可能在8-9 分鐘範圍內,而不是天真的10 分鐘近似值。
進一步計算被替換的交易將需要比本文提供的更全面的數據分析(嚴重依賴於區塊空間需求的趨勢、區塊間隔的後續隨機滾動等),結果可能是多峰諧波分佈。
回到權益證明以太坊,假設非競爭性區塊空間,不變的12 秒區塊間隔表明平均打包時間為6 秒【6】(與工作證明中的13 秒相比)。
然而,以太坊區塊空間競爭異常激烈。
即使區塊間隔不變,我們似乎也看到了強烈的時間競爭,甚至超過了比特幣長尾區塊空間的競爭。所有這些都在幾秒鐘內發生,每12 秒重複一次。
那麼,打包時間是否更短?我想這將取決於如何定義打包時間。如果以太坊上的第一個區塊是在區塊間隔的最後幾秒內提交的交易占主導,那麼我不清楚方差的下降是否會產生有意義的差異。另一方面,如果我們談論的是單筆交易,其優先費用足以確保交易包含在內,那麼預期的打包時間應該從13 秒減少到6 秒【7】。
註解:
【1】 指數概率分佈的方差與區塊時間的平方成比例,因此比特幣區塊時間的方差是以太坊PoW 區塊的(600/13)^2 = 2130 倍。也許這可以解釋為何對以太坊區塊時間的分析相對缺乏。
【2】該指標假設以太坊不處於硬分叉的時間窗口,在硬分叉時間窗口,出塊時間開始呈指數增長,以迫使礦工採用這種變化。
【3】截至撰寫本文時,30 天的平均哈希率為2.5075 億TH/s,因此在一個10 分鐘的區塊中有250.75×E6×E12×(60×10) = 1.5E23 次哈希嘗試。為了找到一個硬幣翻轉等效物,我們採用一個以2 為底的對數,它等效於76.9 次連續的硬幣翻轉。
【4】該樣本中的慢速區塊是在2022 年12 月22 日至2023 年1 月12 日之間發現的偽隨機序列,包含40 個塊,區塊間隔時間在42 到75 分鐘之間。
【5】該樣本中的快速區塊是在2022 年12 月22 日至2023 年1 月12 日之間發現的一個由86 個區塊組成的偽隨機序列,區塊間隔時間在2.5 分鐘到6 分鐘之間。
【6】如果我們由於驗證者的錯誤而忽略空塊,則不變。
【7】不幸的是,合併前數據似乎不可靠,儘管這可能只是由於區塊空間的超級競爭性質加上區塊時間差異而造成的,我沒有足夠的信心發布它。