/ home / newsletters /
Bitcoin Optech Newsletter #248
今週のニュースレターでは、Bitcoin CoreからBIP35のmempool
P2Pプロトコルメッセージのサポートを削除する提案に関する
フィードバックの要求に加え、Bitcoin Stack Exchangeからの人気の質問と回答、新しいリリースとリリース候補の発表、
人気のBitcoinインフラストラクチャソフトウェアの注目すべき変更など恒例のセクションを掲載しています。
ニュース
-
● BIP35
mempool
P2Pメッセージの削除を提案: Will Clarkは、 BIP35で元々定義されていたmempool
P2Pメッセージのサポートを削除するために作成されたPRについて、 Bitcoin-Devメーリングリストに投稿しました。 元の実装では、mempool
メッセージを受信したノードは、 自身のmempool内のすべてのトランザクションのtxidを含むinv
メッセージで要求元のピアに応答していました。 要求元のピアは、その後、受け取りたいトランザクションのtxidを含む通常のgetdata
メッセージを送信することができました。 BIPでは、このメッセージについて3つの動機を説明しています。 ネットワーク診断、軽量クライアントが未承認トランザクションをポーリングできるようにすること、 そして直近で起動したマイナーに未承認トランザクションを知らせることです(当時、 Bitcoin Coreはシャットダウン時にmempoolを永続ストレージに保存していませんでした)。しかし、その後、
mempool
メッセージまたはgetdata
を使用して 任意のmempoolトランザクションを要求できる機能を悪用することで、 どのノードが最初にトランザクションをブロードキャストしたかをより簡単に特定できるようになる、 プライバシーを低減するさまざまな技術が開発されました。 トランザクションの発信元のプライバシーを改善するために、 Bitcoin Coreはその後、未公表のトランザクションを他のノードから要求する機能を削除し、mempool
メッセージは軽量クライアント用の(BIP37として定義されている) トランザクションBloom Filterと共に使用するよう制限されました。 さらにその後、Bitcoin CoreはBloom Filterのサポートをデフォルトで無効にし(ニュースレター #56参照)、-whitelist
オプションで設定されたピアに対してのみ使用を許可しました(ニュースレター #60参照)。 これにより、BIP35のmempool
メッセージもデフォルトで事実上無効になりました。ClarkのBitcoin CoreのPRは、プロジェクト内から支持を得ていますが、 一部の支持者はBIP37のBloom Filterを先に削除すべきだと考えています。 メーリングリストでは、この記事を書いている時点で唯一の返信があり、 自分の信頼できるノードに接続する軽量クライアントは現在、BIP35およびBIP37を使用して、 Bitcoin Coreで現在簡単に利用できる他の方法よりもはるかに帯域幅効率の良い方法で、 未承認のトランザクションについて知ることができると述べています。 この回答者は、Bitcoin Coreが現在のインターフェースを削除する前に、 代替となる仕組みを提供することを提案しています。
何らかの目的でBIP35の
mempool
メッセージを使用している人からの追加のフィードバックが求められています。 メーリングリストの投稿または上記のPRに返信することができます。
Bitcoin Stack Exchangeから選ばれたQ&A
Bitcoin Stack ExchangeはOptech Contributor達が疑問に対して答えを探しに(もしくは他のユーザーの質問に答える時間がある場合に)アクセスする、 数少ない情報ソースです。この月刊セクションでは、前回アップデート以降にされた、最も票を集めた質問・回答を紹介しています。
-
● 無効なブロック783426には何個のsigopsがありますか? Vojtěch Strnadは、ブロック内のすべてのトランザクションを反復処理し、 sigopsをカウントするスクリプトを提供し、 そのブロックに80,003個のsigopsがあり、無効であることを示しました。
-
● 敵対者は、どのようにしてトランザクションを置き換えるために必要な手数料を最大500倍に増やすことができるのでしょうか? Michael Folksonは、エフェメラル・アンカーに関するBIPドラフトを参照しながら、 トランザクションを置き換えるために必要な手数料が500倍に増加するというのはどうやって起こるのかと尋ねています。 Antoine Poinsotは、攻撃者がRBF(Replace-By-Fee)による手数料引き上げルールを使用して、 追加の置換トランザクションに対してはるかに高い手数料の支払いを要求できる例を挙げています。
-
● 複数のCPFPとCPFP + RBFのベストプラクティスは? Sdaftuarは、最初のCPFP(Child Pays For Parent)による手数料引き上げの試行が 最初のトランザクションを承認させるのに十分な手数料を提供できなかったシナリオで、 RBFとCPFPの手数料引き上げ技術を使用する際の考慮事項を説明しています。
リリースとリリース候補
人気のBitcoinインフラストラクチャプロジェクトの新しいリリースとリリース候補。 新しいリリースにアップグレードしたり、リリース候補のテストを支援することを検討してください。
-
● LDK 0.0.115は、LN対応ウォレットやアプリケーションを構築するためのこのライブラリのリリースです。 実験的なOfferプロトコルのサポートや、セキュリティとプライバシーの向上など、 いくつかの新機能とバグ修正が含まれています。
-
● LND v0.16.1-betaは、このLN実装のマイナーリリースで、いくつかのバグ修正とその他の改良が含まれています。 リリースノートには、デフォルトのCLTV deltaが40ブロックから80ブロックに増加したことが記載されています( LNDのデフォルトのCLTV deltaの変更については、ニュースレター #40を参照ください)。
-
● Core Lightning 23.05rc1は、このLN実装の次のバージョンのリリース候補です。
注目すべきコードとドキュメントの変更
今週の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の注目すべき変更点。
-
● LND #7564では、mempoolへのアクセスを提供するバックエンドのユーザーが、 ノードのチャネルに含まれるHTLCのプリイメージを含む未承認トランザクションを監視できるようになりました。 これにより、ノードは、これらのトランザクションが承認されるのを待つよりも、速くHTLCを解決できるようになります。
-
● LND #6903は、アンカー・アウトプットを使用してチャネルに手数料を追加するために オンチェーンで保持する必要がある金額を除いて、新しいチャネルにすべてのチャネル資金を割り当てる新しい
fundmax
オプションを追加し、openchannel
RPCを更新しました。 -
● LDK #2198は、チャネルがダウンしたこと(たとえば、リモートピアが利用できないなどで)を 知らせるゴシップメッセージを送信するまでの時間を増やしました。 これまでは、LDKは約1分後にチャネルがダウンしたことを知らせていました。 他のLNノードはより長い時間を待ち、LNゴシッププロトコルの更新の提案では、 タイムスタンプフィールドをUnixエポックタイムではなくブロック高に置き換えることを提案しており、 ゴシップメッセージをブロック毎に1回(平均して10分毎)しか更新できないようにしています。 PRでは、更新の送信を遅らせることにはトレードオフがあると指摘していますが、 チャネルの無効化メッセージをブロードキャストする前に約10分待つようにLDKを更新しています。
-
● Bitcoin Inquisition #23は、エフェメラル・アンカーに対するサポートの一部を追加しました。 これには、エフェメラル・アンカーがトランザクション・ピニング攻撃を防止するために依存する v3トランザクションリレーのサポートは含まれていません。