今週のニュースレターは、失われたLNファンディング・トランザクションの救済に関する議論と、 リリースとリリース候補の発表および人気のBitcoinインフラストラクチャソフトウェアの注目すべき変更点の通常のセクションを掲載しています。

ニュース

  • 失われたLNファンディング・トランザクションの救済: LNのファンディング・トランザクションは、トランザクションのマリアビリティがある場合には安全ではありません。 Segwitはほとんどのトランザクションで懸念される第三者によるマリアビリティを排除しましたが、 Replace-by-Fee (RBF)を使用してファンディング・トランザクションの手数料を引き上げるといった、 トランザクションの作成者自信がそのtxidを変異させるケースには対応していません。 txidが変異すると、事前に署名された払い戻しトランザクションが無効になるため、ユーザーは自身の資金を取り戻すことができません。 さらにリモートノードは自動的にファンディング・トランザクションを確認できないため、 資金提供者が資金を取り戻す支援をできない可能性があります。

    今週、Rusty Russellは、この問題を抱えるユーザーが資金を取り戻せるよう、 C-Lightningに素早く実装した実験的な機能についてLightning-Devメーリングリストに投稿しました。 また、関連する問題の代替ソリューションや、 提案されているチャネルのデュアル・ファンディングプロトコルがこの問題に与える影響についても説明しました。 Christian Deckerもまた、ファンディングの回収を容易にするためのLN仕様の変更案投稿しました。 LNソフトウェアが外部ウォレットからのファンディングチャネルをサポートするようになると (例えば、ニュースレター #51に掲載したC-Lightningや、 ニュースレター #92に掲載したLNDなど)、 開発者はこの種の障害シナリオにもっと注意を払うようになるかもしれません。

リリースとリリース候補

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

  • HWI 2.0.0は、HWIの次のメジャーバージョンのリリースです。 とりわけ、BitBox02でのマルチシグのサポートやドキュメントの改善、 TrezorでのOP_RETURNアウトプットの支払いのサポートなどが含まれています。

  • Rust-Lightning 0.0.13は、このLNライブラリの最新リリースで、 マルチパス・ペイメントとの前方互換性や Taprootなどの将来のスクリプト・アップグレードを目的とした改善が含まれています。

  • BTCPay Server 1.0.7.0は、このセルフホスト型の支払い処理ソフトウェアの最新リリースです。 注目すべき改善点は、より機能的で視覚的に分かりやすいウォレットセットアップウィザードや、 Specterを使って作成されたウォレットのインポート、bech32 アドレス用のより効率的なQRコードなどです。

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

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

  • Bitcoin Core #21007では、新しい設定オプション-daemonwaitが追加されました。 Bitcoin Coreは、初期の頃のバージョンから-daemon設定オプションを指定してプログラムを起動することで、 バックグラウンドのデーモンプロセスとして実行することが可能でした。 -daemonオプションを指定すると、プログラムはすぐにバックグランドでデーモンプロセスを開始します。 新しい-daemonwaitオプションも同様ですが、初期化の完了後にデーモンプロセスをバックグランドで起動します。 これにより、ユーザーや親プロセスは、プログラムの出力や終了コードを観察することで、 デーモンの起動が成功したかどうかをより簡単に知ることができます。

  • C-Lightning #4404では、keysend RPC(ニュースレター #107参照) がこの機能をサポートしていることを明示的に通知していないノードにもメッセージを送信できるようになりました。 議論されているように、通知は標準化されておらず、 LNDで実装されている手順は通知に依存していないため、 この変更によりC-LightningはLNDが対応できるノードとほぼ同じノードにメッセージを送信できるようになります。

  • C-Lightning #4410は、デュアル・ファンドチャネルの実験的な実装を、 最新のドラフト仕様の変更に合わせています。 最も注目すべき点は、少なくとも一時的にProof of Discrete Log Equivalency (PODLE)の使用をやめたことです (PODLEのオリジナルの議論はニュースレター #83を、 代替手段についての議論はニュースレター #131を参照)。 このマージに続いて、特別なビルドフラグでC-Lightningをコンパイルする必要なく(ただし、特別な設定オプションは必要)、 デュアル・ファンディングの実験がより利用しやすくなる新しいPRが公開されました。

  • LND #5083では、PSBTを標準入力(stdin)のファイルディスクリプタからではなく、 ファイルから読み込めるようになりました。 一部の端末では、標準入力に同時に追加(貼り付けなど)できる文字数に制限があり、 base64形式で4096文字(3,072バイトのバイナリに相当)を超えるPSBTは使用できませんでした。 特に、いくつかのハードウェアウォレットでは、Segwitの使用のために以前のトランザクションを含むPSBTを必要としているため (ニュースレター #101参照)、3KiBを超えるサイズのPSBTを作成するのが普通になっています。

  • LND #5033は、updatechanstatus RPCを追加し、 チャネルが無効になったこと(ノードがオフラインになったのと同様)、 再度有効になったことを(ノードがオンラインになったのと同様)を通知できるようになりました。

  • Rust-Lightning #826は、チャネルを一方的に閉じたノードへ支払うアウトプットに対する OP_CHECKSEQUENCEVERIFYの遅延の最大値を2,016ブロックに増やしました。 これにより、これまでのRust-Lightningの最大値である1,008ブロックよりも大きい、 2,016ブロックまでの遅延を要求する可能性があるLNDでチャネルを開く際の相互運用性の問題が修正されました。

  • HWI #488では、displayaddressコマンドに--descオプションで output script descriptorを使用した場合のマルチシグアドレスの扱い方について、 互換性のない変更がされました。これまで、HWIは関連するデバイスに基づいて BIP67の辞書式のキーソートを自動的に適用していました(例えば、ColdcardデバイスにはBIP67を適用し、Trezorデバイスには適用しない)。 この実装方法では、BIP67のキーソートを実装するsortedmulti descriptorをユーザーが明示的に指定した際に問題が発生していました。 今回の変更により、descriptorのユーザーは、辞書式のソートを必要とするデバイスにはsortedmultiを、 必要としないデバイスにはmultiを指定する必要があります。