BetterHash是目前正在開(kāi)發(fā)的替代挖礦協(xié)議的代號(hào)。開(kāi)發(fā)完成后,需要有足夠多的礦工愿意切換到使用這些新協(xié)議的礦池,或者有一個(gè)既愿意服務(wù)于舊協(xié)議又愿意服務(wù)于新協(xié)議的現(xiàn)有礦池,而礦工們則逐漸做好切換的準(zhǔn)備。在任何一種情況下,初始的切換都需要足夠多的礦工支持以實(shí)現(xiàn)盈利,否則利潤(rùn)波動(dòng)太大。
最終,礦工們需要理解他們?yōu)槭裁磻?yīng)該切換,并且需要有具備前瞻性思維的不想擁有當(dāng)前礦池的控制權(quán)的礦池運(yùn)營(yíng)者。只有在正確理解和傳達(dá)當(dāng)前系統(tǒng)的問(wèn)題和風(fēng)險(xiǎn)時(shí),這種情況才會(huì)發(fā)生。
免責(zé)聲明:這不是分叉,也不是共識(shí)規(guī)則的改變。
那么現(xiàn)在比特幣挖礦到底出了什么問(wèn)題?
比特幣挖礦存在代表權(quán)問(wèn)題。比特幣礦池不是比特幣礦工,但礦池會(huì)過(guò)度地為他們發(fā)出信號(hào)。礦池運(yùn)行節(jié)點(diǎn),構(gòu)建區(qū)塊,選擇交易,并可以決定將所有礦工的哈希算力用于哪個(gè)分叉。這就產(chǎn)生了一些激勵(lì)問(wèn)題,并且使一些相當(dāng)不受歡迎的政治杠桿成為可能。
BetterHash的目標(biāo)是通過(guò)將這些責(zé)任交還給各個(gè)礦工來(lái)解決這一問(wèn)題,并為了網(wǎng)絡(luò)的更大利益而剝奪礦池的影響力。有了BetterHash,礦工們就可以控制自己的哈希算力,而礦池只會(huì)協(xié)調(diào)他們并分配獎(jiǎng)勵(lì)。
本文旨在強(qiáng)調(diào)在當(dāng)前挖礦環(huán)境下礦池可以實(shí)施的濫用類型(如果采用類似于BetterHash的協(xié)議則無(wú)法實(shí)施),它以犧牲礦工的最大利益為代價(jià)。礦池也可能被黑客攻擊,然后由攻擊者使用礦池實(shí)施該行為。在我們開(kāi)始之前,讓我們簡(jiǎn)單地回顧一下現(xiàn)狀和BetterHash協(xié)議即將帶來(lái)的結(jié)構(gòu)性差異。
目前,許多礦工甚至都不運(yùn)行節(jié)點(diǎn),只需要使用諸如Stratum之類的協(xié)議將他們的ASIC連接到一個(gè)礦池。礦池運(yùn)行節(jié)點(diǎn),選擇交易,創(chuàng)建一個(gè)待挖區(qū)塊,然后將該區(qū)塊發(fā)送給所有接入礦池的礦工,礦工開(kāi)始對(duì)其進(jìn)行哈希計(jì)算。一旦一個(gè)礦工成功地挖出了一個(gè)區(qū)塊,它就會(huì)被送回礦池中,然后輸出到比特幣網(wǎng)絡(luò)。
使用BetterHash,礦工將單獨(dú)運(yùn)行自己的節(jié)點(diǎn),選擇交易,創(chuàng)建一個(gè)區(qū)塊,然后開(kāi)始挖礦。該區(qū)塊將被配置成支付給礦池,就像Stratum協(xié)議一樣,那些未成功的區(qū)塊(稱為“份額”)將被礦工們用來(lái)證明他們一直在為該礦池挖礦。
通過(guò)更換創(chuàng)建待挖區(qū)塊模板的礦工,而不是礦池所有者,然后圍繞這個(gè)概念構(gòu)建一個(gè)新的協(xié)議,BetterHash繞開(kāi)了我們要討論的所有問(wèn)題。
對(duì)于目前正在開(kāi)發(fā)中的BetterHash協(xié)議的更多技術(shù)概述,看Matt Corallo的演講應(yīng)該就足夠了,不必理解本文討論的問(wèn)題,因?yàn)閺母拍钌现v,BetterHash在客觀上是更好的,不需要一個(gè)完整的代碼實(shí)現(xiàn)來(lái)理解這有多重要。
值得注意的是,“BetterHash”不是最終確定的名字,正如Matt Corallo中所提到的。
現(xiàn)狀
為了理解為什么切換到BetterHash如此重要,讓我們列舉出如果不使用BetterHash,當(dāng)前礦工將會(huì)面臨的所有問(wèn)題。
簡(jiǎn)言之,你自己挖礦的回報(bào)率極有可能太不穩(wěn)定,這就是為什么早在2010年礦池就已經(jīng)存在的原因。批評(píng)者的矛頭會(huì)指向礦池的分布,并聲稱比特幣挖礦是中心化的,盡管反駁者聲稱,礦工們可以切換他們使用的礦池,
但并不總是那么簡(jiǎn)單。如果你是一名礦工,你的選擇僅限于少數(shù)幾個(gè)礦池,每個(gè)礦池都有你可能同意或不同意的服務(wù)條款。礦池太大,無(wú)法提供多種選擇。
最后,你別無(wú)選擇,只能選擇最適合你的礦池,如果大多數(shù)或所有的礦池都決定把你不喜歡或者不同意的一些事情變成規(guī)范,那么實(shí)際上你沒(méi)有選擇,只能接受,因?yàn)樽约簡(jiǎn)?dòng)礦池可能無(wú)法產(chǎn)生足夠穩(wěn)定的收入流。現(xiàn)存的礦池相對(duì)來(lái)說(shuō)比較大,每個(gè)礦池旗下都有很多礦工,礦池有能力控制礦工的哈希算力,做一些我們將逐一討論的有問(wèn)題的事情。
礦池可以:
? 決定哪些交易打包或者不打包進(jìn)區(qū)塊
? 被賄賂后在適當(dāng)?shù)臈l件下重組區(qū)塊鏈
? 積壓交易內(nèi)存池以提高費(fèi)率
? 未經(jīng)礦工同意切換哈希算力用于挖競(jìng)爭(zhēng)性分叉
? 非誠(chéng)實(shí)挖礦,他們這樣做應(yīng)該是別有用心的
? 使用礦工的哈希算力為提案提供支持
正如前面提到的,所有這些問(wèn)題基本上都是因?yàn)闃?gòu)建比特幣區(qū)塊的是礦池而非礦工所直接導(dǎo)致的。伴隨著礦池的濫用,還有第三方對(duì)礦池的可用濫用。
礦池可能被黑客攻擊,然后黑客就可以潛在地進(jìn)行這些操作,或者礦池可能遭受網(wǎng)絡(luò)層的攻擊,然后礦工們就要忙于查出問(wèn)題或者切換到另一個(gè)礦池。有了BetterHash,攻擊礦池?zé)o法控制礦工的哈希算力,而針對(duì)礦池的網(wǎng)絡(luò)層攻擊不會(huì)對(duì)使用該礦池的礦工產(chǎn)生直接影響。
網(wǎng)絡(luò)層的攻擊和礦池濫用礦工的哈希算力同樣令人擔(dān)憂。攻擊者可以削減大量的哈希算力,或者根據(jù)需要進(jìn)行切換。
BGP攻擊很容易完成,至少可以說(shuō),從中恢復(fù)所需的時(shí)間和資源較大的,讓人擔(dān)憂的。
毫無(wú)疑問(wèn),一個(gè)可以抵御這類問(wèn)題的協(xié)議是很有價(jià)值的,但是針對(duì)前所未聞的潛在問(wèn)題的解決方案并非總是能很好地表達(dá)其必要性。我想展示一些假想的場(chǎng)景和一些已經(jīng)以某種方式發(fā)生的場(chǎng)景,以便更容易理解其必要性。讓我們仔細(xì)看看它們都是什么。(請(qǐng)注意,其中一些是假設(shè)性的,不太可能實(shí)際發(fā)生,有些需要非常特別的情況,而另一些則已經(jīng)以一種或另一種形式發(fā)生。)
1:礦池決定哪些交易打包進(jìn)區(qū)塊
在討論51%攻擊的可能性時(shí),經(jīng)常會(huì)提到一個(gè)問(wèn)題,如果足夠多的礦池被說(shuō)服將某個(gè)交易類型或者地址列入黑名單,即使是臨時(shí)的,那么盡管作為礦工的你對(duì)此毫不關(guān)心,你也已經(jīng)參與其中了。這樣做的動(dòng)機(jī)可能是脅迫,也可能只是經(jīng)濟(jì)上的激勵(lì),不管是礦池自己的,還是支付給礦池的外部激勵(lì)。
場(chǎng)景#1:審查某個(gè)服務(wù)的熱錢包
想象一下,受一家競(jìng)爭(zhēng)性交易所指使,某家交易所的熱錢包被40%的礦池列入黑名單?它不會(huì)無(wú)限期地阻止錢包進(jìn)行交易,但會(huì)明顯地減慢它們的交易處理速度。作為一個(gè)礦工,也許你認(rèn)為這種行為對(duì)生態(tài)系統(tǒng)是不健康的,但你沒(méi)有其他選擇,因?yàn)槟銓?duì)礦池秘密進(jìn)行的操作沒(méi)有發(fā)言權(quán)。
場(chǎng)景#2:審查保密交易類型
比特幣目前沒(méi)有保密交易,可能永遠(yuǎn)不會(huì)有保密交易,但它有不同的交易類型。如果礦池有這么做的理由,那么理論上他們可以忽略這些交易,因而特定類型的交易積壓會(huì)加劇,使得費(fèi)用提高,并可能降低使用這些特定交易的任何服務(wù)的速度。
2:礦池被賄賂并重組區(qū)塊鏈
跟上面的例子類似,礦池可以決定他們不希望特定版本的交易被包含在賬本中,然后嘗試執(zhí)行該決定。這種情況幾乎不可能自發(fā)地或者事后進(jìn)行協(xié)調(diào),但如果礦池傾向于這一點(diǎn),那么只需要少數(shù)幾個(gè)礦池構(gòu)建軟件以準(zhǔn)備接受賄賂,然后立即采取行動(dòng),而礦工們對(duì)此沒(méi)有任何發(fā)言權(quán)。
如果和礦工分享賄賂,礦工們可能會(huì)認(rèn)為這符合他們的最佳利益,但是他們給礦工的份額較高的話,他們就沒(méi)有動(dòng)力去做這件事。 此外,在黑客攻擊的情況下,黑客可以反賄賂礦池,把水?dāng)嚨酶鼫啞?/p>
這是某個(gè)交易所遭到黑客攻擊后的一個(gè)建議——盡管礦池沒(méi)有為此做好準(zhǔn)備——許多人用這個(gè)來(lái)討論比特幣挖礦是中心化的,而實(shí)際上只是因?yàn)榈V池具有過(guò)高的杠桿(對(duì)于礦工)甚至可能會(huì)被濫用。 注意如果使用BetterHash,其中討論的內(nèi)容都不重要,因?yàn)槿绻堑V工而非礦池構(gòu)建區(qū)塊,這些問(wèn)題都不可能存在。
3:礦池積壓交易以提高費(fèi)率
礦池不僅可以阻止特定類型的交易,還可以選擇忽略低于特定費(fèi)率的所有交易,從而提高每個(gè)人的交易成本。有些人認(rèn)為這是一個(gè)微不足道的問(wèn)題,因?yàn)檩^小的礦池將利用機(jī)會(huì)打包這些交易,因?yàn)閷?duì)它們的獎(jiǎng)勵(lì)更大,從長(zhǎng)遠(yuǎn)來(lái)看是獎(jiǎng)勵(lì)弱勢(shì)群體。我不認(rèn)為這是微不足道的,因?yàn)槲覀円呀?jīng)看到了這種行為的效果如何在政治舞臺(tái)上引導(dǎo)關(guān)于短期費(fèi)用上漲的爭(zhēng)論。
收費(fèi)市場(chǎng)遲早會(huì)存在,但將網(wǎng)絡(luò)限制在共識(shí)強(qiáng)制的限制之下,不應(yīng)該成為少數(shù)人經(jīng)營(yíng)礦池的工具。雖然在礦池級(jí)別可能存在對(duì)抗這種行為的競(jìng)爭(zhēng),但我們?nèi)匀豢吹匠鲇谪?cái)務(wù)激勵(lì)選擇挖空區(qū)塊的礦池,以及某些只打包交易費(fèi)用高于5聰/字節(jié)的交易的礦池的例子,即使仍有剩余空間可以容納積壓的交易。
這可能需要在礦池之間進(jìn)行一些協(xié)調(diào)才能產(chǎn)生效果,但是如果激勵(lì)一致,那么協(xié)調(diào)就不難甚至不必要了,現(xiàn)在一小部分礦池運(yùn)營(yíng)者將擁有一個(gè)其他人都沒(méi)有的有價(jià)值的工具。
礦池也可以秘密地做到這一點(diǎn)。他們不需要?jiǎng)?chuàng)建“未填滿”的區(qū)塊,而是可以用看起來(lái)合法但未經(jīng)廣播的交易來(lái)填充這些區(qū)塊,然后將這些交易重新收回去,從而引導(dǎo)個(gè)人、企業(yè)和費(fèi)用評(píng)估者們相信新的“現(xiàn)行費(fèi)率”是真實(shí)的。
一旦市場(chǎng)開(kāi)始支付更高的價(jià)格,那么礦池就可以重新調(diào)整他們的惡意交易。在下面的圖片中,大小占底部50%的積壓交易僅占收集的礦工獎(jiǎng)勵(lì)的~7%。獎(jiǎng)勵(lì)與積壓交易的中位費(fèi)率呈非線性關(guān)系,這對(duì)于任何想要嘗試這一點(diǎn)的大礦池來(lái)說(shuō)都是一項(xiàng)有利可圖的事情。
4:礦池未經(jīng)同意切換哈希算力
礦池可以通過(guò)多種方式選擇要擴(kuò)展哪條鏈。礦池給礦工們提供一個(gè)區(qū)塊,實(shí)際上只需要說(shuō)“挖這個(gè)塊”,礦工們就開(kāi)始挖礦直到有人挖出這個(gè)區(qū)塊,然后礦池給他們提供下一個(gè)區(qū)塊。礦工們不會(huì)自己跟蹤不同的分叉,他們通常會(huì)假設(shè)礦池是誠(chéng)實(shí)的,并且會(huì)挖你希望他們挖的代幣/分叉。
許多礦工沒(méi)有運(yùn)行節(jié)點(diǎn),因此他們不會(huì)驗(yàn)證共識(shí)規(guī)則。當(dāng)?shù)V池決定它們也不驗(yàn)證區(qū)塊,而是在無(wú)效區(qū)塊之上進(jìn)行“SPV挖礦”時(shí),就導(dǎo)致了“以前出現(xiàn)的問(wèn)題”。作為一名礦工,你應(yīng)該想知道你的時(shí)間和金錢沒(méi)有被你使用的礦池浪費(fèi)掉。
一個(gè)場(chǎng)景:
你是一名礦工,是Pool_A的一部分。你會(huì)因?yàn)槟闾峁┙o礦池的哈希算力而收到源源不斷的支付費(fèi)用。你已經(jīng)完成了計(jì)算和檢查,而且這永遠(yuǎn)不會(huì)改變。
Pool_A的運(yùn)營(yíng)者決定使用你的哈希算力為另一個(gè)處于危險(xiǎn)中的鏈提供“生命支持”。一個(gè)你不關(guān)心、可能不喜歡或認(rèn)為是競(jìng)爭(zhēng)者的鏈。礦池繼續(xù)為你的SHA256計(jì)算平臺(tái)支付“市場(chǎng)價(jià)格”的費(fèi)用,但你的哈希算力并沒(méi)有用在你所認(rèn)為的鏈上挖礦。(藍(lán)狐筆記注:現(xiàn)實(shí)中已經(jīng)出現(xiàn)類似的情況。)
由于現(xiàn)在有一整個(gè)礦池在一條不同的鏈上挖礦,網(wǎng)絡(luò)的區(qū)塊生產(chǎn)速度減慢,獎(jiǎng)勵(lì)減少——并且市場(chǎng)可能被愚弄,認(rèn)為另一條鏈有比實(shí)際上更多的支持,這會(huì)降低你支持的鏈的潛在價(jià)值。作為一名礦工,這可能是你想要避免的一種情況。不幸的是,這種情況在現(xiàn)實(shí)生活中已經(jīng)發(fā)生了:
https://www.reddit.com/r/btc/comments/9y5qpj/roger_ver_calvin_if_you_happen_to_watch_this/e9yj4fy/?context=10000
https://www.reddit.com/r/btc/comments/9x2ekv/all_poolbitcoincom_hashrate_to_mine_abc_chain_for/e9ozqes/
5:礦池使用礦工的哈希算力進(jìn)行不誠(chéng)實(shí)挖礦
考慮一下上面的場(chǎng)景,這是用來(lái)說(shuō)明這將如何進(jìn)行的一個(gè)最好的例子:礦池對(duì)礦工的意圖是“誠(chéng)實(shí)的”,他們至少是“試圖”補(bǔ)償他們認(rèn)為的財(cái)務(wù)負(fù)擔(dān)。他們讓礦工們抬起頭來(lái),告訴他們?nèi)绻麄儾幌矚g,那么就離開(kāi)——并非總是這么簡(jiǎn)單。如果他們不誠(chéng)實(shí)怎么辦?
如果一個(gè)礦池顯示他們正在挖兩條鏈,分別為80%和20%的黃色和綠色,而你正在通過(guò)他們挖綠色鏈,你怎么知道他們是誠(chéng)實(shí)的,只有20%的礦工支持這條鏈?他們可以單獨(dú)告訴每一個(gè)礦工,他們是那20%,他們是唯一支持它的人,而事實(shí)上并不是。
礦工們將不得不通過(guò)其他渠道進(jìn)行協(xié)調(diào),累加他們的哈希算力以查明是否被欺騙。主要的問(wèn)題是,許多礦工是私密的,許多人希望保持私密,并且應(yīng)該保持私密。像這樣協(xié)調(diào)以避免被欺騙和操縱是一個(gè)不切實(shí)際的解決辦法。
這類謊言不僅允許完全利用所有礦工的聯(lián)合哈希算力,而且造假可能影響市場(chǎng)對(duì)每一條鏈的估值。任何重視比特幣網(wǎng)絡(luò)長(zhǎng)期健康的人都希望避免這種情況。
6:礦池利用你的哈希算力支持某一提案
執(zhí)行這種操作甚至不需要實(shí)際的鏈分叉。由于礦池在實(shí)際分叉之前代表他旗下的所有哈希算力發(fā)起了投票,像下面這樣的情況會(huì)導(dǎo)致80%的哈希算力支持或反對(duì)某個(gè)提議或分叉。
考慮到投票不是財(cái)務(wù)承諾,這樣做的風(fēng)險(xiǎn)很小。如果你想嘗試將市場(chǎng)轉(zhuǎn)向你想要的方向,只需要說(shuō)服運(yùn)行這些礦池的少數(shù)人臨時(shí)發(fā)出支持信號(hào)。如果它失敗了,就像我們見(jiàn)證過(guò)的NO2X,不會(huì)對(duì)礦池造成任何損失。不管結(jié)果如何,每個(gè)人的哈希算力仍然有效。
沒(méi)有人確切知道所有礦池實(shí)際擁有的哈希算力百分比與使用礦池的其他礦工擁有的百分比,但額外的透明度無(wú)疑會(huì)有效地為沉默的大多數(shù)哈希算力帶來(lái)好處。
沒(méi)有人想要另一個(gè)NO2X場(chǎng)景,也沒(méi)有人能夠“決定”大多數(shù)人在他們真正不支持的情況下支持什么。如果幾年前BetterHash就已經(jīng)存在,也許NO2X運(yùn)動(dòng)就沒(méi)必要發(fā)起了。
結(jié)論:觀點(diǎn)很重要
我預(yù)計(jì)人們?cè)陂喿x本文時(shí)會(huì)有兩種不同的常見(jiàn)反應(yīng),它們都是我從少數(shù)讀者那里得到的。我認(rèn)為重要的是要為讀者(也就是你)強(qiáng)調(diào)這一點(diǎn)并解決這個(gè)問(wèn)題。
1.“我不知道礦池有這么大的能量?!?/p>
2.“這可以使礦池看起來(lái)比實(shí)際擁有更多的控制權(quán)?!?/p>
現(xiàn)在,對(duì)于“元考慮因素”,乍一看,人們可能會(huì)認(rèn)為:“第一個(gè)人可能對(duì)挖礦或者比特幣不太了解,第二個(gè)人已經(jīng)接近了真相,可以充分了解細(xì)微差別并且更恰當(dāng)?shù)睾饬窟@些場(chǎng)景?!?/p>
另一種可能的看法是:“第一個(gè)人提供了一個(gè)新的、真實(shí)的視角來(lái)了解這個(gè)系統(tǒng)中的權(quán)力平衡,而第二個(gè)人已經(jīng)存在了一段時(shí)間,對(duì)事情的運(yùn)作方式和潛在威脅變得過(guò)于舒適和不敏感?!?/p>
這兩種初始反應(yīng)都是合理的。這兩個(gè)元考慮因素也都是有效的。如果礦池沒(méi)有濫用系統(tǒng)當(dāng)前設(shè)置的潛在可能,那么就無(wú)法驅(qū)動(dòng)去開(kāi)發(fā)更好的協(xié)議,你也不會(huì)閱讀本文。相反,如果礦池對(duì)比特幣構(gòu)成了如此嚴(yán)重的威脅,那么到目前為止,它們已經(jīng)以無(wú)法彌補(bǔ)的破壞性方式濫用了自己的權(quán)力。
除了這些兩極分化的觀點(diǎn),我希望你的收獲是這樣的:
需要實(shí)現(xiàn)BetterHash,因?yàn)锽etterHash客觀上比我們現(xiàn)在擁有的更好。不應(yīng)該存在礦池濫用和網(wǎng)絡(luò)攻擊的可能,我們可以簡(jiǎn)單地讓礦工運(yùn)行他們自己的節(jié)點(diǎn)從而創(chuàng)建自己的區(qū)塊來(lái)緩解這些問(wèn)題,并且使用一個(gè)更好的礦池協(xié)議,它圍繞簡(jiǎn)單但根本的改變而構(gòu)建。如果我們不提前解決我們知道如何解決的問(wèn)題,總有可能出現(xiàn)嚴(yán)重的問(wèn)題,所以讓我們來(lái)解決它吧。
評(píng)論