今週のニュースレターでは、1つのアウトプット・スクリプト・ディスクリプターから複数のパスの導出を可能にする提案と、 人気のあるBitcoinインフラストラクチャプロジェクトの注目すべき変更点をまとめた恒例のセクションを掲載しています。

ニュース

  • 複数の導出パス用のディスクリプター: Andrew Chowは、 HD鍵生成をするための2つの関連するBIP32パスを1つのディスクリプターで定義できるようにするBIPの提案を Bitcoin-Devメーリングリストに投稿しました。 最初のパスは、支払いを受け取ることができるアドレスを生成するためのもので、 2つめのアドレスはウォレット内の内部的な支払い、つまりUTXOを使用した後にお釣りをウォレットに戻すためのものです。

    BIP32で定義されているように、ほとんどのウォレットは、 プライバシーを強化するために外部アドレスと内部アドレスを生成するのに別々の導出パスを使用します。 支払いを受け取るために使用される外部パスは、たとえば支払いを受け取るためにウェブサーバーにアップロードするなど、 信頼性の低いデバイスと共有されるかもしれません。お釣りのためだけに使用される内部パスは、 秘密鍵を必要とするタイミングでのみ必要とされる可能性が高く、秘密鍵と同じセキュリティを得られます。 ウェブサーバーが侵害され外部アドレスが流出した場合、攻撃者はユーザーがお金を受け取る度に彼らがいくら受け取ったのかと、 お金を最初にいつ使ったのかを知ることができます。ただ、最初の支払いで送金された金額を必ずしも知ることはできず、 お釣りのみで構成される支払いについても知ることはできません。

    Pavol RusnakCraig Rawは、 Trezor WalletとSparrow Walletが既にChowの提案した方式をサポートしていると回答しました。 Rusnakはまた、1つのディスクリプターが2つよりも多くの関連パスを記述できるようにすべきかどうか質問しました。 Dmitry Petukhovは、現在広く使われているのは内部パスと外部パスのみで、 それ以上のパスは既存のウォレットにとって明確な意味を持たないと指摘しました。 これは、相互運用性の問題を引き起こす可能性があります。彼は、BIPを2つのパスの導出のみに制限し、 追加のパスを必要とする人が専用のBIPを書くのを待つことを提案しました。

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

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

  • Core Lightning #5441は、CLNの内部ウォレットで使用されるHDシードに対してBIP39パスフレーズを簡単にチェックできるように hsmtoolを更新しました。

  • Eclair #2253は、BOLTs #765で定義されたブラインド・ペイメントのリレーのサポートを追加しています(ニュースレター #187参照)。

  • LDK #1519は、BOLTs #996がLNの仕様にマージされた場合に必要となるため、 channel_updateメッセージに常にhtlc_maximum_msatフィールドを含めるようにしました。 このプルリクエストに記載されている変更の理由は、メッセージのパースを簡素化するためです。

  • Rust Bitcoin #994は、nLockTimeフィールドおよびBIP65OP_CHECKLOCKTIMEフィールドを使用するLockTimeタイプを追加しました。 BitcoinのLocktimeフィールドには、ブロック高かUnixエポックタイムのいずれかの値を設定できます。

  • Rust Bitcoin #1088は、BIP152で定義されているCompact Blockに必要な構造と、 通常のブロックからCompact Blockを作成するメソッドを追加しました。 Compact Blockを使用すると、ノードは、そのブロックに含まれるトランザクションをトランザクションの完全なコピーを送信することなくピアに伝えることができます。 ピアは、未承認トランザクションを以前受信し保存している場合、それらを再度ダウンロードする必要がなくなるため、 帯域幅を節約し、新しいブロックのリレーを高速化できます。