|
| 1 | +--- |
| 2 | +title: 'Bitcoin Optech Newsletter #268' |
| 3 | +permalink: /ja/newsletters/2023/09/13/ |
| 4 | +name: 2023-09-13-newsletter-ja |
| 5 | +slug: 2023-09-13-newsletter-ja |
| 6 | +type: newsletter |
| 7 | +layout: newsletter |
| 8 | +lang: ja |
| 9 | +--- |
| 10 | +今週のニュースレターは、Taproot Assetsに関する仕様のドラフトのリンクと、 |
| 11 | +PTLCを使用可能にするのに役立つLNのいくつかの代替メッセージプロトコルの概要を掲載しています。 |
| 12 | +また、Bitcoin Core PR Review Clubミーティングの要約や、 |
| 13 | +新しいソフトウェアリリースとリリース候補の発表、人気のあるBitcoinインフラストラクチャソフトウェアの注目すべき変更など、 |
| 14 | +恒例のセクションも含まれています。 |
| 15 | + |
| 16 | +## ニュース |
| 17 | + |
| 18 | +- **Taproot Assetsの仕様:** Olaoluwa Osuntokunは、_Taproot Assets_ の |
| 19 | + [Client-Side Validationプロトコル][topic client-side validation]について、 |
| 20 | + Bitcoin-DevメーリングリストとLightning-Devメーリングリストに個別に投稿しました。 |
| 21 | + Bitcoin-Devメーリングリストには、7つのBIPのドラフトを[発表しました][osuntokun bips]。 |
| 22 | + 当時 _Taro_ という名称だったプロトコルの最初の発表時([ニュースレター #195][news195 taro]参照)より1つ増えています。 |
| 23 | + Lightning-Devメーリングリストには、 |
| 24 | + LNを使用してTaproot Assetsを送受信するための[BLIPのドラフト][osuntokun blip]を[発表しました][osuntokun blip post]。 |
| 25 | + このプロトコルは、LND 0.17.0-betaでリリース予定の実験的な「Simple taproot channels」の機能がベースになっています。 |
| 26 | + |
| 27 | + その名前とは裏腹に、Taproot AssetsはBitcoinプロトコルの一部ではなく、 |
| 28 | + コンセンサスプロトコルを一切変更しないことに注意してください。 |
| 29 | + このプロトコルは、既存の機能を使用して、クライアントプロトコルにオプトインしたユーザーに新しい機能を提供します。 |
| 30 | + |
| 31 | + この記事の執筆時点では、いずれの仕様もメーリングリストでは議論されていませんでした。 |
| 32 | + |
| 33 | +- **PTLCのためのLNメッセージの変更:** [P2TR][topic taproot]と[MuSig2][topic musig]を使用したチャネルを実験的にサポートする |
| 34 | + 最初のLN実装がまもなくリリースされる予定であるため、Greg Sandersは、 |
| 35 | + [HTLC][topic htlc]の代わりに[PTLC][topic ptlc]を使用した支払いの送信をサポートするためのLNメッセージの変更について、 |
| 36 | + 以前議論されたいくつかの異なる変更の[要約][sanders ptlc]をLightning-Devメーリングリストに[投稿しました][sanders post]。 |
| 37 | + ほとんどのアプローチでは、メッセージの変更は大規模また侵襲的なものでもないようですが、 |
| 38 | + ほとんどの実装では、おそらく従来のHTLCの転送を処理するためのメッセージのセットを使用し続ける一方で、 |
| 39 | + PTLCの転送をサポートするためにアップグレードされたメッセージを提供し、 |
| 40 | + HTLCが段階的に廃止されるまで、2つの異なるパスを同時に維持し続ける必要があります。 |
| 41 | + メッセージが標準化される前に、一部の実装で実験的なPTLCのサポートが追加された場合、 |
| 42 | + 実装は、3つ以上の異なるプロトコルを同時にサポートする必要が生じ、すべての実装にとって不利になります。 |
| 43 | + |
| 44 | + この記事の執筆時点では、Sanderの要約に対するコメントはありませんでした。 |
| 45 | + |
| 46 | +## Bitcoin Core PR Review Club |
| 47 | + |
| 48 | +*この毎月のセクションでは、最近の[Bitcoin Core PR Review Club][]ミーティングを要約し、 |
| 49 | +重要な質問と回答のいくつかに焦点を当てます。 |
| 50 | +以下の質問をクリックしてミーティングでの回答の要約を確認してください。* |
| 51 | + |
| 52 | +[Transport abstraction][review club 28165]は、最近マージされたPieter Wuille (sipa)によるPRで、 |
| 53 | +_トランスポート_ の抽象化(インターフェースクラス)を導入するものです。 |
| 54 | +このクラスの具体的な具象クラスは、(ピア毎の)接続の(既にシリアライズされた)送受信メッセージをワイヤーフォーマットに変換します。 |
| 55 | +これは、より深いレベルのシリアライズとデシリアライズを実装すると考えることができます。 |
| 56 | +これらのクラスは、実際の送受信を行いません。 |
| 57 | + |
| 58 | +PRでは、`Transport`クラスから`V1Transport`(現在あるもの)と`V2Transport`(ネットワーク上で暗号化されるもの)という |
| 59 | +2つの具象クラスを派生しています。このPRは、[BIP324][topic v2 p2p transport] |
| 60 | +_バージョン2 P2P暗号化トランスポートプロトコル_ [プロジェクト][v2 p2p tracking pr]の一部です。 |
| 61 | + |
| 62 | +{% include functions/details-list.md |
| 63 | + q0="[*net*][net]と[*net_processing*][net_processing]の違いは何ですか?" |
| 64 | + a0="*net*は、ネットワーキングスタックの最下層にあり、ピア間の低レベルの通信を処理します。 |
| 65 | + 一方、*net_processing*は、*net*レイヤーの最上位にあり、*net*レイヤーのメッセージの処理と検証を行います。" |
| 66 | + a0link="https://bitcoincore.reviews/28165#l-22" |
| 67 | + |
| 68 | + q1="より具体的に、*net_processing*と関連付けられるクラスや関数の例、またこれに対する*net*の例は?" |
| 69 | + a1="*net_processing*: `PeerManager`、`ProcessMessage`。 |
| 70 | + *net*: `CNode`、`ReceiveMsgBytes`、`CConnMan`。" |
| 71 | + a1link="https://bitcoincore.reviews/28165#l-25" |
| 72 | + |
| 73 | + q2="BIP324には*net*レイヤーの変更や*net_processing*の変更、またはその両方の変更が必要ですか? |
| 74 | + それは、ポリシーやコンセンサスに影響しますか?" |
| 75 | + a2="変更は*net*レイヤーのみであり、コンセンサスには影響しません。" |
| 76 | + a2link="https://bitcoincore.reviews/28165#l-37" |
| 77 | + |
| 78 | + q3="このPRが(偶発的な)コンセンサスの変更となる可能性がある実装バグの例にはどのようなものがありますか?" |
| 79 | + a3="最大メッセージサイズを4MB未満に制限するバグは、他のノードが有効とみなすブロックをノードが拒否する可能性があります。 |
| 80 | + ブロックのデシリアライズに関するバグは、ノードがコンセンサス上有効なブロックを拒否する可能性があります。" |
| 81 | + a3link="https://bitcoincore.reviews/28165#l-45" |
| 82 | + |
| 83 | + q4="`CNetMsgMaker`と`Transport`は、どちらもメッセージをシリアライズします。これらが行うことの違いは何ですか?" |
| 84 | + a4="`CNetMsgMaker`は、データ構造をバイトにシリアライズします。`Transport`はこれらのバイトを受信し、 |
| 85 | + ヘッダーを追加(シリアライズ)し、実際に送信します。" |
| 86 | + a4link="https://bitcoincore.reviews/28165#l-60" |
| 87 | + |
| 88 | + q5="`CTransactionRef`(トランザクション)のようなアプリケーションオブジェクトをバイト/ネットワークパケットに変換するプロセスでは、 |
| 89 | + 何が起こりますか?その過程でどのようなデータ構造になるのでしょうか?" |
| 90 | + a5="`msgMaker.Make()`が`SerializeTransaction()`を呼び出して`CTransactionRef`メッセージをシリアライズし、 |
| 91 | + `PushMessage()`がシリアライズされたメッセージを`vSendMsg`キューに入れ、 |
| 92 | + `SocketSendData()`がヘッダーとチェックサムを追加し(このPRの変更後)、 |
| 93 | + 送信する次のパケットをトランスポートに要求し、最後に`m_sock->Send()`を呼び出します。" |
| 94 | + a5link="https://bitcoincore.reviews/28165#l-83" |
| 95 | + |
| 96 | + q6="(簡単な例として、[Erlay][topic erlay]で使用される)`sendtxrcncl`メッセージの場合、何バイトがネットワーク上で送信されますか?" |
| 97 | + a6="36バイト: ヘッダーが24バイト(magicが4バイト、コマンドが12バイト、メッセージサイズが4バイト、チェックサムが4バイト)、 |
| 98 | + そしてペイロードが12バイト(バージョンが4バイト、saltが8バイト)です。" |
| 99 | + a6link="https://bitcoincore.reviews/28165#l-86" |
| 100 | + |
| 101 | + q7="`PushMessage()`から戻った後、このメッセージに対応するバイトを既に送信されましたか(はい/いいえ/おそらく)?それは何故ですか?" |
| 102 | + a7="すべての可能性があります。**はいの場合**: 私たち(*net_processing*)は、メッセージを送信するために何もする必要はありません。 |
| 103 | + **いいえの場合**: 関数から戻った時点で、受信者が受信している可能性は非常に低いです。 |
| 104 | + **おそらくの場合**: すべてのキューが空の場合は、カーネルソケットレイヤーまで到達しているでしょうが、 |
| 105 | + キューが空でなければ、OSに到達する前にキューが空になるのを待つことになります。" |
| 106 | + a7link="https://bitcoincore.reviews/28165#l-112" |
| 107 | + |
| 108 | + q8="どのスレッドが`CNode::vSendMsg`にアクセスしますか?" |
| 109 | + a8="メッセージが同期的に(楽観的に)送信っされている場合は`ThreadMessageHandler`が、 |
| 110 | + キューに入れられ後で取得されて送信される場合は`ThreadSocketHandler`です。" |
| 111 | + a8link="https://bitcoincore.reviews/28165#l-120" |
| 112 | +%} |
| 113 | + |
| 114 | +## リリースとリリース候補 |
| 115 | + |
| 116 | +*人気のBitcoinインフラストラクチャプロジェクトの新しいリリースとリリース候補。 |
| 117 | +新しいリリースにアップグレードしたり、リリース候補のテストを支援することを検討してください。* |
| 118 | + |
| 119 | +- [LND v0.17.0-beta.rc2][]は、この人気のLNノード実装の次期メジャーバージョンのリリース候補です。 |
| 120 | + このリリースで予定されている主な実験的な新機能は、テストの恩恵を受ける可能性が高そうな、 |
| 121 | + 「Simple taproot channel」のサポートです。 |
| 122 | + |
| 123 | +## 注目すべきコードとドキュメントの変更 |
| 124 | + |
| 125 | +*今週の[Bitcoin Core][bitcoin core repo]、[Core |
| 126 | +Lightning][core lightning repo]、[Eclair][eclair repo]、[LDK][ldk repo]、 |
| 127 | +[LND][lnd repo]、[libsecp256k1][libsecp256k1 repo]、[Hardware Wallet |
| 128 | +Interface (HWI)][hwi repo]、[Rust Bitcoin][rust bitcoin repo]、[BTCPay |
| 129 | +Server][btcpay server repo]、[BDK][bdk repo]、[Bitcoin Improvement |
| 130 | +Proposals(BIP)][bips repo]、[Lightning BOLTs][bolts repo]および |
| 131 | +[Bitcoin Inquisition][bitcoin inquisition repo]の注目すべき変更点。* |
| 132 | + |
| 133 | +- [Bitcoin Core #26567][]では、署名のdry-runを行う代わりに、 |
| 134 | + [ディスクリプター][topic descriptors]から署名されたインプットのweightを推定するようウォレットを更新しました。 |
| 135 | + このアプローチは、dry-runアプローチでは不十分であった、より複雑な[Miniscript][topic miniscript]ディスクリプターでも成功します。 |
| 136 | + |
| 137 | +{% include references.md %} |
| 138 | +{% include linkers/issues.md v=2 issues="26567" %} |
| 139 | +[LND v0.17.0-beta.rc2]: https://github.com/lightningnetwork/lnd/releases/tag/v0.17.0-beta.rc2 |
| 140 | +[net]: https://github.com/bitcoin/bitcoin/blob/master/src/net.h |
| 141 | +[net_processing]: https://github.com/bitcoin/bitcoin/blob/master/src/net_processing.h |
| 142 | +[news195 taro]: /ja/newsletters/2022/04/13/#transferable-token-scheme |
| 143 | +[osuntokun bips]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-September/021938.html |
| 144 | +[osuntokun blip post]: https://lists.linuxfoundation.org/pipermail/lightning-dev/2023-September/004089.html |
| 145 | +[osuntokun blip]: https://github.com/lightning/blips/pull/29 |
| 146 | +[review club 28165]: https://bitcoincore.reviews/28165 |
| 147 | +[sanders post]: https://lists.linuxfoundation.org/pipermail/lightning-dev/2023-September/004088.html |
| 148 | +[sanders ptlc]: https://gist.github.com/instagibbs/1d02d0251640c250ceea1c66665ec163 |
| 149 | +[v2 p2p tracking pr]: https://github.com/bitcoin/bitcoin/issues/27634 |
0 commit comments