原文標(biāo)題:《ARE MINING POOLS BECOMING A PROBLEM?》
原文作者:Bitcoin Mechanic
原文編譯:Luccy,BlockBeats
編者按:挖礦是中本聰設(shè)計(jì)的既堅(jiān)實(shí)又優(yōu)雅的設(shè)計(jì)之一,也是比特幣最引人注目的方面之一。然而,挖礦并不僅僅是進(jìn)行哈希運(yùn)算。
比特幣倡導(dǎo)者和教育家 Bitcoin Mechanic 深入探討了比特幣挖礦中存在的各種問題和挑戰(zhàn),特別關(guān)注了礦池和礦工之間的動(dòng)態(tài)關(guān)系。他提出了對(duì)現(xiàn)有問題的解決方案,著眼于提高礦工的自治能力和整體去中心化趨勢(shì)。
其中,對(duì) Stratum V2 協(xié)議的討論和挖礦生態(tài)系統(tǒng)的未來(lái)發(fā)展充滿了獨(dú)到見解。此外,文章還指出 ASIC 制造和礦池基礎(chǔ)設(shè)施的最新發(fā)展,為挖礦領(lǐng)域的去中心化提供了新的可能性。通過(guò)對(duì)現(xiàn)有挖礦模式的批判性分析和對(duì)未來(lái)可能的改進(jìn)的展望。
比特幣礦工為整個(gè)生態(tài)系統(tǒng)提供了極為重要的服務(wù)。作為確保網(wǎng)絡(luò)安全的一部分,他們從網(wǎng)絡(luò)中獲得獎(jiǎng)勵(lì),這是由中本聰設(shè)計(jì)的既堅(jiān)實(shí)又優(yōu)雅的設(shè)計(jì)之一,也是比特幣最引人注目的方面之一。
然而,越來(lái)越多的人似乎忽略了挖礦并不僅僅是進(jìn)行哈希運(yùn)算。
參與整個(gè)過(guò)程的人必須運(yùn)行一個(gè)節(jié)點(diǎn),以獲取區(qū)塊鏈的最新狀態(tài),然后開始構(gòu)建一個(gè)新的區(qū)塊。這包括驗(yàn)證前一個(gè)區(qū)塊的有效性,發(fā)現(xiàn)未確認(rèn)的交易并通常選擇其中最有利可圖的交易。在生成交易中支付給自己,構(gòu)建這些交易的多個(gè)默克爾樹,最后進(jìn)行哈希運(yùn)算以實(shí)際解決這個(gè)區(qū)塊。區(qū)塊模板中的交易將不斷變化,因?yàn)樾碌慕灰妆粡V播到網(wǎng)絡(luò)。當(dāng)其他人找到一個(gè)新的區(qū)塊時(shí),礦工必須轉(zhuǎn)而在其上構(gòu)建,并將已經(jīng)在區(qū)塊鏈中的所有交易轉(zhuǎn)儲(chǔ)以填充一個(gè)新的模板。
分叉激活
正如你所看到的,進(jìn)行哈希運(yùn)算以實(shí)際解決區(qū)塊只是這個(gè)過(guò)程的一部分。比特幣挖礦 ASIC 也只能進(jìn)行哈希運(yùn)算。在當(dāng)前環(huán)境中,挖礦的所有其他方面通常都委托給挖礦池。這導(dǎo)致了一些混淆。例如,在任何討論通過(guò)區(qū)塊模板內(nèi)的版本位翻轉(zhuǎn)激活軟分叉的情況下,人們總會(huì)提到這個(gè)過(guò)程是一個(gè) MASF,即「礦工激活軟分叉」,并且總會(huì)有人站出來(lái)說(shuō),這事挖礦池的全責(zé),而挖礦池不是礦工。他們還可能指出,礦工最終仍然要負(fù)責(zé),因?yàn)槿绻麄兿M?jí)但他們所在的礦池不希望,他們可以簡(jiǎn)單地切換礦池。為了明確起見,在本文的其余部分,我將僅指那些只參與哈希運(yùn)算,將挖礦的所有其他方面留給礦池的人為「哈希者」。
回到軟分叉,在當(dāng)前環(huán)境中,由同一組織構(gòu)建的區(qū)塊超過(guò) 99% ,更準(zhǔn)確地稱呼這些為「礦池激活的軟分叉」可能更為準(zhǔn)確,盡管目前沒有人這樣稱呼,這導(dǎo)致了一個(gè)危險(xiǎn)的錯(cuò)覺:挖礦之所以可以被認(rèn)為是分散的,僅僅是因?yàn)樗懔Φ姆植?。?dāng)所有算力都受限于少數(shù)幾個(gè)礦池時(shí),這種說(shuō)法就變得不可信,因此比特幣區(qū)塊鏈的內(nèi)容最終將不包括這些少數(shù)幾個(gè)實(shí)體認(rèn)為不可接受的任何內(nèi)容,以及一系列其他問題。
通過(guò)僅僅進(jìn)行由礦池構(gòu)建的區(qū)塊的哈希運(yùn)算,比特幣礦工在很大程度上放棄了他們角色的一個(gè)關(guān)鍵組成部分。這不僅僅是可能的,而且是最為順暢的路徑,這表明我們存在著系統(tǒng)性的問題。
礦池和區(qū)塊空間市場(chǎng)
僅僅進(jìn)行哈希運(yùn)算并讓礦池完成其他一切的影響遠(yuǎn)不止于軟分叉激活。例如,目前礦工完全不知道解決后的區(qū)塊會(huì)是什么樣子,這意味著礦工在盲目信任區(qū)塊僅包含期望的交易的情況下進(jìn)行工作。但在像這樣的區(qū)塊中,你會(huì)看到對(duì)這種信任的公然違反,這是掀起「序數(shù)」狂潮的著名區(qū)塊。請(qǐng)注意,這個(gè)區(qū)塊上工作的礦工實(shí)際上只能享受到約 200 美元的比特幣交易費(fèi),而其兩側(cè)的區(qū)塊平均交易費(fèi)卻達(dá)到了約 5000 美元的比特幣。
區(qū)塊空間具有價(jià)值,這是比特幣在長(zhǎng)期內(nèi)運(yùn)作的部分原因。但在一個(gè)只有少數(shù)幾個(gè)參與者可以使他們構(gòu)建的模板最終進(jìn)入?yún)^(qū)塊鏈的世界里,這些實(shí)體擁有幾乎獨(dú)占的權(quán)利出售這個(gè)空間,并以此獲得超額報(bào)酬。他們是否有責(zé)任,甚至可能向他們的礦工坦白他們正在這樣做?當(dāng)然,在這種情況下,意圖是讓所有人都感到意外。在未來(lái),他們是否會(huì)將他們因出售帶外區(qū)塊空間而收到的款項(xiàng)轉(zhuǎn)發(fā)給他們的哈希者?
簡(jiǎn)而言之,雖然礦池及其哈希者的激勵(lì)通常是一致的,以最大化利潤(rùn)為目標(biāo),但礦池有可能出售區(qū)塊空間以獲取常規(guī)比特幣交易以外的東西,而礦工的收入更有限,除非礦池選擇透明并同意分享收入。即使他們這樣做,驗(yàn)證也需要獲得礦池的許可,而不是驗(yàn)證從補(bǔ)貼和交易費(fèi)中賺取的資金(在使用 FPPS 礦池時(shí)也很棘手,稍后詳細(xì)介紹)。
礦池作為比特幣中心化區(qū)塊模板的構(gòu)建者的進(jìn)一步影響源于一個(gè)更為基本的事實(shí) - 在更基本的層面上,有十二個(gè)擁有自己「超級(jí)內(nèi)存池」的「超級(jí)節(jié)點(diǎn)」。
這導(dǎo)致人們直接與礦池打交道,完全忽視內(nèi)存池。有人認(rèn)為,無(wú)論如何,內(nèi)存池注定要失敗。當(dāng)前中心化的模板構(gòu)建狀態(tài)只是加速了這一過(guò)程,但在任何情況下都不可取,而在一個(gè)真正分散的模板構(gòu)建被認(rèn)為是切實(shí)可行的世界中,做出這種假設(shè)可能過(guò)于悲觀。然后,如果購(gòu)買區(qū)塊空間的人希望在相同的時(shí)間框架內(nèi)將其納入?yún)^(qū)塊鏈,帶外支付必須傳遞給一個(gè)更大的人群。這可能更加透明,與當(dāng)前工作方式相似。相反,「超級(jí)節(jié)點(diǎn)」有望被分解為更小的部分,因此不再能夠提供相同的保證。
為了偏離這個(gè)挖礦的方面,讓我們把焦點(diǎn)轉(zhuǎn)移到當(dāng)前支付方式是如何處理的。
礦池支付模型
幾乎所有的礦池都通過(guò) FPPS(全額支付每份份額)或類似的方式支付他們的哈希者。唯一的例外是 ViaBTC 除了 FPPS 之外還提供 PPLNS(最后 N 份份額支付)。Antpool 也提供 PPLNS,但哈希者必須放棄所有交易費(fèi)收入,這表明了我即將努力闡明的觀點(diǎn)?;旧?在一個(gè)關(guān)注交易費(fèi)收入而不是補(bǔ)貼的世界中,FPPS 并不是一個(gè)運(yùn)作良好的模型。值得一提的是,Braiins 礦池(之前是 Slushpool)使用了一個(gè)被稱為「score」的系統(tǒng),實(shí)際上與 PPLNS 非常相似。
為什么如此強(qiáng)烈地偏好 FPPS 呢?從哈希者的角度來(lái)看,無(wú)論區(qū)塊鏈上發(fā)生什么,他們都能得到支付。這與礦池挖礦的目的一致,收入更為一致。FPPS 提供更一致的支付,因?yàn)榈V池基于預(yù)計(jì)收入支付,并獨(dú)立于區(qū)塊鏈進(jìn)行結(jié)算。
這使生活變得非常容易,對(duì)于希望最小化由于現(xiàn)金流中斷而導(dǎo)致的問題的礦工來(lái)說(shuō),但當(dāng)然也存在缺點(diǎn) - 重要的缺點(diǎn),我希望在這里強(qiáng)調(diào)。
FPPS 首先要求礦池成為所有新挖掘比特幣的保管人。這些比特幣在挖掘后的最少 100 個(gè)區(qū)塊內(nèi)無(wú)法轉(zhuǎn)發(fā)給礦工,因此新挖掘的比特幣在此之前是無(wú)法使用的,實(shí)際上,挖掘的比特幣與礦工在從礦池提取時(shí)最終收到的比特幣無(wú)關(guān)。第三方保管的風(fēng)險(xiǎn)對(duì)于幾乎所有閱讀本文的人來(lái)說(shuō)應(yīng)該是顯而易見的,所以我會(huì)跳過(guò)這一點(diǎn),繼續(xù)介紹 FPPS 的其他問題。
下一個(gè)關(guān)注點(diǎn)來(lái)自于一個(gè)更普遍的問題,即 FPPS 礦池是哈希者和網(wǎng)絡(luò)本身之間的一個(gè)重要中介。我們已經(jīng)確定,哈希者無(wú)法事先了解他們正在處理的區(qū)塊最終會(huì)是什么樣子,直到解決之后才能知曉。FPPS 意味著他們現(xiàn)在甚至不關(guān)心區(qū)塊是否被發(fā)現(xiàn),這是礦池的問題。忽略支付的增加的可預(yù)測(cè)性(如果礦池決定欺騙哈希者,這將永遠(yuǎn)不會(huì)發(fā)生),我們必須承認(rèn)這樣做的權(quán)衡之處。
直接由比特幣本身支付的礦工 - 在類似 PPLNS 或當(dāng)然是獨(dú)立挖礦等替代方案中是可能的 - 可以期望得到完全的獎(jiǎng)勵(lì),包括交易費(fèi)。一個(gè) FPPS 礦池只能在事后計(jì)算這一點(diǎn),因?yàn)樵诖_定哈希者實(shí)際每份份額收到的費(fèi)用時(shí),根本無(wú)法預(yù)測(cè)費(fèi)用會(huì)達(dá)到多少。礦池不能簡(jiǎn)單地假設(shè)費(fèi)用將是大于 0 的某個(gè)值,并在挖礦時(shí)將其計(jì)入礦工的收入,因?yàn)槿绻M(fèi)用低于此值,他們將簡(jiǎn)單地用自己的口袋支付給礦工。他們必須定期分配費(fèi)用并將其歸因于實(shí)際在礦池保管的礦工。
從哈希者的角度來(lái)看,需要對(duì)礦池完全信任,因?yàn)槿绻麤]有礦池的完全透明和合作,驗(yàn)證幾乎是不可能的。如上所提到的,以前這不是一個(gè)大問題,因?yàn)榇蠖鄶?shù)挖礦收入來(lái)自補(bǔ)貼,交易費(fèi)只是撒在其中的一些聰?shù)牧闵⒉糠?但這并不是,也不可能是日益增長(zhǎng)的比特幣挖礦的未來(lái)。未來(lái),礦工將主要通過(guò)交易費(fèi)獲得收入,而在使用礦池時(shí),這些費(fèi)用比補(bǔ)貼更難預(yù)測(cè)和監(jiān)控。
與 PPLNS 這樣的支付方案相比,哈希者接受了更大的變化(礦池的運(yùn)氣也成為哈希者的運(yùn)氣),我們看到,礦業(yè)生態(tài)系統(tǒng)極其傾向于優(yōu)先考慮支付的一致性,而不是驗(yàn)證所收到的內(nèi)容的能力。更為扭曲的是,一些哈希者實(shí)際上更喜歡這種方式 - 希望將自己呈現(xiàn)給政府機(jī)構(gòu),表現(xiàn)為一種與比特幣完全脫離的「哈希服務(wù)」- 有些人甚至引以為傲。這是因?yàn)?FPPS 與理想的礦工/礦池動(dòng)態(tài)相去甚遠(yuǎn),以至于很難再次描述哈希者究竟在做什么,即使是「比特幣挖礦」。
實(shí)際上,FPPS 礦池是一個(gè)大型獨(dú)立礦工,支付哈希者來(lái)解決其區(qū)塊。之后,他們有一種內(nèi)部且不透明的流程,通過(guò)這種流程確定支付給哈希者的金額。為了真正說(shuō)明這一點(diǎn),哈希者甚至可以(在一些不太難想象的情景中)用比特幣以外的東西支付其費(fèi)用。
為什么不呢?如果你不關(guān)心是否找到任何區(qū)塊,更別說(shuō)在構(gòu)建之前它們是什么樣子了,那為什么不只是得到一個(gè)獨(dú)立礦工支付你法定貨幣,以最方便的貨幣將你的 ASIC 指向它們呢?比特幣并不總是最無(wú)摩擦的選擇,但即使是這樣,可以合理地想象繼續(xù)走下一條路,即「哈?!箍梢杂赡阆矚g的許多實(shí)體執(zhí)行,但都是代表一小群「礦池」完成的,整個(gè)網(wǎng)絡(luò)需要得到它們的許可才能將任何內(nèi)容真正記錄到區(qū)塊鏈上。
到底誰(shuí)在進(jìn)行哈希呢?
讓我們從更廣泛的背景來(lái)看這個(gè)問題。我們已經(jīng)提到,一些更大的參與者希望盡可能遠(yuǎn)離比特幣,因此愿意將與比特幣相關(guān)的活動(dòng)盡可能地委托給他們的礦池。這些礦池對(duì)監(jiān)管是敞開的,并且它們的大量算力對(duì)此感到非常滿意。
這再次從網(wǎng)絡(luò)本身的角度引入了經(jīng)濟(jì)的非理性,表現(xiàn)為挖掘符合某些任意標(biāo)準(zhǔn)的區(qū)塊的行為。當(dāng)過(guò)去發(fā)生這種情況時(shí),由于社區(qū)的強(qiáng)烈反對(duì)以及試圖在沒有被要求這樣做的情況下積極取悅某個(gè)司法管轄區(qū)不斷變化的監(jiān)管體制的荒謬性,它并沒有持續(xù)很長(zhǎng)時(shí)間。但事實(shí)上,這是一個(gè)選擇的選項(xiàng)暴露了具有中心化區(qū)塊模板構(gòu)建的風(fēng)險(xiǎn)。一個(gè)司法管轄區(qū)的礦工是否會(huì)嘗試禁止或拒絕處理來(lái)自另一個(gè)司法管轄區(qū)的交易?礦工是否只是政府或有影響力的不良行為的延伸?有具體的例子表明,一些礦池拒絕交易費(fèi)以非法獲利,有時(shí)只是為了遵守監(jiān)管壓力。從網(wǎng)絡(luò)的角度看,這再次顯得經(jīng)濟(jì)上非理性。
最極端的最近例子就是在一筆交易中支付的 19 BTC 交易費(fèi),最終是由 F 2 Pool 發(fā)現(xiàn)的,表面上是一個(gè)錯(cuò)誤。作為一個(gè) FPPS 礦池,他們成為了這 19 BTC 挖礦費(fèi)用的保管人,并選擇將其返還給犯錯(cuò)誤的人。這完美地展示了在礦工和比特幣網(wǎng)絡(luò)之間放置過(guò)大中介的代價(jià)。在 PPLNS 礦池中,這種情況發(fā)生的可能性較小。不是因?yàn)?PPLNS 礦池必然是無(wú)信任或非托管的,而是因?yàn)榭梢栽趨^(qū)塊準(zhǔn)確進(jìn)入的時(shí)刻監(jiān)控和驗(yàn)證費(fèi)用收入,這對(duì)于礦池而言可能更難嘗試,因?yàn)樗赡芤呀?jīng)在內(nèi)部向礦工的賬戶存入了他們所獲得的挖礦資金的份額,引起了更大的反彈。盡管在原則上沒有任何不同,直到你對(duì)比一下,如果一個(gè)礦池在 coinbase/生成交易中向其礦工支付報(bào)酬,會(huì)發(fā)生什么。在那種情況下,錢已經(jīng)在礦工的掌握中,礦池?zé)o法截取費(fèi)用收入。因此,在這個(gè)例子中,礦池想要顯得慷慨或公平,卻使其礦工在費(fèi)用收入上損失了 50 萬(wàn)美元,這是一個(gè)它本不應(yīng)該做出決定的位置。
下一個(gè)問題: 51% 攻擊及其他攻擊
這應(yīng)該很容易解釋:目前每個(gè)人都知道什么是 51% 攻擊。然而,遠(yuǎn)不如人們了解的是(直到網(wǎng)絡(luò)繞過(guò)它為止), 51% 是這種攻擊方式能夠得到保證并持續(xù)成功而不僅僅是破壞性的要求。
實(shí)際上,任何擁有超過(guò) 20% 網(wǎng)絡(luò)份額的實(shí)體都可以通過(guò)多種攻擊方式引發(fā)問題,其中一些在野外執(zhí)行,卻很少被討論,我將在稍后詳細(xì)介紹。但在此之前,我們可以看到,這個(gè)網(wǎng)絡(luò)只有兩個(gè)實(shí)體的總算力可靠地超過(guò)了 51% 。更糟糕的是,其中一個(gè)最大的礦池并沒有仔細(xì)掩蓋它通過(guò)另一個(gè)大型礦池發(fā)現(xiàn)的另外 10% 的區(qū)塊,而這個(gè)礦池與其母公司保持著戰(zhàn)略合作關(guān)系。這個(gè)鬧劇仍在繼續(xù)的事實(shí)并不令人信服。
對(duì)此有兩種常見的回應(yīng)。首先,人們指出,礦工可以簡(jiǎn)單地通過(guò)更改礦池來(lái)進(jìn)行投票,如果他們聯(lián)合起來(lái)進(jìn)行 51% 攻擊。其次,任何礦池嘗試這樣做都是瘋狂的,原因很簡(jiǎn)單,破壞比特幣將導(dǎo)致價(jià)格下跌,而且投資生態(tài)系統(tǒng)的任何人都不希望發(fā)生這種情況。第二個(gè)論點(diǎn)忽略了人類歷史,并進(jìn)一步假設(shè)人們永遠(yuǎn)不會(huì)被迫采取破壞性行為,從而僅僅為了破壞或出于其他邪惡目的而引起破壞。它也沒有考慮到市場(chǎng)并不一定總是反映比特幣存在問題的好指標(biāo),參見 2017 年的硬分叉戰(zhàn)爭(zhēng)。
然而,第一個(gè)論點(diǎn)更為牢固,它假設(shè)在某個(gè)礦池確實(shí)變得過(guò)大的情況下,礦工總是會(huì)轉(zhuǎn)投其他礦池。事實(shí)上,如果礦池試圖這樣做,現(xiàn)實(shí)將會(huì)插手,我們會(huì)意識(shí)到,盡管構(gòu)建了 99% 的區(qū)塊模板,但礦池實(shí)際上并不是礦工。如一個(gè)著名的案例研究,即 Ghash.io,它因超過(guò) 40% 的算力而導(dǎo)致了致命的螺旋式下滑。
因此,所以我們已經(jīng)證明這實(shí)際上并不是一個(gè)問題,礦工們可以信賴,他們會(huì)轉(zhuǎn)投其他礦池。實(shí)際上,如果大型礦業(yè)運(yùn)營(yíng)受到繁文縟節(jié)的束縛,這個(gè)假設(shè)就不那么可靠,但讓我們至少假設(shè)我們相當(dāng)有信心這種攻擊不太可能發(fā)生。
不幸的是,意識(shí)到任何礦池的哈希算力一旦超過(guò)一個(gè)可怕的閾值就會(huì)遷移到其他地方,導(dǎo)致它們自我調(diào)節(jié)。但這種方式并沒有幫助,因?yàn)樗鼈儫o(wú)需真正維持在閾值以下的算力,他們只需要讓外界產(chǎn)生這種印象。這基本上等于接受他們能夠獲得的所有哈希算力,同時(shí)將其轉(zhuǎn)發(fā)到其他礦池,以避免提醒世界他們能夠造成混亂。
這樣,我們對(duì)網(wǎng)絡(luò)的情況了解不詳。30% 的區(qū)塊可以被最大的礦池明目找到,并得到所有人的接受,而總網(wǎng)絡(luò)算力的另外 10% 仍然指向該礦池,只是秘密地被轉(zhuǎn)移到一個(gè)或多個(gè)較小的礦池。負(fù)責(zé)這 10% 的礦工可能意識(shí)不到它是這樣使用的,并且使用 stratum V2 更難以檢測(cè)。我將在后文做出詳細(xì)解釋。
當(dāng)考慮到通過(guò)區(qū)塊挖掘攻擊可以利用這種重定向的算力來(lái)?yè)p害較小礦池時(shí),這種本就不理想的情況變得更糟。
具體而言,攻擊者主要以受害礦池的正常用戶身份參與挖礦過(guò)程。結(jié)果,他們按預(yù)期從礦池找到的任何區(qū)塊中獲得獎(jiǎng)勵(lì)的一部分。獎(jiǎng)勵(lì)最終流向攻擊者,然后攻擊者可以支付實(shí)際的礦工,而無(wú)需損失任何資金。到目前為止,唯一造成的傷害是對(duì)礦池算力的錯(cuò)誤印象,使其看似比實(shí)際更小,但較小的礦池仍然未受損害。
現(xiàn)在,如果攻擊者決定在找到區(qū)塊時(shí)不告訴受害礦池,傷害就會(huì)發(fā)生。這會(huì)讓受害礦池看起來(lái)不夠幸運(yùn)。他們似乎只是找到比應(yīng)該更少的區(qū)塊,并支付給更多實(shí)際上是誠(chéng)實(shí)挖礦的參與者的獎(jiǎng)勵(lì),即必然虧損,假設(shè)他們不以其他方式彌補(bǔ)這些損失。
如果以這種方式攻擊 FPPS 礦池,它們必須燃燒收入,從口袋里支付礦工以彌補(bǔ)差距。如果是 PPLNS,礦工會(huì)想知道為什么他們沒有得到他們應(yīng)該得到的東西。無(wú)論哪種方式,區(qū)塊挖掘攻擊都是反競(jìng)爭(zhēng)的,可能通過(guò)給受害礦池帶來(lái)不良聲譽(yù)而摧毀它。
從攻擊礦池的角度來(lái)看,假設(shè)它們占受害礦池算力的 5% 。這意味著它們?nèi)匀猾@得預(yù)期收入的 95% ,而礦池看起來(lái)比預(yù)期的幸運(yùn)少了 5% 。這足以輕松摧毀礦池,而在更大的礦池中,重定向算力的 5% 損失將遠(yuǎn)不如意義重大。如果它僅代表更大礦池總算力的 1% ,那么攻擊者只損失了預(yù)期獎(jiǎng)勵(lì)的 1% 的 5% - 0.05% 。對(duì)于任何準(zhǔn)備不道德行事的惡意、規(guī)模相當(dāng)大的礦池來(lái)說(shuō),這是一個(gè)明顯的優(yōu)勢(shì)。
礦池越小,它們?cè)饺菀资艿竭@種攻擊的威脅。礦池越大,它們?cè)接锌赡茏柚垢?jìng)爭(zhēng)對(duì)手的小礦池。隨著大型礦池接近其總算力開始引起社區(qū)恐慌的水平,這種風(fēng)險(xiǎn)增加,這進(jìn)一步促使它們至少將算力藏在較小的礦池中,即使它們實(shí)際上不會(huì)使用它進(jìn)行攻擊或者攻擊的頻率不夠高,以至于問題最終被歸結(jié)為方差。由于網(wǎng)絡(luò)提供了更一致的支付,使更大的礦池已經(jīng)享受到了減少的變異性,這意味著它們能夠在更緊密的邊際內(nèi)運(yùn)作,從而能夠向其礦工收取較少的費(fèi)用。從每個(gè)未受攻擊的礦工/礦池的角度來(lái)看,這種攻擊意味著他們將享受較低的難度,因?yàn)楸忍貛啪W(wǎng)絡(luò)會(huì)調(diào)整以適應(yīng)更少的總區(qū)塊。
區(qū)塊持有是否僅僅是理論上的?絕對(duì)不是。甚至在 2015 年早期,就有幾個(gè)礦池以這種方式遭受了攻擊。阻止這種攻擊非常困難,因?yàn)榈V池必須監(jiān)控所有的礦工,并經(jīng)過(guò)深思熟慮地決定是否將他們踢出礦池和/或者拒絕向他們支付報(bào)酬,如果他們的運(yùn)氣到了統(tǒng)計(jì)上不可能的地步,礦池可以合理地認(rèn)為他們?cè)趷阂庑袨?。這類攻擊還激勵(lì)礦池希望「了解他們的礦工」并監(jiān)管支付,這當(dāng)然使那些希望無(wú)需許可地進(jìn)行挖礦的人的生活變得更加困難。
無(wú)論如何,所有這一切的總體效果是,人們出于另一個(gè)原因更愿意與更大的礦池一起挖礦。
我們?cè)?jīng)聽到大型礦工公開表示,他們正在放棄較小的礦池,因?yàn)樗麄兊玫降闹Ц段催_(dá)到預(yù)期。
這是非常不可取的,因?yàn)楦蟮牡V池和使用它們的更大的礦工更容易受到監(jiān)管負(fù)擔(dān)的困擾,因此更容易參與損害比特幣的行為,甚至超越了區(qū)塊模板的集中化和對(duì)所有區(qū)塊獎(jiǎng)勵(lì)的臨時(shí)托管。
礦池實(shí)際上成為代理人,在「代表」他們的礦工施加官僚主義的廢話。目前,兩個(gè)最大的礦池要求用戶跳過(guò)一堆繁瑣的步驟,包括那些曝露身份的過(guò)程,這不應(yīng)該也不必須成為挖掘比特幣的人在獨(dú)立挖礦之外必須經(jīng)歷的。
關(guān)于區(qū)塊扣留的最后一點(diǎn),除了威脅讓生活對(duì)于較小的礦池和希望與它們一起挖礦的人變得更加困難,我對(duì)那些仍然可能試圖將其視為純理論的人說(shuō),即使它在過(guò)去顯然已經(jīng)發(fā)生過(guò),我們是否認(rèn)為礦池能夠自然而然地保持一致和明顯可容忍的規(guī)模?這意味著新的算力上線總是以某種程度上均勻地分布。我們必須相信一個(gè)礦池可以突然出現(xiàn),迅速增長(zhǎng),然后在大約人們感到不安之前所需的閾值附近,就這樣停下。我們是否看到礦池請(qǐng)求人們停止與他們一起挖礦,或者干脆限制帳戶創(chuàng)建并踢掉那些在現(xiàn)有帳戶內(nèi)超過(guò)允許算力的礦工?當(dāng)然不會(huì)。
更有可能的兩種情景是,礦工正在集體自我調(diào)節(jié)。但這不太可能,因?yàn)楸娝苤?現(xiàn)在與較小的礦池一起挖礦意味著挖礦者賺取的比特幣更少,即使我在本文中提出的原因并不能完全解釋為什么。更不用說(shuō)每次出現(xiàn)質(zhì)量大規(guī)模從一個(gè)礦池遷移的例子都非常引人注目,或者說(shuō)礦池只是誤導(dǎo)人們他們指向的算力。
除此之外,較小的礦池還有另一個(gè)問題:它們可能連續(xù)幾天都找不到區(qū)塊,而較大的礦池則不會(huì)超過(guò)幾個(gè)小時(shí)。這是一個(gè)分辨率問題,你的算力越高,短期內(nèi)你越接近期望。不幸的是,這導(dǎo)致了一個(gè)下限,礦池在這個(gè)下限以下不能指望彌補(bǔ)厄運(yùn)期間的損失,到那時(shí)就變得不可能競(jìng)爭(zhēng)。
難度紀(jì)元之間的兩周期間意味著必須在這兩周內(nèi)找到足夠多的區(qū)塊,以便任何不利運(yùn)氣都有機(jī)會(huì)被隨后的好運(yùn)平衡掉。如果沒有,例如,如果礦池的預(yù)計(jì)出塊速率為每 13 天 1 個(gè)區(qū)塊,并且在難度調(diào)整向上導(dǎo)致它們下降到每 15 天 1 個(gè)區(qū)塊的投影之前未找到區(qū)塊,那么之前的時(shí)間窗口將永遠(yuǎn)關(guān)閉。如果是 PPLNS 礦池,挖礦者的收入就比他們本來(lái)可能要少。如果是 FPPS 礦池,礦池將燒掉大量現(xiàn)金和/或破產(chǎn)。
這意味著只有那么多的礦池可以存在,至少是按照今天的礦池運(yùn)作方式。簡(jiǎn)單地說(shuō),不可能有數(shù)百個(gè),因?yàn)槠渲性S多在不利時(shí)期可能會(huì)崩潰,由于它們擁有不到 1% 的網(wǎng)絡(luò)算力,因此甚至可能無(wú)法可靠地每天找到一個(gè)區(qū)塊,遭遇可能幾周沒有區(qū)塊的時(shí)期。這是比特幣本身對(duì)我們施加的一種限制。
礦工和礦池是如何進(jìn)行通信的?
礦工和礦池之間的通信協(xié)議是 Stratum(正逐漸被 Stratum V2 所取代)。Stratum V1 既古老又存在深刻缺陷。首先,所有通信都是以明文傳輸?shù)?。這意味著互聯(lián)網(wǎng)服務(wù)提供商不僅知道你在挖礦,還了解你挖礦的規(guī)模。任何能夠竊聽你網(wǎng)絡(luò)流量的人都可以執(zhí)行中間人攻擊,導(dǎo)致你的計(jì)算機(jī)和算力被用于別人的挖礦。這在以前曾被未知攻擊者濫用,以便竊取算力,使其遠(yuǎn)離預(yù)期的礦池。
除了一些低效之處,Stratum V1 還未能為礦工提供一種實(shí)用的方式來(lái)構(gòu)建自己的區(qū)塊模板并仍然在礦池中進(jìn)行挖礦。所有這些問題都在極具吸引力的 Stratum V2(最初稱為「GBT」,然后稱為「Better Hash」)中得到解決,我們稍后會(huì)回到這一點(diǎn)。
硬件/固件
在討論礦池/礦工動(dòng)態(tài)之前,我們將偏離一下,因?yàn)槿绻覀儾惶岬皆谌魏斡幸饬x的規(guī)模上只有兩家公司制造 ASIC,即比特大陸和 MicroBT,那么本文將是不完整的。還有其他公司,但實(shí)際上幾乎所有的哈希都發(fā)生在這兩家公司制造的機(jī)器上。
這顯然是不好的,根本原因在于芯片制造非常困難,因此過(guò)于集中化。
本文的范圍不包括在此討論解決方案,但有人正在致力于使家庭挖礦變得更加實(shí)際(在北美,主要問題是需要 220-240 伏特電壓并處理刺耳的噪音)。這些致力于「pleb-mining」項(xiàng)目的人士爭(zhēng)論說(shuō),如果足夠多的普通比特幣用戶能夠做到這一點(diǎn),他們可以開始占到網(wǎng)絡(luò)總算力的相當(dāng)比例,這對(duì)于大多數(shù)規(guī)模運(yùn)營(yíng)的挖礦操作來(lái)說(shuō)更可取,因?yàn)樗鼈兏菀资艿奖O(jiān)管干預(yù)。
這一任務(wù)的難度在于固件是閉源的。即使是可以「越獄」ASIC 的定制固件也往往是閉源的,以確保使用者支付開發(fā)費(fèi)用,即你使用的市場(chǎng)固件成本代表了制作團(tuán)隊(duì)進(jìn)行挖礦。
ASIC 上的原廠固件,尤其是 Bitmain 的,很好地表明了他們對(duì)市場(chǎng)主導(dǎo)地位變得多么自信。除了是閉源的,它顯然是惡意的。在啟動(dòng) Antminer 時(shí),你被迫為他們挖礦,盡管礦工至少可以通過(guò)阻止連接來(lái)防止這種情況發(fā)生,或安裝市場(chǎng)固件,然后支付開發(fā)費(fèi)用,但這些費(fèi)用無(wú)法阻止,否則礦工將拒絕挖礦。Bitmain 已經(jīng)多次被發(fā)現(xiàn)在其礦工的固件中添加惡意后門(請(qǐng)參閱 Antbleed),并積極努力阻止市場(chǎng)固件開發(fā)者。
事實(shí)上,原廠固件這樣做實(shí)在令人震驚,并且明顯突顯了 ASIC 制造領(lǐng)域急需競(jìng)爭(zhēng)的迫切性。
如果網(wǎng)絡(luò)規(guī)則由閉源的比特幣節(jié)點(diǎn)執(zhí)行,任何人都會(huì)感到舒適嗎?此外想象一下,如果我們都知道,這些節(jié)點(diǎn)會(huì)導(dǎo)致用戶向該軟件的開發(fā)者丟失比特幣,有人會(huì)接受嗎?在挖礦方面,幾乎沒有人關(guān)心參與者的主權(quán)。當(dāng)然,節(jié)點(diǎn)軟件和 ASIC 固件的重要性不相等,我們當(dāng)然更加關(guān)注前者,正如我們應(yīng)該的那樣,但是后者并非無(wú)關(guān)緊要,而且顯然被過(guò)度忽視了。
說(shuō)了這么多,讓我們繼續(xù)討論一些解決方案,特別是關(guān)注擴(kuò)大礦工可能性范圍和改進(jìn)現(xiàn)有模型。
P2P OOL
關(guān)于這一點(diǎn),除了它基本上分散了池化挖礦的方方面面之外,沒有什么好說(shuō)的。雖然在小范圍內(nèi)這做了許多理想的事情,但它要求每個(gè)用戶下載、驗(yàn)證并跟蹤每個(gè)其他用戶的份額,并向彼此證明他們?cè)谀0逯姓_計(jì)算所有內(nèi)容。在任何規(guī)模的對(duì)抗環(huán)境中實(shí)現(xiàn)這一點(diǎn)基本上是一項(xiàng)不可能的任務(wù)。由于池化挖礦的基本性質(zhì),所需的資源要比運(yùn)行比特幣全節(jié)點(diǎn)所需的資源多得多,更不用說(shuō)使礦工的工作變得更加復(fù)雜。
因?yàn)檫@些原因,大多數(shù)人都忽略了它,只有更技術(shù)的用戶或理想主義者才會(huì)使用它,可以理解的是,他們無(wú)法帶自己使用其他替代方法進(jìn)行挖礦。
STRATUM V2
這無(wú)疑是最容易解決的問題,它為本文提到的許多問題提供了實(shí)際的解決方案。
首先,通過(guò)允許礦池和礦工之間進(jìn)行加密通信,ISP 和任何其他能夠訪問你的網(wǎng)絡(luò)流量的實(shí)體將不再輕松地意識(shí)到你正在挖礦,或者你的挖礦程度。因此,「MITMing」你以在攻擊者的名義上進(jìn)行哈希運(yùn)算也變得不可能,或者更不那么輕松。
其次,也許最重要的是,它還能夠允許礦工構(gòu)建自己的區(qū)塊模板,因此,盡管礦池仍將是獎(jiǎng)勵(lì)分配的可信協(xié)調(diào)者,并且可能仍然是區(qū)塊獎(jiǎng)勵(lì)的托管方,但這將代表權(quán)力從礦池轉(zhuǎn)向礦工,這無(wú)疑是一件好事。
在一個(gè)以 Stratum V2 為標(biāo)準(zhǔn)的世界中,礦工們熱衷于構(gòu)建自己的模板,理想情況下,礦池會(huì)為構(gòu)建自己模板的礦工提供激勵(lì),這將會(huì)擁有一個(gè)更加強(qiáng)大的比特幣。
社區(qū)基本上是一致的,致力于將挖礦生態(tài)系統(tǒng)升級(jí)到 Stratum V2,但從歷史上看,由于額外的努力(盡管與 p2p ool 相比微不足道)和缺乏激勵(lì),礦工們普遍避免使用這些解決方案。
無(wú)論有或沒有 Stratum V2,都有很大的改進(jìn)空間。需要的是一個(gè)礦池,為礦工提供在挖礦時(shí)直接托管他們幣的能力。這需要一個(gè)礦池(或其礦工)構(gòu)建區(qū)塊模板,在其中礦工的獎(jiǎng)勵(lì)直接支付在每個(gè)區(qū)塊中包含的 coinbase/generation 交易中。在 FPPS 系統(tǒng)下,這在實(shí)踐中是不切實(shí)際的,這意味著任何實(shí)行此方式的礦池都會(huì)面臨一些礦工的不情愿,但那些轉(zhuǎn)變的礦工將享受到更大的透明度,因?yàn)楸忍貛疟旧韺⒃谀硞€(gè)閾值以上直接支付給他們,具有易于驗(yàn)證的補(bǔ)貼和費(fèi)用收入分配。這可以與礦池結(jié)合使用,即使在 Stratum V2 之前,也至少讓礦工們?cè)诮鉀Q區(qū)塊之前了解為他們構(gòu)建的區(qū)塊模板,并且在 Stratum V2 之后只需驗(yàn)證所有礦工是否構(gòu)建了準(zhǔn)確反映獎(jiǎng)勵(lì)分配的模板,而不必所有礦工不斷地進(jìn)行此操作的擴(kuò)展。
礦池還可以通過(guò)為制作自己的區(qū)塊模板的礦工提供激勵(lì)來(lái)解決礦工不愿意這樣做的問題,例如通過(guò)向他們收取更低的費(fèi)用??雌饋?lái),如果礦工在再次變得實(shí)際可行后仍不愿意承擔(dān)這一負(fù)擔(dān),那么這種額外的激勵(lì)可能是必要的。
上述建議將極大地改善情況。
關(guān)于 ASIC 制造和礦池基礎(chǔ)設(shè)施的許多新計(jì)劃和公告正在涌現(xiàn),這對(duì)于任何希望確保挖礦趨向更大程度去中心化的人都應(yīng)該是受歡迎的發(fā)展。
原文鏈接