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