比特幣挖礦或迎3.0時代,Stratum V2將權力歸還給礦工

買賣虛擬貨幣

為了獲得比solo挖礦更穩定和可靠的收入流,今天大多數比特幣礦工都選擇透過礦池挖礦。而這是透過開源“Stratum”挖礦協議實現的,目前幾乎所有的礦池都在使用這一協議,而其正是由SlushPool在七年前公佈的。

現在,Slush Pool背後的Braiins公司,已公佈了第二代Stratum協議(Stratum V2)計劃。這家總部位於布拉格的礦業公司在兩年前就開始了這項研究工作,其認為第二代協議在多個關鍵方面改進了第一代Stratum協議:

“它解決了歷史上的技術和安全問題,總體上效率會更高,並且允許一些高階的用例,如工作選擇或更容易的礦場管理,” Brains聯合執行長Pavel Moravec告訴Bitcoin Magazine說,“這應該在幾年前就應該完成了,真的。”

第一代Stratum挖礦協議的原理

作為一個簡短的補充,我們先提下使用Stratum V1進行礦池挖礦的原理。

首先,礦池使用者(有時也簡稱為礦工)將他們的挖礦計算機(通常是帶有ASIC晶片的專用機器)連線至礦池,或者更具體地說,他們將自己的計算機連線到由礦池運營者操作的計算機上。

然後,挖礦計算機從礦池運營者處請求一個部分“區塊模版”。此部分割槽塊模版本質上是一個不完整的比特幣區塊。

重要的是,此區塊中的交易是由礦池運營者選擇的。實際上,交易本身並沒有傳送給礦工們,取而代之的,則是所有交易的默克爾路徑(一系列雜湊)。

除此之外,礦池運營者還可選擇包含哪個“版本位”,這可能會與啟用軟分叉協議升級有關。

然後,礦工開始對部分割槽塊模版進行雜湊操作,希望其中一個雜湊將產生有效的區塊頭,以滿足網路的工作量證明要求。如果礦工雜湊了一個有效的區塊頭,它將返回給礦池運營者,後者將其新增到區塊的其餘部分,並將其廣播到比特幣網路。然後,礦池運營者會根據池中礦工投入的工作量佔比,分配各自獲得的區塊獎勵。(這是透過讓礦工傳送幾乎有效的區塊頭來衡量的,這些區塊頭能夠證明礦工執行了工作)

因此,採用第一代的Stratum協議,會使礦池運營者擁有比礦工更多的權力,他們不僅負責分配獎勵,還可決定區塊中包含哪些交易,以及包含哪些版本位。如果他們願意,一個礦池運營者可決定審查某些交易,或者阻止某些協議升級。

第二代Stratum協議靈感來自Betterhash

去年,Chaincode實驗室工程師和Bitcoin Core開發者Matt Corallo提出了一項稱為BetterHash的替代挖礦協議,而第二代Stratum協議,正是受到了Betterhash的啟發。相比讓礦池運營者向池中礦工傳送(部分)區塊模版,透過第二代Stratum協議,礦工可選擇將區塊模板傳送給礦池運營者。這個“工作選擇”允許礦工自行選擇交易及區塊版本。

為了做到這一點,(獲得Matt Corallo幫助的)Braiins公司,必須解決一些BetterHash所存在的實際問題。其中最重要的是,礦工有可能在一個無效的區塊模版上進行挖礦(例如,因為它包含了一筆無效的交易)。即使礦工能夠找到有效的雜湊,區塊本身仍然是無效的,而同一礦工仍可從其他礦工找到的有效區塊中獲益。

關於這個問題,其中一個解決方案是,礦池運營者首先檢查礦工的區塊模版是否有效,然後再將其放入池中。但在一個大型的公共礦池中,這一步驟也會遇到技術難題。

“想象一下,當比特幣網路上發現一個新的資料塊,並且礦池中的每個礦工都想開始使用一個新的資料塊模板時,會發生什麼?” Moravec解釋說,“他們當中的每一個,都可以有稍微不同的mempool(未確認交易)版本,並且可能有不同的交易選擇規則…他們都想立即開始挖礦。讓他們所有人都將自己的區塊模版傳送至礦池以待批准,基本上就是在網路發現區塊後的第一秒,就對服務發起拒絕服務攻擊。這一機制需要擴充套件,以便在實踐中發揮作用。”

Braiins透過讓礦池運營者非同步檢查新區塊模版的有效性來解決這一問題。礦工一提交區塊模版,就可立即開始雜湊操作。同時,礦池運營者開始檢查所有區塊模版。

Moravec補充道:

“如果區塊模版後來被發現無效,那麼對應礦工的獎勵可相應地調整。因此,該礦工就有動力在適當的區塊上工作,並及時提供所有資料。而他可毫無延遲地繼續在他的模版上工作。”

安全性、效率和靈活性的提升

除了交易選擇的變化之外,第二代Stratum協議還將包括更多的改進,而其中一些改進,對於很多礦工而言可能也是非常重要的。

例如,在第一代Stratum協議中,並沒有加密資料驗證來確保礦工計算機與礦池運營者計算機真正地相連,而這為中間人攻擊開啟了大門:比如,攻擊者可攔截礦工與礦池運營者之間的通訊,並欺騙礦工在攻擊者提供的區塊上工作。攻擊者可將此區塊的區塊獎勵支付給自己的一個地址,從而有效地“劫持”礦工的算力。

而第二代Stratum協議,透過讓礦池運營者對部分割槽塊模版進行加密簽名來抵禦這種攻擊。如果礦工知道礦池運營者的公鑰,則可檢查部分割槽塊模版是否帶有有效的簽名,由此確定這些區塊模版是否確實由礦池運營者提供。

第2點,第二代Stratum協議的效率也會較第一代要更高。原因在於,第一代Stratum協議通訊透過人類可讀文字(JSON)進行,而第二代Stratum協議通訊則以二進位制(計算機可讀程式碼)進行。Moravec表示,再加上協議層本身的一些資料消除,這將使礦池運營者之間共享的資料減少1/2-2/3,從而使通訊更快、更便宜。

第三,第二代Stratum協議有一個內建的“複用”(multiplexing)機制。這意味著礦工可在同一連線上有獨立的通訊通道,允許他們的機器共享有關溫度、晶片電壓或電源如何工作的資料。礦池可基於此資訊提供額外的服務,或者礦工可將其與其他服務或伺服器共享。

第四,第二代Stratum協議還允許礦池“猜測”下一個區塊是什麼。每當找到一個新區塊時,礦池都需要一段時間來確定該區塊中包含了哪些交易,然後哪些交易不能包含在下一個區塊中。今天,很多礦池在挖下一個區塊時,會等待幾秒的時間,以確保沒有雙花交易被納入區塊(否則會導致區塊無效)。

而有了第二代Stratum協議,礦池運營者(或者是自己選擇交易的礦工)可根據所有未確認的交易,對將包括哪些交易進行有根據的猜測。在最初的幾秒鐘內,他們可開始挖他們認為可能是有效的下一區塊的內容。尤其是當區塊補貼成為區塊獎勵的一小部分,並最終被交易費用取代時,這種效率上的提升可能會使礦工獲益。

免責聲明:

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

推荐阅读

;