今週のニュースレターでは、計画されているセキュリティの開示についてのお知らせとともに、 新しいリリースおよびリリース候補の発表、人気のあるBitcoinインフラストラクチャソフトウェアの注目すべき変更など 恒例のセクションが含まれています。

ニュース

  • 差し迫ったbtcdのセキュリティ開示: Antoine Poinsotは、 btcdフルノードに影響するコンセンサスバグが10月10日に開示される予定でることを Delving Bitcoinに投稿しました。 アクティブなフルノードの大まかな調査データから、Poinsotは約36のbtcdノードが脆弱であると推測しています( ただ、これらのノードのうち20は、既に開示済みのコンセンサスの脆弱性に対しても脆弱です。 ニュースレター #286参照)。 返信で、btcdのメンテナーであるOlaoluwa Osuntokunは、 脆弱性の存在とそれがbtcdのバージョン0.24.2で修正されたことを確認しました。 旧バージョンのbtcdを実行している場合は、セキュリティ上重要と既に発表されている 最新リリースにアップグレードすることをお勧めします。

リリースとリリース候補

人気のBitcoinインフラストラクチャプロジェクトの新しいリリースとリリース候補。 新しいリリースにアップグレードしたり、リリース候補のテストを支援することを検討してください。

  • Bitcoin Core 28.0は、主要なフルノード実装の最新のメジャーリリースです。 これは、testnet4、1p1c(Opportunistic one-parent-one-child)パッケージリレー、 オプトインのTRUC(Topologically Restricted Until Confirmation)トランザクションのデフォルトリレー、 pay-to-anchorトランザクションのデフォルトリレー、 限定パッケージRBFリレーおよびフルRBFのデフォルトサポートを含む最初のリリースです。 assumeUTXOのデフォルトパラメーターが追加され、 Bitcoinネットワークの外部(torrent経由など)からダウンロードしたUTXOセットをloadtxoutset RPCで使用できるようになりました。リリースノートに記載されているように、 このリリースには多くの他の改善やバグ修正も含まれています。

  • BDK 1.0.0-beta.5は、ウォレットやその他のBitcoin対応アプリケーションを構築するためのこのライブラリのリリース候補(RC)です。 この最新のRCは、「RBFをデフォルトで有効にし、レート制限により失敗したサーバー要求を再試行するようにbdk_esploraクライアントを更新します。 bdk_electrumクレートでは、use-openssl機能も提供されるようになりました。」

注目すべきコードとドキュメントの変更

最近のBitcoin CoreCore LightningEclairLDKLNDlibsecp256k1Hardware Wallet Interface (HWI)Rust BitcoinBTCPay ServerBDKBitcoin Improvement Proposals(BIP)Lightning BOLTsBitcoin InquisitionおよびBINANAsの注目すべき変更点。

  • Bitcoin Core #30043は、IPv6ピンホールをサポートするために、 ポート制御プロトコル(PCP)の組み込み実装を導入し、 ルータ上で手動設定しなくてもノードに到達できるようにします。 この更新では、IPv4ポートマッピングのための既存のlibnatpmp依存関係がPCPに置き換えられ、 NATポートマッピングプロトコル(NAT-PMP)へのフォールバックの仕組みも実装されています。 PCP / NAT-PMP機能はデフォルトで無効になっていますが、今後のリリースで変更される可能性があります。 ニュースレター#131をご覧ください。

  • Bitcoin Core #30510は、Miningインターフェース(ニュースレター#310参照)に プロセス間通信(IPC)ラッパーを追加し、別のStratum v2マイニングプロセスが、 bitcoin-nodeプロセス(ニュースレター#320参照)に接続して制御することで、 ブロックテンプレートを作成、管理、送信できるようにします。Bitcoin Core #30409は、 新しいブロックが到着した際にそれを検出し、接続されたクライアントに新しいブロックテンプレートをプッシュする 新しいwaitTipChanged()メソッドでMiningインターフェースを拡張します。 waitfornewblockwaitforblockwaitforblockheightのRPCメソッドは、 これを使用するようにリファクタリングされました。

  • Core Lightning #7644は、hsmtoolユーティリティにnodeidコマンドを追加します。 このコマンドは、特定のhsm_secretバックアップファイルのノード識別子を返し、 バックアップを特定のノードに一致させ、他のノードとの混同を回避します。

  • Eclair #2848は、提案中のBOLTs #1153で定義されている拡張可能なLiquidity Adsを実装します。これにより、流動性の販売者は、 node_announcementメッセージで購入者に流動性を販売するレートを広告でき、 購入者は接続して流動性を要求できます。これは、デュアルファンドチャネルを作成する際、 またはスプライシングを介して既存のチャネルに流動性を追加する際に使用することができます。

  • Eclair #2860は、ノードがピアにファンディングトランザクションに使用する許容可能な手数料率を通知するための オプションのrecommended_feeratesメッセージを追加します。ノードがピアのファンディング要求を拒否した場合、 ピアはこれが手数料率によるものであることを理解します。

  • Eclair #2861は、BLIPs #36で定義されているオンザフライ・ファンディングを実装し、 十分な流動性のないクライアントが、Liquidity Adsプロトコル(上記PR参照)を介して ピアに追加の流動性を要求して支払いを受け取ることを可能にします。流動性の購入者は、 デュアルファンドチャネルまたはスプライシングトランザクションの オンチェーントランザクション手数料を負担しますが、これは後で支払いがルーティングされた際に購入者が支払います。 金額がトランザクションの承認に必要なオンチェーン手数料をカバーするのに十分でない場合、 販売者はそれを二重使用して、流動性を他の場所で使用できます。

  • Eclair #2875は、BLIPs #41で定義されているファンディング手数料クレジットを実装し、 オンザフライ・ファンディング(上記のPRを参照)クライアントが、 チャネルのオンチェーン手数料をカバーするには少なすぎる支払いを受け入れられるようにします。 十分な手数料クレジットが貯まると、その手数料クレジットを使用して チャネルファンディングやスプライシングなどのオンチェーントランザクションが作成されます。 クライアントは、流動性プロバイダーが将来の取引で手数料クレジットを保証することを期待します。

  • LDK #3303は、インバウンド支払い用の新しいPaymentIdを追加し、冪等性のあるイベント処理を改善します。 これによりユーザーは、ノードの再起動中にイベントを再生する際に、イベントが既に処理されているかどうかを簡単に確認できます。 PaymentHashに依存していた場合に発生する可能性のある重複処理のリスクが排除されます。 PaymentIdは、支払いに含まれるHTLCチャネル識別子とHTLC識別子のペアの ハッシュベースのメッセージ認証符号(HMAC)です。

  • BDK #1616は、TxBuilderクラスでデフォルトでオプトインRBFを通知します。 呼び出し元は、シーケンス番号を変更することで通知を無効にできます。

  • BIPs #1600は、(乱数の読み取りを担当する)drng_reader.readが評価ではなく第一級関数であることを指定するなど、 BIP85仕様にいくつかの変更を加えています。この更新では、エンディアン処理の明確化や、 testnetのサポート、Pythonの新しい参照実装、 HDウォレットシードウォレットインポートフォーマット(WIF)が最上位bitを使用することの明確化、 ポルトガル語の言語コードの追加、テストベクトルの修正も行われています。 最後に、BIP仕様の新しい代表者が指名されました。

  • BOLTs #798は、BOLT12を導入するオファープロトコル仕様をマージし、 BOLT1BOLT4にもいくつかの更新を行っています。