去中心化礦池協議 Stratum V2 概述

作者:Stratu

Stratum V2 協議套件由 4 個協議組成(作為主體的挖礦協議以及 3 個子協議),為參與比特幣挖礦的主體指定了 5 個角色及其通信標準,使用了 3 種類型的通信信道。本文介紹了 Stratum V2 所定義的角色、信道,並總結了每一種子協議的實現。至於技術橡樹,請參考 GitHub 上的完整文檔。

角色

我們為 Stratum V2 協議套件中的主體定義了 5 種角色,這些主體之間的關係可以用上下游來分類。

挖礦設備(或者,礦工)

計算哈希值的實際挖礦設備。“礦工” 可以指代多種多樣的哈希率生產者:從大規模的企業礦場,到再頁岩油鑽井平臺現場偷偷摸摸收集天然氣的移動挖礦操作。在描述礦工時,最有用的是描述其跟上游的礦池通信的規模:一個 10PH 的、跟一個水電站合作的礦場,作為一個單元跟礦池通信,雖然在其內部也將工作分給許多臺挖礦設備,也可以被認為是一個 “礦工”,只是有別於在街頭車庫裡運行一臺 S19 的 “礦工”。如下所述,礦工將自己的哈希率 “提供” 給某個礦池。從 Stratum V2 的角度看,礦工是最下游的角色。

礦池

礦池是一個通信節點,負責協調哈希率並分發挖礦獎勵。他們為終端的設備創建工作(job),驗證區塊和分數(shares),並將發現的區塊傳播到比特幣網絡。礦池並不保管、也不控制哈希率。兼容 Stratum 協議的終端設備可以在幾分鐘內切換礦池。因此,礦池要基於時延、易用性、償債可靠性以及相關的聯網服務來相互競爭,而 Stratum V2 可以大幅提升這裡的每一項。可以認為礦池是最上游的角色。礦池可以跟下游的角色(代理或者挖礦設備)開啟任意類型的通信信道(見下文)。

代理

代理是礦工和礦池之間的中介,聚合連接並翻譯挖礦通信(Sv1->Sv2 或者 Sv2->Sv1)。代理可能會提供額外的功能,包括監控服務或者工作聲明優化。礦工和礦池都可以運行代理,而且他們會基於不同的應用場景、出於不同的理由而運行代理。

挖礦代理

Sv2 挖礦代理是挖礦設備與 Sv2 礦池之間的中間人。它接收來自多個設備的挖礦請求、聚合它們然後轉發給 Sv2 礦池。它可以跟上游(Sv2 礦池)開啟 群/延伸 信道,也可以跟下游(Sv2 挖礦設備)開啟標準信道。

翻譯代理

翻譯代理負責 Sv1 挖礦設備和一個 Sv2 礦池或者挖礦代理之間的通信。它讓 Sv1 的設備能跟基於 Sv2 的挖礦基礎設施交互,彌合較老的 Sv1 協議和 Sv2 之間的鴻溝。它可以跟上游(Sv2 礦池或者挖礦代理)之間開啟拓展新蛋。舉個例子,一個礦池可能會運行一個翻譯代理,作為初始連接服務,以接收 Sv1 和 Sv2 的連接,然後跟 Sv2 礦工建立直接的標準信道、使用這個代理來翻譯與 Sv1 礦工的通信。

工作聲明器

工作聲明器(JD)是即可屬於礦池也可屬於礦工的角色,但也可以由任何第三方來運行。它們連接到一個模板供應方,從而能夠接收和驗證定製化的區塊模板。它們是為了實現所謂的 “工作聲明協議” 而需要的角色。它們可以通過工作分發協議,進一步分發工作給一個挖礦代理(或者代理)。

工作聲明服務端

工作聲明服務端(JDS)是礦池端的 JD,負責分配工作聲明客戶端所需的挖礦工作 token,以創建定製化的工作。它也是(使用工作聲明協議)連接到礦池的礦工發現有效區塊時,負責為礦池傳播區塊的實體。

工作聲明客戶端

工作聲明客戶端(JDC)是礦工端的 JD,負責從它連接到的模板供應方收取區塊模板並創建新的挖礦工作。它向 JDS 聲明定製化的工作,以開始挖礦。JDC 也負責啟動備用礦池機制,在所聲明的工作被 JDS 拒絕時自動切換到後備礦池。在窮盡備用之後,它可以切換成獨自挖礦(Solo Mining),直至市場上出現新的安全的礦池。

模板供應方

模板供應方(TP)既可以部署在礦池一邊,也可以不受到礦工一邊,但也可以由任何第三方來運行。當 TP 部署在礦工一邊時,它可以從本地的比特幣節點抽取交易。如此一來,礦工就可以創建定製化的區塊模板了,而且可以通過工作聲明協議向礦池聲明定製化的挖礦工作。

子協議

挖礦協議

也叫 “主協議”,是 Stratum V1 的直接後繼者。主協議用於挖礦,也是整個協議套件中唯一需要在所有場景中都實現的部分。它用在挖礦設備、代理和礦池服務的溝通中。如果一個 礦工/礦池 並不支持交易選擇和挖礦工作聲明,這就是唯一需要實現的協議。

信道

協議定義了三種類型的信道:

  • 標準信道:不修改 默克爾路徑/coinbase 交易,儘可能簡化彼此之間以及跟上游節點的通信。

  • 延伸信道:給出對搜索空間的延伸控制,從而可以實現高級的應用場景(例如,來回翻譯 v1 和 V2 消息,難度聚合、定製化搜索空間分割,等等)。

  • 群信道:標準信道的簡單集合,在單個連接內開展,從而可以通過一個共同的信道來訪問。

工作聲明協議

工作聲明協議是給礦工(一般來說是一個礦場)使用的,用來向礦池聲明一個定製化的區塊模板。這種聲明的結果可以被複用到礦池的所有終端礦工連接中,從而減少計算強度。換句話說,單個聲明可以應用到整個礦場的許多設備上,甚至多個礦場,從而實現更高的效率。這個協議是獨立的,以允許礦池在獨立的基礎設施上中斷這些連接,而不影響挖礦協議連接。這個協議是整個協議中的一個獨立、可選的基礎設施,而且可以由第三方來給礦場提供。這也是整個協議套件最突出的特性,因為它可以推動交易選擇權力的去中心化。

模板分發協議

模板分發協議用來協助從 Bitcoin Core 中抽取可以構造下一個區塊的信息。它的設計目標是取代 gitblocktemplate(BIP 22 和 23),為那些整合了 Stratum V2 其他方面的人提供更高的效率,而且更易於實現。

工作分發協議

用來將新聲明的工作傳遞給利益相關的節點,既可以是代理,也可以是實際挖礦設備。這個協議是工作聲明協議的補充。在礦工並不自建和聲明自己的工作(即自選挖礦交易)的時候,工作會直接從礦池分發給代理和終端設備,就像最初的 stratum 協議。但是,這個協議將留給未來的文檔指定,因為,當工作聲明器成為一個更大的挖礦協議代理的一部分時,分發協議通常是不必要的。

相关赛道:
來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
收藏
評論