今週のニュースレターでは、潜在的なソフトフォークに対するトラストレスなオンチェーンでの賭けに関する投稿と、 ビットコイナー向けのChia Lispの概要のリンクを掲載しています。 また、Bitcoin Core PR Review Clubの概要や、新しいリリースとリリース候補の発表、 人気のあるBitcoinインフラストラクチャソフトウェアの注目すべき変更など恒例のセクションも掲載しています。

ニュース

  • 潜在的なソフトフォークに対するトラストレスなオンチェーンでの賭け: ZmnSCPxjは、特定のソフトフォークが有効になるかどうかを正確に予測する参加者に UTXOの制御を与えるためのプロトコルをDelving Bitcoinに投稿しました。 たとえば、アリスは特定のソフトフォークが有効になると考えており、 より多くのビットコインを手に入れるのに興味があります。ボブもより多くのビットコインを手に入れるのに興味がありますが、 ソフトフォークが有効になるとは考えていません。 両者は、合意した比率(例:1:1)で、二人のビットコインを合算し、 ある一定の時間までにソフトフォークが有効になった場合はアリスが合算したビットコインを総取りし、 有効にならなかった場合はボブが総取りすることに同意します。 期限前に、一方のチェーンがソフトフォークを有効にし、もう一方のチェーンがフォークを禁止する永続的なチェーン分割が発生した場合、 アリスは有効になったチェーンで合算したビットコインを受け取り、 ボブは禁止されたチェーンで合算したビットコインを受け取ります。

    基本的なアイディアは以前提案されていますが()、 ZmnSCPxjのバージョンでは、少なくとも1つの将来の潜在的なソフトフォーク OP_CHECKTEMPLATEVERIFYで予想される仕様を扱っています。 ZmnSCPxjはまた、他の提案中のソフトフォーク、特にOP_SUCCESSx opcodeを アップグレードするソフトフォークへの構成を一般化する際の課題についても簡単に考察しています。

  • ビットコイナー向けChia Lispの概要: Anthony Townsは、暗号通貨Chiaで使用されているバージョンのLispの概要を Delving Bitcoinに投稿しました。Townsは以前、 BitcoinにLispベースのスクリプト言語をソフトフォークで導入する提案をしています(ニュースレター #191参照)。 このトピックに興味がある方は、彼の投稿を読むことを強くお勧めします。

Bitcoin Core PR Review Club

この毎月のセクションでは、最近のBitcoin Core PR Review Clubミーティングを要約し、 重要な質問と回答のいくつかに焦点を当てます。 以下の質問をクリックしてミーティングでの回答の要約を確認してください。

Re enable OP_CATは、 Armin Sabouri(GitHub 0xBEEFCAF3)によるPRで、OP_CAT opcodeを再導入するものです。 ただし、Bitcoin Inquisitionsignetおよび Tapscript(Taproot script)にのみ限定されています。 この操作により、スクリプトの評価スタックの上位2つの要素を、それらの2つの要素を連結したものに置き換えられます。

OP_CATの動機については議論されませんでした。

  • OP_CATの実行が失敗するさまざまな条件にはどのようなものがありますか?

    スタック上の項目が2つ未満の場合や、結果の項目が大きすぎる場合、 スクリプト検証フラグによって許可されていない場合(たとえばソフトフォークがまだ有効になっていない)、 (witness version 0やレガシーなど)非Taproot scriptで使われている場合です。 

  • OP_CATは、OP_SUCCESSx opcodeを再定義しています。 (過去にソフトフォークのアップグレードの実装にも使用されていた)OP_NOPx opcodeの1つで再定義しないのはなぜですか?

    OP_SUCCESSx opcodeとOP_NOPx opcodeは両方とも、 検証ルールを制限するため、再定義してソフトフォークを実装できます (これらのopcodeは常に成功しますが、再定義されたopcodeは失敗する可能性があります)。 OP_NOPの後もスクリプトの実行は継続するため、 再定義されたOP_NOP opcodeが実行スタックに影響を与えることはできません(そうでなければ、 失敗していたスクリプトが成功する可能性があり、ルールが緩和されます)。 再定義されたOP_SUCCESS opcodeは、OP_SUCCESSがスクリプトをすぐに終了(成功)させるため、 スタックに影響を与えることができます。OP_CATはスタックに影響を与える必要があるため、 OP_NOP opcodeの1つで再定義することはできません。 

  • このPRはSCRIPT_VERIFY_OP_CATSCRIPT_VERIFY_DISCOURAGE_OP_CATの2つを追加しています。 なぜこの両方が必要なのですか?

    これによりソフトフォークを段階的に導入できます。まず、ほとんどのネットワークノードがアップグレードされるまで、 両方をtrue(コンセンサスは有効だがリレーやマイニングは行わない)に設定します。 次に、SCRIPT_VERIFY_DISCOURAGE_OP_CATfalseに設定して、実際の使用を可能にします。 Bitcoin Inquisitionの実験が後で失敗した場合は、プロセスを逆に実行できます。 両方がfalseの場合、OP_CATは単なるOP_SUCCESSです。 

リリースとリリース候補

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

  • Core Lightning v24.02.1は、このLNノードのマイナーアップデートで、 「いくつかの小さな修正と、ルーティングアルゴリズムのコスト関数の改善」が含まれています。

  • Bitcoin Core 26.1rc1は、ネットワークの主要なフルノード実装のメンテナンスリリースのリリース候補です。

  • Bitcoin Core 27.0rc1は、ネットワークの主要なフルノード実装の次期メジャーバージョンのリリース候補です。

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

今週のBitcoin CoreCore LightningEclairLDKLNDlibsecp256k1Hardware Wallet Interface (HWI)Rust BitcoinBTCPay ServerBDKBitcoin Improvement Proposals(BIP)Lightning BOLTsBitcoin InquisitionおよびBINANAsの注目すべき変更点。

  • LND #8136は、インボイスとタイムアウトを受け入れるようEstimateRouteFee RPCを更新します。 インボイスへの支払い経路が選択され、ペイメントプローブが送信されます。 タイムアウトになる前にプローブが正常に完了すると、選択した経路の使用コストが返されます。 それ以外の場合は、エラーが返されます。

  • LND #8499は、Simple Taproot ChannelのLNDのAPIを改善するために、 そのチャネルで使用されるTLV( Type-Length-Value)タイプに大幅な変更を加えています。 現在、Simple Taproot Channelを使用している他のLN実装は確認されていませんが、 使用している場合は、これが破壊的な変更となる可能性があることに注意してください。

  • LDK #2916は、ペイメントプリイメージをペイメントハッシュに変換するためのシンプルなAPIを追加しています。 LNのインボイスにはペイメントハッシュが含まれています。支払いを決済するために、 最終受信者はそのハッシュに対応するプリイメージをリリースします(そして、 経路上の各ホップは、下流のピアから受け取ったプリイメージを使用して、上流のピアからの支払いを決済します)。 ハッシュはプリイメージから導出できるため(その逆は不可能)、受信ノードと転送ノードはプリイメージのみを保管できます。 このAPIを使用することで、オンデマンドでハッシュを簡単に導出できます。