Retric, membre de la communauté CKB, a proposé le protocole de liaison Nostr

L'article original a été publié sur Github https://github.com/RetricSu/nostr-binding/blob/main/docs/lightpaper-zh.md

Dans cet article, nous proposons un protocole qui lie les structures de données de base du protocole Nostr à la blockchain CKB. Grâce à cette liaison, nous permettons aux données natives Nostr d'hériter des caractéristiques d'UTXO/Cell sur la blockchain CKB, apportant ainsi de nouvelles possibilités au protocole Nostr basées sur des mécanismes en chaîne. Un cas d’utilisation potentiel consiste à émettre des actifs natifs sur Nostr. Le protocole de liaison Nostr apporte également un nouveau paradigme de développement aux dApps. Au lieu de diviser votre dApp en deux systèmes (l'un est un serveur hors chaîne et l'autre est un contrat intelligent en chaîne), nous construisons des dApp en utilisant un système cohérent avec différents niveaux de données. Ceci est fondamentalement différent du modèle d’Ethereum.

La structure à trois niveaux du Web5 :

À propos de Nostr

Nostr est un protocole de distribution de messages simple et ouvert qui utilise un modèle client relais pour distribuer des messages standard sur les réseaux mondiaux. Le modèle client relais est similaire au réseau P2P de la blockchain, mais moins cher, plus flexible, plus pratique (et plus centralisé) et mieux adapté à l’adoption massive d’applications grand public. Les messages standards constituent la principale innovation de Nostr. Nostr définit un format de message standard basé sur JSON (ce format de message est également la structure de données de base du protocole), qui est utilisé pour décrire diverses données. Cela s'appelle "Événement".

Structure de l'événement :

Un événement est un élément de données contenant un contenu arbitraire et signé par l'utilisateur afin qu'il puisse être vérifié côté client sans faire confiance à aucun serveur relais. Tous les messages que vous publiez dans le protocole Nostr sont des événements de différents types et exigences. Vous pouvez en savoir plus sur Nostr auprès des NIP .

À propos de CKB

CKB est le réseau de deuxième couche de Bitcoin avec une conception de type UTXO et POW. La structure de données de base de CKB est appelée Cell. Cell est un UTXO à usage général avec une forte programmabilité.

Structure cellulaire :

Structure du script :

Vous pouvez en savoir plus sur CKB sur docs.nervos.org.

obligatoire

La soi-disant liaison consiste à créer une relation de mappage un-à-un entre Nostr Event et CKB Cell. Les événements sont utilisés pour définir les détails de vos actifs, et les cellules qui correspondent à cet événement sont utilisées pour fournir une protection de propriété et d'autres fonctionnalités spécifiques à la blockchain. Pour créer ce mappage un-à-un, vous devez faire pointer un événement Nostr vers une cellule CKB et vice versa. En raison de la simplicité des protocoles Nostr et CKB, la création de cette liaison est très simple.

Tout ce dont nous avons besoin, c'est de deux scripts

Nous avons introduit deux scripts CKB dans le protocole de liaison Nostr. Le premier est le script de liaison Nostr, qui est un script de type qui définit les méthodes de liaison des événements du protocole Nostr à CKB. Il s'agit d'un script très simple mais qui couvre la logique fondamentale de la liaison. Le second est le script de verrouillage Nostr, un script de verrouillage qui utilise l'événement Nostr comme signature de déverrouillage. Il est utilisé pour simplifier l'expérience utilisateur et le processus de création de dApps Nostr basées sur CKB.

Script de liaison Nostr

Le script de liaison Nostr est un script de type utilisé pour définir des règles de liaison de certains événements spéciaux du protocole Nostr à la chaîne. Le script de liaison Nostr garantit que la cellule utilisant ce script comme script de type est la seule cellule active qui existe dans la blockchain CKB et est liée à un événement Nostr spécifique.

Script de liaison :

  • TYPE_ID est utilisé pour garantir qu'une seule cellule active dans la blockchain possède ce type de hachage.

  • NOSTR_EVENT_ID est utilisé pour garantir que la cellule pointe uniquement vers un événement Nostr unique.

La cellule utilisant le script de liaison Nostr comme script de type est la cellule de liaison de l'événement Nostr.

Structure d'événement liée par Nostr :

  • La balise cell_type_id dans l'événement d'actif Nostr garantit que l'événement pointe uniquement vers une cellule CKB unique.

Nostr Asset Event Présente un actif créé par l'utilisateur. Nostr Asset Metadata Métadonnées d'événement utilisées pour décrire la même collection d'actifs.

Métadonnées des actifs Nostr Structure de l'événement :

Script de verrouillage Nostr

Nostr lock Script est un script de verrouillage qui utilise l'événement Nostr comme preuve de déverrouillage. Il est utilisé pour simplifier l'expérience utilisateur et le processus de création de dApps Nostr basées sur CKB.

Structure du script de verrouillage Nostr :

  • args est défini sur la clé publique du compte Nostr. Vous pouvez également ajouter une valeur POW dans les 4 derniers octets, ce qui signifie qu'une certaine difficulté POW doit être remplie pour débloquer l'événement.

  • Lorsque args fait 32 octets tous à 0, cela signifie que personne ne peut déverrouiller le verrou.

  • Lorsque les 32 premiers octets sont tous à 0 et que les 4 derniers octets sont différents de zéro, cela signifie que le verrou peut être déverrouillé par n'importe quel compte Nostr, à condition que l'événement de déverrouillage réponde à une certaine valeur de difficulté POW (cela peut être utilisé à des fins équitables). émission)

Nostr déverrouille la structure de l'événement :

Pour déverrouiller une cellule CKB à l'aide du script de verrouillage Nostr, un événement de déverrouillage Nostr doit être fourni dans le champ témoin de la transaction. Les utilisateurs peuvent générer plusieurs événements de déverrouillage, mais comme l'événement enregistrera la transaction CKB correspondante dans la balise lors du téléchargement sur la chaîne, les événements restants deviendront automatiquement invalides, il n'y a donc aucun risque de relecture.

Nostr lock Script peut également prendre en charge les signatures multiples. Ses arguments de script de verrouillage peuvent être un ID d'événement Nostr. Le champ Tag de cet événement enregistre toutes les clés publiques M P du propriétaire. Le déverrouillage nécessite au moins N (N<=M) comptes Nostr pour fournir l'événement de déverrouillage Nostr comme preuve.

Avec l'aide du script de verrouillage Nostr, les utilisateurs peuvent utiliser le client écologique Nostr et le plug-in de navigateur pour signer et générer directement des événements déverrouillés comme preuves de signature pour déverrouiller les transactions CKB, afin que les développeurs de ces outils écologiques Nostr hors chaîne puissent en savoir aussi peu que possible Et introduisez le code lié à CKB et à la blockchain. Dans le même temps, les utilisateurs peuvent presque « ne pas se soucier » de la blockchain. L'équipe du projet ou d'autres bénévoles peuvent exécuter un relais spécial pour surveiller s'il y a de nouveaux événements de déverrouillage dans le réseau Nostr et, si c'est le cas, aider à analyser les transactions et les soumettre à la chaîne CKB pour déverrouillage. Les frais de transaction peuvent être payés via les Cellules qui réservent une partie de leur solde comme frais de traitement.

Émettre des actifs

liaison directe

Utilisateur : nécessite un compte Nostr et CKB

  1. Indexez la cellule CKB et calculez le TYPE_ID de la cellule

  2. Générer un événement d'actif Nostr avec la signature Nostr à l'aide de TYPE_ID

  3. Utilisez Nostr Asset Event pour générer une transaction de liaison CKB et l'envoyer à la chaîne

par RVB++

Utilisateur : nécessite un compte Nostr, un portefeuille Bitcoin et Satoshi

  1. Indexez UTXO, générez la cellule de mappage via RGB++ et calculez le TYPE_ID de la cellule

  2. Générer un événement d'actif Nostr avec la signature Nostr à l'aide de TYPE_ID

  3. Utilisez Nostr Asset Event pour générer une transaction de liaison CKB et l'envoyer à la chaîne

transfert

Lors du verrouillage avec Nostr

Utilisateur : compte Nostr requis

  • Indexez la cellule que vous souhaitez déverrouiller à l'aide du script de verrouillage Nostr sur CKB

  • Construisez une transaction CKB et remplacez cette cellule par un autre script de verrouillage

  • À l'aide des résultats de l'étape 2, générez un événement de déverrouillage Nostr via l'extension client/navigateur Nostr.

  • Envoyez l'événement de déverrouillage Nostr à un groupe de relais spécial et soumettez-le à la chaîne

Lors de l'utilisation d'autres serrures

Utilisateur : Besoin d'avoir un portefeuille correspondant à d'autres verrous, aucune opération liée à Nostr n'est requise

Suivez simplement le processus normal sur CKB/RGB++ pour déverrouiller le transfert.

Problèmes d'évolutivité

Le principal avantage du protocole de liaison Nostr est qu’il est très simple et direct. La simplicité permet également aux développeurs clients de créer plus facilement des produits dessus. D'un autre côté, l'inconvénient du protocole de liaison Nostr est le problème d'évolutivité. Dans le cadre de cette conception simple, le débit du jeton Nostr est lié à la blockchain CKB, donc la blockchain CKB deviendra le goulot d'étranglement. Étant donné que Nostr, en tant que réseau social plus flexible, est conçu pour une adoption massive, ce débit pourrait devenir un problème à l'avenir lorsqu'un grand nombre d'utilisateurs interagiront avec ces actifs natifs.

Cependant, nous voyons quelques options pour résoudre ce problème :

  1. Intégré au réseau Lightning CKB

Étant donné que les actifs natifs Nostr créés par le protocole de liaison Nostr peuvent être traités comme des actifs CKB ordinaires, nous pouvons les utiliser pour étendre le protocole de liaison Nostr une fois le réseau Lightning CKB lancé. Le protocole de liaison Nostr lui-même ne nécessite aucune modification, c'est une fonctionnalité gratuite. Mais l'inconvénient est qu'il faut attendre le lancement du CKB Lightning Network.

  1. Mettre en œuvre un canal de paiement simple mais utile

Une autre option avant le lancement du CKB Lightning Network consiste à mettre en œuvre des canaux de paiement très simples mais utiles, tels que les canaux de déversement. Le canal Spillman est un canal de paiement unidirectionnel plus simple à mettre en œuvre. Il y a un payeur et un bénéficiaire dans le canal. Ce type de canal de paiement n’est peut-être pas très utile pour une blockchain, mais dans le cas du protocole de liaison Nostr, il s’intègre parfaitement dans un modèle d’abonnement entre les créateurs de contenu et leurs abonnés.

  1. Liaison N à 1 au lieu de liaison 1 à 1

Au lieu de créer une liaison 1 à 1, nous pouvons créer une liaison N à 1 entre l'événement Nostr et la cellule CKB. En d’autres termes, nous regroupons plusieurs événements dans une cellule pour des raisons d’évolutivité. Cela rendra le coût de stockage de cartographie en chaîne beaucoup plus faible que celui de Nostr Event hors chaîne. Cependant, le problème de la liaison N-à-1 est qu'elle nécessite la conception d'un nouveau modèle pour contrôler et partager la propriété des événements regroupés. Cela sera plus complexe et nécessitera un travail supplémentaire de conception et de mise en œuvre.

  1. Solution de style RVB

Une autre façon d'atteindre une évolutivité ultime consiste à créer une solution de style RVB, en utilisant la cellule CKB comme sceau unique et en faisant du protocole Nostr une couche d'implémentation similaire au protocole RVB. Cette solution simplifie le flux de travail en choisissant de mettre en œuvre uniquement la norme de jeton et en excluant les idées générales de contrats intelligents du protocole RVB d'origine.

Questions fréquemment posées

Pourquoi choisir Nostr ?

Nostr est une couche idéale pour les applications à grande échelle basées sur la cryptographie. Il s’agit d’un protocole de distribution d’informations super simple, direct, pratique, impartial et facile à intégrer. De nombreux projets Web3 peuvent utiliser des éléments comme Arweave et IPFS, qui ont des valeurs et des philosophies complètement différentes. Vous pouvez considérer Nostr comme un protocole super lâche, sans l'obsession d'un réseau P2P entièrement décentralisé, ni l'engagement excessif envers l'économie symbolique et les mécanismes d'incitation qui existent depuis longtemps dans le monde web3, ce qui rend Nostr plus pratique et sans jugement.

Pourquoi ne pas simplement utiliser les actifs de la blockchain ?

Permettre aux utilisateurs d'émettre leurs propres actifs natifs dans le réseau Nostr en fonction d'événements, plutôt que d'utiliser directement les jetons blockchain existants dans le réseau Nostr, repose principalement sur ce simple fait : si aucune valeur n'est créée, les jetons n'ont aucune valeur. Pour les produits grand public, la plupart des actifs blockchain créent simplement des frictions dans le flux de travail du produit plutôt que d’ajouter de la valeur au produit. Plutôt que d’imposer un mécanisme de jetons dans un produit, il est préférable d’examiner le point de vue de l’utilisateur et de voir ce dont il a besoin et comment la blockchain peut l’aider. Nous pensons que les actifs natifs basés sur les événements correspondent à cette méthodologie. Les développeurs d’applications et les utilisateurs peuvent voir ce qu’ils peuvent faire avec les actifs de leur propre point de vue, plutôt que de les forcer à accepter les actifs et les règles blockchain existantes. De plus, les actifs basés sur les événements sont plus susceptibles de fonctionner de manière transparente avec le protocole Nostr, apportant de nouvelles façons de jouer aux produits et outils existants de l'écosystème Nostr.

Pourquoi choisir CKB ?

La mise en œuvre de protocoles de liaison à l'aide de CKB est beaucoup plus facile en raison de sa programmabilité. Bitcoin est encore plus difficile. De plus, étant donné la manière unique dont CKB est lié à BTC, il serait plus facile de se lier d'abord à CKB, puis à BTC.

Conclusion

Dans l’ensemble, Nostr, en tant que protocole de distribution d’informations simple et pratique, est très adapté à l’adoption à grande échelle d’applications grand public. La programmabilité de CKB et sa relation de liaison avec Bitcoin en font un choix idéal pour implémenter le protocole de liaison Nostr. Dans le même temps, en émettant des actifs natifs basés sur Nostr Event, de nouveaux mécanismes de produits peuvent être conçus sur la base d'applications, permettant à Nostr de rivaliser avec d'autres applications Internet traditionnelles et de trouver son propre PMF unique.