/ home / newsletters /
Bitcoin Optech Newsletter #390
今週のニュースレターでは、Garbled Circuitに対するより効率的なアプローチと、 LN-Symmetryの最新情報のリンクを掲載しています。また、Bitcoin Stack Exchangeから厳選された質問とその回答や、 新しいソフトウェアリリースとリリース候補の発表、人気のBitcoin基盤ソフトウェアの注目すべき更新など 恒例のセクションも含まれています。
ニュース
-
● Argo: より効率的なオフチェーン計算を行うGarbled Circuit方式: Robin Linusは、Garbled Locksを1,000倍効率化する手法が説明されている Liam EagenとYing Tong Laiによる新しい論文について Delving Bitcoinに投稿しました。この新しい手法では、 Garbled Circuitのワイヤーを楕円曲線上の点としてエンコードする MAC(メッセージ認証符号)を使用します。 このMACは準同型になるよう設計されており、Garbled Circuit内の多くの演算を楕円曲線上の点の演算として直接表現できます。 重要な改良点は、Argoがバイナリ回路ではなく算術回路上で動作することです。バイナリ回路では、 曲線上の点の乗算を表現するために数百万のバイナリゲートが必要ですが、この算術回路では、単一の算術ゲートのみで済みます。 今回の論文は、この技術をBitcoin上のBitVMライクな構成に適用するために必要な複数のピースの最初のピースになります。
-
● LN-Symmetryの最新情報: Gregory Sandersは、 これまでのLN-Symmetryに関する研究(ニュースレター #284参照)のアップデートを Delving Bitcoinに投稿しました。
Sandersは、BOLT仕様とCLN実装上の以前のPoCを最新のアップデートにリベースしました。 更新された実装は、signet上のBitcoin Inquisition 29.xで、 TRUC、エフェメラルダスト、P2Aおよび 1P1Cパッケージリレーとともに動作します。協調的なチャネル閉鎖をサポートし、 ノードの正常な再起動を妨げていたクラッシュを修正し、テストカバレッジを拡充しました。 Sandersは他の開発者に対し、signetでBitcoin Inquisitionを使用して新しいPoCをテストするよう呼びかけました。
Sandersはまた、LLMの機能を活用して、APOから OP_TEMPLATEHASH+OP_CSFS+IK(ニュースレター #365参照)への移行作業を行い、 BOLTドラフトを変更し、CLNベースの実装を作成しました。ただし、 OP_TEMPLATEHASHはBitcoin Inquisitionでまだサポートされていないため、 このアップデートはregtestでのみテスト可能であると付け加えました。
Bitcoin Stack Exchangeから選ばれたQ&A
Bitcoin Stack ExchangeはOptech Contributor達が疑問に対して答えを探しに(もしくは他のユーザーの質問に答える時間がある場合に)アクセスする、 数少ない情報ソースです。この月刊セクションでは、前回アップデート以降にされた、最も票を集めた質問・回答を紹介しています。
-
● dbcacheには何がどのような優先度で保存されますか? Murchは、
dbcacheデータ構造の目的を全UTXOセットのサブセットを格納するインメモリキャッシュであると説明し、 その動作を詳しく説明しています。 -
● シールドCSVでCoinjoinを行うことはで可能ですか? Jonas Nickは、シールドCSVプロトコルは現在Coinjoinをサポートしていないものの、 Client-Side Validationプロトコルが本質的にそのような機能を妨げることはないと指摘しています。
-
● Bitcoin Coreで、新しいトランザクションのみをブロードキャストするためにTorを使用するにはどうすればよいでしょうか? Vasil Dimovは、この以前の質問をフォローアップし、 新しい
privatebroadcastオプション(ニュースレター #388参照)を使用することで、 Bitcoin Coreは短命のプライバシーネットワーク接続を通じて トランザクションをブロードキャストできると指摘しています。 -
● Brassard-Høyer-Tapp (BHT)アルゴリズムとBitcoin (BIP360) ユーザー bca-0353f40e は、Brassard-Høyer-Tapp(BHT)量子アルゴリズムを用いた マルチシグアドレスへの衝突攻撃によってSHA256のセキュリティを低下させる能力があったとしても、 その能力が出現する前に作成されたアドレスには影響しないと説明しています。
-
● なぜBitHashはsha256とripemd160を交互に使用するのですか? Sjors Provoostは、BitVM3のBitHash関数(Bitcoinのスクリプト言語に合わせて調整されたハッシュ関数)の 背後にある理論的根拠を概説しています。
リリースとリリース候補
人気のBitcoinインフラストラクチャプロジェクトの新しいリリースとリリース候補。 新しいリリースにアップグレードしたり、リリース候補のテストを支援することを検討してください。
- ● Libsecp256k1 0.7.1は、Bitcoin関連の暗号操作のためこのライブラリのメンテナンスリリースです。 このリリースでは、ライブラリがスタックから秘密情報をクリアしようとするケースを増やすセキュリティの改善が含まれています。 また、新しい単体テストフレームワークの導入と、いくつかのビルドシステムの変更も行われています。
注目すべきコードとドキュメントの変更
最近のBitcoin Core、Core Lightning、Eclair、LDK、 LND、libsecp256k1、Hardware Wallet Interface (HWI)、Rust Bitcoin、BTCPay Server、BDK、Bitcoin Improvement Proposals(BIP)、Lightning BOLTs、 Bitcoin InquisitionおよびBINANAsの注目すべき変更点。
-
● Bitcoin Core #33822は、
libbitcoinkernelAPIインターフェース(ニュースレター #380参照)に ブロックヘッダーのサポートを追加しました。新しいbtck_BlockHeader型とその関連メソッドにより、 ヘッダーの作成、コピー、破棄が可能になり、ハッシュや前のハッシュ、タイムスタンプ、難易度ターゲット、 バージョン、nonceなどのヘッダーフィールドを取得できます。新しいbtck_chainstate_manager_process_block_header()メソッドは、 完全なブロックを必要とせずにブロックヘッダーを検証・処理し、btck_chainstate_manager_get_best_entry()は累積Proof of Workが最も多いブロックツリーエントリーを返します。 -
● Bitcoin Core #34269は、
createwalletRPCとrestorewalletRPCおよび、 ウォレットツールのcreateコマンドとcreatefromdumpコマンド(ニュースレター #45および#130参照)を使用する際に、 名前のないウォレットの作成および復元を禁止しました。 GUIではすでにこの制限が適用されていましたが、RPCと基盤となる関数には適用されていませんでした。 ウォレット移行では引き続き名前のないウォレットを復元できます。名前のないウォレットに関連するバグについては、 ニュースレター #387をご覧ください。 -
● Core Lightning #8850は、いくつかの非推奨機能を削除しました。 アンカーアウトプットの変更を反映して
option_anchorsに名称変更されたoption_anchors_zero_fee_htlc_tx、decodepay(decodeに置き換え)、closeコマンドレスポンスのtxおよびtxid(txsとtxidsに置き換え)、bcliプラグインが手数料の推定を返すために使用していた元のレスポンスフォーマットであるestimatefeesv1。 -
● LDK #4349は、BIP173で指定されているように、BOLT12オファーをパースする際の bech32パディングの検証を追加しました。これまでは、 LDKは無効なパディングを持つオファーを受け入れていましたが、Lightning-KMPやEclairなどの他の実装は 正しく拒否していました。新しい
InvalidPaddingエラーがBolt12ParseErrorenumに追加されました。 -
● Rust Bitcoin #5470は、有効なBitcoinトランザクションには少なくとも1つのアウトプットが必要であるため、 アウトプットが0個のトランザクションを拒否する検証をデコーダーに追加しました。
-
● Rust Bitcoin #5443は、アウトプットの金額の合計が
MAX_MONEY(2,100万ビットコイン)を超えるトランザクションを 拒否する検証をデコーダーに追加しました。このチェックは、CVE-2010-5139に関連しており、 これは攻撃者が極めて大きなアウトプット金額を持つトランザクションを作成できた歴史的な脆弱性です。 -
● BDK #2037は、
CheckPoint構造体のMTP(median-time-past)を計算するmedian_time_past()メソッドを追加しました。 BIP113で定義されているMTPは、直前11ブロックのタイムスタンプの中央値であり、 タイムロックの検証に使われます。 これを可能にする以前の作業についてはニュースレター #372をご覧ください。 -
● BIPs #2076は、ピアが新機能のサポートをアナウンスおよびネゴシエートできるP2P featureメッセージを定義したBIP434を追加しました。このアイディアは、 BIP339のメカニズム(ニュースレター #87参照)を一般化したものですが、 各機能毎に新しいメッセージタイプを必要とするのではなく、BIP434は複数のP2Pアップグレードを アナウンスおよびネゴシエートするための単一の再利用可能なメッセージを提供します。 これはテンプレートの共有を含むさまざまな提案中のP2Pユースケースに恩恵をもたらします。 メーリングリストでの議論についてはニュースレター #386をご覧ください。
-
● BIPs #1500は、支払いトランザクションの指定された部分のハッシュダイジェストをスタックにプッシュする Tapscript用の
OP_TXHASHopcodeを定義するBIP346を追加しました。 これは、コベナンツの作成やマルチパーティプロトコルにおける対話の削減に使用できます。 このopcodeは、OP_CHECKTEMPLATEVERIFYを一般化したもので、 OP_CHECKSIGFROMSTACKと組み合わせることで SIGHASH_ANYPREVOUTをエミュレートできます。 これまでの議論については、ニュースレター#185および#272をご覧ください。
もっと知りたいですか?
このニュースレターで言及されたトピックについてもっと議論したい方は、 17:30 UTCに Riverside.fmで毎週配信されているBitcoin Optech Recapにご参加ください。 この議論は録画もされ、ポッドキャストページからご覧いただけます。