今週のニュースレターでは、LNDの更新された動的手数料率調整システムに関する説明を掲載しています。 また、サービスやクライアントソフトウェアの最近の更新や、新しいリリースとリリース候補の発表、 人気のBitcoinインフラストラクチャソフトウェアの最近の変更点など、恒例のセクションも含まれています。

ニュース

  • LNDの動的手数料率調整システムに関する説明: Matt Morehouseは、 オンチェーントランザクション(RBFによる手数料の引き上げを含む)に使用する手数料率を決定する、 最近書き換えられたLNDの スイーパー システムの説明をDelving Bitcoinに投稿しました。 彼はまず、LNノードの手数料管理の安全上重要な側面と、過払いを避けたいという自然な欲求について簡単に説明します。 次に、LNDが使用する2つの一般的な戦略について説明します:

    • ローカルのBitcoin Coreノードやサードパーティの外部の手数料率推定器に問い合わせる。 これは主に、初期手数料率の選択と、緊急性のないトランザクションの手数料の引き上げに使用されます。

    • 指数関数的な手数料の引き上げ。期限が迫っている場合に使用され、 ノードのmempoolや手数料の推定に関する問題によってタイムリーな承認が妨げられないようにします。 たとえば、Eclairは期限が6ブロック以内の場合、指数関数的に手数料を増額します。

    Morehouseは次に、LNDの新しいスイーパーシステムでこの2つの戦略がどのように組み合わされているかを説明します。 「期限が一致するHTLCの請求は、1つのバッチトランザクションに[集約されます]。バッチトランザクションの予算は、 トランザクション内の個々のHTLCの予算の合計として計算されます。トランザクションの予算と期限に基づいて、 期限が近づくにつれて予算のどれだけを使用するかを決定する手数料関数が計算されます。 デフォルトでは、(最小リレー手数料率または外部の推定器によって決まる)低めの手数料からスタートし、 期限が1ブロック先に迫ったら予算全体が手数料に割り当てられる線形手数料関数が使用されます。」

    彼はさらに、新しいロジックが置換サイクル攻撃に対する保護にどう役立つかを説明し、 次のように結論づけています。「LNDのデフォルトパラメーターでは、 攻撃者が置換サイクル攻撃を成功させるには、通常、HTLCの金額の少なくとも20倍を使用する必要があります。」 また、新しいシステムによってLNDのピンニング攻撃に対する防御も向上すると付け加えています。

    彼は最後に、改善されたロジックによって行われた「LND固有のバグと脆弱性の修正」リンクを掲載しています。 Abubakar Sadiq Ismailは、すべてのLN実装(および他のソフトウェア)が Bitcoin Coreの手数料推定をより効果的に使用する方法についていくつかの提案を返信しました。 他の何人かの開発者もコメントし、説明にニュアンスを加え、新しいアプローチを称賛しました。

サービスとクライアントソフトウェアの変更

この毎月の特集では、Bitcoinのウォレットやサービスの興味深いアップデートを取り上げています。

  • Wally 1.4.0リリース: libwally-core 1.4.0リリースでは、Taprootのサポート、 BIP85 RSA鍵の導出のサポート、追加のPSBTディスクリプター機能が追加されました。

  • Bitcoin Core Config Generatorの発表: Bitcoin Core Config Generatorプロジェクトは、 Bitcoin Coreのbitcoin.conf設定ファイルを作成するためのターミナルインターフェースです。

  • regtest開発環境コンテナ: regtest-in-a-podリポジトリは、 ブログ記事Using Podman Containers for Regtest Bitcoin Developmentで説明されているように、Bitcoin Core、Electrum、Esploraで構成された Podmanコンテナを提供します。

  • Exploraトランザクション視覚化ツール: Exploraは、トランザクションのインプットとアウトプットを視覚化し ナビゲートするためのWebベースのエクスプローラです。

  • Hashpool v0.1タグ: Hashpoolは、マイニングシェアがecashトークンとして表現される( ポッドキャスト #337参照)Stratum v2参照実装に基づく マイニングプールです。

  • DMNDがプールマイングを開始: DMNDは、以前のソロマイニングの発表に基づいて、 Stratum v2プールマイングを開始しました。

  • KruxがTaprootとminiscriptをサポート: Kruxは、embitライブラリを活用して、 miniscriptとTaprootのサポートを追加しました。

  • ソースが利用可能なセキュアエレメントの発表: TROPIC01は、RISC-V上に構築されたセキュアエレメントで、 監査可能なオープンアーキテクチャを採用しています。

  • NunchukがGroup Walletを発表: Group Walletは、マルチシグの署名、 Taproot、コイン制御、Musig2をサポートし、 BIP129 BSMS(Bitcoin Secure Multisig Setup)ファイルのアウトプットディスクリプター再利用することで、 参加者間の安全な通信をサポートします。

  • FROSTRプロトコルの発表: FROSTRは、FROST閾値署名スキームを使用して、 nostr用のk-of-n署名と鍵管理を実現します。

  • Barkがsignetでローンチ: ArkBark実装がsignet利用可能になり、 テスト用のFaucetとデモストアが提供されています。

  • Cove Bitcoinウォレットの発表: Cove Walletは、PSBTやウォレットラベル、 ハードウェア署名デバイスなどのテクノロジーをサポートする、BDKベースのオープンソースのBitcoinモバイルウォレットです。

リリースとリリース候補

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

  • Bitcoin Core 29.0rc2は、ネットワークの主要なフルノードの次期メジャーバージョンのリリース候補です。

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

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

  • Bitcoin Core #31649は、数年前に実装されたヘッダーの事前同期ステップ(ニュースレター #216参照) 以降は不要になったすべてのチェックポイントロジックを削除します。この事前同期ステップにより、 ノードは初期ブロックダウンロード(IBD)中に、トータルのPoW(proof of work)を事前定義された閾値 nMinimumChainWorkと比較することで、ヘッダーのチェーンが有効かどうかを判断できます。 トータルのPoWがこの値を超えるチェーンのみが有効とみなされ保存されるため、 作業量の少ないヘッダーによるメモリDoS攻撃を効果的に防止できます。これにより、 集中化の要因と見なされることが多かったチェックポイントが不要になります。

  • Bitcoin Core #31283は、BlockTemplateインターフェースに新しいwaitNext()メソッドを導入します。 このメソッドは、チェーンの先頭が変更された場合、またはmempoolの手数料がMAX_MONEY閾値を超えた場合にのみ、 新しいテンプレートを返します。これまでは、マイナーはリクエスト毎に新しいテンプレートを受け取っていたため、 不要なテンプレートの生成が発生していました。この変更は、Stratum V2プロトコル仕様に準拠しています。

  • Eclair #3037は、listoffersコマンド(ニュースレター #345参照)を強化し、 生のTLV(Type-Length-Value)データだけでなく、createdAtおよびdisabledAtタイムスタンプを含む すべての関連するオファーデータを返します。さらにこのPRでは、 同じオファーを2回登録しようとするとノードがクラッシュするバグを修正しています。

  • LND #9546は、lncli constrainmacaroonサブコマンド(ニュースレター #201参照)に ip_rangeフラグを追加し、ユーザーがmacaroon(認証トークン)を使用する際に、 リソースへのアクセスを特定のIP範囲に制限できるようにします。これまでは、 macaroonは範囲ではなく特定のIPアドレスに基づいてのみアクセスを許可または拒否できていました。

  • LND #9458は、サーバーの初期アクセス権限を管理するために、 --num-restricted-slotsフラグで構成可能な、特定のピアに対する制限付きアクセススロットを導入します。 ピアには、チャネル履歴に基づいてアクセスレベルが割り当てられます。 承認済みのチャネルを持つピアには保護されたアクセスが与えられ、 未承認のチャネルを持つピアには一時的なアクセスが与えられ、その他のピアには制限されたアクセスが与えられます。

  • BTCPay Server #6581では、RBFのサポートが追加され、 子孫がなく、すべてのインプットがストアのウォレットのもので、 ストアのお釣り用アドレスを1つ含むトランザクションの引き上げが可能になります。 ユーザーは、トランザクションの手数料の引き上げを選択する際に、 CPFPとRBFのどちらかを選択できるようになります。 手数料の引き上げには、NBXplorerバージョン2.5.22以降が必要です。

  • BDK #1839では、新しいTxUpdate::evicted_atsフィールドを導入することで、 キャンセルされた(二重使用された)トランザクションの検出と処理のサポートが追加されました。 このフィールドは、TxGraphlast_evictedタイムスタンプを更新します。 トランザクションのlast_evictedタイムスタンプがlast_seenタイムスタンプを超えている場合、 そのトランザクションは排除されたと見なされます。正規化アルゴリズム(ニュースレター #335参照)は、推移規則により正規の子孫が存在する場合を除いて、 排除されたトランザクションを無視するように更新されています。

  • BOLTs #1233は、ノードがプリイメージを知っている場合は 上流のHTLCを失敗させないようにノードの動作を更新し、 HTLCが適切に解決されることを保証します。これまでは、プリイメージが分かっていても、 承認済みのコミットメントにHTLCがない場合は、未処理の上流のHTLCを失敗させることが推奨されていました。 0.18未満のLNDにはバグがあり、DoS攻撃を受けたノードは、プリイメージを知っているにもかかわらず、 再起動後に上流のHTLCを失敗させ、HTLCの金額が失われていました(ニュースレター #344参照)。

もっと知りたいですか?

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