TronGreen

BTC 協議與礦業節點政策

Rust 節點 satd 推過濾規則語言:命中先隔離不丟棄,作者自承恐傷閃電網路

satd 開發者 bkeroack 於 2026-10-20 在 Delving Bitcoin 介紹其交易過濾規則語言:節點營運者可用文字檔描述要「隔離」的交易形狀(例如大型銘文或超過 80 位元組的 OP_RETURN),選擇停止轉發或不納入區塊模板,但不改變共識有效性。

示意圖:satd 收到有效交易後比對規則,未命中進一般 mempool,命中則進隔離區,可能擋到閃電網路交易的規則預設拒絕載入
satd 交易過濾規則運作示意(TronGreen 編輯原創圖表,依 satd 操作手冊與 Delving Bitcoin 貼文整理)

此功能早在 2026-07-06 的 satd 0.4.0 以選用方式推出,本次是向協議社群公開徵求意見;手冊自承,若熱門規則集被大量複製,可能削弱閃電網路強制關閉交易的傳播。

重點摘要

過濾仍只影響自己的節點:只要有其他節點或礦工接受,有效交易照樣會被確認。satd 的差異在於把政策從「改程式碼」變成「改設定檔」,並以隔離區與閃電網路防護降低誤傷,但對其他節點而言,停止轉發的隔離與直接拒絕效果相同。

文章目錄

發生什麼:把過濾政策交給營運者寫規則

Delving Bitcoin 用戶 bkeroack 於 2026-10-20(UTC)發文表示,他設計了一套交易過濾規則語言,並實作在 satd 中。satd 是以 Rust 撰寫、主打與 Bitcoin Core 相容的比特幣全節點,GitHub 最新正式版本為 2026-10-21 發布的 v0.6.3,採 MIT 授權。

按貼文說法,營運者可在節點設定中指定一個規則文字檔,每條規則對符合條件的交易做出「允許」或「隔離」判斷,並可選擇停止轉發、或不納入自己組裝的區塊模板;修改檔案後送出 SIGHUP 即可重新載入。貼文示範兩條規則:輸入見證中含 ordinals 標記且見證大於 1kb 的銘文,以及輸出 OP_RETURN 合計超過 80 位元組的交易。

不是新上線:0.4.0 已推出,本次是公開徵求意見

依 satd 0.4.0 版本說明,這套規則語言(policyfile= 設定)早在 2026-07-06 就以選用功能推出,未設定時節點行為與以往相同。10 月 20 日的貼文是向協議開發社群介紹設計並提出開放問題:是否需要更深入的交易解碼、是否支援受限的正規表示式,以及除了閃電網路之外還有哪些交易類型需要防護。

設計重點:成本有上限、隔離而非丟棄

作者說明這套語言刻意設計為成本有上限、非圖靈完備,以免規則本身拖垮節點。命中規則的交易不直接丟棄,而是放進另有容量預算的隔離區(手冊列出 quarantinemempool 預設 50MB);若父交易被隔離,子交易也一併隔離,使 CPFP 關係不會斷裂,處理 BIP 152 緊湊區塊時也不必再向對等節點補抓這些交易。

手冊另指出,若規則可能擋下閃電網路強制關閉、懲罰交易等時效性交易,節點預設拒絕載入,除非設定 allowdangerousfilters=1;營運者也可用 sat-cli policylint 離線檢查規則,並查看被隔離交易後來仍被確認的數量與放棄的手續費估計。

限制:開發者自己列出的反方論點

手冊直言,過濾不改變共識:只要仍有礦工接受,有效交易終會被確認。但它列出三項網路層風險:若熱門規則集被大量複製貼上而誤中強制關閉交易,可能在無聲中削弱閃電網路的執行;政策調整從需要軟體發布變成改設定檔,少了審查摩擦;被過濾的交易轉向礦池直送管道,可能讓權力集中到大型礦工。手冊也承認,從其他節點角度看,停止轉發的隔離節點與直接拒絕的節點無從分辨,閃電網路防護只能擋下已知樣態,不是保證。

AI 觀點分析與推論

AI 觀點:真正的變化是政策調整的速度,而不是過濾能力

我傾向認為,這套工具不會讓過濾在網路層變得更有效:手冊自己也寫明,只要仍有礦工接受,有效交易終會上鏈,而且隔離的過濾能力與直接拒絕一樣強、不更強。satd 真正改變的是政策成本,原本要改程式或換實作,現在改一個文字檔就能完成,而且有隔離區與統計,讓營運者看見自己選擇的代價。

受益者是想精細管理自家節點、或想「照常轉發但不自己挖」的小型礦工;風險承擔者則是閃電網路使用者,因為手冊自己承認防護只能涵蓋已知交易形狀。若未來出現被大量轉貼的 satd 規則集,或閃電網路實作開始回報強制關閉傳播異常,我會調高對網路層風險的判斷;反之,若 satd 使用者仍是小眾,這更像一個政策工具的設計範例,而非會改變網路的力量。

原始來源與延伸閱讀

  1. Delving Bitcoin:Cost-Bounded Transaction Filtering Language(bkeroack) ↗開發者論壇原文 · 原始發布 2026-10-20 · 查閱 2026-10-22
  2. satd Operator Manual:Transaction-Filtering Policy ↗官方技術文件 · 查閱 2026-10-22
  3. satd 0.4.0 Release Notes ↗官方版本說明 · 原始發布 2026-07-06 · 查閱 2026-10-22
  4. satd v0.6.3 GitHub Release ↗官方版本發布 · 原始發布 2026-10-21 · 查閱 2026-10-22

更正與更新

本文發布後沒有更新。之後若有修改,會建立新版本並在這裡標示更新時間。

內容有誤?請見更正方式,或寄信至 [email protected](請附文章網址、段落與參考資料)。

延伸閱讀

更多 BTC 新聞