CKB-Community-Mitglied Retric schlug das Nostr-Bindungsprotokoll vor

Der Originalartikel wurde auf Github https://github.com/RetricSu/nostr-binding/blob/main/docs/lightpaper-zh.md veröffentlicht

In diesem Artikel schlagen wir ein Protokoll vor, das die grundlegenden Datenstrukturen im Nostr-Protokoll an die CKB-Blockchain bindet. Durch diese Bindung ermöglichen wir den nativen Nostr-Daten, die Eigenschaften von UTXO/Cell auf der CKB-Blockchain zu erben, was dem Nostr-Protokoll neue Möglichkeiten auf der Grundlage von On-Chain-Mechanismen eröffnet. Ein möglicher Anwendungsfall ist die Ausgabe nativer Assets auf Nostr. Das Nostr-Bindungsprotokoll bringt auch ein neues Entwicklungsparadigma für dApps. Anstatt Ihre dApp in zwei Systeme aufzuteilen (eines ist ein Off-Chain-Server und das andere ist ein On-Chain-Smart-Contract), erstellen wir dApps mithilfe eines konsistenten Systems mit unterschiedlichen Datenebenen. Dies unterscheidet sich grundlegend vom Modell von Ethereum.

Die dreistufige Struktur von Web5:

Über Nostr

Nostr ist ein einfaches und offenes Nachrichtenverteilungsprotokoll, das ein Relay-Client-Modell verwendet, um Standardnachrichten über globale Netzwerke zu verteilen. Das Relay-Client-Modell ähnelt dem P2P-Netzwerk in der Blockchain, ist jedoch kostengünstiger, flexibler, praktischer (und zentralisierter) und besser für die Masseneinführung von Verbraucheranwendungen geeignet. Standardnachrichten sind die Kerninnovation von Nostr. Nostr definiert ein auf JSON basierendes Standardnachrichtenformat (dieses Nachrichtenformat ist auch die grundlegende Datenstruktur des Protokolls) zur Beschreibung verschiedener Daten. Es heißt „Ereignis“.

Veranstaltungsstruktur:

Ein Ereignis ist ein Datenelement, das beliebigen Inhalt enthält und vom Benutzer signiert wird, sodass es auf der Clientseite überprüft werden kann, ohne dass einem Relay-Server vertraut wird. Alle Nachrichten, die Sie im Nostr-Protokoll veröffentlichen, sind Ereignisse unterschiedlicher Art und Anforderungen. Weitere Informationen zu Nostr finden Sie bei NIPs.

Über CKB

CKB ist das Second-Layer-Netzwerk von Bitcoin mit einem UTXO-ähnlichen und POW-ähnlichen Design. Die grundlegende Datenstruktur von CKB heißt Cell. Cell ist ein Allzweck-UTXO mit starker Programmierbarkeit.

Zellstruktur:

Skriptstruktur:

Weitere Informationen zu CKB finden Sie unter docs.nervos.org.

Bindung

Die sogenannte Bindung besteht darin, eine Eins-zu-Eins-Zuordnungsbeziehung zwischen Nostr Event und CKB Cell zu erstellen. Ereignisse werden verwendet, um die Details Ihrer Assets zu definieren, und Zellen, die diesem Ereignis zugeordnet sind, werden verwendet, um Eigentumsschutz und andere Blockchain-spezifische Funktionen bereitzustellen. Um diese Eins-zu-eins-Zuordnung zu erstellen, muss ein Nostr-Ereignis auf eine CKB-Zelle zeigen und umgekehrt. Aufgrund der Einfachheit der Nostr- und CKB-Protokolle ist die Erstellung dieser Bindung sehr einfach.

Alles was wir brauchen sind zwei Skripte

Wir haben zwei CKB-Skripte im Nostr-Bindungsprotokoll eingeführt. Das erste ist das Nostr-Bindungsskript, ein Typskript, das Methoden zum Binden von Ereignissen vom Nostr-Protokoll an CKB definiert. Es handelt sich um ein sehr einfaches Skript, das jedoch die Kernlogik der Bindung abdeckt. Das zweite ist das Nostr-Sperrskript, ein Sperrskript, das Nostr-Ereignis als Entsperrsignatur verwendet. Es wird verwendet, um die Benutzererfahrung und den Prozess der Erstellung von Nostr-dApps auf Basis von CKB zu vereinfachen.

Nostr-Bindungsskript

Das Nostr-Bindungsskript ist ein Typskript, das zum Definieren von Regeln zum Binden bestimmter spezieller Ereignisse aus dem Nostr-Protokoll an die Kette verwendet wird. Das Nostr-Bindungsskript stellt sicher, dass die Zelle, die dieses Skript als Typskript verwendet, die einzige lebende Zelle ist, die in der CKB-Blockchain existiert und an ein bestimmtes Nostr-Ereignis gebunden ist.

Bindungsskript:

  • TYPE_ID wird verwendet, um sicherzustellen, dass nur eine lebende Zelle in der Blockchain über diesen Hashtyp verfügt

  • NOSTR_EVENT_ID wird verwendet, um sicherzustellen, dass die Zelle nur auf ein eindeutiges Nostr-Ereignis verweist

Die Zelle, die das Nostr-Bindungsskript als Typskript verwendet, ist die Bindungszelle des Nostr-Ereignisses.

Von Nostr gebundene Eventstruktur:

  • Das Tag cell_type_id im Nostr-Asset-Ereignis stellt sicher, dass das Ereignis nur auf eine eindeutige CKB-Zelle verweist

Nostr-Asset-Ereignis Präsentiert ein vom Benutzer erstelltes Asset. Nostr-Asset-Metadaten Ereignismetadaten, die zur Beschreibung derselben Sammlung von Assets verwendet werden.

Nostr-Asset-Metadaten Ereignisstruktur:

Nostr-Lock-Skript

Das Nostr-Sperrskript ist ein Sperrskript, das das Nostr-Ereignis als Nachweis für die Entsperrung verwendet. Es wird verwendet, um die Benutzererfahrung und den Prozess der Erstellung von Nostr-dApps auf Basis von CKB zu vereinfachen.

Struktur des Nostr Lock-Skripts:

  • args wird auf den öffentlichen Schlüssel des Nostr-Kontos gesetzt. Sie können in den letzten 4 Bytes auch einen POW-Wert hinzufügen, was bedeutet, dass ein bestimmter POW-Schwierigkeitsgrad erreicht werden muss, um das Event freizuschalten.

  • Wenn die Argumente 32 Byte lang sind und alle 0 sind, bedeutet dies, dass niemand die Sperre entsperren kann.

  • Wenn die ersten 32 Bytes alle 0 sind und die letzten 4 Bytes ungleich Null sind, bedeutet dies, dass die Sperre von jedem Nostr-Konto entsperrt werden kann, solange das Entsperrereignis einen bestimmten POW-Schwierigkeitswert erreicht (dies kann für faire Zwecke verwendet werden). Ausgabe)

Nostr schaltet die Event-Struktur frei:

Um eine CKB-Zelle mithilfe des Nostr-Lock-Skripts zu entsperren, muss im Zeugenfeld der Transaktion ein Nostr-Unlock-Ereignis bereitgestellt werden. Benutzer können mehrere Entsperrereignisse generieren. Da das Ereignis jedoch beim Hochladen in die Kette die entsprechende CKB-Transaktion im Tag aufzeichnet, werden die verbleibenden Ereignisse automatisch ungültig, sodass kein Risiko einer Wiederholung besteht.

Nostr Lock Script kann auch Mehrfachsignaturen unterstützen. Seine Sperrskriptargumente können eine Nostr-Ereignis-ID sein. Das Tag-Feld dieses Ereignisses zeichnet alle öffentlichen Schlüssel des Besitzers M P auf. Zum Entsperren sind mindestens N (N<=M) Nostr-Konten erforderlich, um das Nostr-Freischaltereignis als Nachweis bereitzustellen.

Mit Hilfe des Nostr-Sperrskripts können Benutzer den Nostr-Umweltclient und das Browser-Plug-In verwenden, um entsperrte Ereignisse direkt zu signieren und als Signaturnachweise zum Entsperren von CKB-Transaktionen zu generieren, sodass Entwickler dieser Off-Chain-Umwelttools von Nostr nur wenig wissen können Möglich und Einführung von CKB- und Blockchain-bezogenem Code. Gleichzeitig kann es den Benutzern nahezu „egal“ sein, sich um die Blockchain zu kümmern. Die Projektpartei oder andere Freiwillige können ein spezielles Relay betreiben, um zu überwachen, ob es neue Entsperrereignisse im Nostr-Netzwerk gibt, und wenn ja, dabei helfen, die Transaktionen zu analysieren und sie zur Entsperrung an die CKB-Kette zu übermitteln. Transaktionsgebühren können über Cells bezahlt werden, die einen Teil ihres Guthabens als Bearbeitungsgebühren reservieren.

Vermögenswerte ausgeben

direkte Bindung

Benutzer: Erfordert Nostr-Konto und CKB

  1. Indizieren Sie die CKB-Zelle und berechnen Sie die TYPE_ID der Zelle

  2. Generieren Sie ein Nostr-Asset-Ereignis mit Nostr-Signatur unter Verwendung von TYPE_ID

  3. Verwenden Sie Nostr Asset Event, um eine CKB-Bindungstransaktion zu generieren und an die Kette zu senden

durch RGB++

Benutzer: Erfordert Nostr-Konto, Bitcoin-Wallet und Satoshi

  1. Indizieren Sie UTXO, generieren Sie eine Zuordnungszelle über RGB++ und berechnen Sie die TYPE_ID der Zelle

  2. Generieren Sie ein Nostr-Asset-Ereignis mit Nostr-Signatur unter Verwendung von TYPE_ID

  3. Verwenden Sie Nostr Asset Event, um eine CKB-Bindungstransaktion zu generieren und an die Kette zu senden

überweisen

Beim Sperren mit Nostr

Benutzer: Nostr-Konto erforderlich

  • Indizieren Sie die Zelle, die Sie entsperren möchten, mit dem Nostr-Sperrskript auf CKB

  • Erstellen Sie eine CKB-Transaktion und ersetzen Sie diese Zelle durch ein anderes Sperrskript

  • Generieren Sie mithilfe der Ergebnisse aus Schritt 2 ein Nostr-Entsperrereignis über die Nostr-Client-/Browser-Erweiterung

  • Senden Sie das Nostr-Freischaltereignis an eine spezielle Relay-Gruppe und übermitteln Sie es an die Kette

Bei Verwendung anderer Schlösser

Benutzer: Es ist eine Brieftasche erforderlich, die anderen Sperren entspricht. Es sind keine Nostr-bezogenen Vorgänge erforderlich

Befolgen Sie einfach den normalen Vorgang bei CKB/RGB++, um die Übertragung freizuschalten.

Probleme mit der Skalierbarkeit

Der Hauptvorteil des Nostr-Bindungsprotokolls besteht darin, dass es sehr einfach und unkompliziert ist. Die Einfachheit erleichtert es Kundenentwicklern auch, darauf basierende Produkte zu entwickeln. Der Nachteil des Nostr-Bindungsprotokolls ist andererseits das Problem der Skalierbarkeit. Bei diesem einfachen Design ist der Durchsatz des Nostr-Tokens an die CKB-Blockchain gebunden, sodass die CKB-Blockchain zum Engpass wird. Wenn man bedenkt, dass Nostr als flexibleres soziales Netzwerk konzipiert ist, das auf eine Massenakzeptanz abzielt, könnte dieser Durchsatz in Zukunft zu einem Problem werden, wenn eine große Anzahl von Benutzern mit diesen nativen Assets interagiert.

Wir sehen jedoch einige Möglichkeiten, dieses Problem zu lösen:

  1. Integriert in das CKB Lightning Network

Da die durch das Nostr-Bindungsprotokoll erstellten nativen Nostr-Assets wie gewöhnliche CKB-Assets behandelt werden können, können wir damit das Nostr-Bindungsprotokoll erweitern, sobald das CKB Lightning Network gestartet ist. Das Nostr-Bindungsprotokoll selbst erfordert keine Änderungen, es ist eine kostenlose Funktion. Der Nachteil besteht jedoch darin, dass Sie auf den Start des CKB Lightning Network warten müssen.

  1. Implementieren Sie einen einfachen, aber nützlichen Zahlungskanal

Eine weitere Option vor dem Start des CKB Lightning Network besteht darin, einige sehr einfache, aber nützliche Zahlungskanäle wie Spillman-Kanäle zu implementieren. Der Spillman-Kanal ist ein Einweg-Zahlungskanal, der einfacher zu implementieren ist. Im Kanal gibt es einen Zahler und einen Zahlungsempfänger. Diese Art von Zahlungskanal mag für eine Blockchain nicht sehr nützlich sein, aber im Fall des Nostr-Bindungsprotokolls passt er perfekt in ein Abonnementmodell zwischen Content-Erstellern und ihren Followern.

  1. N-zu-1-Bindung statt 1-zu-1-Bindung

Anstatt eine 1-zu-1-Bindung zu erstellen, können wir eine N-zu-1-Bindung zwischen dem Nostr-Ereignis und der CKB-Zelle erstellen. Mit anderen Worten: Aus Gründen der Skalierbarkeit bündeln wir mehrere Ereignisse in einer Zelle. Dadurch werden die On-Chain-Mapping-Speicherkosten viel geringer sein als bei Off-Chain-Nostr-Events. Das Problem bei der N-zu-1-Bindung besteht jedoch darin, dass ein neues Muster entworfen werden muss, um den Besitz gebündelter Ereignisse zu steuern und aufzuteilen. Dies wird komplexer sein und zusätzliche Entwurfs- und Implementierungsarbeiten erfordern.

  1. Lösung im RGB-Stil

Eine weitere Möglichkeit, ultimative Skalierbarkeit zu erreichen, besteht darin, eine Lösung im RGB-Stil zu erstellen, die CKB-Zelle als einmaliges Siegel zu verwenden und das Nostr-Protokoll zu einer Implementierungsschicht ähnlich dem RGB-Protokoll zu machen. Diese Lösung vereinfacht den Arbeitsablauf, indem sie sich dafür entscheidet, nur den Token-Standard zu implementieren und die allgemeinen Smart-Contract-Ideen aus dem ursprünglichen RGB-Protokoll auszuschließen.

Häufig gestellte Fragen

Warum Nostr wählen?

Nostr ist eine ideale Schicht für Massenanwendungen, die auf Kryptographie basieren. Es ist ein supereinfaches, unkompliziertes, praktisches, unvoreingenommenes und leicht zu integrierendes Informationsverteilungsprotokoll. Viele Web3-Projekte verwenden möglicherweise Dinge wie Arweave und IPFS, die völlig unterschiedliche Werte und Philosophien vertreten. Sie können sich Nostr als ein superlockeres Protokoll vorstellen, ohne die Besessenheit von einem vollständig dezentralen P2P-Netzwerk oder die übermäßige Bindung an Token-Ökonomie und Anreizmechanismen, die es in der Web3-Welt seit langem gibt, was Nostr praktischer und vorurteilsfreier macht.

Warum nicht einfach Blockchain-Assets nutzen?

Die Möglichkeit für Benutzer, ihre eigenen nativen Assets im Nostr-Netzwerk auf der Grundlage von Ereignissen auszugeben, anstatt direkt vorhandene Blockchain-Token im Nostr-Netzwerk zu verwenden, basiert hauptsächlich auf der einfachen Tatsache, dass die Token keinen Wert haben, wenn kein Wert geschaffen wird. Bei Produkten für den Endverbraucher erzeugen die meisten Blockchain-Assets lediglich Reibungsverluste im Produktworkflow, anstatt dem Produkt einen Mehrwert zu verleihen. Anstatt einem Produkt einen Token-Mechanismus aufzuzwingen, ist es besser, aus der Perspektive des Benutzers zu beginnen und zu sehen, was er braucht und wie Blockchain helfen kann. Wir glauben, dass native ereignisbasierte Assets zu dieser Methodik passen. Anwendungsentwickler und Benutzer können aus ihrer eigenen Perspektive sehen, was sie mit Assets machen können, anstatt sie zu zwingen, bestehende Blockchain-Assets und -Regeln zu akzeptieren. Darüber hinaus ist es wahrscheinlicher, dass ereignisbasierte Assets nahtlos mit dem Nostr-Protokoll zusammenarbeiten und neue Spielmöglichkeiten für bestehende Produkte und Tools des Nostr-Ökosystems bieten.

Warum CKB wählen?

Die Implementierung von Bindungsprotokollen mit CKB ist aufgrund seiner Programmierbarkeit viel einfacher. Bitcoin ist noch schwieriger. Aufgrund der einzigartigen Art und Weise, wie CKB an BTC gebunden ist, wäre es außerdem einfacher, zuerst eine Bindung an CKB und dann an BTC herzustellen.

Abschluss

Insgesamt eignet sich Nostr als einfaches und praktisches Informationsverteilungsprotokoll sehr gut für die groß angelegte Einführung von Verbraucheranwendungen. Die Programmierbarkeit und Bindungsbeziehung von CKB zu Bitcoin machen es zur idealen Wahl für die Implementierung des Nostr-Bindungsprotokolls. Gleichzeitig können durch die Ausgabe nativer Assets auf Basis von Nostr Event neue Produktmechanismen auf Basis von Anwendungen entworfen werden, sodass Nostr mit anderen traditionellen Internetanwendungen konkurrieren und sein eigenes, einzigartiges PMF finden kann.