TronGreen

交易與支付基礎設施閃電資產付款

tapd v0.8.8 修補資產發票結算回歸,litd 最新版仍內附 v0.8.6

tapd v0.8.8(10/22 UTC)修補 v0.8.6 安全刷新引入的回歸:v0.8.6 為防止多入帳而移除捨入容差,付款方與收款方各自向下取整後,誠實付款可能比發票少 1 單位或 1 msat,停在部分付款直到 MPP 逾時被取消。

示意圖:付款方把 msat 換成資產單位並向下取整,資產 HTLC 送達後收款方 tapd 再換回 msat 並向下取整,發票判定允許每分片 1 單位加 1 msat 差額;下方時間線列出 tapd v0.8.6、litd v0.17.7、tapd v0.8.7、tapd v0.8.8 發布日期。
Taproot Assets 資產發票的雙重取整流程與 v0.8.6–v0.8.8 時間線(TronGreen 依 tapd 發布說明、commit 15df287 與 v0.8.8 原始碼整理繪製的原創示意圖;日期為 GitHub 發布時間 UTC)

v0.8.8 恢復每分片 1 資產單位加 1 msat 的容差,保留只計 accepted 分片等修補;程式註解承認這也是付款方可故意少付的上限。litd v0.17.8 組件表仍列 Taproot Assets v0.8.6,未含此修補;目前未見公開的受害回報。

重點摘要

跑 Taproot Assets 資產通道收穩定幣的節點,若停在 tapd v0.8.6/v0.8.7 或 litd v0.17.7/v0.17.8,小額多分片付款可能因捨入差而逾時失敗;單獨跑 tapd 者可依安全指南升級 v0.8.8,litd 用戶需等待新版或自行評估。

文章目錄

發生什麼:一次安全修補,讓誠實的資產付款也可能結不了帳

Lightning Labs 在 2026 年 10 月 22 日 19:18(UTC)發布 Taproot Assets(tapd)v0.8.8,發布說明只有一句重點:修補 v0.8.6 引入、可能讓資產發票(asset invoice)無法結算的回歸問題。Taproot Assets 是在比特幣上發行資產、並讓這些資產經閃電網路通道支付的協議,目前社群實際拿來跑的主要是美元穩定幣類資產。

對照提交紀錄,v0.8.8 相較 v0.8.7 只改了發票處理模組 tapchannel/aux_invoice_manager.go 與其測試,以及版本號。關鍵提交 15df287 的說明是:v0.8.6 為了「精確入帳」,把原本的捨入容差一併移除;結果在付款方與收款方各自向下取整後,付款金額可能比發票少一點點,這些付款會停在「部分付款」狀態,直到多路徑付款(MPP)逾時被取消。

受影響範圍是 v0.8.6 與 v0.8.7。v0.8.6 於 10/16 發布,是一次安全版本;v0.8.7 於 10/22 02:55(UTC)發布,只是以 Go 1.27.3 重新編譯以處理 CVE-2026-111943,發票邏輯沒有變。tapd 的發布說明沒有提到實際卡單的事故數量,本文也沒有找到公開的受害回報。

原始證據:雙重取整與被移除的容差

資產發票的金額以聰(精確到毫聰,msat)表示,但通道裡實際移動的是資產單位。付款方先用報價把 msat 換成資產單位並向下取整,收款方的 tapd 再把收到的資產單位換回 msat,又向下取整一次。v0.8.8 原始碼註解把這稱為「double floor problem」:即使付款方完全誠實,最後算出的入帳金額也可能比發票少。

這不是新問題。2025 年 7 月合併的 PR #1639 已經處理過:原本發票接受邏輯就允許每個 HTLC 分片差 1 個資產單位,PR #1639 又補上每分片 1 msat,因為換算容差本身也會差 1 msat。

10/16 的 v0.8.6 安全刷新(提交 734ce74)則把方向反過來。發布說明寫明:資產發票 HTLC 只按該 HTLC 內的資產價值入帳,已取消的分片不再計入,而且「捨入容差不能用來填補資產短缺」;同時以發票路由提示中的報價為入帳匯率上限。這些修補擋住的是重播已取消分片灌大入帳、或用更有利報價多入帳之類的問題,但副作用是把誠實付款的捨入誤差也一起擋掉。

v0.8.8 的做法是恢復舊容差:已接受的分片加上當前 HTLC,若比發票少不超過「每分片 1 個資產單位加 1 msat」,就把當前 HTLC 補足差額。其餘修補保留:只計算處於 accepted 狀態的 HTLC、以短缺額而非餘額計算補足以避免數值回繞,金額為零的發票不套用調整。程式註解也坦白寫出取捨:這個容差同時就是付款方能「故意少付」的最大值,當初正因此被移除,恢復它是有意識的權衡。

對讀者的影響:用 litd 的節點目前仍停在受影響版本

許多人不是單獨跑 tapd,而是用把 lnd、tapd 等打包在一起的 Lightning Terminal(litd)。litd v0.17.7 於 10/17 發布,說明寫明內附 Taproot Assets v0.8.6,並要求跑資產通道的用戶「必須」更新;10/22 01:38(UTC)的 litd v0.17.8 組件表仍列 Taproot Assets v0.8.6「unchanged」。也就是說,截至台北時間 10/24 上午,litd 最新正式版仍不含 v0.8.8 的修補。

這和實際使用情境直接相關。10/7 一名開發者在 Stacker News 自述,他以 litd 整合模式、自設價格預言機,透過 Amboss 開的資產通道,支付 2.14 USDTL 買了一罐可樂;邊緣節點在最後一跳把聰換成資產。這類「一般閃電錢包付聰、收款端收穩定幣」的流程,正好每次都經過兩次換算。

升級時要注意 v0.8.6 的操作指南仍然適用:從 v0.8.6 之前版本升級者,需先讓預言機拒絕新報價、在 lnd 設 rejecthtlc 停止接收新 HTLC,等待結 HTLC 處理完再換執行檔。預設 RFQ 報價有效期 10 分鐘,資產發票預設 5 分鐘到期。

AI 觀點分析與推論

AI 觀點:資產閃電付款的難處,在換匯而不是路由

我傾向認為,這次回歸比 CVE 重編更值得資產通道營運者注意。安全修補把「多入帳」的路堵死,卻讓「少一點點就不收」成為新的失敗模式;對收款方來說,付款卡在部分付款再逾時取消,表現上就像網路不穩,很難第一時間聯想到捨入規則。

受益的是一般付款人和商家:v0.8.8 讓小額、多分片付款恢復可結算。承擔風險的是收款方:每分片最多可被少付 1 個資產單位加 1 msat。若資產單位切得很細,這只是極小金額;但若某資產的單位粒度很粗,或付款被拆成大量分片,容差的經濟意義就會放大,這是我認為營運者應依自己收的資產自行檢查的地方。

反面情境是,有人發現能透過大量拆分分片把這個容差累積成有意義的少付。若後續出現這類揭露,或 Lightning Labs 改採「發票預留緩衝、付款方多付」之類設計,我會調整判斷。下一個可觀察訊號是 litd 何時收入 tapd v0.8.8,以及 main 分支後續版本是否以同樣方式處理容差。

原始來源與延伸閱讀

  1. Taproot Assets v0.8.8 GitHub Release ↗官方發布紀錄 · 原始發布 2026-10-22 · 查閱 2026-10-24
  2. taproot-assets commit 15df287:tapchannel: restore rounding margin on asset invoice accept ↗原始程式碼提交 · 原始發布 2026-10-22 · 查閱 2026-10-24
  3. Taproot Assets v0.8.6 GitHub Release ↗官方發布紀錄 · 原始發布 2026-10-16 · 查閱 2026-10-24
  4. taproot-assets commit 734ce74:release: backport asset payment fixes to v0.8.6 ↗原始程式碼提交 · 原始發布 2026-10-16 · 查閱 2026-10-24
  5. Taproot Assets v0.8.6 security refresh 發布說明(release-notes-0.8.6.md) ↗官方文件 · 原始發布 2026-10-16 · 查閱 2026-10-24
  6. tapchannel/aux_invoice_manager.go(v0.8.8 標籤) ↗原始程式碼 · 原始發布 2026-10-22 · 查閱 2026-10-24
  7. taproot-assets PR #1639:add a one unit extra tolerance to invoice acceptor ↗原始程式碼合併請求 · 原始發布 2025-07-16 · 查閱 2026-10-24
  8. Lightning Terminal v0.17.7 GitHub Release ↗官方發布紀錄 · 原始發布 2026-10-17 · 查閱 2026-10-24
  9. Lightning Terminal v0.17.8 GitHub Release ↗官方發布紀錄 · 原始發布 2026-10-22 · 查閱 2026-10-24
  10. Taproot Assets v0.8.7 GitHub Release ↗官方發布紀錄 · 原始發布 2026-10-22 · 查閱 2026-10-24
  11. Stacker News:My first Taproot Asset payment over the Lightning Network(@leo) ↗使用者自述(社群貼文) · 原始發布 2026-10-07 · 查閱 2026-10-24

更正與更新

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

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

延伸閱讀

更多 BTC 新聞