/ home / newsletters /
Bitcoin Optech Newsletter #377
今週のニュースレターでは、クラスターmempoolを使用してブロックテンプレートの手数料率の上昇を検出するアイディアと、 チャネルジャミングを緩和するシミュレーション結果の最新情報を掲載しています。また、 サービスとクライアントソフトウェアの最近の更新や、新しいリリースとリリース候補の発表、 人気のBitcoinインフラストラクチャソフトウェアの注目すべき更新など、 恒例のセクションも含まれています。
ニュース
-
● クラスターmempoolを使用したブロックテンプレートの手数料率上昇の検出: Abubakar Sadiq Ismailは最近、mempoolの更新による潜在的な手数料増加を追跡し、 手数料率の改善が正当化される場合にのみマイナーに新しいブロックテンプレートを提供する可能性について Delving Bitcoinに投稿しました。このアプローチにより、 冗長なブロックテンプレートの構築回数が削減され、トランザクション処理やピアへのリレーの遅延を防ぐことができます。 この提案は、ブロックテンプレートの完全な再構築を必要とせずに、 潜在的な手数料率の改善が見込めるかを評価するためにクラスターmempoolを活用しています。
新しいトランザクションがmempoolに入ると、0個以上の既存クラスターに接続され、 影響を受けたクラスターの再リニアライゼーション(詳細についてはニュースレター#312参照)がトリガーされ、 古い(更新前)のと新しい(更新後)手数料率ダイアグラムが生成されます。 古いダイアグラムはブロックテンプレートから排除させる可能性のあるチャンクを識別し、 新しいダイアグラムは追加候補となる高手数料率のチャンクを識別します。その後、 システムは以下の4段階のプロセスに従って影響をシミュレートします。
-
排除: テンプレートのコピーから一致するチャンクを削除し、変更後の手数料とサイズを更新します。
-
単純マージ: ブロックのウェイト制限を守りながら候補チャンクを貪欲に追加し、潜在的な手数料利益(ΔF)を推定します。
-
反復マージ: 単純な推定が決定的でない場合、より詳細なシミュレーションを使用してΔFを精微化します。
-
決定: ΔFと閾値を比較し、閾値を超えた場合は完全なブロックテンプレートを再構築してマイナーに送信します。 そうでない場合は、不要な計算を避けるためスキップします。
現在の提案はまだ議論の段階で、プロトタイプはまだ利用できません。
-
-
● チャネルジャミング緩和策のシミュレーション結果と更新: Carla Kirk-Cohenは、Clara Shikhelmanおよびelnoshと協力して、 彼らのチャネルジャミングの緩和提案のレピュテーションアルゴリズムのシミュレーション結果と更新について Delving Bitcoinに投稿しました。注目すべき変更として、 レピュテーションは送信チャネルで追跡され、リソースは受信チャネルで制限される点が挙げられます。 Bitcoin Optechはこれまでに、ライトニングチャネルジャミング攻撃と、 Carlaによる以前のDelving Bitcoinへの投稿を取り上げています。 ライトニングチャネルジャミングの基本的な理解のためには、これらの記事をお読みください。
この最新の更新では、彼らはシミュレーターを使用してリソース攻撃と シンク攻撃の両方を実行しました。新しい更新により、リソース攻撃に対する保護は維持され、 シンク攻撃では攻撃ノードが不正な動作をした際に迅速に遮断されることが分かりました。 攻撃者がレピュテーションを構築してから、複数のノードを標的にした場合、 補償されるのは最後のノードのみであることが指摘されています。しかし、複数のノードを標的とするには、 攻撃者にとって大きなコストがかかることになります。
記事では、チャネルジャミングの緩和策は十分なレベルに達していると結論付けており、 読者にシミュレーターを使って攻撃をテストするよう勧めています。
サービスとクライアントソフトウェアの変更
この毎月の特集では、Bitcoinのウォレットやサービスの興味深いアップデートを取り上げています。
-
● BULLウォレットのローンチ: オープンソースのBULLモバイルウォレットは、BDK上に構築されており、 ディスクリプター、ラベリングとコイン選択、 ライトニング、payjoin、Liquid、ハードウェアウォレット、 監視専用ウォレットなど、その他多くの機能をサポートしています。
-
● Sparrow 2.3.0リリース: Sparrow 2.3.0は、サイレントペイメントアドレスへの送金と、 人が読めるBIP353 Bitcoin支払い指示のサポートを追加し、その他の機能追加とバグ修正も含まれています。
リリースとリリース候補
人気のBitcoinインフラストラクチャプロジェクトの新しいリリースとリリース候補。 新しいリリースにアップグレードしたり、リリース候補のテストを支援することを検討してください。
-
● Core Lightning 25.09.1は、この人気のLNノードの現在のメジャーバージョンのメンテナンスリリースで、 いくつかのバグ修正が含まれています。
-
● Bitcoin Core 28.3は、この主要なフルノード実装の以前のリリースシリーズのメンテナンスリリースです。 複数のバグ修正と
blockmintxfee、incrementalrelayfeeおよびminrelaytxfeeの新しいデフォルト値が含まれています。
注目すべきコードとドキュメントの変更
最近の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の注目すべき変更点。
-
● Bitcoin Core #33157は、単一のトランザクションクラスター用に
SingletonClusterImpl型を導入し、 いくつかのTxGraph内部構造をコンパクト化することで、 mempoolクラスター内のメモリ使用量を最適化しています。 このPRは、TxGraphのメモリ使用量を推定するGetMainMemoryUsage()関数も追加しています。 -
● Bitcoin Core #29675は、
musig(0)ディスクリプターをインポートしたウォレットにおいて、 MuSig2集約鍵によって管理されるTaprootアウトプットの受信と使用をサポートします。 以前の有効化の作業については、ニュースレター #366をご覧ください。 -
● Bitcoin Core #33517とBitcoin Core #33518は、 ログレベルとカテゴリを追加することでマルチプロセスログのCPU使用量を削減します。 これにより、破棄されるプロセス間通信(IPC)ログメッセージのシリアライズを回避します。 作者によると、このPR以前は、ログの処理が Stratum v2クライアントアプリケーションのCPU時間の50%、 Bitcoinノードのプロセスの10%を占めていたことを発見しました。 現在はほぼ0%にまで低下しました。追加の文脈については、 ニュースレター#323と#369をご覧ください。
-
● Eclair #2792は、各経路のキャパシティと成功確率を考慮してパーツを経路間に割り当てる 新しいMPP分割戦略
max-expected-amountを追加します。 新しいmpp.splitting-strategy設定オプションが3つのオプションと共に追加されました:max-expected-amount、経路のキャパシティのみを考慮するfull-capacity、 ランダムに分割するrandomize(デフォルト)です。後者の2つは既にrandomize-route-selectionのブール設定を通じてアクセス可能です。このPRは、リモートチャネルのHTLC最大制限の実施を追加します。 -
● LDK #4122は、ピアがオフラインの間、スプライスリクエストをキューイングし、 再接続時にネゴシエーションを開始できるようにします。ゼロ承認のスプライスの場合、LDKは
tx_signaturesの交換直後に ピアにsplice_lockedメッセージを送信するようになりました。また、LDKは並行スプライス中にスプライスをキューイングし、 他のスプライスがロックされ次第、試行するようになります。 -
● LND #9868は、
OnionMessage型を定義し、2つの新しいRPCエンドポイントを追加します。SendOnionMessageは特定のピアにオニオンメッセージを送信し、SubscribeOnionMessagesは受信するオニオンメッセージのストリームを購読します。 これらはBOLT12 オファーをサポートするために必要な最初のステップです。 -
● LND #10273は、従来のスイーパー
utxonurseryが ロックタイム(高さヒント)が0のHTLCをスイープしようとした際にLNDがクラッシュする問題を修正します。 現在、LNDはチャネルのクローズの高さからヒントを導出することで、これらのHTLCを正常にスイープします。