本文是為預測 EIP 4345 的影響而作的練習。這個 EIP 提議在 2021 年 12 月推遲難度炸彈。我們的目標是看看我們是否能幫助確定應該何時推遲、應該推遲多少,好讓難度炸彈預計在 2022 年 5 月份再次爆炸。
有關這個主題,我之前已經寫過很多篇文章了:
有關難度計算的方法:It’s Not the Difficult(中文譯本)
有關如何推遲難度炸彈:A Method to Diffuse the Difficulty Bomb
一些更老的文章見 此處 和 此處
難度炸彈的計算兩部分組成:A 部分,用于調整難度、平抑出塊時間的波動;B 部分,即難度炸彈本體(詳細解釋見上述第一篇文章)。
A 部分的調整時逐塊發生的,保證出塊時間圍繞 13.5 秒波動。這部分的調整效果非常好,如果沒有難度炸彈的話,將使出塊時間幾乎保持恒定。我們感興趣的是 B 部分。
B 部分的炸彈是一個階躍函數,每隔 10 萬個區塊,數值就變作兩倍。在 “爆炸” 之前,大家都不會注意到它,然而一旦它開始爆炸,數值上升的速度會非常快(跟 2^n 一樣。
以太坊將進行硬分叉升級,以將難度炸彈推遲大約2-3個月:6月15日,官方消息,以太坊主網將在區塊高度15050000(約6月底)進行Gray Glacier硬分叉升級,以將難度炸彈推遲大約2-3個月,因此所有用戶必須在區塊激活之前進行升級。以太坊客戶端Geth對此發布v1.10.19版本,引入Gray Glacier硬分叉,強制進行升級。
此前消息,以太坊開發者Tim Beiko表示,以太坊預計在8月下旬至11月之間進行合并,只有災難性事件或失敗才能阻止今年的合并。由于涉及的技術問題,幾乎不可能給出合并發生的確切日期。此外,也有跡象表明,開發人員正在推遲以太坊的難度炸彈,因為他們目前正在修復他們在Ropsten合并期間發現的錯誤。[2022/6/15 4:29:51]
炸彈的數值依賴于 fake_period(偽周期號,在等式中表示為 n_sub_p)。fake_period 的值則完全依賴于 fake_block (偽區塊號)的數值;這個數值又是由當前區塊的區塊號(real_block 數值)以及 offset(推遲量)決定的。
我只有自己一個人。我帶著日漸疲憊的心、使用公開可得的數據寫下這篇文章。我在這里所說的一切都是可以討論的,但我已不準備為此負任何責任。本文中的一切,請自己帶著懷疑和謹慎加以看待和使用。
以太坊開發者會議:難度炸彈預計6月到來,執行層規范進展順利:3月26日消息,以太坊核心開發者Tim Beiko發布最新一次的核心開發者會議內容,包括難度炸彈、“上海”升級、以太坊執行層工作進展以及一項針對客戶端開發人員的Protocol Guild計劃。具體為:
1. 正在加緊測試合并測試網Kiln,以確保所有實施都是安全和穩定的;
2. 以太坊難度炸彈預計在 6 月到來;
3. 目前正在草擬下一個以太坊升級“上海”,計劃升級的內容主要有 EVM 升級、激活信標鏈提款、降低 Layer2 費用等以及其他一些小的升級;
4. 以太坊執行層的可執行規范的工作進展順利,下一步是協調 EL + CL 升級流程;
5. Protocol Guild 是一項旨在為客戶端開發人員和研究人員提供基于以太坊的項目代幣補償的計劃,現已擁有 100 多名成員,并且即將啟動試點。[2022/3/26 14:19:14]
我是一個工程師,不是一個數學家,所以我對實際數據的興趣,要比對數學預測的大。在下文中,我會預測數據將如何改變。我的預測基于上面的公式,但都只用到了簡單、直接的 Excel 表格。
我的討論基于三個簡單的觀察:
A 部分工作得非常好,使得出塊時間穩定在平均 13.3 的水平。
以太坊核心開發者:含 EIP-4345 的箭形冰川升級將于 12 月 8 日進行,難度炸彈計劃推遲至明年 6 月:10月16日消息,以太坊核心開發者 Tim Beiko 發推表示,根據最新的以太坊電話會議討論,包含改進提案 EIP-4345 的以太坊箭形冰川(Arrow Glacier)網絡升級將在區塊高度 13773000 處(約 12 月 8 日)進行,難度炸彈計劃推遲至明年 6 月。同時 Tim Beiko 表示,如果合并(The Merge)之前已經準備好,那可在此之前進行,且明年 2 月將會再次通過電話會議做出決定。此外難度炸彈基于當前的網絡算力,如果算力在合并前迅速下降,則可能會加速難度炸彈的出現。[2021/10/16 20:34:16]
B 部分也工作得非常好,它是獨立于 A 部分的,并且只會提高區塊時間。
如果我們忽略炸彈部分,我們的預測會是保守的。
換句話來說,如果我們的預測忽略了炸彈的效果,我們預測的時間將會比實際時間 “提早” 一些。這樣的話,即使我們預測錯了,也會有額外的緩沖時間。
第一個表格使用當前的區塊號(在撰文之時是 1339 1127),并按每塊 13.3 秒的時間推算出 1400 0000 區塊高度的時間:
以太坊客戶端Nethermind:難度炸彈和EIP-3554是針對試圖分叉鏈的攻擊者的防御措施:以太坊客戶端Nethermind在推特上表示,難度炸彈和EIP-3554是針對試圖分叉鏈的攻擊者的防御措施,它確保以太坊有持續的維護和變更的緊迫性。此外,如果核心開發者在部署變更方面拖沓,難度炸彈就會出現,以太坊就會變得不可用。而最為重要的是,當Eth1-Eth2合并發生時,將鼓勵每個人轉至PoS系統,否則他們將冒著留著一個不可用的鏈上的風險。與此同時,首席開發者Tim Beiko表示,他懷疑如果不是因為有難度炸彈,倫敦升級可能會在1至6個月后進行。倫敦升級目前正處于Ropsten測試網的最后測試階段。在6月24日開始的測試中,已經有超過100000枚ETH被銷毀。注:倫敦升級將納入EIP-3554,以將難度炸彈延遲至2021年12月1日。(BeInCrypto)[2021/7/13 0:49:00]
看仔細一些,我們發現,自區塊號 1200 0000 以來,平均出塊時間一直在提高(盡管 8 月和 9 月有所下降)。當然,隨著炸彈的爆炸,平均出塊時間會增加得越來越快。
再次強調,為了保守一些,我們選擇 13.3 秒的出塊時間來預測未來區塊挖出的具體時間,并且,我們暫時忽略難度炸彈的效果。當難度炸彈爆炸時,平均出塊時間增加;所以,忽略難度炸彈的結果是我們預測的時間將早于實際挖出的時間。(按我們這個例子來看,就是區塊 1400 0000 將 “不早于” 2022 年 1 月 10 日挖出。)
聲音 | EthHub開發者:隨著君士坦丁堡&圣彼得堡升級,下個難度炸彈可能更早到達:Etheruem的繆爾冰川(Muir Glacier)硬分叉在9,200,000區塊處激活,并將“難度炸彈”延遲了4,000,000區塊。根據EthHub開發者Eric Conner的說法,隨著君士坦丁堡&圣彼得堡升級,下個難度炸彈可能在繆爾冰川之后更早到達,區塊時間將更短。如果以太坊2.0仍在開發中,難度炸彈的提前到來可能會導致考慮開發的再度推遲。(AMBCrypto)[2020/1/8]
我們考慮的第一個問題是,“何時應該分叉?”
在我看來,答案完全取決于 fake_period 的數值。可以這么問:“我們應該在哪個區塊號分叉?1370 0050,1380 0050 還是 13900 0050?”(加上一個 50,確保沒有差一錯誤(off-by-one error) —— 為什么這很重要,則留給讀者當作練習 —— 公式的計算應該使用大于號呢,還是使用大于等于號呢?)
下面的表格展示了 fake_block 計算。
在這里我們并置了對每個區塊將挖出的具體時間的預測,以及偽區塊號的計算(用真區塊號減去偏移量,獲得偽區塊號,并推導出偽周期號)。
偽周期號正是我們感興趣的內容,因為難度炸彈的值完全取決于偽周期號的值。從我之前的工作來看,我們認為難度炸彈的效果會在偽周期號達到 41~42 之間的時候開始顯現,在此之前則不明顯。換言之,當偽周期號變成 41 時,B 部分的效果將壓過 A 部分的效果。
我在這里不想解釋為什么難度炸彈的效果不會在偽周期號達到 41 之前顯現。我想說的只是,炸彈只會提高出塊的時間,而如果沒有炸彈的話,A 部分就會讓區塊時間保持在 13.3 秒左右。換句話來說,平均出塊之間會高于 13.3 秒,如果太低了(出塊速度太快了),A 部分就會調整難度,把出塊時間拉回來 —— 再直白一點 —— A 部分就是這么工作的。
給定上述分析,我建議在晚于 1380 0000 區塊的任意時間分叉。大概是 12 月中旬。我會建議以具體的區塊號(而不是日期)為目標,比如區塊號 1385 0000。“痛點”(也就是出塊時間明顯減慢的時候)會在大約 1 月中旬到來。所以這個目標也是有容錯空間的。
我們需要考慮的另一個問題是,“我們需要偏移多少偽區塊?”
如上所述,偏移量決定了偽區塊號,進而決定了偽周期號,進而決定了炸彈的值。所以,在下文中,我們會專注于偏移量,看看我們能學到什么。
首先,我們來看看這個 EIP 提議的偏移量。我們在此根據 13.3 秒的平均出塊時間生成一個簡單的圖表。同樣地,我們忽略炸彈的影響,因為我們知道炸彈只會提高區塊時間,因此讓相應區塊號的實際發生時間晚于我們的預測。我們將安排 “Arrow Glacier”(下一次分叉的代號)發生在 1380 0050 號區塊,并使用這個 EIP 提議的偏移量 1050 0000。
本圖似乎表明,如果我們(按照這個 EIP 的建議)設置 1050 0000 的偏移量,則難度炸彈最早將在 4 月中旬(也即偽周期號再次到達 41 的時候)開始爆炸。到 5 月中旬,區塊將開始顯著變慢(偽周期號到達 43)。
我們之前遇過的最大的偽周期號就是 43, 是在 “拜占庭” 分叉之前。出塊時間的增加顯著可見 —— 達到了數秒的級別。
為了消遣,我準備看看如果我們提早或推遲分叉的時間,會有什么影響。
下面的這張表顯示了估計的結果 —— 讓我有點意外 —— 分叉的時間對最終結果沒有影響。但是,我回想了一些,覺得這是有道理的。因為,唯一一個決定偽周期號的量就是偏移量。除了讓當次分叉之前出塊變得更慢,推遲分叉的時間對下一次難度炸彈爆炸的時間(即四五月間)沒有任何影響。
你可以從上面這張圖看出,無論我們早點還是晚點實施 “Arrow Glacier” 硬分叉,只要我們使用 1050 0000 的偏移量,那就對下一次難度炸彈爆炸的時機沒有任何影響。
這個問題取決于你想在 5 月的時候給以太坊核心開發者多大的壓力。如果你想給他們很大的壓力 —— 讓 5 月的時候整個世界都會抱怨以太坊出塊速度變慢 —— 那就把偏移量設得小一點。如果你只想輕輕地推他們一下 —— 類似于 “我們最好現在采取行動,不過也不是特別著急” —— 那就支持大一點的偏移量。
如果你使用了 1050 0000 的偏移量,你可能是在給他們很大的壓力。你可以預期,四月底就會看到出塊顯著變慢(慢上一秒的那種)。但是,難度炸彈的麻煩之處在于,一旦開始爆炸,就不會給人喘息之機。
從 “明顯(變慢)” 到 “非常顯著”,到 “令人煩躁”,再到 “搞什么鬼” 再到 “以太坊去死吧”,只需要 4 到 6 周時間。我不是瞎扯,因為每一個 10 萬區塊的周期都會越來越長(因為每過一個周期,炸彈數值就會翻倍,出塊時間會增加得非常快),而且只要開始爆炸,就會爆炸得越來越快。詳見我上面關于 “拜占庭” 分叉前爆炸情況的文章。難度炸彈是來得很慢,但爆炸之后可就是另一番景象了。
在最后一個表格中,我建議使用 1070 0000 的偏移量。我同樣建議在1380 0050 號區塊后分叉。這會讓我們現在有休息的時間,并讓預計下一次爆炸的時間推到 5 月中旬。這是保守估計,但也是現實的考量。
結論:需要設置大于 1050 0000 的偏移量。
決定你想給核心開發者多大的壓力。如果你想狠狠推他們一把,就把偏移量設為 1050 0000;如果你想放過自己,就請設置為 1070 0000。搖擺不定的,可以在這兩者間取一個值。
“何時” 激活分叉的決定對下次爆炸的時間沒有影響(也即,都左右不了炸彈會在 5 月份爆炸)。這個決定唯一影響的是 “Arrow Glacier” 硬分叉之前 出塊時間會拉長到多久。這是因為,只有偏移量會影響偽周期號,也只有偽周期號會影響難度炸彈的數值。
TrueBlocks 是完全用我們的個人資金支持的項目,少量獎金來自以太坊基金(2018)、Consensys 公司(2019)、Moloch DAO(2021)以及近期的 Filecoin/IPFS(2021)。
如果你喜歡本文,或者希望支持我們的工作,請看我們的 GitCoin 主頁:https://gitcoin.co/grants/184/trueblocks。請給下一輪匹配捐款。我們會從更大的匹配獎勵中獲得額外的利益。即使很小的數額也會產生很大的效果。
DeFi數據 1.DeFi總市值:1647.25億美元 DeFi總市值數據來源:Coingecko2.過去24小時去中心化交易所的交易量:51.
1900/1/1 0:00:00ProShares 比特幣策略 ETF(股票代碼:BITO)于10月19日正式上市交易,首日交易金額即超過了10 億美元,這是有史以來發行日交易金額第二高的 ETF.
1900/1/1 0:00:002021年10月31日,加密貨幣從業人員之間都在調侃一句話“留給Plan B的時間不多了”。因為比特幣分析師Plan B曾精準預測8月、9月比特幣的收盤價格,他預測10月份比特幣收盤價將達到6.
1900/1/1 0:00:00?Coinbase 最近開展了眾多的主流營銷措施,用戶明顯注意到了這一點。這家美國領先的加密交易所的手機 App 再次成為蘋果應用商店中最受歡迎的產品.
1900/1/1 0:00:001.華爾街首只比特幣ETF瘋狂 或是散戶的咬手蛇 業內人士不建議購買在資產價格上升期,比特幣ETF無疑是基金公司賺快錢的金缽缽;但就ETF面向的廣大散戶,這類產品卻不見得是高枕無憂的快車道.
1900/1/1 0:00:001.DeFi總市值:1456.41億美元 DeFi總市值數據來源:Coingecko2.過去24小時去中心化交易所的交易量:63.
1900/1/1 0:00:00