今週のニュースレターでは、マイナーにTaprootのシグナリングを開始することを推奨し、 ウォレットシードのみで失われたLNチャネルを閉じることについての継続的な議論を掲載しています。 また、リリースおよびリリース候補の公表や、 人気のあるBitcoinインフラストラクチャソフトウェアの注目すべき変更点などの通常のセクションも含まれています。

要処置事項

  • マイナーはTaprootのシグナリングを開始することが推奨されます: Taprootの新しいコンセンサスルールの適用を期待するマイナーは、シグナリングを開始し、 BIP341で定義されている最小アクティベーションブロックまでに Bitcoin Core 0.21.1 (後述) または他の互換性のあるTaproot適用ソフトウェアを実行できるようにすることが推奨されます。

    シグナリングの状況をトラストレスに監視したい人は、Bitcoin Core 0.21.1にアップグレードし、 getblockchaininfo RPCを使用できます。例えば、以下のコマンドラインは、 現在のリターゲット期間中のブロック数、その内シグナルを出したブロック数、 そして(再編成がないと仮定して)この期間中にTaprootがアクティベートできるかどうかを表示します:

      $ bitcoin-cli getblockchaininfo \
        | jq '.softforks.taproot.bip9.statistics | .elapsed,.count,.possible'
      353
      57
      false
    

    マイナーの進捗状況に関する補足情報を含むグラフィカルな表現を好み、 自身のノードを使用する必要のない場合は、Hampus Sjöbergのtaproot.watchをお勧めします。

ニュース

  • BIP32シードのみで失われたチャネルを閉じる: ニュースレター #128に掲載したように、 Lloyd FournierはBIP32ウォレットシード以外の情報を失ったユーザーが、 LNネットワークの公開情報だけを使ってピアを再発見できるようにする新しいチャネル作成方法を提案しました。 ユーザーがピアを発見すると、BOLT2 Data Loss Protectionプロトコル(ニュースレター #31参照)を使用して、 チャネルを閉じるよう要求できます。提案された方法は完全ではなく、 ユーザーはバックアップを作成し1、それを独立したシステムに複製する必要があります。 しかし、Fournierの提案は、日常的に使用するユーザーにとって有用な追加の冗長性を提供します。

    2週間前、Rusty Russellはこのアイディアを具体化し実装しようとした後、 スレッドを再開しました。Fournierとのメーリングリストでの追加の議論と、 週次のLNプロトコル開発会議でのグループ会話の後、 Russellはこのアイディアに傾倒していることを次のように述べています。 “暗号化されたバックアップは実装される可能性が高いソリューションだと考えている。なぜなら、 ピア以外の場所に送信するのに便利で、必要に応じてHTLCの情報を含めることもできるからだ。” HTLCの情報を含めることができると、その時点で保留中だった支払いを決済できます。 これはBIP32シードのみに基づくリカバリーの仕組みでは実現できない機能です。

リリースとリリース候補

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

  • Bitcoin Core 0.21.1は、 提案されているTaprootソフトフォークのアクティベーションロジックを含む Bitcoin Coreの新バージョンです。 Taprootは、Schnorr 署名を使用し、 Tapscriptが使用できるようになります。 これらはそれぞれBIP 341340および342で定義されています。 また、BIP350で定義されたbech32mアドレスへの支払い機能も含まれていますが、 ビットコインをmainnetでそのようなアドレスに送信するのは、 そのようなアドレスを使用するTaprootのようなソフトフォークがアクティベーションされるまで安全ではありません。 このリリースにはバグ修正と小さな改善も追加されています。

    注: Windows版のBitcoin Coreのコード署名証明書を提供する認証局に問題があるため、 Windowsユーザーは追加のプロンプトをクリックしてインストールする必要があります。 問題が修正されたら、証明書が更新された0.21.1.1がリリースされる予定です。 アップグレードを計画している場合は、この問題によって0.21.1の使用を遅らせる必要はありません。

  • BTCPay 1.1.0は、このセルフホスト型の支払い処理ソフトウェアの最新のメジャーリリースです。 Lightning Loopのサポート、 二要素認証のオプションとしてWebAuthN/FIDO2の追加、 さまざまなUIの改善および、 今後のバージョン番号のセマンティックバージョニングへの切り替えを行っています。

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

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

  • Bitcoin Core #19160は、マルチプロセスプロジェクトのPRで、 bitcoin-nodeプロセスが他のプロセスを起動し、 Cap’n Protoを使ってそのプロセスと通信する機能を追加します。 これらの機能は現在テストにしか使われていませんが、プロジェクトの次のPRでは、 bitcoin-coreプロセスがbitcoin-walletプロセスとbitcoin-guiプロセスを別々に起動するマルチプロセスモードで Bitcoin Coreを起動できるようになります。

  • Bitcoin Core #19521では、 gettxoutsetinfoRPCを劇的に高速化するコイン統計インデックスプロジェクトがほぼ完了しました。 これまでは、RPCが呼び出されるたびにデフォルトでUTXOセット全体をスキャンしていたため、 ユーザーが継続的かつ迅速にコインの供給量を検証したり、異なるノード間でUTXOセットのハッシュを比較したりすることが困難でした。 ユーザーは、-coinstatsindex設定オプションを付けてノードを起動し、 バックエンドでコイン統計インデックスの構築を開始できるようになりました。 同期が完了すると、gettxoutsetinfoはほぼ瞬時に実行され、統計情報の高さやブロックハッシュを指定できます。 特定のブロックの統計情報を取得できることは、 AssumeUTXOのchainstateアーカイブをコミュニティが検証する際に役立ちます。

  • Bitcoin Core #21009は、(v0.13.0以前の)pre-segwitノードをsegwit適用バージョンに更新する際に発生する RewindBlockIndexロジックを削除しました。pre-segwitノードは、 (segregated) witnessデータが取り除かれたブロックのみを処理していました。 RewindBlockIndexロジックはそのようなブロックのコピーを破棄し、 完全な形で再ダウンロードし、segwitルールを使ってそれらを検証していました。 pre-segwitノードは2018年以降end-of-lifeを迎えたため、このシナリオは一般的ではなくなりました。 今後のリリースでは、同等の結果を得るために代わりにインデックスを再作成するようユーザーに促すようになります。

  • LND #5159は、以前の作業に基づいて、 sendpaymentRPCに支払いパラメータを手動で指定することで、 Spontaneous Atomic Multipath Payments (AMP)のサポートを追加しました。 AMPインボイスを使ったsendpaymentの実行は、後続のPRで実装される予定です。

  • Rust-Lightning #893は、Payment Secretが含まれている場合にのみ支払いを受け入れることができます。 Payment Secretは、受信者によって作成され、インボイスに含まれます。 送信者は、第三者がマルチパス・ペイメントのプライバシーを低減させようとするのを防ぐために、 支払いの中にPayment Secretを含めます。今回の変更に加えて、支払いが誤って受理される可能性を減らすために設計された いくつかのAPIの変更があります。

  • BIPs #1104は、Speedy Trialの提案(ニュースレター #139参照)に基づいた アクティベーションパラメータで、TaprootBIP341仕様を更新しています。

脚注

  1. Data Loss Protectionプロトコルや、 チャネルクローズの秘密要求などの他の提案された方法では、 チャネルピアがオンラインで応答する必要があります。 もし相手が永久に利用不能な状態になり、あなたがバックアップを持っていない場合、 あなたの資金は永久に失われます。代わりにバックアップから復元した場合でも、 古いステートをブロードキャストするとすべての資金を失う可能性がありますが、 最新のステートをバックアップしていたり、 相手のピアが古いステートに異議を唱えなかった場合は、資金を回収するチャンスがあります。