/ home / newsletters /
Bitcoin Optech Newsletter #383
今週のニュースレターでは、NBitcoinライブラリに影響する修正済みの脆弱性について掲載しています。 また、Bitcoinのコンセンサスルールの変更に関する議論や、新しいリリースとリリース候補の発表、 人気のBitcoinインフラストラクチャソフトウェアの注目すべき更新など、恒例のセクションも含まれています。
ニュース
-
● NBitcoinライブラリにおけるコンセンサスバグ: Bruno Garciaは、
OP_NIP使用時に発生する可能性のあるNBitcoinの理論的なコンセンサス障害について Delving Bitcoinに投稿しました。 基盤となる配列が最大容量に達している状態で、_stack.Remove(-2)が呼び出されると、 Remove操作はインデックス14の要素を削除し、後続の要素を下にシフトしようとします。 このシフト処理中に、実装は存在しない_array[16]にアクセスしようとし、例外が発生します。このバグは、差分ファジングによってのみ発見されました。また、 この障害は、try/catchブロックで補足されていたため、従来のファジング手法では発見されなかった可能性があります。 問題を発見した後、Bruno Garciaは2025年10月23日にNicolas Dorierに報告しました。 同日、Nicolas Dorierは問題を確認し、修正パッチを公開しました。 NBitcoinを使用しているフルノード実装は知られていないため、チェーン分岐のリスクはありません。 これが開示が迅速に行われた理由です。
コンセンサスの変更
Bitcoinのコンセンサスルールの変更に関する提案と議論をまとめた月次セクション
-
● LNHANCEソフトフォーク: moonsettlerは、LNHANCEを構成する4つのopcodeすべてで BIPとリファレンス実装が更新されたことを受け、LNHANCEのソフトフォークを提案しました。 BIP119(OP_CHECKTEMPLATEVERIFY)、 BIP348(OP_CHECKSIGFROMSTACK)、 BIP349(INTERNALKEY)およびBIPs #1699(PAIRCOMMIT)は、 Tapscriptに再バインド可能な署名とマルチコミットメントを追加し、 すべてのScriptバージョンに次トランザクションへのコミットメントを追加します。
OP_TEMPLATEHASHを含む同様のTapscript専用opcodeのパッケージが最近提案されました。 このパッケージは同様の機能を備えていますが、汎用的なマルチコミットメントはなく、 より新しいためコードの大部分についてまだ十分なレビューを受けていません。 -
● varopsバジェットベンチマーク: Julianは、varopsバジェット下での Bitcoinスクリプト実行のベンチマークを行うための呼びかけを行いました。 Script Restoration(ニュースレター #374参照)チームは、 選択されたvaropsパラメーターを確認または改善するために、 さまざまなハードウェアおよびオペレーティングシステムでベンチマークを実行し、 結果を共有するようにユーザーに求めています。Russell O’Connorへの回答として、 Julianは、新しいTapscriptバージョンでは、 (sigopsバジェットに加えてではなく)sigopsバジェットの代わりにvaropsバジェットが使用されることを明確にしました。
-
● SLH-DSA (SPHINCS) 耐量子署名の最適化: 量子コンピューティングに対するBitcoinの強化に関する活発な議論を続ける中で、 conduitionは署名アルゴリズムSPHINCSの最適化に関する研究を発表しました。 これらの最適化には、数MBのRAMと、ローカルでコンパイルされたシェーダー(高度に最適化されたCPU固有のマシンコードで、 永続的にキャッシュされるか、起動時に計算される)が必要です。適用可能な場合、 最適化SPHINCSの署名と鍵生成処理は、従来の先端技術よりも桁違いに高速化され、 楕円曲線の演算よりもわずか2桁遅いだけです。さらに重要なことは、 最適化された署名検証は、楕円曲線の署名検証とほぼ同じ速度であるということです。
リリースとリリース候補
人気のBitcoinインフラストラクチャプロジェクトの新しいリリースとリリース候補。 新しいリリースにアップグレードしたり、リリース候補のテストを支援することを検討してください。
-
● Core Lightning v25.12は、この主要なLN実装のリリースで、 新しいバックアップ方法としてBIP39ニーモニックシードフレーズを追加し、 経路探索を改善し、実験的なJITチャネルのサポートを追加するなど、 多くの機能追加とバグ修正が行われています。データベースの重大な変更のため、 このリリースには問題が発生した場合に備えてダウングレードツールが含まれています(詳細は以下参照)。
-
● LDK 0.2は、ライトニングアプリケーション構築用ライブラリのメジャーリリースです。 (実験的な)スプライシングのサポート、 非同期支払い用の静的なインボイスの提供と支払い、 エフェメラルアンカーを使用したゼロ手数料のコミットメントチャネル、 その他多くの機能やバグ修正、APIの改善が含まれています。
注目すべきコードとドキュメントの変更
最近のBitcoin Core、Core Lightning、Eclair、LDK、 LND、libsecp256k1、Hardware Wallet Interface (HWI)、Rust Bitcoin、BTCPay Server、BDK、Bitcoin Improvement Proposals(BIP)、Lightning BOLTs、 Bitcoin InquisitionおよびBINANAsの注目すべき変更点。
-
● Core Lightning #8728は、ユーザーが間違ったパスフレーズを入力した際に
hsmdがクラッシュするバグを修正しました。現在は、このユーザーのエラーケースを適切に処理し、 終了するようになりました。 -
● Core Lightning #8702は、アップグレードエラーが発生した場合に、 データベースのバージョンを25.12から以前の25.09にダウングレードする
lightningd-downgradeツールを追加しました。 -
● Core Lightning #8735は、再起動時に一部のオンチェーン支払いがCLNのビューから消えてしまうという 長年のバグを修正しました。起動時に、CLNは(デフォルトで)最新15ブロックをロールバックし、 それらのブロックで使用されたUTXOの高さを
nullにリセットしてから再スキャンします。 これまでは、CLNはこれらのUTXOの再監視に失敗し、 既に閉鎖したチャネルのチャネルアナウンスをリレーし続けたり、 重要なオンチェーン支払いを見逃したりする可能性がありました。このPRは、 起動時にこれらのUTXOを再監視することを保証し、このバグによって以前見逃されていた支払いをリカバリーするために、 1回だけ後方スキャンを行います。 -
● LDK #4226は、受信したトランポリンオニオンの amountおよびCLTVフィールドを外側のオニオンと検証するようになりました。 また、トランポリン支払いの転送のサポートに向けた最初のステップとして3つの新しいローカル失敗理由
TemporaryTrampolineFailure、TrampolineFeeOrExpiryInsufficient、UnknownNextTrampolineを追加しました。 -
● LND #10341は、Hidden Serviceの再起動時に、 ノードアナウンスと
getinfo出力で同じTorオニオンアドレスが重複していたバグを修正しました。 このPRは、createNewHiddenService関数がアドレスを重複させないことを保証します。 -
● BTCPay Server #6986は、サーバ管理者がユーザーログインに
Subscription(ニュースレター #379参照)を必須にできるMonetizationを導入しました。 この機能により、アンバサダーや新規ユーザーをオンボーディングするBitcoinユーザー、 そしてローカルコンテキストの事業者は、自身の活動をマネタイズできるようになります。 デフォルトで7日間の無料トライアル期間と無料のスタータープランが用意されていますが、 サブスクリプションはカスタマイズ可能です。既存ユーザーは自動的にサブスクリプションに登録されませんが、 後から移行することは可能です。 -
● BIPs #2015は、コンセンサスクリーンアップ提案であるBIP54に テストベクタを追加し、4つの緩和策それぞれにベクタのセットを導入しました。 これらのベクタは、Bitcoin InquisitionのBIP54実装と、 カスタムBitcoin Coreのマイニング単体テストから生成され、 実装とレビューでの使用方法がドキュメント化されています。詳細については、 ニュースレター #379をご覧ください。