“空塊”威脅以太坊安全
根據(jù)Alex Svanevik的說法,非法礦池使用的“間諜挖礦”技術(shù)使得礦工在不實(shí)際處理區(qū)塊上的任何交易的情況下獲得挖礦獎(jiǎng)勵(lì)。在這種情況下,就形成了“空塊”。與此同時(shí),這種自私的挖礦方式也越來越受歡迎,很多礦工試圖在不將空塊廣播到網(wǎng)絡(luò)的情況下尋找下一個(gè)區(qū)塊,從而使他們獲得先機(jī)。
AMBcrypto報(bào)道稱,經(jīng)過詳細(xì)搜索,發(fā)現(xiàn)這種做法大量存在于兩個(gè)礦池中: F2Pool(魚池,目前是世界第二大采礦池)以及Etherdig。
自9月以來,開采的空區(qū)數(shù)量增加了637%|資料來源:Decryptmedia
加密愛好者Ansel Lindner在推特上說:
“以太坊營(yíng)銷的成功只部分與交易數(shù)量相關(guān)。需要有足夠的交易量來支持這種說法,但不要太多,那樣會(huì)難以保持同步。”
他進(jìn)一步觀察到,在君士坦丁堡硬分叉之前,以太坊開發(fā)人員最近決定將區(qū)塊獎(jiǎng)勵(lì)減少到2 ETH,這讓礦工開始追逐數(shù)量。
Ansel Linder的推文|來源:Twitter
AMBcrypto的文章中稱,為了盡可能擴(kuò)大利潤(rùn),魚池和Etherdig開始挖掘區(qū)塊而不驗(yàn)證任何交易(即生產(chǎn)空塊),對(duì)以太坊造成了前所未有的威脅。數(shù)據(jù)顯示空塊的傳播速度比正常區(qū)塊鏈快15%,這意味著間諜礦工的總收入也增加了15%。
如果許多礦工采取這種做法,以太坊的交易時(shí)間可能會(huì)增加,并導(dǎo)致Gas急劇增加。此外,如果這種情況持續(xù)下去,更多誠(chéng)實(shí)的礦工會(huì)停止以太坊挖礦業(yè)務(wù)并專注于其他代幣,從而對(duì)以太坊的安全造成很大影響。
為何會(huì)出現(xiàn)“空塊”?
理解這一做法的先決條件是知道區(qū)塊鏈中的每個(gè)區(qū)塊包含不同數(shù)量的數(shù)據(jù)。礦工不一定要準(zhǔn)確地保存那些要驗(yàn)證并添加到區(qū)塊鏈中的數(shù)據(jù)。
當(dāng)?shù)V工編碼一個(gè)區(qū)塊的所有數(shù)據(jù)(稱為哈希)時(shí),驗(yàn)證發(fā)生,然后關(guān)閉區(qū)塊并廣播區(qū)塊。此代碼對(duì)于下一個(gè)區(qū)塊是必不可少的。但是,在廣播之前,一些礦池開始私下挖掘區(qū)塊。雖然在沒有先讀取區(qū)塊數(shù)據(jù)的情況下不可能創(chuàng)建哈希,但是可以在交易發(fā)生之前從已存在的哈希創(chuàng)建新區(qū)塊。
此新區(qū)塊中沒有交易,但是由于交易數(shù)據(jù)中沒有不規(guī)則性,不能使該區(qū)塊無效。礦工們通過礦池獲得哈希。
為了搶先一步,一些礦工找到了一個(gè)新的區(qū)塊并試圖在不向礦池廣播的情況下找到下一個(gè)區(qū)塊。
然而,由于以太坊還處于早期階段,一行代碼足以防止惡意蔓延,因此很快就得到了糾正。對(duì)網(wǎng)絡(luò)核心代碼進(jìn)行了升級(jí),就能使礦工停止這一行為。
由于以太坊的開發(fā)人員基數(shù)很大[接近250,000],這是一項(xiàng)艱巨的任務(wù)。情況可能由于以太坊巨大的開發(fā)人員數(shù)量而變得更糟,或者利用大型社區(qū)的優(yōu)勢(shì)來糾正系統(tǒng)。
魚池的回應(yīng)
針對(duì)該消息,魚池向巴比特獨(dú)家回應(yīng):近期傳播的礦池產(chǎn)生“空塊”會(huì)對(duì)以太坊造成威脅這一說法,是非常錯(cuò)誤的。作者對(duì)以太坊挖礦過程理解不透徹才做出了這樣的結(jié)論,實(shí)際上礦池在區(qū)塊高度發(fā)生變化的時(shí)候,由于網(wǎng)絡(luò)通信延時(shí)等,如果選擇先計(jì)算交易再下發(fā)任務(wù),這個(gè)時(shí)候礦機(jī)是有1-2秒鐘在浪費(fèi)算力。因此為了礦工利益不受損失,礦池會(huì)第一時(shí)間下發(fā)一個(gè)不帶交易的任務(wù),然后在1-2秒鐘后再補(bǔ)發(fā)一個(gè)帶交易的任務(wù)。如果在不帶交易任務(wù)下發(fā)后的1-2秒鐘,有礦機(jī)算出了符合難度的share,那么這個(gè)塊就是空塊。在etherscan上大家能看到,主流前三的礦池都是這種機(jī)制。例如:etherminehttps://etherscan.io/block/6470100;sparkpoolhttps://etherscan.io/block/6470123https://etherscan.io/block/6470122;f2poolhttps://etherscan.io/block/6470136。另外礦池本身是不愿意產(chǎn)生空塊的,畢竟交易費(fèi)也是一筆可觀的收益。