今週のニュースレターでは、QRコードで使用するためにアウトプットスクリプトディスクリプターを 圧縮できる新しいライブラリについて掲載しています。また、Bitcoin Core PR Review Clubミーティングの概要や、 新しいリリースとリリース候補の発表、人気のあるBitcoinインフラストラクチャソフトウェアの注目すべき更新など、 恒例のセクションも含まれています。

ニュース

  • 圧縮ディスクリプター: Josh Domanが アウトプットスクリプトディスクリプターをバイナリ形式にエンコードして サイズを約40%削減するライブラリをDelving Bitcoinで発表しました。 これはディスクリプターをQRコードを使ってバックアップするのに便利です。 彼の投稿では、エンコード方法の詳細が説明されており、 この圧縮機能を暗号化ディスクリプターバックアップライブラリ(ニュースレター #358参照)に 組み込む予定であると言及されています。

Bitcoin Core PR Review Club

この毎月のセクションでは、最近のBitcoin Core PR Review Clubミーティングを要約し、 重要な質問と回答のいくつかに焦点を当てます。 以下の質問をクリックしてミーティングでの回答の要約を確認してください。

Improve TxOrphanage denial of service boundsは、 glozowによるPRで、TxOrphanageの排除ロジックを変更し、 各ピアに少なくとも最大サイズ1パッケージ分のオーファンの解決に必要なリソースを保証するようにします。 この新しい保証により、1P1C(1-parent-1-child)パッケージリレーが大幅に改善され、 特に(ただしこれに限定されませんが)敵対的な状況下で顕著になります。

このPRは、既存のグローバルなオーファン制限を変更し、ピア毎に新しい制限を導入します。 これらを組み合わせることで、過剰なメモリの使用と計算能力の枯渇の両方から保護します。 また、このPRはランダムな排除アプローチを、アルゴリズムによるアプローチに置き換え、 ピア毎にDoSスコアを計算します。

注: このPRはReview Clubのミーティング以降に、いくつかの重要な変更が行われています。 最も重要なのは、アナウンスの制限ではなくレイテンシースコア制限を使用していることです。

  • 現在のTxOrphanageのグローバル最大サイズ制限である100トランザクションとランダムな排除には、なぜ問題があるのですか?

    悪意のあるピアがオーファントランザクションを大量にノードに送りつけ、 最終的に他のピアからの正当なトランザクションをすべて排除させてしまう可能性があります。 これは、子がオーファン状態に長く留まることができなくなり、1P1Cトランザクションリレーの成功を阻止するのに使用できます。 

  • 新しい排除アルゴリズムはどのように機能しますか?

    排除はランダムではなくなります。新しいアルゴリズムは、 「DoSスコア」に基づいて「最も動作の悪い」ピアを特定し、 そのピアから送られた最も古いトランザクションの通知を排除します。 これにより、動作不良のピアによって正常な動作のピアのトランザクションの子が排除されるのを防ぎます。 

  • グローバル制限に達していない間、ピアが個別の制限を超えるのを許可するのが望ましいのはなぜですか?

    ピアがより多くのリソースを使用しているのは、単にそのピアがCPFPなどの有用なトランザクションをブロードキャストしている 有用なピアである可能性があります。 

  • 新しいアルゴリズムはトランザクションではなくアナウンスを排除します。その違いは何で、なぜ重要なのですか?

    アナウンスは、トランザクションとそれを送信したピアのペアです。アナウンスを排除することで、 悪意あるピアは、正直なピアから送信されたトランザクションを排除できなくなります。 

  • ピアの「DoS」スコアとは何ですか?どのように計算されますか?

    ピアのDoSスコアは、「メモリスコア」(メモリ使用量/メモリ確保量)と 「CPUスコア」(アナウンス回数/アナウンス制限)の最大値です。 単一の複合スコアを使用することで、排除ロジックが単一のループに簡素化され、 いずれかの制限を最も積極的に超過しているピアをターゲットにできます。 

リリースとリリース候補

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

  • LND v0.19.2-beta.rc2は、この人気のLNノードのメンテナンスバージョンのリリース候補です。

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

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

  • Core Lightning #8377は、BOLT11インボイスのパース要件を厳格化し、 ペイメントシークレットが欠落している場合、またはp(ペイメントハッシュ)、 h(説明ハッシュ)、s(シークレット)などの必須フィールドの長さが正しくない場合、 送信者にインボイスへの支払いをしないように義務付けています。これらの変更は、 最近の仕様の更新(ニュースレター#350および#358参照)に合わせて行われました。

  • BDK #1957は、トランザクション履歴、マークルプルーフおよびブロックヘッダーの要求に対するRPCバッチ処理を導入し、 Electrumバックエンドを使用したフルスキャンと同期のパフォーマンスを最適化します。 このPRはまた、同期中にSPV(Simple Payment Verification)の再検証(ニュースレター#312参照)をスキップするためのアンカーキャッシュも追加されています。 サンプルデータを使用した結果、作者はフルスキャン時にRPC呼び出しのバッチ処理により8.14秒から2.59秒、 同期時にキャッシュ処理により1.37秒から0.85秒のパフォーマンスの向上を確認しました。

  • BIPs #1888は、BIP380から強化導出パスのマーカーとしてHを削除し、 標準的なh'のみを残しました。最近のニュースレター#360では、 文法が明確化され3つのマーカーすべてが使用可能になったと掲載していましたが、 実際にはこれをサポートしているディスクリプター実装は(あったとしても)ほとんどないため (Bitcoin Coreもrust-miniscriptもサポートしていません)、 仕様が厳格化され使用不可となりました。

もっと知りたいですか?

このニュースレターで言及されたトピックについてもっと議論したい方は、 16:30 UTCに Riverside.fmで毎週配信されているBitcoin Optech Recapにご参加ください。 この議論は録画もされ、ポッドキャストページからご覧いただけます。