今週のニュースレターでは、LNのチャネルアナウンスや他の複数のシビル耐性調整プロトコルに使用できる 匿名使用トークンの新しいスキームや、新しいBIP39シードフレーズ分割スキームに関する議論のリンク、 対話型のコントラクトプロトコルにおける任意のプログラムの正常な実行を検証するBitVMの代替案の発表、 BIPプロセスの更新に関する提案を掲載しています。

ニュース

  • 匿名使用トークン: Adam Gibsonは、 UTXOをkeypathで使用できる人なら誰でも、それがどのUTXOであるかを明らかにすることなく、 それを使用できることを証明できるようにするために開発したスキームについてDelving Bitcoinに投稿しました。 これは、Gibsonの以前のアンチシビルメカニズムPoDLE(Joinmarketのcoinjoin実装で使用)と RIDDLEの開発に続くものです。

    彼が説明する用途の1つは、LNチャネルのアナウンスです。各LNノードは、 そのチャネルを他のLNノードにアナウンスし、ネットワーク全体で資金をルーティングする経路を見つけられるようにします。 チャネル情報の多くは、メモリに保存され、アナウンスはできるだ多くのノードに届くように、よく再ブロードキャストされます。 攻撃者が偽のチャネルを安価にアナウンスできれば、経路探索を妨害するだけでなく、 正直なノードのメモリと帯域幅を過剰に浪費する可能性があります。 LNノードは現在、有効なUTXOに属する鍵で署名されたアナウンスのみを受け入れることで、 この問題に対処しています。そのため、チャネルの共同所有者は自分が共同所有するUTXOを特定する必要があり、 それらの資金がチャネルの共同所有者の過去または将来作成される他のオンチェーントランザクションと関連付けられる可能性があります (もしくは、誰かが不正確な関連付けを行う可能性があります)。

    autct(Anonymous usage tokens [with] curve trees)と呼ばれるGibsonのスキームでは、 チャネルの共同所有者はUTXOを明かすことなくメッセージに署名することができます。 UTXOを持たない攻撃者は、有効な署名を作成することができません。 UTXOを持っている攻撃者は有効な署名を作成できますが、 LNノードがチャネルに保持する必要があるのと同じだけの資金をそのUTXOに保持しなければならず、 あらゆる攻撃の最悪のケースを制限することになります。 特定のUTXOからチャネルアナウンスの関連付けを切り離す以前の議論については、 ニュースレター #261をご覧ください。

    Gibsonはまた、autctを使用できる他のいくつかの方法についても説明しています。 この種のプライバシーを実現する基本的なメカニズムであるリング署名は以前から知られていましたが、 Gibsonは新しい暗号構造(curve trees)を使って証明をよりコンパクトにし、 検証を高速化しました。また、1つのUTXOが無制限に有効な署名を作成するために使用されないように、 各証明は使用される鍵にプライベートにコミットされるようになっています。

    コードを公開するだけでなく、Gibsonは概念実証のフォーラムも公開しました。 このフォーラムでは、サインアップするのにautct証明を提供する必要があり、 誰もがBitcoinの保有者であることを知ることができますが、 誰も自分自身や自身のビットコインに関する識別情報を提供する必要がない環境を提供しています。

  • BIP39シードフレーズの分割: Rama Ganは、 電子計算機を一切使用せずに(説明書とテンプレートを除く)、 BIP39シードフレーズを生成・分割するために開発したツールセットのリンクを Bitcoin-Devメーリングリストに投稿しました。 これは、codex32に似ていますが、 現在のほぼすべてのハードウェア署名デバイスや多くのソフトウェアウォレットと互換性のあるBIP39シードワードで動作します。

    codex32の共著者であるAndrew Poelstraは、いくつかのコメントと提案を返信しました。 両方のスキームを試してみないと(それぞれ数時間かかります)、両者の正確なトレードオフは分かりません。 ただ、どちらも同じ基本的な機能を提供しているようです。 シードをオフラインで安全に生成するための手順、シャミアの秘密分散法を使用してシードを複数のシェアに分割する機能、 シェアから元のシードを再構築する機能、シェアと元のシードの両方のチェックサムを検証し、 元のデータがまだ復元可能である可能性があるときに、ユーザーがデータの破損を早期に発見できるようにする機能です。

  • BitVMの代替案: Sergio Demian Lernerと複数の共著者は、 BitVMの背後にあるアイディアの一部に基づく新しい仮想CPUアーキテクチャについて Bitcoin-Devメーリングリストに投稿しました。彼らのプロジェクトBitVMXの目標は、 RISC-Vのような確立されたCPUアーキテクチャ上で実行するためにコンパイルすることができる任意のプログラムの適切な実行を 効率的に証明できるようにすることです。BitVMのように、BitVMXはコンセンサスの変更を必要としませんが、 1つ以上の指定された当事者が信頼できる検証者として機能することを必要とします。 つまり、複数のユーザーがインタラクティブにコントラクトプロトコルに参加すると、 コントラクトで指定された任意のプログラムを正常に実行しないかぎり、 参加者の1人(または複数)がコントラクトから資金を引き出すのを防ぐことができます。

    Lernerは、BitVMXをオリジナルのBitVM(ニュースレター #273参照)と比較した論文と、 オリジナルのBitVM開発者による後続のプロジェクトについて限られた詳細をリンクしています。 付属のWebサイトでは、技術的な情報を少し抑えた形で追加情報を提供しています。

  • BIP2の更新についての議論の続き: Mark “Murch” Erhardtは、 現在のBIP(Bitcoin improvement proposals)プロセスを記述しているドキュメントであるBIP2の更新について Bitcoin-Devメーリングリストでの議論を続けています。 彼のメールでは、いくつかの問題を説明し、それらの多くに対する解決策を提案し、 彼の提案に対するフィードバックと残りの問題に対する解決策の提案を求めています。 BIP2の更新に関する以前の議論については、ニュースレター #297をご覧ください。

Releases and release candidates

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

  • LND v0.18.0-beta.rc2は、この人気のLNノード実装の次期メジャーバージョンのリリース候補です。

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

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

  • Core Lightning #7190は、HTLCタイムロックの計算に(chainlagと呼ばれる) 追加のオフセットを追加します。これにより、LNノードが処理した最新ブロック(同期した高さ)ではなく、 現在のブロック高をHTLCのターゲットにすることができます。これにより、ブロックチェーンの同期プロセス中に ノードが安全に支払いを送信できるようになります。

  • LDK #2973は、オフラインのピアに代わってOnionメッセージをインターセプトするための OnionMessengerのサポートを実装します。メッセージをインターセプトした時と ピアが転送のためにオンライン状態に戻った時にイベントを生成します。 ユーザーは、関連するピアのメッセージのみを保存するために許可リストを管理する必要があります。 これは、held_htlc_available BOLTs #989を通じて非同期支払いをサポートするための足がかりです。 このプロトコルでは、アリスはボブを介してキャロルに支払いをしたいと考えていますが、 アリスはキャロルがオンラインかどうか知りません。アリスはOnionメッセージをボブに送信します。 ボブはキャロルがオンラインになるまでメッセージを保持します。キャロルがメッセージを開くと、 アリス(またはアリスのライトニングサービスプロバイダー)に支払いを要求するよう指示されます。 キャロルは支払いを要求し、アリスは通常の方法で支払いを送信します。

  • LDK #2907は、オプションでResponder入力を受け入れ、 メッセージへの応答をどう処理するかを示すResponseInstructionsオブジェクトを返すようにOnionMessage処理を拡張します。 この変更により、非同期のOnionメッセージ応答が可能になり、 非同期支払いに必要となるような、より複雑な応答メカニズムに対応できるようになります。

  • BDK #1403では、bdk_electrumクレートが更新され、 BDK #1413で導入された新しい同期/フルスキャン構造、 BDK #1369のクエリ可能なCheckPointリンクドリストおよび、 BDK #1373Arcポインターの安価にクローン可能なトランザクションが利用できるようになりました。 この変更により、Electrumスタイルのサーバを使用してトランザクションデータをスキャンするウォレットのパフォーマンスが向上します。 また、外部ウォレットから受信したトランザクションの手数料計算を可能にするために、 TxOutをフェッチするオプションも追加されています。

  • BIPs #1458は、サイレントペイメントを提案するBIP352を追加しました。 サイレントペイメントは、使用されるたびに一意のオンチェーンアドレスを生成する、再利用可能な支払いアドレス用のプロトコルです。 このBIPのドラフトは、ニュースレター #255で初めて議論されました。