今週のニュースレターでは、RGBプロトコルの開発状況のアップデートを掲載しています。 また、クライアントやサービスの最近の更新や、新しいリリースとリリース候補の発表、 人気のあるBitcoinインフラストラクチャソフトウェアの注目すべき変更点など恒例のセクションも掲載しています。

ニュース

  • RGBのアップデート: Maxim Orlovskyは、Bitcoin-Devメーリングリストに RGBの開発状況のアップデートを投稿しました。 RGBは、オフチェーンのコントラクトで状態の更新を行うのに、Bitcoinのトランザクションを使用するプロトコルです。 簡単な例として、トークンの作成と転送が挙げられますが、RGBはトークンの転送だけでなく、 より多くの目的に使用するために設計されています。

    • オフチェーンで、アリスは、自分が管理するUTXOに初期状態で1,000トークンを割り当てるコントラクトを作成します。

    • ボブが、その内の400トークンを欲しがっているとします。アリスはボブに、 元のコントラクトのコピーと、彼女のUTXOを使用して新しいアウトプットを生成するトランザクションを渡します。 そのアウトプットにはコントラクトの新しい状態への非公開のコミットメントが含まれています。 コントラクトの新しい状態は、量の新しい配分(400トークンをボブに、600トークンをアリスに戻す)と、 それらの量を制御する2つのアウトプットの識別子を指定します。 アリスはトランザクションをブロードキャストします。 このトークン転送の二重支払いに対するセキュリティは、アリスのBitcoinトランザクションと同等になります。 たとえば、アリスのトランザクションに6回の承認がある場合、トークンの転送は、 最大6ブロックのフォークに対して安全です。

      量を管理するアウトプットは、必ずしもコミットメントを含むトランザクションのアウトプットである必要はありません (ただ、そうしても問題ありません)。これにより、RGBベースの転送を オンチェーンのトランザクションを解析して追跡することができなくなります。 トークンは、既存のUTXOに、あるいは受信者が将来存在すると確信しているUTXO( たとえば、何年もオンチェーンには現れないかもしれない、コールドウォレットで事前署名された支払い)に転送することができます。 これらのアウトプットのビットコインの量や、その他の特性は、RGBプロトコルにとっては関係ありませんが、 アリスとボブは、それらが簡単に使えることを保証したいと思うでしょう。

    • その後、キャロルは1つのオンチェーントランザクションで、ボブから100トークンをアトミック・スワップで購入したいとします。 キャロルは、自分のインプットから資金を出し、ボブにビットコインを支払うアウトプットと お釣りのビットコインを自分に返す2つめのアウトプットを含む未署名のPSBTを生成します。 このアウトプットの1つは、キャロルがトークンを受け取り、ボブがお釣りのトークンを受け取る量とUTXO識別子にもコミットします。

      ボブはキャロルに、元のコントラクトと、ボブが400トークンを管理していることを証明するアリスが以前作成したコミットメントを提供します。 ボブは、アリスが残りの600トークンを何に使ったかを知る必要はなく、 アリスもボブとキャロルの間の取引に関与する必要はありません。 ボブは、トークンを管理するUTXOの署名済みインプットでPSBTを更新します。

      キャロルは、元のコントラクトと以前の状態更新の履歴を検証します。 また、PSBTの他のすべてが正しいことも確認します。そして署名を提供し、トランザクションをブロードキャストします。

    上記のトークン転送の例はオンチェーンで行われましたが、オフチェーンで動作するようにプロトコルを変更することも簡単です。 キャロルはダンにコントラクトのコピーと、彼女が100トークンを受け取るまでの状態更新の履歴を渡します。 そしてキャロルとダンは、100トークンを受け取るアウトプットを作成します。このアウトプットを使用するには、両者の署名を必要とします。 オフチェーンで、このマルチシグアウトプットを使用する多くの異なるバージョンのトランザクションを生成することで、 トークンを相互に転送します。オフチェーンの各支払いは、トークンの配分と、 それらのトークンを受け取るアウトプットの識別子をコミットします。最後に、 そのうちの1つをブロードキャストし、状態をオンチェーン化します。

    トークンが割り当てられたアウトプットは、誰が最終的にトークンを管理するかを決定するBitcoinスクリプトによって制御されます。 たとえば、キャロルがプリイメージと署名を提供できる場合はいつでもトークンを使用でき、 タイムロックの期限が過ぎたらダンが単に署名のみでトークンを使用できるようにするといった HTLCスクリプトに支払うこともできます。これによりトークンを、 LNで使用されているような、転送されるオフチェーン支払いに使用できます。

    スレッドへの返信で、Federico TengaはLDKのフォークをベースにした RGBベースのLNノードと、そのプロジェクトのLDK sampleノードのリンクを提供しました。 そのプロジェクトのリンクをたどると、LNの互換性に関して役立つ追加情報が見つかります。 RGBプロトコルに関するより詳細な情報は、LNP/BPアソシエーションがホストするウェブサイトで見つけることができます。

    今週の投稿で、OrlovskyはRGB v0.10のリリースを発表しました。 最も重要なのは、新バージョンは以前のバージョンで作成されたコントラクトと互換性がないことです (ただし、mainnet上には商用のRGBコントラクトは存在しません)。 この新しい設計は、将来のプロトコルの変更に対応するために、 すべての新しいコントラクトをアップグレードできるようにすることを目的としています。 その他にも多くの改良が実装され、追加機能のロードマップが提示されています。

    この記事を書いている時点で、この発表はメーリングリスト上でささやかな議論を得ています。

サービスとクライアントソフトウェアの変更

この毎月の特集では、Bitcoinのウォレットやサービスの興味深いアップデートを取り上げています。

  • Descriptor walletライブラリがブロックエクスプローラーを追加: Descriptor walletライブラリは、Rustのディスクリプターベースのウォレットライブラリで、 rust-bitcoinをベースにしており、miniscriptディスクリプターPSBTをサポートしています。また、最近のリリースでは、 トランザクションインプットのwitnessからTaprootの制御ブロックの拡張された詳細や、 トランザクションのスクリプトに合致するディスクリプターとminiscriptを解析し表示する テキストベースのブロックエクスプローラーをサポートしています。

  • Stratum v2の参照実装のアップデートを発表: プロジェクトは、プール内のマイナーが候補ブロックのトランザクションを選択する機能を含むアップデートの詳細を公開しました。 マイナー、プールおよびマイニングファームウェアの開発者は、テストしフィードバックを提供することが推奨されています。

  • Liana 0.4リリース: Lianaの0.4リリースでは、複数のリカバリーパスをサポートし、 追加のディスクリプターを追加し、より大きな定足数を可能にします。

  • Coldcardファームウェアが追加のsighashフラグをサポート: Coldcardのバージョン 5.1.2 ファームウェアは、 SIGHASH_ALLだけでなく、すべての署名ハッシュ(sighash)タイプをサポートし、 高度なトランザクションの可能性を実現します。

  • Zeusが手数料の引き上げ機能を追加: Zeus v0.7.4は、LNのチャネル開設やチャネルクローズのトランザクションを含むオンチェーントランザクションに対して、 RBFおよびCPFPを利用した手数料の引き上げをサポートします。 手数料の引き上げは、最初はLNDバックエンドでのみサポートされています。

  • UtreexoベースのElectrum Serverの発表: Florestaは、Utreexoを使用してサーバーのリソース要件を軽減する Electrumプロトコル互換のサーバーです。現在このソフトウェアはsignetのテストネットをサポートしています。

リリースとリリース候補

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

  • BDK 0.28.0は、Bitcoin対応アプリケーションを構築するためのこのライブラリのメンテナンスリリースです。

  • Core Lightning 23.02.2は、いくつかのバグ修正を含む、この人気のあるLNノードソフトウェアのメンテナンスリリースです。

  • Core Lightning 23.05rc1は、このLNノードの次期バージョンのリリース候補です。

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

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

  • Bitcoin Core #27358は、Bitcoin Coreのリリースファイルを検証するプロセスを自動化するための verify.pyスクリプトを更新しました。ユーザーは自分が信頼する署名者のPGP鍵をインポートします。 スクリプトは、リリースのチェックサムファイルのリストと、それらのチェックサムにコミットした人の署名をダウンロードします。 スクリプトは、これらのチェックサムにコミットした信頼できる署名者のうち、少なくとも k 人を検証します。 ここで、 k はユーザーが必要とする信頼できる署名者の数です。信頼できる署名者による有効な署名が十分に見つかった場合、 スクリプトはファイルをダウンロードし、ユーザーがそのバージョンのBitcoin Coreをインストールできるようにします。 その他の詳細については、ドキュメントを参照してください。 このスクリプトはBitcoin Coreを使用するために必要なものではなく、 インターネットからダウンロードしたセキュリティ上重要なファイルを使用する前に、 ユーザーが自分で行うことを推奨しているプロセスを自動化するだけのものです。

  • Core Lightning #6120では、自動的にRBFでトランザクションの手数料を引き上げるタイミングのルールを実装するなど、 トランザクションの置換ロジックを改善しました。また、 未承認のトランザクションを定期的に再ブロードキャストし、 確実にリレーされるようにしています(ニュースレター #243参照)。

  • Eclair #2584では、既存のチャネルに資金を追加するスプライス・インと、 チャネルの資金をオンチェーンの宛先に送金するスプライス・アウトの両方に対応する スプライシングのサポートを追加しました。 PRでは、現在のドラフト仕様とは実装にいくつかの違いがあることを注意しています。