今週のニュースレターでは、マイナー収益をわずかながら高め、かつ手数料の引き上げを行うユーザーの集団レバレッジを高めるために Bitcoin Coreのマイナー向けブロックテンプレートのトランザクション選択アルゴリズムの変更の提案を掲載しています。 また、ソフトウェアのリリースとリリース候補に加えて、 人気のあるBitcoinインフラストラクチャソフトウェアの注目すべき変更などの恒例のセクションも含まれています。

ニュース

  • Candidate Set Based (CSB) ブロックテンプレートの構築: Mark Erhardtは、 Clara Shikhelmanと共同で行ったマイナー向けのトランザクション選択アルゴリズムの代替アルゴリズムの分析について、 Bitcoin-Devメーリングリストに投稿しました。Bitcoinのコンセンサスルールでは、 未確認の祖先がすべて同じブロックの前方に含まれていない限り、トランザクションをブロックに含めることはできません。 Bitcoin Coreでは、未確認の祖先を持つトランザクションを、その祖先の手数料とサイズ両方を含んでいるように扱うことで、 この制約に対処しています。例えば、トランザクションBが未確認のトランザクションAに依存している場合、 Bitcoin Coreは両方のトランザクションで支払われている手数料を合算し、両トランザクションの合計サイズで割ります。 これによりBitcoin Coreは、mempool内のすべてのトランザクションを、 トランザクションに祖先があるかどうかに関係なく、その実効的な手数料率に基づいて公平に比較することができます。

    しかし、ErhardtとShikhelmanは、もう少しCPUを必要とするかもしれないが、より洗練されたアルゴリズムによって、 Bitcoin Coreの既存の単純なアルゴリズムよりもマイニングの利益率が高い関連トランザクションのセットを見つけることができると述べています。 著者らは、過去のmempoolのデータで彼らのアルゴリズムをテストしたところ、 最近のほぼすべてのブロックで、Bitcoin Coreの既存アルゴリズムよりもわずかに多くの手数料を収集していることがわかりました。

    改良されたアルゴリズムが実装されマイナーに使用されると、 大規模なCoinJoinバッチ支払いからアウトプットを受け取った各ユーザーが、 そのCoinJoinやバッチ支払いのCPFPによる手数料の引き上げに必要な総手数料のごく一部をそれぞれ支払うことができるようになります。 これは、各ユーザーのCPFPによる手数料の引き上げが個別に考慮され、祖先トランザクションがマイニングされるどうかによって 関連する複数の手数料の引き上げが集約的な影響を与えない現在のケースよりも改善されるでしょう。

リリースとリリース候補

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

  • HWI 2.0.2は、BitBox02を使用したメッセージ署名のサポートの追加や、 BIP32の強化導出パスを示すのに'の代わりにhを常に使用すること、 いくつかのバグ修正が含まれているマイナーリリースです。

  • LND 0.13.0-beta.rc3は、プルーニングされたBitcoinフルノードの使用をサポートし、 Atomic MultiPath (AMP)を使用した支払いの送受信を可能にし、 PSBT機能の向上、その他の改善およびバグ修正を行ったリリース候補です。

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

今週のBitcoin CoreC-LightningEclairLNDRust-Lightninglibsecp256k1Hardware Wallet Interface (HWI)Rust BitcoinBTCPay ServerBitcoin Improvement Proposals(BIP)、および Lightning BOLTsの注目すべき変更点。

  • Bitcoin Core #20833は、 Bitcoin Coreにmempool package acceptanceを実装するための取り組みにおける最初のPRです。 この変更により、testmempoolacceptRPCが、 後続のトランザクションが前のトランザクションから派生する可能性があるような複数のトランザクションを受け入れることができます。 今後のPRでは、L2トランザクションチェーンのテスト、 RPCを介したトランザクションパッケージのmempoolへの直接送信、 P2Pネットワークを経由したパッケージの通信を可能にする可能性があります。

  • Bitcoin Core #22017は、Windowsリリースで使用されるコード署名の証明書を更新しました。 以前の証明書は明示的な理由が提供されることなく発行者によって取り消されていました。 Bitcoin Coreの最近のリリースのいくつかは、 Windowsバイナリがこの証明書を使用できるように、 バージョン番号を少し変えて再リリースされるかもしれません。

  • Bitcoin Core #18418では、avoid_reuseウォレットフラグが設定されている場合に、 同じアドレスで受信したUTXOを同時に使用する最大数を増やしています。 一緒に使用されるアウトプットが多いほど、 デフォルトのフラグを持つウォレットと比較して手数料が高くなる可能性がありますが、 同時に、第三者がユーザーの今後のトランザクションを特定できる可能性は低くなります。

  • C-Lightning #4501では、C-Lightningの現在のコマンドの約半分の出力にJSONスキーマを追加しました (残りの半分のスキーマは今後追加される予定です)。 C-Lightningのテストスイート実行中に生成された出力は、一貫性を確保するためにスキーマに対して検証されます。 また、スキーマは、各コマンドがどのような出力をするかについてC-Lightningのドキュメントを自動生成するのにも使用されます。

  • LND #5025では、signetを使用するための基本的なサポートが追加されています。 Optechが追跡している他のLN実装のうち、C-Lightningもsignetをサポートしています(ニュースレター #117参照)。

  • LND #5155では、どのウォレットUTXOをトランザクションで使用するかをランダムに選択する設定オプションが追加されています。 これによりウォレット内のUTXOのフラグメンテーションが時間とともに減少します。 対照的に、LNDのデフォルトのコイン選択アルゴリズムは、値の高いUTXOを値の小さいUTXOよりも先に使用します。 これにより短期的に手数料を最小限に抑えることができますが、 トランザクションのサイズに近いかそれ以上のすべてのインプットが既に使用されている場合は、 将来的にはより高い手数料を支払う必要が生じる可能性があります。

  • BOLTs #672は、 ノードがoption_shutdown_anysegwitオプションをネゴシエートできるようにBOLT2を更新しました。 このオプションが設定されていると、LNのクロージング・トランザクションがTaprootアドレスのような ネットワーク上でまだコンセンサスの意味を持たないスクリプトタイプを含む、 任意のsegwit script versionに支払いができるようになります。

  • BOLTs #872は、コミットメントトランザクションのインプットとアウトプットのソート順をより具体的に指定するため、 BOLT3BIP69の使用法を更新しました。 あるコメンテーターは、BIP69の使用法により、これまでに3つの別々の問題が発生し、 誤ってチャネルを閉じたり、不必要なオンチェーン手数料により少額の資金の損失につながった可能性があると指摘しています。 コメンテーターは、これが明示的なBIP69の使用から移行すべき理由の1つである (他の理由はニュースレター #19参照)と指摘しています。