Stratum 協議
Stratum 是讓個別挖礦機與礦池對話的協議——礦池藉以派發工作、礦工藉以回報所得的標準化「電話線」。每台 ASIC 都是高速的雜湊引擎卻是拙劣的決策者;它需要被告知該對什麼做雜湊。Stratum 正是礦池伺服器協調數千台這類機器的方式:它推給它們一份工作範本,它們埋頭運算,再回傳任何擊敗礦池目標的份額。它運行於一條長存的 TCP 連線之上,其原始形式以 JSON 訊息交換。
在 Stratum V1 中,礦池送出一個「mining.notify」工作,內含區塊標頭的各部分與一段 coinbase 交易,外加一個「extranonce」範圍,用以切分搜尋空間,使兩名礦工絕不重複工作。每名礦工反覆嘗試 nonce 與 extranonce,當找到擊敗份額目標的雜湊時便送出「mining.submit」。關鍵在於,V1 中是由礦池——而非礦工——決定哪些交易進入區塊並建構範本;礦工只負責尋找有效的 nonce。此設計簡單且久經實戰,卻把交易選擇權集中於礦池營運者。
這種中心化正是 Stratum V2 著手修正之處,同時它也更有效率、更安全。V2 是一個精簡的二進位協議(比 V1 冗長的 JSON 更省頻寬、延遲更低),並加入加密、經身分驗證的通道,封堵了 V1 舊有的弱點——網路路徑上的攻擊者曾可劫持或重導礦工的算力。它的招牌特性是「工作宣告」:參與的礦工可自行建構區塊範本並選擇納入哪些交易,同時仍僅利用礦池來平滑獎勵的變異。
這的意義超越單純的管線。藉由讓個別礦工——而非少數礦池營運者——決定區塊內容,Stratum V2 直接迎擊工作量證明的核心批評之一:實際掌控交易排序、且可能審查交易的,是礦池而非其背後分散的礦工。由於它需要礦池、挖礦韌體與代理端一同更新,採用是漸進的,但它代表了在協議層面上,重新去中心化「合池曾悄然集中的那部分挖礦」的主要努力。
在 Stratum V1 中,礦池建構區塊並挑選其交易,礦工只負責找出 nonce。Stratum V2 的工作宣告把交易選擇權交還礦工——這是重新去中心化區塊建構的關鍵一步。