Advertise手数料優遇デスク

ビットコイン

bitcoinjs-lib開発チーム、Bitcoin(BTC)手数料の高深刻度脆弱件2件を公開

bitcoinjs-libに高深刻度の脆弱件2件。PSBTの手数料が実際より大幅に低く表示される可能性があり、修正版5.2.2、6.1.9、7.0.4がリリースされました。

クリエイターになる
2026年10月28日, 15:03 JST1分で読めます
AI要約AI
  • bitcoinjs-lib開発チームが10月26日、高深刻度の脆弱件2件を公開した
  • 再現例では実際の手数料900,000,000サトシが200サトシと計算された
  • 修正版は5.2.2、6.1.9、7.0.4にリリースされた
  • 現行リリースは5.2.3、6.1.10、7.0.5と案内された
gate.com

Bitcoin (BTC)取引の構築に広く使われるJavaScriptライブラリ「bitcoinjs-lib」に、高深刻度と評価された脆弱件2件が存在する。悪用されると、未完成の署名トランザクション(PSBT)の手数料が、ネットワークが実際に徴収する額より大幅に低く表示される可能性がある。開発チームは10月26日(月曜日)、セキュリティアドバイザリー2件を公開し、両脆弱件を高深刻度に分類した。影響する各バージョン系列には修正版も同時にリリースされている。ビットコインの価格やネットワークの合意形成ルールには影響はなく、問題はあくまで署名承認時にウォレットが表示する手数料の計算層に集中している。

影響範囲は、手数料計算や過剰手数料のガード機能に依存した形でPSBTを処理するアプリケーションだ。PSBTはBIP 174で定義される交換フォーマットで、トランザクションデータと署名をアプリ間や署名デバイス間で受け渡す役割を持つ。BIP 174は各入力が、使用する直前の出力レコードを必ず保持することを求める。これは署名者が手数料を算出・表示するための値であり、セグウィット後に署名データが独立した入力型となって確立した構造を踏まえたものだ。Segregated Witness以降のこの構造を踏まえ、直前の出力レコードの整合性が手数料表示の正確さを支えている。1件目の脆弱件は、単一の入力に矛盾する直前出力レコードが2つ同時に含まれる場合に発生する。署名処理は正しい値を読む一方、手数料計算がもう一方のレコードから低い方の数値を採取する可能性がある。開発チームの再現ケースでは、実際の手数料9億サトシ(900,000,000サトシ)が200サトシと計算された。署名検証は合格し、抽出時にも手数料率の警告は表示されなかった。開発チームはこの数値が脆弱件の再現であり、実際の利用者の損失計測ではないと明記している。

脆弱件で可能なこと、できないこと

2件目の脆弱件は、すでに署名済みの入力に直前出力レコードが一切含まれない場合に出現する。ライブラリがその入力の価値をゼロとして集計すると、トランザクションが実際に支払う額より低い手数料が計算される。開発チームの例では、実際の手数料9万1,000サトシが1,000サトシと表示された。2件とも帰結は同じで、表示手数料と過剰手数料ブロックがトランザクションの実態を反映しなくなる。

いずれの脆弱件も、署名の偽造や利用者の承認なしの資金移動は不可能だ。損失が生じるには、承認された有効なトランザクションがブロードキャストされ、受け入れられ、確定される必要がある。確定時点で全額の手数料(過剰分を含む)は、ネットワークのProof of Workルールの下でCrypto Miningを行うマイナーに支払われ、送信者に還元されることはない。

影響を受けるバージョンはv5系列内で異なる。矛盾レコードの問題は5.2.0から5.2.1までに及び、欠落レコードの問題は5.1.0まで遡り5.2.1も含む。v6系列は6.0.0から6.1.8までの全範囲、v7ビルドは7.0.0-rc.0から7.0.3までが対象で、修正版は5.2.2、6.1.9、7.0.4に登場した。開発チームは同日に計15件のアドバイザリーを公開しており、これには他の問題も含まれる。各系列の現行リリースとしては5.2.3、6.1.10、7.0.5が挙げられている。

開発者への指針は具体的だ。影響範囲に該当する直接・間接の依存関係を監査し、アップグレードが不可能な場合は各入力の直前出力の値を独立に検証し、矛盾または欠落する入力を拒否すること。個別のウォレットが影響を受けているか、実際の損失が発生したかは現時点で未確認だ。アドバイザリーはライブラリ内部の欠陥とその影響範囲を確定したが、これに基づいて構築されたウォレットの数は集計しておらず、実際にリスクに晒される規模は文書の測定対象の外にある。

手数料表示が信頼の境界となる理由

多数のウォレット基盤に組み込まれたライブラリにとって、手数料の数値は利用者が承認前に信頼する数字だ。今回のアドバイザリーは、その層がトランザクションの真のコストから切り離されうることを示した。実務的な対応を担うのはBitcoin開発チームであり、依存ツリーの監査と、ライブラリへの全面的な信頼ではなく手数料表示の独立検証が求められる。署名エコシステムは断片的な採用を経験してきた。ブロック709,632でのTaprootアップグレードがウォレット側の対応を任意とし、市場内で採用が割れた例はその一つだ。各アプリが修正済みバージョンでの稼働を確認するまで、利用者はPSBT上に表示される手数料を最終値ではなく参考値として扱うべきだろう。

COINOTAGの編集・調査デスクです。

AI生成

AIによって生成され、AIによるレビューを経て、COINOTAGの編集監督のもとで公開されました。