Il membro della comunità CKB Retric ha proposto il protocollo vincolante Nostr

L'articolo originale è stato pubblicato su Github https://github.com/RetricSu/nostr-binding/blob/main/docs/lightpaper-zh.md

In questo articolo proponiamo un protocollo che lega le strutture dati di base del protocollo Nostr alla blockchain CKB. Attraverso questo legame, permettiamo ai dati nativi di Nostr di ereditare le caratteristiche di UTXO/Cell sulla blockchain CKB, apportando nuove possibilità al protocollo Nostr basato su meccanismi on-chain. Un potenziale caso d'uso è l'emissione di asset nativi su Nostr. Il protocollo di associazione Nostr apporta anche un nuovo paradigma di sviluppo alle dApp. Invece di dividere la tua dApp in due sistemi (uno è un server fuori catena e l'altro è uno smart contract on-chain), creiamo dApp utilizzando un sistema coerente con diversi livelli di dati. Questo è fondamentalmente diverso dal modello di Ethereum.

La struttura a tre livelli di Web5:

A proposito di Nostr

Nostr è un protocollo di distribuzione dei messaggi semplice e aperto che utilizza un modello client-inoltro per distribuire messaggi standard su reti globali. Il modello client-relè è simile alla rete P2P nella blockchain, ma più economico, più flessibile, più pratico (e più centralizzato) e più adatto per l’adozione di massa di applicazioni di livello consumer. I messaggi standard sono l’innovazione principale di Nostr. Nostr definisce un formato di messaggio standard basato su JSON (questo formato di messaggio è anche la struttura dati di base del protocollo) per descrivere vari dati. Si chiama "Evento".

Struttura dell'evento:

Un evento è un pezzo di dati che contiene contenuto arbitrario ed è firmato dall'utente in modo che possa essere verificato sul lato client senza fidarsi di alcun server di inoltro. Tutti i messaggi che pubblichi nel protocollo Nostr sono Eventi di diversa natura ed esigenza. Puoi saperne di più su Nostr da NIPs.

A proposito di CKB

CKB è la rete di secondo livello di Bitcoin con un design simile a UTXO e POW. La struttura dati di base di CKB si chiama Cell. Cell è un UTXO per uso generale con forte programmabilità.

Struttura cellulare:

Struttura della sceneggiatura:

Puoi saperne di più su CKB da docs.nervos.org.

legame

Il cosiddetto legame consiste nel creare una relazione di mappatura uno a uno tra Nostr Event e CKB Cell. Gli eventi vengono utilizzati per definire i dettagli delle tue risorse e le celle mappate a questo evento vengono utilizzate per fornire protezione della proprietà e altre funzionalità specifiche della blockchain. Per creare questa mappatura uno a uno, è necessario che un evento Nostr punti a una cella CKB e viceversa. Grazie alla semplicità dei protocolli Nostr e CKB, creare questa associazione è molto semplice.

Tutto ciò di cui abbiamo bisogno sono due script

Abbiamo introdotto due script CKB nel protocollo di associazione Nostr. Il primo è lo script di associazione Nostr, che è un Type Script che definisce i metodi per associare eventi dal protocollo Nostr a CKB. È uno script molto semplice ma copre la logica principale dell'associazione. Il secondo è il Nostr lock Script, uno script di blocco che utilizza Nostr Event come firma di sblocco. Viene utilizzato per semplificare l'esperienza dell'utente e il processo di creazione di Nostr dApp basate su CKB.

Nostr vincolante Script

Lo script di associazione Nostr è un tipo di script utilizzato per definire le regole per associare determinati eventi speciali dal protocollo Nostr alla catena. Lo script di associazione Nostr garantisce che la cella che utilizza questo script come script di tipo sia l'unica cella attiva esistente nella blockchain CKB ed è associata a uno specifico evento Nostr.

Scrittura vincolante:

  • TYPE_ID viene utilizzato per garantire che solo una cella attiva nella blockchain abbia questo tipo di hash

  • NOSTR_EVENT_ID viene utilizzato per garantire che la cella punti solo a un evento Nostr univoco

La cella che utilizza lo script di associazione Nostr come script di tipo è la cella di associazione dell'evento Nostr.

Struttura dell'evento vincolata da Nostr:

  • Il tag cell_type_id nell'evento Nostr asset garantisce che l'evento punti solo a una cella CKB univoca

Evento Nostr Asset Presenta un asset coniato dall'utente. Nostr Asset Metadata Metadati dell'evento utilizzati per descrivere la stessa raccolta di risorse.

Metadati del nostro asset Struttura evento:

Script di blocco della nostra finestra

Nostr lock Script è uno script di blocco che utilizza Nostr Event come prova di sblocco. Viene utilizzato per semplificare l'esperienza dell'utente e il processo di creazione di Nostr dApp basate su CKB.

Nostr lock Struttura dello script:

  • args è impostato sulla chiave pubblica dell'account Nostr. Puoi anche aggiungere un valore POW negli ultimi 4 byte, il che significa che è necessario soddisfare una certa difficoltà POW per sbloccare l'evento.

  • Quando args è 32 byte tutti 0, significa che nessuno può sbloccare il blocco.

  • Quando i primi 32 byte sono tutti 0 e gli ultimi 4 byte sono diversi da zero, significa che il lucchetto può essere sbloccato da qualsiasi account Nostr, purché l'evento di sblocco soddisfi un certo valore di difficoltà POW (questo può essere utilizzato per equità emissione)

Nostr sblocca la struttura degli eventi:

Per sbloccare una cella CKB utilizzando lo script di blocco Nostr, è necessario fornire un evento di sblocco Nostr nel campo testimone della transazione. Gli utenti possono generare più eventi di sblocco, ma poiché l'evento registrerà la transazione CKB corrispondente nel tag una volta caricato nella catena, gli eventi rimanenti diventeranno automaticamente non validi, quindi non vi è alcun rischio di ripetizione.

Nostr lock Script può anche supportare più firme. Gli argomenti dello script di blocco possono essere un ID evento Nostr. Il campo Tag di questo evento registra tutte le chiavi pubbliche MP proprietarie. Lo sblocco richiede almeno N (N<=M) account Nostr per fornire l'evento di sblocco Nostr come prova.

Con l'aiuto di Nostr lock Script, gli utenti possono utilizzare il client ecologico Nostr e il plug-in del browser per firmare e generare direttamente eventi sbloccati come prove di firma per sbloccare transazioni CKB, in modo che gli sviluppatori di questi strumenti ecologici Nostr off-chain possano sapere tanto poco quanto possibile E introdurre CKB e codice relativo alla blockchain. Allo stesso tempo, gli utenti possono quasi “non interessarsi” della blockchain. Il partecipante al progetto o altri volontari possono eseguire un relè speciale per monitorare se ci sono nuovi eventi di sblocco nella rete Nostr e, in tal caso, aiutare ad analizzare le transazioni e inviarle alla catena CKB per lo sblocco. Le commissioni di transazione possono essere pagate tramite Celle che riservano parte del loro saldo come commissioni di gestione.

Emettere beni

rilegatura diretta

Utente: richiede l'account Nostr e CKB

  1. Indicizzare la cella CKB e calcolare il TYPE_ID della cella

  2. Genera evento asset Nostr con firma Nostr utilizzando TYPE_ID

  3. Utilizza Nostr asset Event per generare una transazione di associazione CKB e inviarla alla catena

tramite RGB++

Utente: richiede un account Nostr, un portafoglio Bitcoin e Satoshi

  1. Indicizza UTXO, genera la mappatura della cella tramite RGB++ e calcola il TYPE_ID della cella

  2. Genera evento asset Nostr con firma Nostr utilizzando TYPE_ID

  3. Utilizza Nostr asset Event per generare una transazione di associazione CKB e inviarla alla catena

trasferimento

Quando si blocca con Nostr

Utente: è richiesto il nostro account

  • Indicizza la cella che desideri sbloccare utilizzando Nostr lock Script su CKB

  • Costruisci una transazione CKB e sostituisci questa cella con un altro script di blocco

  • Utilizzando i risultati del passaggio 2, generare un evento di sblocco Nostr tramite l'estensione client/browser Nostr

  • Invia l'evento di sblocco Nostr a uno speciale gruppo di rilancio e invialo alla catena

Quando si utilizzano altre serrature

Utente: è necessario disporre di un portafoglio corrispondente ad altri lucchetti, non sono richieste operazioni relative a Nostr

Segui semplicemente la normale procedura su CKB/RGB++ per sbloccare il trasferimento.

Problemi di scalabilità

Il vantaggio principale del protocollo di associazione Nostr è che è molto semplice e diretto. La semplicità rende anche più semplice per gli sviluppatori client creare prodotti su di esso. D'altra parte, lo svantaggio del protocollo di associazione Nostr è il problema della scalabilità. Con questo semplice design, il throughput del token Nostr è legato alla blockchain CKB, quindi la blockchain CKB diventerà il collo di bottiglia. Considerando che Nostr è progettato come un social network più flessibile mirato all’adozione di massa, questo throughput potrebbe diventare un problema in futuro quando un gran numero di utenti interagirà con queste risorse native.

Tuttavia, vediamo alcune opzioni per risolvere questo problema:

  1. Integrato con CKB Lightning Network

Poiché gli asset nativi Nostr creati dal protocollo di associazione Nostr possono essere trattati come normali asset CKB, possiamo utilizzarli per estendere il protocollo di associazione Nostr una volta avviato il CKB Lightning Network. Il protocollo di associazione Nostr in sé non richiede alcuna modifica, è una funzionalità gratuita. Ma lo svantaggio è che bisogna aspettare il lancio del CKB Lightning Network.

  1. Implementa un canale di pagamento semplice ma utile

Un’altra opzione prima del lancio di CKB Lightning Network è quella di implementare alcuni canali di pagamento molto semplici ma utili come i canali Spillman. Il canale spillman è un canale di pagamento unidirezionale più semplice da implementare. C'è un pagatore e un beneficiario nel canale. Questo tipo di canale di pagamento potrebbe non essere molto utile per una blockchain, ma nel caso del protocollo vincolante Nostr si adatta perfettamente a un modello di abbonamento tra i creatori di contenuti e i loro follower.

  1. Rilegatura N a 1 invece di rilegatura 1 a 1

Invece di creare un legame 1 a 1, possiamo creare un legame N a 1 tra l'evento Nostr e la cella CKB. In altre parole, raggruppiamo più eventi in una cella per la scalabilità. Ciò renderà il costo di archiviazione della mappatura in catena molto inferiore rispetto a Nostr Event fuori catena. Tuttavia, il problema con l'associazione N-a-1 è che richiede la progettazione di un nuovo modello per controllare e dividere la proprietà degli eventi raggruppati. Ciò sarà più complesso e richiederà ulteriore lavoro di progettazione e implementazione.

  1. Soluzione in stile RGB

Un altro modo per ottenere la massima scalabilità è creare una soluzione in stile RGB, utilizzando la cella CKB come sigillo una tantum e rendendo il protocollo Nostr un livello di implementazione simile al protocollo RGB. Questa soluzione semplifica il flusso di lavoro scegliendo di implementare solo lo standard token ed escludendo le idee generali dello smart contract dal protocollo RGB originale.

Domande frequenti

Perchè scegliere Nostr?

Nostr è un livello ideale per applicazioni su larga scala basate sulla crittografia. È un protocollo di distribuzione delle informazioni estremamente semplice, diretto, pratico, imparziale e facile da integrare. Molti progetti web3 possono utilizzare cose come Arweave e IPFS, che contengono valori e filosofie completamente diverse. Puoi pensare a Nostr come a un protocollo super flessibile, senza l’ossessione per una rete P2P completamente decentralizzata, né l’eccessivo impegno per l’economia dei token e i meccanismi di incentivazione che esistono da tempo nel mondo web3, il che rende Nostr più pratico e non giudicante.

Perché non utilizzare semplicemente le risorse blockchain?

Consentire agli utenti di emettere i propri asset nativi nella rete Nostr in base agli eventi, anziché utilizzare direttamente i token blockchain esistenti nella rete Nostr, si basa principalmente sul semplice fatto che se non viene creato alcun valore, i token non hanno alcun valore. Per i prodotti di livello consumer, la maggior parte delle risorse blockchain crea semplicemente attrito nel flusso di lavoro del prodotto anziché aggiungere valore al prodotto. Piuttosto che forzare un meccanismo di token in un prodotto, è meglio guardare dal punto di vista dell’utente e vedere di cosa ha bisogno e come la blockchain può aiutare. Riteniamo che le risorse native basate su eventi si adattino a questa metodologia. Gli sviluppatori di applicazioni e gli utenti possono vedere cosa possono fare con le risorse dalla propria prospettiva, invece di costringerli ad accettare le risorse e le regole blockchain esistenti. Inoltre, è più probabile che le risorse basate su eventi funzionino perfettamente con il protocollo Nostr, apportando nuovi modi di giocare ai prodotti e agli strumenti esistenti dell’ecosistema Nostr.

Perchè scegliere CKB?

L'implementazione di protocolli vincolanti utilizzando CKB è molto più semplice grazie alla sua programmabilità. Bitcoin è ancora più difficile. Inoltre, dato il modo unico in cui CKB è legato a BTC, sarebbe più semplice legarsi prima a CKB e poi a BTC.

Conclusione

Nel complesso, Nostr, in quanto protocollo di distribuzione delle informazioni semplice e pratico, è molto adatto per l'adozione su larga scala di applicazioni consumer. La programmabilità e la relazione vincolante di CKB con Bitcoin lo rendono la scelta ideale per implementare il protocollo vincolante Nostr. Allo stesso tempo, emettendo risorse native basate su Nostr Event, è possibile progettare nuovi meccanismi di prodotto basati sulle applicazioni, consentendo a Nostr di competere con altre applicazioni Internet tradizionali e trovare il proprio PMF unico.