Nostr バインディングプロトコルは、オンチェーンメカニズムに基づく新しい可能性をもたらします。

業界速報
2024-05-22 20:48:54
コレクション
この記事では、Nostrプロトコルの基本データ構造をCKBブロックチェーンにバインドするプロトコルを提案します。このバインディングにより、NostrのネイティブデータがCKBブロックチェーン上のUTXO/Cellの特性を継承できるようになり、Nostrプロトコルにオンチェーンメカニズムに基づく新しい可能性をもたらします。潜在的なユースケースは、Nostr上でネイティブ資産を発行することです。Nostrバインディングプロトコルは、dAppに新しい開発パラダイムをもたらします。dAppを二つのシステム(オフチェーンサーバーとオンチェーンスマートコントラクト)に分けるのではなく、異なるデータレベルを持つ一貫したシステムを使用してdAppを構築します。これはイーサリアムのモデルとは根本的に異なります。

Web5 の三層構造:

3-layers

Nostr について

Nostr は、シンプルでオープンな情報配信プロトコルであり、リレー-クライアントモデルを使用して、世界中のネットワークで標準メッセージを配信します。リレー-クライアントモデルは、ブロックチェーンの P2P ネットワークに似ていますが、より安価で柔軟性があり、実用的(またはより集中化されている)であり、消費者向けアプリケーションの大規模な採用に適しています。標準メッセージは Nostr の核心的な革新です。Nostr は JSON に基づいて、さまざまなデータを記述するための標準メッセージ形式(このメッセージ形式はプロトコルの基本データ構造でもあります)を定義しています。それは「Event」と呼ばれています。

Event 構造:


Event は、任意の内容を含み、ユーザーによって署名されたデータの断片であるため、リレーサーバーを信頼することなくクライアント側で検証できます。あなたが Nostr プロトコルで発行するすべてのメッセージは、異なる種類と要件の Event です。Nostr についての詳細は NIPs から確認できます。

CKB について

CKB はビットコインの二層ネットワークで、UTXO と POW の設計を持っています。CKB の基本データ構造は Cell と呼ばれます。Cell は強力なプログラマビリティを持つ汎用 UTXO です。

Cell 構造:

Script 構造:

CKB についての詳細は docs.nervos.org から確認できます。

バインディング

バインディングとは、Nostr Event と CKB Cell の間に一対一のマッピング関係を作成することです。Event はあなたの資産の詳細を定義するために使用され、対応する Cell は所有権の保護やその他のブロックチェーン特有の機能を提供します。この一対一のマッピングを作成するには、Nostr Event が CKB Cell を指し、逆もまた然りである必要があります。Nostr と CKB プロトコルのシンプルさにより、このバインディングを作成するのは非常に簡単です。

私たちが必要とするのは二つの Script だけ

私たちは Nostr バインディングプロトコルに二つの CKB Script を導入しました。最初のものは Nostr binding Script で、Nostr プロトコルの Event を CKB にバインドする方法を定義する Type Script です。これは非常にシンプルな Script ですが、バインディングの核心的なロジックをカバーしています。二つ目は Nostr lock Script で、Nostr Event をアンロック署名として使用する Lock Script です。これはユーザーエクスペリエンスを簡素化し、CKB ベースの Nostr dApp を構築するプロセスを支援します。

Nostr binding Script

Nostr binding Script は、Nostr プロトコルの特定の Event をチェーンにバインドするルールを定義する Type Script です。Nostr binding Script は、この Script を Type Script として使用する Cell が CKB ブロックチェーン内で特定の Nostr Event にバインドされた唯一の live Cell であることを保証します。

binding Script:

  • TYPE_ID は、ブロックチェーン内にこの type hash を持つ live Cell が一つだけ存在することを保証します
  • NOSTREVENTID は、その Cell が唯一の Nostr Event を指すことを保証します

Nostr binding Script を Type Script として使用する Cell は Nostr Event のバインド Cell です。

Nostr バインディングの Event 構造:

  • celltypeid タグは、Nostr 資産 Event 内でその Event が唯一の CKB Cell を指すことを保証します

Nostr 資産 Event は、ユーザーが鋳造した資産を示しています。Nostr 資産メタデータ Event は、同じ資産集合のメタデータを記述するために使用されます。

Nostr 資産メタデータ Event 構造:

Nostr Lock Script

Nostr lock Script は、Nostr Event をアンロック証明として使用する Lock Script です。これはユーザーエクスペリエンスを簡素化し、CKB ベースの Nostr dApp を構築するプロセスを支援します。

Nostr lock Script 構造:

  • args は Nostr アカウントの公開鍵に設定されます。最後の 4 バイトに POW 値を追加することもでき、これはアンロック Event が特定の POW 難易度を満たす必要があることを意味します。
  • args が 32 バイトすべてが 0 の場合、誰もそのロックを解除できないことを意味します。
  • 現在 32 バイトすべてが 0 で、最後の 4 バイトが非ゼロ値の場合、そのロックは任意の Nostr アカウントによって解除でき、アンロック Event が特定の POW 難易度値を満たす限り(これは公平な発行に使用できます)。

Nostr アンロック Event 構造:

Nostr lock Script を使用する CKB Cell を解除するには、トランザクションの witness フィールドに Nostr アンロック Event を提供する必要があります。ユーザーは複数のアンロック Event を生成できますが、Event がチェーンにアップロードされる際に対応する CKB トランザクションがタグに記録されるため、残りの Event は自動的に無効になり、リプレイリスクはありません。

Nostr lock Script はマルチシグネチャもサポートできます。その lock Script args は Nostr Event ID であることができます。その Event の Tag フィールドには、すべての所有者 M 個の P 公開鍵が記録されています。解除には少なくとも N 個(N\<=M)の Nostr アカウントが Nostr アンロック Event を証明として提供する必要があります。

Nostr lock Script の助けを借りて、ユーザーは Nostr エコシステムのクライアントやブラウザプラグインを使用して、直接署名し、アンロックの Event を署名証明として生成して CKB トランザクションを解除できます。これにより、これらのオフチェーン Nostr エコシステムツールの開発者は、CKB やブロックチェーン関連のコードをできるだけ少なく理解し、導入することができます。同時に、ユーザーはほとんど「ブロックチェーンを気にしない」ことができます。プロジェクトチームや他のボランティアは、特別なリレーを運営し、Nostr ネットワークに新しいアンロック Event があるかどうかを監視し、あればトランザクションを解析し、CKB チェーンに提出して解除を行う手助けをします。トランザクション手数料は、残高の一部を手数料の Cell として予約することで支払うことができます。

資産の発行

直接バインディング

ユーザー: Nostr アカウントと CKB が必要

  1. CKB Cell をインデックスし、その Cell の TYPE_ID を計算します
  2. TYPE_ID を使用して、Nostr 署名付きの Nostr 資産 Event を生成します
  3. Nostr 資産 Event を使用して CKB バインディングトランザクションを生成し、チェーンに送信します

RGB++ を通じて

ユーザー: Nostr アカウント、ビットコインウォレット、サトシが必要

  1. UTXO をインデックスし、RGB++ を通じてマッピング Cell を生成し、その Cell の TYPE_ID を計算します
  2. TYPE_ID を使用して、Nostr 署名付きの Nostr 資産 Event を生成します
  3. Nostr 資産 Event を使用して CKB バインディングトランザクションを生成し、チェーンに送信します

送金

Nostr ロックを使用する場合

ユーザー: Nostr アカウントが必要

  • CKB 上で、Nostr lock Script を使用する Cell をインデックスします
  • CKB トランザクションを構築し、他の lock Script でこの Cell を置き換えます
  • ステップ 2 の結果を使用して、Nostr クライアント/ブラウザ拡張を通じて Nostr アンロック Event を生成します
  • Nostr アンロック Event を特別なリレーグループに送信し、チェーンに提出します

他のロックを使用する場合

ユーザー: 対応する他のロックのウォレットを所有している必要があり、Nostr に関連する操作は不要です

CKB/RGB++ 上の通常のプロセスに従って、送金を解除するだけです。

スケーラビリティの問題

Nostr バインディングプロトコルの主な利点は、非常にシンプルで直接的であることです。シンプルさは、クライアント開発者がその上に製品を構築しやすくします。一方、Nostr バインディングプロトコルの欠点はスケーラビリティの問題です。このシンプルな設計の下で、Nostr トークンのスループットは CKB ブロックチェーンにバインドされるため、CKB ブロックチェーンがボトルネックになります。Nostr がより柔軟なソーシャルネットワークとして、大規模な採用を目指していることを考えると、将来的に大量のユーザーがこれらのネイティブ資産と相互作用する際に、このスループットが問題になる可能性があります。

しかし、私たちはこの問題を解決するいくつかの選択肢を見ています:

  1. CKB ライトニングネットワークとの統合

Nostr バインディングプロトコルによって作成された Nostr ネイティブ資産は、通常の CKB 資産と見なすことができるため、CKB ライトニングネットワークが導入されると、これを利用して Nostr バインディングプロトコルを拡張できます。Nostr バインディングプロトコル自体は変更を必要とせず、これは無料の機能です。しかし、欠点は CKB ライトニングネットワークの導入を待つ必要があることです。

  1. シンプルだが有用な支払いチャネルの実装

CKB ライトニングネットワークが導入される前のもう一つの選択肢は、非常にシンプルだが有用な支払いチャネルを実装することです。たとえば、spillman チャネル などです。spillman チャネルは一方向の支払いチャネルで、実装が簡単です。チャネルには支払者と受取人がいます。ブロックチェーンにとって、この支払いチャネルはあまり役に立たないかもしれませんが、Nostr バインディングプロトコルの文脈では、コンテンツクリエイターと彼らのフォロワーとの間のサブスクリプションモデルに非常に適しています。

  1. N 対 1 バインディングではなく 1 対 1 バインディング

1 対 1 バインディングを作成するのとは異なり、Nostr Event と CKB Cell の間に N 対 1 バインディングを作成できます。言い換えれば、複数のイベントを一つのセルにバンドルしてスケーラビリティを実現します。これにより、チェーン上のマッピングストレージコストは、オフチェーンの Nostr Event よりもはるかに小さくなります。しかし、N 対 1 バインディングの問題は、バンドルされたイベントの所有権を制御し、分割するための新しいモデルを設計する必要があることです。これはより複雑で、追加の設計と実装作業が必要です。

  1. RGB スタイルの解決策

最終的なスケーラビリティを実現するもう一つの方法は、RGB スタイルの解決策を作成し、CKB Cell を一時的な封印として使用し、Nostr プロトコルを RGB プロトコルに似た実装層とすることです。この解決策は、トークン標準のみを実装し、元の RGB プロトコルの汎用スマートコントラクトの概念を排除することを選択できるため、ワークフローを簡素化します。

よくある質問

なぜ Nostr を選ぶのか?

Nostr は、暗号技術に基づく大衆向けアプリケーションの理想的なレイヤーです。これは、非常にシンプルで直接的、実用的で偏見のない、統合が容易な情報配信プロトコルです。多くの web3 プロジェクトは、ArweaveIPFS のようなものを使用するかもしれませんが、これらは全く異なる価値観と理念を持っています。Nostr を、完全に分散化された P2P ネットワークへの執着もなく、web3 世界に長く存在するトークン経済やインセンティブメカニズムへの過度なコミットメントもない、非常に緩やかなプロトコルと見なすことができます。これにより、Nostr はより実用的で偏見のないものになります。

なぜブロックチェーン資産を直接使用しないのか?

ユーザーが Nostr ネットワーク内で Event に基づいて独自のネイティブ資産を発行できるようにすることは、Nostr ネットワーク内で既存のブロックチェーントークンを直接使用するのではなく、価値を創造しない限り、トークンには意味がないというシンプルな事実に基づいています。消費者向け製品において、ほとんどのブロックチェーン資産は、製品のワークフローに抵抗をもたらすだけで、製品に価値を追加することはありません。トークンメカニズムを製品に強制するのではなく、ユーザーの視点から、彼らが何を必要としているのか、ブロックチェーンがどのように役立つのかを考えるべきです。私たちは、Event に基づくネイティブ資産がこの方法論に合致すると考えています。アプリケーション開発者とユーザーは、資産を使って何ができるかを自分の視点から見ることができ、既存のブロックチェーン資産やルールを強制されることはありません。さらに、Event に基づく資産は、Nostr プロトコルとシームレスに協力し、既存の Nostr エコシステム製品やツールに新しい遊び方をもたらします。

なぜ CKB を選ぶのか?

CKB のプログラマビリティにより、CKB でバインディングプロトコルを実装するのがはるかに簡単です。ビットコインはさらに難しいです。さらに、CKB と BTC のバインディングの独自の方法を考慮すると、最初に CKB にバインドし、その後 BTC にバインドする方が簡単です。

結論

全体として、Nostr はシンプルで実用的な情報配信プロトコルとして、消費者向けアプリケーションの大規模な採用に非常に適しています。また、CKB のプログラマビリティとビットコインとのバインディング関係により、Nostr バインディングプロトコルを実現する理想的な選択肢となります。同時に、Nostr Event に基づいてネイティブ資産を発行することで、アプリケーションから出発して新しい製品メカニズムを設計し、Nostr が他の従来のインターネットアプリケーションと競争し、独自の PMF を見つけることができます。

ChainCatcherは、広大な読者の皆様に対し、ブロックチェーンを理性的に見るよう呼びかけ、リスク意識を向上させ、各種仮想トークンの発行や投機に注意することを提唱します。当サイト内の全てのコンテンツは市場情報や関係者の見解であり、何らかの投資助言として扱われるものではありません。万が一不適切な内容が含まれていた場合は「通報」することができます。私たちは迅速に対処いたします。
チェーンキャッチャー イノベーターとともにWeb3の世界を構築する