今週のニュースレターでは、マイナーに影響を与えるBitcoin Coreの潜在的な影響と、 コントラクトレベルの相対的タイムロックの作成に関する議論、 オプションのペナルティを持つLN-Symmetryバージョンの提案を掲載しています。 また、新しいリリースとリリース候補の発表や、人気のあるBitcoinインフラストラクチャソフトウェアの注目すべき変更など、 恒例のセクションも含まれています。

ニュース

  • Bitcoin Coreのバグを修正する前にマイニングプールの動作を調査: Abubakar Sadiq Ismailは、2021年にAntoine Riardによって発見された、 ノードがブロックテンプレートでコインベーストランザクション用に 本来の1,000 vbyteではなく2,000 vbyteを確保してしまうバグについて Delving Bitcoinに投稿しました。この2倍の確保がなくなれば、 各テンプレートにはさらに約5件の小規模なトランザクションを含めることができます。 しかしその場合、2倍の確保に依存しているマイナーが無効なブロックを生成し、 大きな収入減につながる可能性があります。Ismailは、過去のブロックを分析し、 どのマイニングプールがリスクにさらされているかを判断しました。 彼は、Ocean.xyzとF2Poolおよび未知のマイナーが非デフォルトの設定を使っている可能性があるものの、 バグが修正されても、いずれも損失を被るリスクはないようです。 ただし、リスクを最小化するため、現在、コインベース用に2,000 vbyteをデフォルトで確保する 新しい起動オプションの導入が提案されています。後方互換性を必要としないマイナーは、 確保を1,000 vbyte(必要な量が少ない場合はそれ以下)に簡単に削減することができます。

    Jay Beddictは、このメッセージをMining-Devメーリングリストに伝えました

  • コントラクトレベルの相対的タイムロック: Gregory Sandersは、約1年前にLN-Symmetryの概念実証の実装を作成した際に発見した (ニュースレター #284参照)複雑な問題の解決策をDelving Bitcoinに投稿しました。 このプロトコルでは、各チャネルの状態をオンチェーンで承認することができますが、 期限前に承認された最後の状態のみがチャネル資金を分配できます。 通常、チャネルの参加者は最新の状態の承認のみを試みます。ただし、 アリスがトランザクションに部分署名しそれをボブに送信して新しい状態への更新を開始した場合、 そのトランザクションを完成させることができるのはボブだけです。もしボブがその時点で動作しなくなると、 アリスは最後から2つめの状態でしかチャネルを閉じることができません。 ボブがアリスの最後から2つめの状態が期限に達するまで待ち、それから最終状態を承認すると、 チャネルを解決するのに期限の約2倍の時間がかかります。これは、遅延時間2倍問題 と呼ばれます。 つまり、LN-SymmetryにおけるHTLCタイムロックは、 最大2倍の長さにする必要があり、攻撃者が(チャネルジャミング攻撃や その他の問題によって)転送ノードが資本から収入を得るのを防止しやすくなります。

    Sandersは、コントラクトの決済に必要なすべてのトランザクションに適用される相対的タイムロックで問題を解決することを提案しています。 LN-Symmetryにそのような機能があり、アリスが最後から2つめの状態を承認た場合、 ボブは最後から2つめの状態の期限前に最後の状態を承認する必要があります。 その後の投稿で、SandersはJohn Lawによるチャネルプロトコル(ニュースレター #244参照)へのリンクを示しています。このプロトコルは、 2つのトランザクションレベルの相対的タイムロックを使用して、 コンセンサスを変更することなくコントラクトレベルの相対的なタイムロックを提供します。 ただし、これは各状態が前の状態を使用するLN-Symmetryでは機能しません。

    Sandersは、解決策を概説していますが、そこには欠点があることを指摘しています。 彼はまた、Chiaのcoinid機能を使用してこの問題を解決する方法についても言及しています。 これは、John Lawの2021年のIIDs(Inherited Identifiers)のアイディアに似ています。 Jeremy Rubinは、彼が昨年提案した、それを作成したトランザクションと同じブロックで使用する必要がある muon アウトプットのリンクと、それがどのように解決に貢献できるかを示しました。 Sandersは、Chiaブロックチェーンのcoinid機能について言及し、 Anthony Townsはそれを詳しく説明し、 必要なデータを一定量まで削減する方法を示しました。Salvatore Ingalaは、 開発者のRijndaelから学んだOP_CATを使用した同様の仕組みについて投稿しました。 Rijndaelはその後詳細を説明しました。Brandon Blackは、 LN-Symmetryのペナルティベースのバージョンという代替タイプの解決策について説明し、 それに関するDaniel Robertsの研究を引用しました(次のニュース項目参照)。

  • 公開される更新を制限するためのペナルティを伴うマルチパーティLN-Symmetryバージョン Daniel Robertsは、悪意あるチャネルの取引相手(マロリー)が、 正直な取引相手(ボブ)が最終状態の承認に支払っている手数料率よりも高い手数料率で故意に古い状態をブロードキャストすることで、 チャネルの決済を遅らせることを防止する方法についてDelving Bitcoinに投稿しました。 理論上、ボブはマロリーの古い状態を最新の状態に再バインドでき、両方のトランザクションが同じブロックで承認されると、 マロリーは手数料のお金を失い、ボブはもともと支払うつもりだった同じ手数料で最終状態を承認することになります。 ただし、マロリーが、古い状態のブロードキャストを承認する前にそれをボブに知られないようにできれば、 チャネル内のHTLCが期限切れになりマロリーが資金を盗むことができるまで、 ボブが反応するのを阻止できます。

    Robertsは、チャネル参加者が1つの状態のみを承認できるスキームを提案しました。 後の状態が承認された場合、最終状態を送信した参加者と、どの状態も送信しなかった参加者は、 古い状態を送信した参加者の資金を奪うことができます。

    残念ながら、このスキームを公開した後、Robertsは重大な欠陥を発見し、自ら公開しました。 遅延時間2倍問題 と同様に、最後に署名した参加者は、他の参加者が完了できない状態を完了できるため、 最終署名者に現在の最終状態への排他的アクセス権が与えられます。他の参加者が前の状態で閉じようとした場合、 最終署名者が最終状態を使用するとその参加者は損失を被ることになります。

    Robertsは、代替アプローチを調査していますが、このトピックは、 LN-Symmetryにペナルティの仕組みを追加することが有用かどうかについて興味深い議論を巻き起こしました。 LN-Symmetryの概念実証の実装によりペナルティの仕組みは不要であると考えるようになったGregory Sanders( ニュースレター #284参照)は、古い状態を繰り返す攻撃は、 置換サイクル攻撃に似ていると指摘しました。 彼は、「この攻撃は非常に弱い。たとえ防御側のリソースがそこそこで、 マイナーがどのようなトランザクションを承認しようとしているかを全く把握していない場合でも、 攻撃者は非常に簡単に負のEV[期待値]に追い込まれる可能性があるからだ」と考えています。

リリースとリリース候補

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

  • Bitcoin Core 28.1は、主要なフルノード実装のメンテナンスリリースです。

  • BDK 0.30.1は、バグ修正を含む以前のリリースシリーズのメンテナンスリリースです。 プロジェクトは、先週のニュースレターで発表された移行ガイドが提供されている BDKウォレット1.0.0へのアップグレードを推奨しています。

  • LDK v0.1.0-beta1は、LN対応ウォレットやアプリケーションを構築するためのこのライブラリのリリース候補です。

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

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

  • Bitcoin Core #28121は、testmempoolaccept RPCコマンドのレスポンスに新しいreject-details フィールドを追加しました。これは、コンセンサスまたはポリシー違反によりトランザクションが mempoolから拒否される場合のみ含まれます。エラーメッセージは、 sendrawtransactionでトランザクションが同様に拒否された場合に返されるものと同じです。

  • BDK #1592では、重要な変更を文書化するためにADR(Architectural Decision Record)を導入し、 対処した問題、決定要因、検討した代替案、長所と短所、最終決定について概説しています。 これにより、新規参加者はリポジトリの歴史に慣れることができます。このPRは、ADRテンプレートと 最初の2つのADRを追加しています。1つはbdk_chainからpersistモジュールを削除するもので、 もう1つはBDKWalletをラップする新しいPersistedWallet型を導入するものです。

もっと知りたいですか?

このニュースレターで言及されたトピックについてもっと議論したい方は、 (ニュース レターが公開された翌日の)木曜日の15:30 UTCから Riverside.fmで毎週開催されているBitcoin Optech Recapにご参加ください。この議 論は録画もされ、ポッドキャストページからご覧いただけます。