今週のニュースレターは、pay-to-contractプロトコルを使って構築されたアウトプットを使用する際の フィールドを追加するPSBTの拡張の提案を掲載しています。 また、Bitcoin Stack Exchangeのトップポストや、 人気のあるBitcoinインフラストラクチャプロジェクトの注目すべき変更など、恒例のセクションも含まれています。

ニュース

  • P2Cフィールド用のPSBTの拡張: Maxim Orlovskyは、 以前ニュースレター #37で紹介した Pay-to-Contract(P2C)プロトコルを使って作成したアウトプットから支払いをするための オプションフィールドをPSBTに追加する新しいBIPを提案しました。 P2Cでは、送信者と受信者が契約(またはその他)のテキストに合意し、そのテキストにコミットする公開鍵を作成することができます。 そして送信者は、支払いがそのテキストにコミットされたこと、 そのコミットメントが受信者の協力なしに計算上不可能であったことを後で証明することができます。 要するに、送信者は何に対する支払いであったのかを裁判所や公衆に証明することができるのです。

    しかし、受信者は、受け取った資金を使用するためには、使用した鍵(通常HDキーチェーンの一部)に加えて、 契約のハッシュが必要になります。Orlovskyの提案では、 このハッシュをPSBTに追加することで、署名用のウォレットやハードウェアデバイスが有効な署名を生成できるようにします。

Bitcoin Stack Exchangeから選ばれたQ&A

Bitcoin Stack ExchangeはOptech Contributor達が疑問に対して答えを探しに(もしくは他のユーザーの質問に答える時間がある場合に)アクセスする、 数少ない情報ソースです。この月刊セクションでは、前回アップデート以降にされた、最も票を集めた質問・回答を紹介しています。

  • Taprootアドレスをv0 native segwitアドレスに変更することは可能ですか? ある取引所がTaprootをサポートしておらず、 ユーザーのP2TR(native segwit v1)Taproot引き出しアドレスをP2WSH(native segwit v0)アドレスに変更した結果、 ユーザーからその結果のv0アウトプットからビットコインを救済する方法があるか質問されました。 Pieter Wuilleは、これにはユーザーがP2TRアドレスの公開鍵にハッシュするスクリプトを見つける必要があり、 それは計算実行上不可能な演算であるため、これらのビットコインを救済することはできないと指摘しています。

  • Bitcoin 0.3.7は実際にハードフォークだったのか? BA20D731B5806B1Dは、Bitcoin 0.3.7のリリースがハードフォークに分類される原因となったのは何故なのかと疑問を抱きました。 Antoine Poinsotは、scriptSigscriptPubKeyの評価を分離する0.3.7のバグ修正後、 以前は無効だった署名を有効にすることができることを説明するためにscriptPubKeyscriptSigの値の例を示しています。

  • 署名の圧縮とは? Murchによると、ECDSAの署名圧縮とは、rの値が範囲の半分以下になるまで署名を繰り返すプロセスで、 これによりBitcoinのECDSAのシリアライズ形式に基づいて署名が1バイト(32バイト vs 33バイト)小さくなります。 署名が小さくなると手数料の低減につながり、署名が32バイトであることが既知になると、より正確な手数料見積もりに役立ちます。

  • チェーン間のネットワーク競合はどうやって回避されますか? Murchは、ノードが同じネットワーク(mainnet、testnet、signet)上のピアに接続されているかどうかを識別するために、 P2Pのメッセージ構造で定義されているマジックナンバーを使用する方法について説明しています。

  • 2021年、標準クライアントに採用されているBIPはいくつありますか? Pieter Wuilleは、Bitcoin Coreに実装されているBIPを記録しているBitcoin CoreのBIPドキュメントのリンクを挙げています。

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

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

  • Eclair #2134は、デフォルトでAnchor Outputを有効にし、 ブロードキャスト時にその手数料率が低すぎる場合、コミットメントトランザクションの手数料を引き上げられるようにしました。 Anchor Outputスタイルの手数料引き上げは、CPFPを介して機能するため、 ユーザーはbitcoindのウォレットにUTXOを用意しておく必要があります。

  • Eclair #2113は、手数料引き上げの自動管理を追加しました。 これには、時間どおりに承認されることの重要性によってトランザクションを分類すること、 各ブロックの後でトランザクションを再評価し手数料を引き上げるのが適切かどうかを判断すること、 トランザクションの手数料を引き上げる必要がある場合に備えて現在のネットワーク手数料率を再評価すること、 トランザクションの手数料率を引き上げる必要がある場合にインプットを追加することが含まれます。 PRの説明では、Eclairのような外部プログラムが必要とするアドオンウォレットの管理する内容を減らすことができる Bitcoin CoreのウォレットAPIの改善もアピールしています。

  • Eclair #2133は、デフォルトでOnionメッセージのリレーを開始します。 ニュースレター #181で言及されたレート制限は、 LNプロトコルのこの実験的なパーツの悪用による問題を防ぐために使用されます。

  • BTCPay Server #3083では、 管理者が(LN以外のソフトウェアでも実装可能な)LNURL認証を使ってBTCPayインスタンスにログインできるようになりました。

  • BIPs #1270は、署名フィールドの許容値についてPSBTの仕様を明確化しました。 Rust Bitcoinの最近のアップデートで署名フィールドのパースが厳格になったため、 PSBTのフィールドにプレースホルダーを入れるかどうか、有効な署名のみを許可するかどうかについて議論されました。 その結果、PSBTには有効な署名のみが含まれるべきであると判断されました。

  • BOLTs #917は、BOLT1で定義されたinitメッセージを拡張し、 ノードが接続先のピアに、そのピアが使用しているIPv4もしくはIPv6アドレスを通知する機能を追加しました。 NATの背後にあるピアは自分のIPアドレスを認識できないため、 これによりピアはアドレスが変更された際にネットワークに通知するIPアドレスを更新することができます。