/ home / newsletters /
Bitcoin Optech Newsletter #407
今週のニュースレターでは、リモートピアがCore Lightningノードのクラッシュを可能にする脆弱性の責任ある開示と、 最近のBitcoin Core開発者会議の議事録のリンクを掲載しています。また、新しいリリースとリリース候補の発表や、 人気のBitcoin基盤ソフトウェアの注目すべき更新など恒例のセクションも含まれています。
ニュース
-
● Core LightningのアサーションDoSの開示: Chandra Pratapは、 2025年夏のBitcoinインターンシップ中に発見されたサービス拒否(DoS)の脆弱性の開示について Delving Bitcoinに投稿しました。この脆弱性は、インバウンドチャネルを受け入れるCore Lightningノードに影響します。
チャネル開設のハンドシェイク中、リモートピアは提案するファンディングトランザクションのtxidを含むメッセージを送信します。 Core Lightningは、txidが非ゼロであることを要求するアサーションチェックを実行していました。 ピアが代わりにすべてゼロのtxidを送信すると、アサーションが失敗してノードがクラッシュしました。 どのピアもチャネルを開くハンドシェイクを開始して悪意あるメッセージを送信できるため、 これによりリモートの攻撃者がインバウンドチャネルを受け入れた脆弱なノードを確実にクラッシュさせることが可能でした。
この脆弱性は責任を持って開示され、ファジングによって発見されました。 報告の時点で、Rusty Russell氏は独立して別のクラッシュバグに取り組んでおり、 彼の修正は偶然にもこの脆弱性も解決していました。この脆弱性はCore Lightning 26.04で修正されました。
-
● Bitcoin Core開発者会議の議事録: 多くのBitcoin Core開発者が5月に対面で会合を行い、 その会議の議事録が公開されました。トピックには、SwiftSync、 ポストクラスターmempool、Erlayの再設計、 パッケージリレー、サイレントペイメント、 TCPホールパンチング(ニュースレター #406参照)、 プライベートブロードキャスト、最新の暗号ライブラリ、 ミューテーションテストなどが含まれていました。
リリースとリリース候補
人気のBitcoinインフラストラクチャプロジェクトの新しいリリースとリリース候補。 新しいリリースにアップグレードしたり、リリース候補のテストを支援することを検討してください。
-
● Eclair v0.14.0は、この人気のLNノード実装の最新リリースです。スプライシング、 Simple Taproot Channelおよび ゼロ手数料コミットメントの最終版を含み、 非アンカーアウトプットチャネルのサポートを削除し、 流動性とルーティングの最適化のための実験的なピアスコアリングを追加しています。
-
● Core Lightning 26.06rc2は、この人気のLNノードの次期メジャーバージョンのリリース候補で、 新しい
graceful、sendamount、xkeysendRPCを含み、payからxpayへの移行に向けたpayの非推奨化サイクルを開始し、 BOLT12のpayer-proof(支払者証明)RPCサポートを追加しています。
注目すべきコードとドキュメントの更新
最近のBitcoin Core、Core Lightning、Eclair、LDK、 LND、libsecp256k1、Hardware Wallet Interface (HWI)、Rust Bitcoin、BTCPay Server、BDK、Bitcoin Improvement Proposals(BIP)、Lightning BOLTs、Lightning BLIPs、 Bitcoin InquisitionおよびBINANAsの注目すべき変更点。
-
● Bitcoin Core #33966は、Mining IPCインターフェース向けのマイニングブロックテンプレートオプションの処理方法を リファクタリングしています(ニュースレター#310および#323参照)。 これまでは、
blockmaxweight、blockreservedweight、blockmintxfeeなどの起動時のマイニングオプションは、 IPCマイニングクライアントから渡される実行時オプションとは別々に処理されていました。今後は、 これらのオプションは共有のBlockCreateOptionsオブジェクトにパースされ、 ブロックテンプレートの作成または更新時にマージされます。予約ブロックウェイトが最大ブロックウェイトを超えるなどの無効な組み合わせは、 有効な範囲値に暗黙的に調整されるのではなく、拒否されるようになりました。 -
● Bitcoin Core #34917では、ウォレットトランザクションRPCである
listtransactions、listsinceblock、gettransactionにおいて、非推奨のbip125-replaceableフィールドが返されなくなります。ただし、 ユーザーは-deprecatedrpc=bip125オプションを使ってこのフィールドを引き続き要求できます。このPRではまた、 起動オプション-walletrbfも非推奨となり、警告が表示されるようになりました。このオプションは次期リリースでの削除が予定されています。 RBF関連フィールドのこれまでの削除については、ニュースレター #403をご覧ください。 -
● Bitcoin Core #35017は、予期しない検証失敗の後に後続のトランザクションがmempoolに残ってしまうのを防ぐため、 パッケージトランザクションの送信プロセスを更新します。パッケージの送信中、 トランザクションは順次処理されるため、後続のトランザクションは、既にmempoolに追加された先行トランザクションを使用できるようになっています。 これまでは、あるトランザクションが後段の検証チェック(コンセンサススクリプトチェックなど)に失敗した場合、 Bitcoin Coreはそのトランザクションのみを削除していました。今後は、パッケージ内の後続のすべてのトランザクションも削除し、 親が削除された後に子がmempoolに残ることを防ぎます。
-
● BIPs #1944は、
OP_TWEAKADD(調整済みx-only公開鍵を計算するためのTapscript opcode)のソフトフォーク案である BIP449を追加します(ニュースレター #370参照)。32 byteのx-only公開鍵と 32 byteのスカラー調整値が与えられると、このopcodeはP + tGのx-only鍵をプッシュします。 これにより、スクリプトが鍵と調整値の関係を直接検証できるようになり、調整値開示スクリプト、 署名順序の証明、署名委任プロトコルなどの構築が可能になります。 -
● BIPs #2108は、BIP450(Formosa)を追加します。これは、 BIP39互換のウォレットエントロピーを物語形式のニーモニックフレーズとしてエンコードするためのドラフト仕様です。 ランダムなBIP39ワードを使用する代わりに、Formosaはテーマで定義されたワードリストを使ってエントロピーをエンコードし、 短く構造化された文を生成します。これらの物語は元のエントロピーにデコードして戻すことができ、 シード導出の前に標準的なBIP39ニーモニックに変換できるため、BIP39との互換性が保たれます。
-
● Eclair #3192は、ニュースレター #404で取り上げた仕様に従って、 ゼロ手数料コミットメント(0FC)チャネルの実験的サポートを追加します。 この機能はデフォルトで無効になっており、
eclair.features.zero_fee_commitments = optionalで有効にできます。 -
● LDK #4584は、BOLT12のブラインドメッセージおよびペイメントパスのコンテキストに
payment_metadataマップを追加します。これは、受取人側のメタデータをブラインドパスを通じて送信し、 支払いが受領された際にそれを復元するための仕組みを追加するもので、BOLT11のpayment_metadataに似ています。 メタデータ付きのオファーの作成は現時点ではサポートされていません。 メタデータは数値キーからバイト配列へのマップとして格納され、同じ支払いに複数の独立したデータを付加できます。 -
● LDK #4628は、ニュースレター #405で取り上げたメタデータコミットメントに基づき、 インバウンド支払いの作成時にBOLT11の
payment_metadataの暗号化を開始します。 支払いの検証後、LDKはメタデータを復号し、アプリケーションが暗号化を自前で実装したり メタデータを支払人に公開したりすることなく、インボイスのメタデータにアクセスできるようにします。 -
● LND #10552は、NeutrinoをバックエンドとするLNDノード向けに、 高速な初期同期機能を追加します。これにより、通常のP2P同期を再開する前に、 ローカルファイルまたは HTTP(S) ソースから事前に構築されたBitcoinブロックヘッダーとコンパクトフィルターをインポートできます。 新しい
neutrino.blockheaderssourceとneutrino.filterheaderssourceオプションは一緒に設定する必要があります。 インポートされたヘッダーはローカルで検証され、その後Neutrinoはインポートされた先端以降のヘッダーをネットワークピアから取得します。 -
● LND #10820は、Taprootのチャネルアナウンスがまだサポートされていないため、 パブリックチャネルを開く際にLNDが暗黙的にSimple Taproot Channelを選択するのを防止します。 これまでは、両方のピアがこのタイプのチャネルのサポートを通知している場合、LNDがそれを選択した上で開設を拒否することがありました。 今後は、Simple Taproot Channelは明示的に要求される必要があり、一方で暗黙的なネゴシエーションでは、 legacy、static remote keyまたはアンカーチャネルタイプを引き続き選択できます。 このPRはまた、
lncli openchannel --channel_type=taprootを更新して、本番用のSimple Taproot Channelタイプを選択するようにしています。
もっと知りたいですか?
このニュースレターで言及されたトピックについてもっと議論したい方は、 16:30 UTCに Riverside.fmで毎週配信されているBitcoin Optech Recapにご参加ください。 この議論は録画もされ、ポッドキャストページからご覧いただけます。