如何實現比特幣挖礦的去中心化?

買賣虛擬貨幣

前言:因為礦池有中心化的趨勢,比特幣在去中心化方面常遭受詬病。當前的礦池有較大的槓桿力量,它可以決定哪些交易可以被打包,切換算力挖不同的分叉鏈等。本文作者StopAndDecrypt提出用新的協議BetterHash來代替目前的挖礦協議,它試圖把原來礦池的權力部分讓渡給了礦工。不過,它要真正實施,需要得到當前礦池的同意,這並非易事。本文由“藍狐筆記”社群“鑫鑫”翻譯。原文標題是:“BetterHash:用新雜湊協議實現比特幣挖礦的去中心化”。

BetterHash是目前正在開發的替代挖礦協議的代號。開發完成後,需要有足夠多的礦工願意切換到使用這些新協議的礦池,或者有一個既願意服務於舊協議又願意服務於新協議的現有礦池,而礦工們則逐漸做好切換的準備。在任何一種情況下,初始的切換都需要足夠多的礦工支援以實現盈利,否則利潤波動太大。

最終,礦工們需要理解他們為什麼應該切換,並且需要有具備前瞻性思維的不想擁有當前礦池的控制權的礦池運營者。只有在正確理解和傳達當前系統的問題和風險時,這種情況才會發生。

免責宣告:這不是分叉,也不是共識規則的改變。

那麼現在比特幣挖礦到底出了什麼問題?

比特幣挖礦存在代表權問題。比特幣礦池不是比特幣礦工,但礦池會過度地為他們發出訊號。礦池執行節點,構建區塊,選擇交易,並可以決定將所有礦工的雜湊算力用於哪個分叉。這就產生了一些激勵問題,並且使一些相當不受歡迎的政治槓桿成為可能。

BetterHash的目標是透過將這些責任交還給各個礦工來解決這一問題,併為了網路的更大利益而剝奪礦池的影響力。有了BetterHash,礦工們就可以控制自己的雜湊算力,而礦池只會協調他們並分配獎勵。

礦池雜湊算力分佈,對比Slush Pool投射到每個礦池的的礦工分佈

本文旨在強調在當前挖礦環境下礦池可以實施的濫用型別(如果採用類似於BetterHash的協議則無法實施),它以犧牲礦工的最大利益為代價。礦池也可能被駭客攻擊,然後由攻擊者使用礦池實施該行為。在我們開始之前,讓我們簡單地回顧一下現狀和BetterHash協議即將帶來的結構性差異。

目前,許多礦工甚至都不執行節點,只需要使用諸如Stratum之類的協議將他們的ASIC連線到一個礦池。礦池執行節點,選擇交易,建立一個待挖區塊,然後將該區塊傳送給所有接入礦池的礦工,礦工開始對其進行雜湊計算。一旦一個礦工成功地挖出了一個區塊,它就會被送回礦池中,然後輸出到比特幣網路。

使用BetterHash,礦工將單獨執行自己的節點,選擇交易,建立一個區塊,然後開始挖礦。該區塊將被配置成支付給礦池,就像Stratum協議一樣,那些未成功的區塊(稱為“份額”)將被礦工們用來證明他們一直在為該礦池挖礦。

透過更換建立待挖區塊模板的礦工,而不是礦池所有者,然後圍繞這個概念構建一個新的協議,BetterHash繞開了我們要討論的所有問題。

對於目前正在開發中的BetterHash協議的更多技術概述,看Matt Corallo的演講應該就足夠了,不必理解本文討論的問題,因為從概念上講,BetterHash在客觀上是更好的,不需要一個完整的程式碼實現來理解這有多重要。

值得注意的是,“BetterHash”不是最終確定的名字,正如Matt Corallo中所提到的。

現狀

為了理解為什麼切換到BetterHash如此重要,讓我們列舉出如果不使用BetterHash,當前礦工將會面臨的所有問題。

簡言之,你自己挖礦的回報率極有可能太不穩定,這就是為什麼早在2010年礦池就已經存在的原因。批評者的矛頭會指向礦池的分佈,並聲稱比特幣挖礦是中心化的,儘管反駁者聲稱,礦工們可以切換他們使用的礦池,

但並不總是那麼簡單。如果你是一名礦工,你的選擇僅限於少數幾個礦池,每個礦池都有你可能同意或不同意的服務條款。礦池太大,無法提供多種選擇。

最後,你別無選擇,只能選擇最適合你的礦池,如果大多數或所有的礦池都決定把你不喜歡或者不同意的一些事情變成規範,那麼實際上你沒有選擇,只能接受,因為自己啟動礦池可能無法產生足夠穩定的收入流。現存的礦池相對來說比較大,每個礦池旗下都有很多礦工,礦池有能力控制礦工的雜湊算力,做一些我們將逐一討論的有問題的事情。

礦池可以:

• 決定哪些交易打包或者不打包進區塊

• 被賄賂後在適當的條件下重組區塊鏈

• 積壓交易記憶體池以提高費率

• 未經礦工同意切換雜湊算力用於挖競爭性分叉

• 非誠實挖礦,他們這樣做應該是別有用心的

• 使用礦工的雜湊算力為提案提供支援

正如前面提到的,所有這些問題基本上都是因為構建比特幣區塊的是礦池而非礦工所直接導致的。伴隨著礦池的濫用,還有第三方對礦池的可用濫用。

礦池可能被駭客攻擊,然後駭客就可以潛在地進行這些操作,或者礦池可能遭受網路層的攻擊,然後礦工們就要忙於查出問題或者切換到另一個礦池。有了BetterHash,攻擊礦池無法控制礦工的雜湊算力,而針對礦池的網路層攻擊不會對使用該礦池的礦工產生直接影響。

網路層的攻擊和礦池濫用礦工的雜湊算力同樣令人擔憂。攻擊者可以削減大量的雜湊算力,或者根據需要進行切換。BGP攻擊很容易完成,至少可以說,從中恢復所需的時間和資源較大的,讓人擔憂的。

毫無疑問,一個可以抵禦這類問題的協議是很有價值的,但是針對前所未聞的潛在問題的解決方案並非總是能很好地表達其必要性。我想展示一些假想的場景和一些已經以某種方式發生的場景,以便更容易理解其必要性。讓我們仔細看看它們都是什麼。(請注意,其中一些是假設性的,不太可能實際發生,有些需要非常特別的情況,而另一些則已經以一種或另一種形式發生。)

1:礦池決定哪些交易打包進區塊

在討論51%攻擊的可能性時,經常會提到一個問題,如果足夠多的礦池被說服將某個交易型別或者地址列入黑名單,即使是臨時的,那麼儘管作為礦工的你對此毫不關心,你也已經參與其中了。這樣做的動機可能是脅迫,也可能只是經濟上的激勵,不管是礦池自己的,還是支付給礦池的外部激勵。

場景#1:審查某個服務的熱錢包

想象一下,受一家競爭性交易所指使,某家交易所的熱錢包被40%的礦池列入黑名單?它不會無限期地阻止錢包進行交易,但會明顯地減慢它們的交易處理速度。作為一個礦工,也許你認為這種行為對生態系統是不健康的,但你沒有其他選擇,因為你對礦池秘密進行的操作沒有發言權。

場景#2:審查保密交易型別

比特幣目前沒有保密交易,可能永遠不會有保密交易,但它有不同的交易型別。如果礦池有這麼做的理由,那麼理論上他們可以忽略這些交易,因而特定型別的交易積壓會加劇,使得費用提高,並可能降低使用這些特定交易的任何服務的速度。

2:礦池被賄賂並重組區塊鏈

跟上面的例子類似,礦池可以決定他們不希望特定版本的交易被包含在賬本中,然後嘗試執行該決定。這種情況幾乎不可能自發地或者事後進行協調,但如果礦池傾向於這一點,那麼只需要少數幾個礦池構建軟體以準備接受賄賂,然後立即採取行動,而礦工們對此沒有任何發言權。

如果和礦工分享賄賂,礦工們可能會認為這符合他們的最佳利益,但是他們給礦工的份額較高的話,他們就沒有動力去做這件事。 此外,在駭客攻擊的情況下,駭客可以反賄賂礦池,把水攪得更渾。

這是某個交易所遭到駭客攻擊後的一個建議——儘管礦池沒有為此做好準備——許多人用這個來討論比特幣挖礦是中心化的,而實際上只是因為礦池具有過高的槓桿(對於礦工)甚至可能會被濫用。 注意如果使用BetterHash,其中討論的內容都不重要,因為如果是礦工而非礦池構建區塊,這些問題都不可能存在。

3:礦池積壓交易以提高費率

礦池不僅可以阻止特定型別的交易,還可以選擇忽略低於特定費率的所有交易,從而提高每個人的交易成本。有些人認為這是一個微不足道的問題,因為較小的礦池將利用機會打包這些交易,因為對它們的獎勵更大,從長遠來看是獎勵弱勢群體。我不認為這是微不足道的,因為我們已經看到了這種行為的效果如何在政治舞臺上引導關於短期費用上漲的爭論。

收費市場遲早會存在,但將網路限制在共識強制的限制之下,不應該成為少數人經營礦池的工具。雖然在礦池級別可能存在對抗這種行為的競爭,但我們仍然看到出於財務激勵選擇挖空區塊的礦池,以及某些只打包交易費用高於5聰/位元組的交易的礦池的例子,即使仍有剩餘空間可以容納積壓的交易。

這可能需要在礦池之間進行一些協調才能產生效果,但是如果激勵一致,那麼協調就不難甚至不必要了,現在一小部分礦池運營者將擁有一個其他人都沒有的有價值的工具。

礦池也可以秘密地做到這一點。他們不需要建立“未填滿”的區塊,而是可以用看起來合法但未經廣播的交易來填充這些區塊,然後將這些交易重新收回去,從而引導個人、企業和費用評估者們相信新的“現行費率”是真實的。

一旦市場開始支付更高的價格,那麼礦池就可以重新調整他們的惡意交易。在下面的圖片中,大小佔底部50%的積壓交易僅佔收集的礦工獎勵的~7%。獎勵與積壓交易的中位費率呈非線性關係,這對於任何想要嘗試這一點的大礦池來說都是一項有利可圖的事情。

https://www.reddit.com/r/Bitcoin/comments/7lwajx/spamming_the_network_unfortunately_doesnt_result/

4:礦池未經同意切換雜湊算力

礦池可以透過多種方式選擇要擴充套件哪條鏈。礦池給礦工們提供一個區塊,實際上只需要說“挖這個塊”,礦工們就開始挖礦直到有人挖出這個區塊,然後礦池給他們提供下一個區塊。礦工們不會自己跟蹤不同的分叉,他們通常會假設礦池是誠實的,並且會挖你希望他們挖的代幣/分叉。

許多礦工沒有執行節點,因此他們不會驗證共識規則。當礦池決定它們也不驗證區塊,而是在無效區塊之上進行“SPV挖礦”時,就導致了“以前出現的問題”。作為一名礦工,你應該想知道你的時間和金錢沒有被你使用的礦池浪費掉。

一個場景:

你是一名礦工,是Pool_A的一部分。你會因為你提供給礦池的雜湊算力而收到源源不斷的支付費用。你已經完成了計算和檢查,而且這永遠不會改變。

Pool_A的運營者決定使用你的雜湊算力為另一個處於危險中的鏈提供“生命支援”。一個你不關心、可能不喜歡或認為是競爭者的鏈。礦池繼續為你的SHA256計算平臺支付“市場價格”的費用,但你的雜湊算力並沒有用在你所認為的鏈上挖礦。(藍狐筆記注:現實中已經出現類似的情況。)

由於現在有一整個礦池在一條不同的鏈上挖礦,網路的區塊生產速度減慢,獎勵減少——並且市場可能被愚弄,認為另一條鏈有比實際上更多的支援,這會降低你支援的鏈的潛在價值。作為一名礦工,這可能是你想要避免的一種情況。不幸的是,這種情況在現實生活中已經發生了:

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:礦池使用礦工的雜湊算力進行不誠實挖礦

考慮一下上面的場景,這是用來說明這將如何進行的一個最好的例子:礦池對礦工的意圖是“誠實的”,他們至少是“試圖”補償他們認為的財務負擔。他們讓礦工們抬起頭來,告訴他們如果他們不喜歡,那麼就離開——並非總是這麼簡單。如果他們不誠實怎麼辦?

分配的雜湊算力是礦池對世界發出的訊號,但不一定是礦工們打算挖的。

如果一個礦池顯示他們正在挖兩條鏈,分別為80%和20%的黃色和綠色,而你正在透過他們挖綠色鏈,你怎麼知道他們是誠實的,只有20%的礦工支援這條鏈?他們可以單獨告訴每一個礦工,他們是那20%,他們是唯一支援它的人,而事實上並不是。

礦工們將不得不透過其他渠道進行協調,累加他們的雜湊算力以查明是否被欺騙。主要的問題是,許多礦工是私密的,許多人希望保持私密,並且應該保持私密。像這樣協調以避免被欺騙和操縱是一個不切實際的解決辦法。

這類謊言不僅允許完全利用所有礦工的聯合雜湊算力,而且造假可能影響市場對每一條鏈的估值。任何重視比特幣網路長期健康的人都希望避免這種情況。

6:礦池利用你的雜湊算力支援某一提案

執行這種操作甚至不需要實際的鏈分叉。由於礦池在實際分叉之前代表他旗下的所有雜湊算力發起了投票,像下面這樣的情況會導致80%的雜湊算力支援或反對某個提議或分叉。

考慮到投票不是財務承諾,這樣做的風險很小。如果你想嘗試將市場轉向你想要的方向,只需要說服執行這些礦池的少數人臨時發出支援訊號。如果它失敗了,就像我們見證過的NO2X,不會對礦池造成任何損失。不管結果如何,每個人的雜湊算力仍然有效。

每列代表一個礦池。每列的頂部代表該礦池擁有的雜湊算力,而底部則代表使用該礦池的其他礦工的種類。

沒有人確切知道所有礦池實際擁有的雜湊算力百分比與使用礦池的其他礦工擁有的百分比,但額外的透明度無疑會有效地為沉默的大多數雜湊算力帶來好處。

沒有人想要另一個NO2X場景,也沒有人能夠“決定”大多數人在他們真正不支援的情況下支援什麼。如果幾年前BetterHash就已經存在,也許NO2X運動就沒必要發起了。

礦工們沒有為Segwit2X投票,是礦池投的。

結論:觀點很重要

我預計人們在閱讀本文時會有兩種不同的常見反應,它們都是我從少數讀者那裡得到的。我認為重要的是要為讀者(也就是你)強調這一點並解決這個問題。

1.“我不知道礦池有這麼大的能量。”

2.“這可以使礦池看起來比實際擁有更多的控制權。”

現在,對於“元考慮因素”,乍一看,人們可能會認為:

“第一個人可能對挖礦或者比特幣不太瞭解,第二個人已經接近了真相,可以充分了解細微差別並且更恰當地衡量這些場景。”

另一種可能的看法是:

“第一個人提供了一個新的、真實的視角來了解這個系統中的權力平衡,而第二個人已經存在了一段時間,對事情的運作方式和潛在威脅變得過於舒適和不敏感。”

這兩種初始反應都是合理的。這兩個元考慮因素也都是有效的。如果礦池沒有濫用系統當前設定的潛在可能,那麼就無法驅動去開發更好的協議,你也不會閱讀本文。相反,如果礦池對比特幣構成了如此嚴重的威脅,那麼到目前為止,它們已經以無法彌補的破壞性方式濫用了自己的權力。

除了這些兩極分化的觀點,我希望你的收穫是這樣的:

需要實現BetterHash,因為BetterHash客觀上比我們現在擁有的更好。不應該存在礦池濫用和網路攻擊的可能,我們可以簡單地讓礦工執行他們自己的節點從而建立自己的區塊來緩解這些問題,並且使用一個更好的礦池協議,它圍繞簡單但根本的改變而構建。如果我們不提前解決我們知道如何解決的問題,總有可能出現嚴重的問題,所以讓我們來解決它吧。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;