詳解以太坊難度炸彈:第五次推遲意味著POW終結(jié)可能再次延后

Odaily星球日報(bào) 2022-06-09

吳說作者|吳卓鋮

本期編輯|Colin Wu

8月20日,以太坊核心開發(fā)者 Tim Beiko 在開發(fā)團(tuán)隊(duì)電話會議的內(nèi)容回顧上表示,可能推遲12月的難度炸彈,但在合并前不會有新的 EIP。細(xì)數(shù)下來,這有可能是難度炸彈第五次被推遲。為何難度炸彈一再推遲?它存在的意義又是什么?它和 ETH2.0 的合并又有什么關(guān)聯(lián)?

1 難度炸彈的意義

難度炸彈是以太坊挖礦中致使挖礦難度迅速上升的開關(guān)。以太坊挖礦難度除了與上一個(gè)區(qū)塊的出塊時(shí)間有關(guān),還與該區(qū)塊的難度因子有關(guān)。下面列出了難度的計(jì)算公式,前半部分是常規(guī)的難度調(diào)整,將每一區(qū)塊的出塊時(shí)間穩(wěn)定在13秒;后半部分(即紅框部分)即難度因子,決定了難度炸彈的開啟時(shí)間和爆炸的速度。

具體地,難度因子中包含了難度炸彈開啟的目標(biāo)區(qū)塊高度,當(dāng)區(qū)塊高度沒有達(dá)到目標(biāo)值時(shí),挖礦難度只受上一區(qū)塊的出塊時(shí)間影響;而一旦區(qū)塊高度到達(dá)預(yù)定值,出塊時(shí)間便會呈指數(shù)是上漲,隨后每挖出10萬個(gè)區(qū)塊難度便會調(diào)整一次。

2015年8月4日,前以太坊首席商務(wù)官 Stephan Tual 首次提及了難度炸彈。

“很多人一直想知道我們?nèi)绾卧趯庫o階段實(shí)現(xiàn)從 到 的切換。這將通過新引入的難度調(diào)整計(jì)劃來處理,該計(jì)劃在未來16個(gè)月內(nèi)將平穩(wěn)地保證硬點(diǎn)……它的工作原理如下:從20萬的區(qū)塊高度(時(shí)間約為2015年8月下旬)開始,挖礦難度將開始經(jīng)歷指數(shù)型增長,大約一年后,難度會明顯增加。到那個(gè)時(shí)候(大概就是寧靜里程碑發(fā)布時(shí)),挖礦難度的大幅增加將使出塊時(shí)間變長。”

為何 PoW 轉(zhuǎn)換成 PoS 需要難度炸彈來過渡?明白了這個(gè)問題就能理清難度炸彈和 ETH2.0 的先后順序。首先我們需要接受一個(gè)事實(shí),ETH2.0 完成后 PoW 將退出歷史舞臺,不存在兩種共識共存的情況,這在吳說過往的文章中也分析過,且 ETH2.0 合并階段的完成就是 PoW 挖礦方式的終結(jié)。

對此,龐大的礦工社區(qū)存在一種聲音,企圖在以太坊完成 1.0 與 2.0 合并后實(shí)行分叉。這對于整個(gè)以太坊社區(qū)無疑將是個(gè)雙輸?shù)木置妫虼碎_發(fā)團(tuán)隊(duì)需要想辦法防止此類事件發(fā)生。我們知道,由于 的存在,以太坊開發(fā)團(tuán)隊(duì)是比較容易統(tǒng)一戰(zhàn)線的;而礦工團(tuán)隊(duì)則不然,去中心化導(dǎo)致全體礦工無法形成一個(gè)利益共同體。換言之,只要能讓礦工之間互相不信任,那么礦工將不具備足夠的算力來實(shí)現(xiàn)51%攻擊。

難度炸彈便是一個(gè)能讓礦工產(chǎn)生不信任的陽謀。根據(jù) Stephan Tual 的預(yù)估,難度炸彈開啟后以太坊需要大約一年的時(shí)間(實(shí)際時(shí)間或許比這更短,后文會細(xì)數(shù)歷次難度炸彈開啟后實(shí)行的時(shí)間)才能上升到一個(gè)幾乎無法挖出區(qū)塊的難度。這意味著,從開啟到礦工入不敷出,當(dāng)中至少有幾個(gè)月的時(shí)間,而這段時(shí)間正是瓦解礦工陣營的時(shí)候。

考慮到區(qū)塊高度越高,實(shí)現(xiàn)分叉的難度就越大,礦工不能等到完全沒有產(chǎn)出了才開始分叉,而是應(yīng)該在難度炸彈開啟的第一時(shí)間就開始行動(dòng)。然而試想一下,作為一個(gè)理性的礦工個(gè)體,你會在難度炸彈開啟的時(shí)候嘗試分叉主鏈嗎?事實(shí)上你會擔(dān)心:如果有個(gè)別礦工沒有齊心協(xié)力地分叉,而是在原最長鏈上繼續(xù)挖,那么他們的產(chǎn)出將會大幅上升,甚至超過難度炸彈造成的損失,一旦分叉失敗,這些“背叛”的礦工會賺的盆滿缽滿,而“團(tuán)結(jié)”的礦工卻竹籃打水。因此,理性的礦工會選擇沿著主鏈繼續(xù)挖(或者選擇以合理的退出價(jià)格離場),即使知道最終的結(jié)果是產(chǎn)出為零,也沒人愿意帶頭冒險(xiǎn)。

理解了難度炸彈的意義我們自然就能明白其開啟時(shí)間與 ETH2.0 合并時(shí)間的先后順序。如前文所述,難度炸彈的存在就是為了在以太坊 1.0 與 2.0 合并時(shí)不要發(fā)生礦工集體分叉的局面,因此如果以太坊已經(jīng)順利完成了合并,那么難度炸彈也就沒有存在的意義了。之所以把難度炸彈的最終開啟時(shí)間視為 PoW 終結(jié)的先行指標(biāo)便是基于這個(gè)邏輯。

難度炸彈開啟后,以太坊合并必須在兩三個(gè)月內(nèi)完成,如果完成不了,團(tuán)隊(duì)只能選擇暫停并推遲,這在歷史上發(fā)生過三次。

2歷次推遲難度炸彈的EIPs

歷史上難度炸彈曾三度開啟過,又四度被推遲了,四次推遲分別發(fā)生在拜占庭升級、君士坦丁堡升級、繆爾冰川升級和剛結(jié)束的倫敦升級。

詳解以太坊難度炸彈:第五次推遲意味著POW終結(jié)可能再次延后

上圖為歷史上以太坊出塊時(shí)間的變化,可以看到正常情況下出塊時(shí)間維持在13-14秒,但出現(xiàn)過三次急劇上升的情況,這三次正是難度炸彈開啟的時(shí)候。每次開啟后,出塊時(shí)間都會呈現(xiàn)鋸齒狀上升,這便是因?yàn)槊客诔?0萬個(gè)區(qū)塊難度會調(diào)整一次。以最初的13秒為例,10萬個(gè)區(qū)塊大約耗時(shí)15天,而最后一次時(shí)間增加到25秒,此時(shí)10萬個(gè)區(qū)塊需耗時(shí)將近一個(gè)月,因此鋸齒呈現(xiàn)逐漸變寬的趨勢。三次難度炸彈最終都被暫停并推遲,原因就是以太坊開發(fā)團(tuán)隊(duì)還沒做好完全轉(zhuǎn)向 PoS 的準(zhǔn)備,而 PoW 模式下區(qū)塊難度的上升會導(dǎo)致交易等待時(shí)間和叔塊概率的增加,從而降低以太坊的實(shí)用性與安全性。

第一次推遲難度炸彈

2017年3月,區(qū)塊高度達(dá)到370萬,難度炸彈第一次開啟,出塊時(shí)間迅速上升,期間經(jīng)過6次難度調(diào)整,直至10月被延長至30秒。此時(shí),若不盡快停止難度炸彈,將嚴(yán)重影響以太坊生態(tài)。經(jīng)過開發(fā)團(tuán)隊(duì)討論后,以太坊在區(qū)塊高度437萬處啟動(dòng)硬分叉——拜占庭升級,在升級版本中包含了 EIP-649 提案,該提案通過把當(dāng)前的區(qū)塊高度減去300萬作為公式中使用的偽區(qū)塊高度,以此來延緩難度炸彈的啟動(dòng)時(shí)間。

此時(shí)的真實(shí)區(qū)塊高度是437萬,但用來啟動(dòng)難度炸彈的偽區(qū)塊高度是137萬(437-300)。簡單計(jì)算可以得出,當(dāng)偽區(qū)塊高度再次達(dá)到370萬,也就是233萬(370-137)個(gè)區(qū)塊后——即真實(shí)區(qū)塊高度達(dá)到670萬(437+233),難度炸彈會再次開啟。

第二次推遲難度炸彈

2019年1月15日,以太坊君士坦丁堡升級協(xié)調(diào)員 Afri Schodeon 發(fā)現(xiàn)以太坊的難度炸彈已經(jīng)在670萬高度的區(qū)塊如期啟動(dòng),并在大約 700 萬高度的區(qū)塊發(fā)生了“爆炸”。第二日,以太坊核心開發(fā)成員 Eric Conner(即推出 EIP-1559 的開發(fā)者)在推特上指出,難度炸彈爆炸后,平均出塊時(shí)間已經(jīng)從14秒升至15.5秒,并且會加速提升。

2月中,以太坊出塊時(shí)間上升至20秒,問題又一次擺在以太坊開發(fā)者面前,唯一的辦法還是分叉升級處理掉難度炸彈的影響。2月28日,君士坦丁堡升級在區(qū)塊高度為728萬處完成分叉,難度炸彈危機(jī)被再一次被暫時(shí)解除。君士坦丁堡升級中包含的 EIP-1234 不僅僅將難度炸彈推遲,還有一項(xiàng)重要的改變就是將出塊獎(jiǎng)勵(lì)減少為2個(gè) ETH。此次推遲爆炸的方法和拜占庭升級一樣,即簡單地將難度因子中的偽區(qū)塊高度減少500萬。調(diào)整后,真實(shí)高度為728萬,偽高度為228萬(728-500),當(dāng)偽高度回到370萬,即真實(shí)高度達(dá)到870萬(370-228+728),難度炸彈將再次開啟。這次只需再經(jīng)過142萬個(gè)區(qū)塊,因此時(shí)間較前一次更短。

第三次推遲難度炸彈

2019年10月5日,難度炸彈在區(qū)塊高度860萬處提前啟動(dòng),12月中,出塊時(shí)間上升至17秒。以太坊開發(fā)者不得不在進(jìn)行伊斯坦布爾升級后不久,于920萬高度處再次進(jìn)行硬分叉。這就繆爾冰川升級,此次升級只有一項(xiàng)改進(jìn)提案(之所以以冰川命名就是因?yàn)樯壷会槍﹄y度炸彈,炸彈完全爆發(fā)后,出塊獎(jiǎng)勵(lì)將被“凍結(jié)”,近期考慮的第五次推遲也可能用這種方式命名),即 EIP-2384,旨在將難度炸彈再推遲400萬個(gè)區(qū)塊,即1320萬高度,大約是向后推遲了611天。

而提案中還有一句話引人

第四次推遲難度炸彈

這一次,以太坊開發(fā)團(tuán)隊(duì)沒有等到難度炸彈爆炸。2021年8月5日,以太坊在高度為1296.5萬處啟動(dòng)倫敦升級,難度炸彈被再次推遲。本次升級包含 EIP-3554,將難度因子中的偽區(qū)塊高度在約1247萬(此高度并非當(dāng)前實(shí)際高度,而是協(xié)議提出時(shí)設(shè)立的一個(gè)預(yù)計(jì)高度)基礎(chǔ)上減少970萬,即277萬。因此大約經(jīng)歷93萬(370-277)個(gè)區(qū)塊后會再次啟動(dòng)難度炸彈,以出塊時(shí)間13秒計(jì)算,大約需要4.7個(gè)月(官方預(yù)估在12月的第一周啟動(dòng))。

第五次提出 EIP 推遲難度炸彈?

7月份,以太坊核心開發(fā)者 Tim Beiko 曾表示:假設(shè)我們有一個(gè)非合并升級(作者注:假設(shè)12月的上海升級無法完成 2.0 的合并,事實(shí)上這個(gè)假設(shè)大概率會發(fā)生),我們需要決定是否要包括除了另一個(gè)難度炸彈延遲之外的任何其他內(nèi)容(作者注:如果包含其他升級協(xié)議,那么保留“上海”這個(gè)名稱,否則考慮使用“冰川主題”命名,理由與繆爾冰川升級相同)。

8月20日,Tim Beiko 在以太坊核心開發(fā)者電話會議的內(nèi)容回顧上表示,基本上所有團(tuán)隊(duì)都同意,除了 Eth1 和 Eth2 合并的共識更改之外,還有其他重要的事情需要在接下來幾個(gè)月內(nèi)完成,其中大部分是客戶端需要為合并進(jìn)行性能優(yōu)化、更好地分離共識引擎等。鑒于此,與會人員同意不在12月進(jìn)行功能分叉(feature fork),這意味著可能會推遲難度炸彈,添加其他少量(one line)更改,但不會在合并之前產(chǎn)生新的 EIP。

現(xiàn)在看來,難度炸彈被再次推遲幾乎是板上釘釘,這也和我們之前分析過的它與以太坊合并之間的關(guān)聯(lián)相吻合。簡而言之,合并意味著 PoW 終結(jié),而難度炸彈徹底爆炸則意味著合并的完成。在以前的文章中我們分析過,PoW 的終結(jié)最快也要到2022年的二季度,而難度炸彈從啟動(dòng)到徹底爆炸僅需要兩三個(gè)月,因此如果12月便啟動(dòng)難度炸彈,以太坊必須要在明年一季度完成合并,這是個(gè)難以完成的任務(wù)。

最后一個(gè)問題是,以太坊開發(fā)團(tuán)隊(duì)是否會提出一個(gè)新的 EIP 來推遲難度炸彈?過去四次,開發(fā)者都是通過降低難度因子中的偽區(qū)塊高度來實(shí)現(xiàn),而修改代碼則必須提出 EIP。如何在不提出 EIP 的情況下實(shí)現(xiàn)難度炸彈的推遲,這需要開發(fā)團(tuán)隊(duì)進(jìn)一步的解釋(作者猜測 Tim Beiko 的意思是,12月升級只包含推遲難度炸彈的 EIP 而沒有其他新的提案,因此考慮更改“上海”為其他“冰川主題”)。

圖片來自U.today

免責(zé)聲明:世鏈礦業(yè)網(wǎng)作為開放的信息發(fā)布平臺,所有資訊僅代表作者個(gè)人觀點(diǎn),與世鏈礦業(yè)網(wǎng)無關(guān)。如文章、圖片、音頻或視頻出現(xiàn)侵權(quán)、違規(guī)及其他不當(dāng)言論,請?zhí)峁┫嚓P(guān)材料,發(fā)送到:2785592653@qq.com。

風(fēng)險(xiǎn)提示:本站所提供的資訊不代表任何投資暗示。投資有風(fēng)險(xiǎn),入市須謹(jǐn)慎。

    分享文章:

  • 微信掃一掃
    詳解以太坊難度炸彈:第五次推遲意味著POW終結(jié)可能再次延后