Stratum V1 對比 V2:對 ASIC 礦機及礦池選擇有何影響?
2026-10-16 14:12

Stratum是連接ASIC與礦池的通訊層。它負責傳遞任務通知、難度調整及share提交,但並不會改變ASIC運算SHA-256輸入的方式。當營運者比較Stratum V1與Stratum V2時,真正值得關注的問題在於連接性、安全性,以及誰掌控區塊模板(block-template)的建構——而不是原始算力表現。本文將區分Stratum V2規範所定義的內容,與個別礦池(包括ViaBTC)實際部署的內容。

Stratum承載的內容

在一般的礦池挖礦(pooled-mining)工作階段中,礦池伺服器會向ASIC發送一項任務:一個區塊頭模板(block header template)、一個目標難度,以及建構coinbase交易的指示。ASIC會搜尋滿足所分配share目標的nonce,並將有效的share回傳給礦池,礦池會依照其所採用的任一種既定方法(PPS+、PPLNS,或其他已公佈的模式)將其計入礦工的收益。

Stratum並不決定收益分配經濟模式、礦池手續費或結算時間——這些都是建構在協議之上的礦池政策。Stratum所管轄的,是連線的格式、任務如何傳遞、身份驗證如何進行,以及在更進階的部署中,提交share的一方是否同時掌控哪些交易會被納入區塊模板。

V1與V2比較

Stratum V1通常以基於JSON、以行分隔的協議方式實作,運行於純文字TCP socket之上。它最初並未定義內建的傳輸層加密;傳輸加密與伺服器身份驗證需仰賴實作方或網路架構額外提供的保護措施。

Stratum V2是一種具有固定訊息框架(message framing)的二進位協議,並以開放規範形式發佈。對ASIC營運者而言,主要差異如下:

面向 Stratum V1 Stratum V2
訊息格式 通常為以行分隔的JSON 具固定框架的二進位訊息
傳輸保護 原始設計中無內建傳輸加密;額外保護措施取決於部署方式 對遠端上游連線採用經身份驗證的加密;本地連線可能有不同處理方式
交易選擇 通常由礦池建構區塊模板 基本挖礦協議(Basic Mining Protocol)仍可使用礦池發出的任務;礦工自選模板則需選用性質的任務宣告(Job Declaration)基礎設施及礦池支援
裝置相容性 需要相容V1的韌體及對應端點 需要相容的原生韌體,或是連接至相容V2端點的V1轉V2代理程式

有兩項差異值得進一步探討:

  • 傳輸安全性。 Stratum V2規範針對遠端上游連線採用經身份驗證的加密,意即挖礦裝置(或代理程式)與遠端礦池端點之間的流量會被加密,且伺服器身份會在建立連線時獲得驗證。而本地裝置與本地代理程式之間的連線,在規範中則可能有不同的處理方式(Stratum V2 Protocol Security)。
  • 挖礦功能與模板功能的分離。 V2規範定義了不同的角色與子協議:挖礦協議(Mining Protocol,負責任務傳遞與share提交,功能上與V1相似),以及選用性質的任務宣告協議(Job Declaration Protocol,用於協調礦工自選模板)。這兩者在架構上是分離的,礦池可以支援挖礦協議(Mining Protocol)而不支援任務宣告(Job Declaration)(Stratum V2 protocol overview)。

僅僅切換協議本身,並不能保證晶片層級算力更高,或以J/TH衡量的能源效率更佳。這些硬體特性取決於ASIC本身及其運行設定。任務傳遞與連線行為應該分開評估:協議及實作上的差異,可能影響挖礦工作傳達至裝置、以及share回傳至礦池的效率,但不會改變晶片本身的底層算力能力(Stratum V2 Mining Protocol)。

安全性與任務選擇

已發表的針對Stratum V1的研究顯示,在未額外加入傳輸保護措施的部署情境下,未加密的Stratum流量可能洩露有助於推斷礦工算力的資訊,並可能遭到具備網路位置優勢的攻擊者干擾(Recabarren與Carbunar,《Hardening Stratum, the Bitcoin Pool Mining Protocol》,2017年)(arxiv.org/abs/1703.06545)。這描述的是原始V1設計在缺乏額外保護措施情況下的一項結構性限制——並不代表當前生產環境中的每一個V1連線都未受保護,因為個別實作方與端點可能自行加入其傳輸安全機制。

Stratum V2的經身份驗證加密可保護訊息內容與完整性,而伺服器身份驗證則有助於用戶端驗證上游伺服器。這些保護措施能降低訊息內容遭竊聽及訊息遭竄改的風險。但不應將其解讀為能防範所有流量分析形式的保證:該研究同時也探討了從封包時間戳記推斷收益的方式,因此僅僅加密訊息內容,並不代表能防止所有以中繼資料(metadata)為基礎的推斷行為。

另一項經常被混淆的獨立議題,是任務(或稱交易)選擇。在標準的礦池挖礦模式下,由礦池伺服器建構區塊模板,ASIC僅需針對該模板搜尋有效的nonce。Stratum V2的任務宣告協議(Job Declaration Protocol)定義了一條選用性質的路徑:由挖礦營運方——而非ASIC本身——向模板提供者(Template Provider)取得候選模板,並使用任務宣告用戶端(Job Declarator Client)與支援此功能的礦池協調自訂工作內容(Stratum V2 Job Declaration Protocol)。

目前的規範描述了兩種模式。在 Full-Template(完整模板)模式下,客戶端會宣告模板的交易 ID,礦池可以要求提供缺少的交易數據。在 Coinbase-only(僅 Coinbase)模式下,交易集不會透過此流程向礦池公開,且不會使用 DeclareMiningJob 訊息。這兩種模式都描述了「樂觀挖礦」(optimistic mining):工作可以在礦池確認之前就發送給設備,而份額(share)則會先行快取,等待該確認。運營方應檢查其所選的實現方式如何處理確認與快取的份額。

對運營方而言,單純在 ASIC 上啟用 Stratum V2,並不會自動賦予交易選擇能力。Job Declaration(任務宣告)需要在挖礦運營端額外建置基礎設施,而且需要礦池支援該特定子協議,而不只是支援基礎的 V2 Mining Protocol。考慮採用 Job Declaration 的運營方,除了既有的 ASIC 或代理(proxy)配置之外,還應預期需要運行或協調一個比特幣節點以及相容的模板建構軟件。

設備與代理相容性

配置為連接 V1 端點的 ASIC,並不會自動獲得 V2 能力。原生 V2 支援取決於該設備的韌體是否實現了二進制協議及其加密握手。若韌體未直接支援 V2,一個相容的 V1 轉 V2 轉譯代理(translation proxy) 可以將 V1 ASIC 連線橋接至相容的 V2 礦池端點,從而避免對每一台設備都進行韌體更新。除非通用的 V2 代理有實現該轉譯功能,否則它並不足夠。在此配置下,ASIC 到代理之間的連線仍為 V1,而代理到礦池之間的連線則使用 V2;上游連線的 V2 加密並不會自動保護本地的 V1 連線(SRI 轉譯代理範例)。

對於正在評估遷移的運營方,以下幾個實務上的相容性要點值得留意:

  • 確認目前的韌體是否提供 V2 連線選項,或者是否需要相容的 V1 轉 V2 轉譯代理。
  • 若在過渡期間仍可使用 V1 作為後備方案,先測試一小部分礦機再轉換整個礦場,可降低造成全場連線問題的風險。
  • 監控時應區分本地設備讀數與礦池回報的份額及礦工狀態,因為協議變更可能會獨立於底層算力表現而影響連線穩定性。
  • Job Declaration 基礎設施(節點、Template Provider、Job Declarator Client)屬於與基本 V2 連接性不同的獨立部署決策,並帶有其自身的維護需求。

目前,ViaBTC 所公開記載的 BTC 挖礦配置使用標準的 stratum+tcp 端點(例如 stratum+tcp://btc.viabtc.io:3333 及 stratum+tcp://btc.viabtc.io:443),採用慣用的 userID.workerID 礦工格式,並建議使用多個連接埠以維持連線的連續性(ViaBTC BTC 挖礦指南)。此文件所描述的是目前已公開的連線方法;不應將其解讀為對 Stratum V2 或 Job Declaration 可用性的確認或任何形式的聲明,運營方應直接查閱 ViaBTC 的最新官方文件,以瞭解目前支援的連線選項。

應向礦池詢問的問題

由於「支援 Stratum V2」一詞可能描述意義截然不同的能力,評估礦池的運營方應提出具體問題,而非照單全收該標籤:

  1. 該礦池支援的是用於標準礦池發放任務的 V2 Mining Protocol、Job Declaration Protocol,還是兩者皆支援?
  2. 若支援 Job Declaration,其運作模式是礦池仍會收到交易數據以供驗證,還是礦池無法直接看到交易內容?
  3. 是否有已公開的設置文件,涵蓋 V2 連線所需的韌體要求、支援的代理、連接埠及身份驗證方式?
  4. 在遷移期間,V1 是否仍可作為後備方案,且礦池如何處理同時運行兩種協議版本礦機的混合礦場?
  5. 無論協議版本為何,適用的支付方式、手續費、結算時間及提現條款為何?無論礦工是透過 V1 還是 V2 連接,這些條款是否都以相同方式記載?

將協議能力與支付條款視為獨立的評估標準,可以避免一個常見的錯誤,即假設礦池在傳輸層的改進也會同時改善其經濟效益——這兩者在礦池選擇上是彼此獨立的層面。

常見問題

切換至 Stratum V2 會提升我的 ASIC 算力嗎?

單憑此舉並不會。Stratum V2 改變的是挖礦通訊方式,而非 ASIC 的晶片設計。僅僅切換協議,並不能保證提升晶片層級的算力或改善 J/TH(每太赫焦耳功耗)。應將任務發放、連線穩定性及礦池接受的份額,與設備本身的本地算力分開評估。

現今使用礦池是否必須採用 Stratum V2?

不需要。所需的協議取決於您所使用的端點。相容 V1 的礦機可以使用相容的 V1 端點;請針對您特定的韌體與礦池連接方式,確認所支援的協議及設置要求。

啟用 Stratum V2 是否能讓我自行選擇交易?

單憑此舉並不能。基礎的 Stratum V2 Mining Protocol 支援仍依賴礦池發放任務。交易選擇需要另外、可選的 Job Declaration Protocol,這需要在挖礦運營端建置額外的基礎設施,並且需要礦池對該功能提供明確支援。

我能在同一個礦池帳戶下同時運行 Stratum V2 ASIC 與 V1 ASIC 嗎?

這取決於特定礦池的實現方式。運營方在遷移部分設備之前,應向礦池確認是否支援混合協議的礦場。

Stratum V1 使用起來是否不安全?

獨立安全研究指出,未加密的 V1 實現存在結構性弱點,例如與算力相關的數據可能會暴露給處於網絡位置的觀察者。這是基礎設計本身已知的限制,而非證明每一個實際運行中的 V1 部署都完全沒有任何保護,因為個別礦池或網絡環境可能會自行加入傳輸層的安全措施。

參考資料