Retric, miembro de la comunidad CKB, propuso el protocolo vinculante Nostr

El artículo original fue publicado en Github https://github.com/RetricSu/nostr-binding/blob/main/docs/lightpaper-zh.md

En este artículo, proponemos un protocolo que vincula las estructuras de datos básicas del protocolo Nostr a la cadena de bloques CKB. A través de este enlace, permitimos que los datos nativos de Nostr hereden las características de UTXO/Cell en la cadena de bloques CKB, brindando nuevas posibilidades al protocolo Nostr basado en mecanismos en cadena. Un posible caso de uso es la emisión de activos nativos en Nostr. El protocolo vinculante Nostr también aporta un nuevo paradigma de desarrollo a las dApps. En lugar de dividir su dApp en dos sistemas (uno es un servidor fuera de la cadena y el otro es un contrato inteligente dentro de la cadena), creamos dApps utilizando un sistema consistente con diferentes niveles de datos. Esto es fundamentalmente diferente del modelo de Ethereum.

La estructura de tres niveles de Web5:

Acerca de Nostr

Nostr es un protocolo de distribución de mensajes simple y abierto que utiliza un modelo de cliente de retransmisión para distribuir mensajes estándar a través de redes globales. El modelo de retransmisión-cliente es similar a la red P2P en blockchain, pero más barato, más flexible, más práctico (y más centralizado) y más adecuado para la adopción masiva de aplicaciones de consumo. Los mensajes estándar son la principal innovación de Nostr. Nostr define un formato de mensaje estándar basado en JSON (este formato de mensaje es también la estructura de datos básica del protocolo) para describir varios datos. Se llama "Evento".

Estructura del evento:

Un evento es un dato que contiene contenido arbitrario y está firmado por el usuario para que pueda verificarse en el lado del cliente sin confiar en ningún servidor de retransmisión. Todos los mensajes que publicas en el protocolo Nostr son Eventos de diferentes tipos y requisitos. Puede obtener más información sobre Nostr en los NIP.

Acerca de CKB

CKB es la red de segunda capa de Bitcoin con un diseño similar a UTXO y POW. La estructura de datos básica de CKB se llama Cell. Cell es un UTXO de uso general con una gran programabilidad.

Estructura celular:

Estructura del guión:

Puede obtener más información sobre CKB en docs.nervos.org.

vinculante

La llamada unión consiste en crear una relación de mapeo uno a uno entre Nostr Event y CKB Cell. Los eventos se utilizan para definir los detalles de sus activos, y las celdas que se asignan a este evento se utilizan para brindar protección de propiedad y otras capacidades específicas de blockchain. Para crear este mapeo uno a uno, necesita que un evento Nostr apunte a una celda CKB y viceversa. Debido a la simplicidad de los protocolos Nostr y CKB, crear este enlace es muy sencillo.

Todo lo que necesitamos son dos scripts.

Introdujimos dos scripts CKB en el protocolo de enlace Nostr. El primero es el script de enlace Nostr, que es un script de tipo que define métodos para vincular eventos del protocolo Nostr a CKB. Es un script muy simple pero cubre la lógica central del enlace. El segundo es el script de bloqueo Nostr, un script de bloqueo que utiliza el evento Nostr como firma de desbloqueo. Se utiliza para simplificar la experiencia del usuario y el proceso de creación de Nostr dApps basadas en CKB.

Script de enlace de Nostr

El script de enlace Nostr es un script de tipo que se utiliza para definir reglas para vincular ciertos eventos especiales del protocolo Nostr a la cadena. El script de enlace de Nostr garantiza que la celda que utiliza este script como script de tipo sea la única celda activa que existe en la cadena de bloques CKB y está vinculada a un evento Nostr específico.

Guión vinculante:

  • TYPE_ID se utiliza para garantizar que solo una celda activa en la cadena de bloques tenga este tipo de hash.

  • NOSTR_EVENT_ID se utiliza para garantizar que la celda solo apunte a un evento Nostr único

La celda que utiliza el script de enlace Nostr como script de tipo es la celda de enlace del evento Nostr.

Estructura del evento vinculada por Nostr:

  • La etiqueta cell_type_id en el evento del activo Nostr garantiza que el evento solo apunte a una celda CKB única.

Nostr Asset Event Presenta un activo acuñado por el usuario. Nostr Asset Metadata Evento Metadatos utilizados para describir la misma colección de activos.

Metadatos de activos de Nostr Estructura del evento:

Guión de bloqueo Nostr

Nostr lock Script es un script de bloqueo que utiliza Nostr Event como prueba de desbloqueo. Se utiliza para simplificar la experiencia del usuario y el proceso de creación de Nostr dApps basadas en CKB.

Estructura del script de bloqueo de Nostr:

  • args se establece en la clave pública de la cuenta Nostr. También puedes agregar un valor de POW en los últimos 4 bytes, lo que significa que se debe cumplir una cierta dificultad de POW para desbloquear el Evento.

  • Cuando args tiene 32 bytes y 0, significa que nadie puede desbloquear el bloqueo.

  • Cuando los primeros 32 bytes son todos 0 y los últimos 4 bytes no son cero, significa que el bloqueo puede ser desbloqueado por cualquier cuenta Nostr, siempre y cuando el evento de desbloqueo cumpla con un cierto valor de dificultad POW (esto puede usarse para fines justos). emisión)

Nostr desbloquea la estructura del evento:

Para desbloquear una celda CKB usando el script de bloqueo Nostr, se debe proporcionar un evento de desbloqueo Nostr en el campo testigo de la transacción. Los usuarios pueden generar múltiples eventos de desbloqueo, pero dado que el evento registrará la transacción CKB correspondiente en la etiqueta cuando se cargue en la cadena, los eventos restantes dejarán de ser válidos automáticamente, por lo que no hay riesgo de repetición.

Nostr lock Script también admite firmas múltiples. Sus argumentos de script de bloqueo pueden ser un ID de evento Nostr. El campo Etiqueta de este evento registra todas las claves públicas MP del propietario. El desbloqueo requiere al menos N (N<=M) cuentas Nostr para proporcionar el Evento de desbloqueo de Nostr como prueba.

Con la ayuda de Nostr lock Script, los usuarios pueden usar el cliente ecológico Nostr y el complemento del navegador para firmar y generar eventos desbloqueados directamente como pruebas de firma para desbloquear transacciones CKB, de modo que los desarrolladores de estas herramientas ecológicas fuera de la cadena de Nostr puedan saber tan poco como posible E introducir CKB y código relacionado con blockchain. Al mismo tiempo, a los usuarios casi no les importa la cadena de bloques. El grupo del proyecto u otros voluntarios pueden ejecutar un relevo especial para monitorear si hay nuevos eventos de desbloqueo en la red Nostr y, de ser así, ayudar a analizar las transacciones y enviarlas a la cadena CKB para su desbloqueo. Las tarifas de transacción se pueden pagar a través de Celdas que reservan parte de su saldo como tarifas de manejo.

Activos de emisión

encuadernación directa

Usuario: Requiere cuenta Nostr y CKB

  1. Indexe la celda CKB y calcule el TYPE_ID de la celda

  2. Genere el evento de activo Nostr con la firma Nostr usando TYPE_ID

  3. Utilice el evento Nostr Asset para generar una transacción vinculante CKB y enviarla a la cadena.

por RGB++

Usuario: Requiere cuenta Nostr, billetera Bitcoin y Satoshi

  1. Indexe UTXO, genere el mapeo de celda a través de RGB ++ y calcule el TYPE_ID de la celda

  2. Genere el evento de activo Nostr con la firma Nostr usando TYPE_ID

  3. Utilice el evento Nostr Asset para generar una transacción vinculante CKB y enviarla a la cadena.

transferir

Al bloquear con Nostr

Usuario: Se requiere cuenta Nostr

  • Indexe la celda que desea desbloquear usando el script Nostr lock en CKB

  • Construya una transacción CKB y reemplace esta celda con otro script de bloqueo

  • Utilizando los resultados del paso 2, genere un evento de desbloqueo de Nostr a través de la extensión del cliente/navegador de Nostr.

  • Envía el evento de desbloqueo de Nostr a un grupo de retransmisión especial y envíalo a la cadena.

Al usar otras cerraduras

Usuario: debe tener una billetera correspondiente a otras cerraduras, no se requieren operaciones relacionadas con Nostr

Simplemente siga el proceso normal en CKB/RGB++ para desbloquear la transferencia.

Problemas de escalabilidad

La principal ventaja del protocolo de enlace Nostr es que es muy simple y directo. La simplicidad también facilita que los desarrolladores de clientes creen productos sobre él. Por otro lado, la desventaja del protocolo de enlace Nostr es la cuestión de la escalabilidad. Bajo este diseño simple, el rendimiento del token Nostr está vinculado a la cadena de bloques CKB, por lo que la cadena de bloques CKB se convertirá en el cuello de botella. Teniendo en cuenta que Nostr está diseñado como una red social más flexible destinada a una adopción masiva, este rendimiento puede convertirse en un problema en el futuro cuando una gran cantidad de usuarios interactúen con estos activos nativos.

Sin embargo, vemos algunas opciones para solucionar este problema:

  1. Integrado con CKB Lightning Network

Dado que los activos nativos de Nostr creados por el protocolo de enlace de Nostr pueden tratarse como activos de CKB ordinarios, podemos usarlos para ampliar el protocolo de enlace de Nostr una vez que se lance CKB Lightning Network. El protocolo de enlace Nostr en sí no requiere ningún cambio, es una función gratuita. Pero la desventaja es que hay que esperar hasta el lanzamiento de CKB Lightning Network.

  1. Implementar un canal de pago simple pero útil

Otra opción antes del lanzamiento de CKB Lightning Network es implementar algunos canales de pago muy simples pero útiles, como los canales derrame. El canal derrame es un canal de pago unidireccional que es más sencillo de implementar. Hay un pagador y un beneficiario en el canal. Este tipo de canal de pago puede no ser muy útil para una cadena de bloques, pero en el caso del protocolo vinculante Nostr, encaja perfectamente en un modelo de suscripción entre los creadores de contenido y sus seguidores.

  1. Enlace N a 1 en lugar de enlace 1 a 1

En lugar de crear un enlace 1 a 1, podemos crear un enlace N a 1 entre el evento Nostr y la celda CKB. En otras palabras, agrupamos múltiples eventos en una celda para lograr escalabilidad. Esto hará que el costo de almacenamiento de mapeo dentro de la cadena sea mucho menor que el de Nostr Event fuera de la cadena. Sin embargo, el problema con la vinculación N a 1 es que requiere diseñar un nuevo patrón para controlar y dividir la propiedad de los eventos empaquetados. Esto será más complejo y requerirá trabajo adicional de diseño e implementación.

  1. Solución de estilo RGB

Otra forma de lograr la máxima escalabilidad es crear una solución de estilo RGB, utilizando CKB Cell como sello único y haciendo del protocolo Nostr una capa de implementación similar al protocolo RGB. Esta solución simplifica el flujo de trabajo al optar por implementar solo el estándar de token y excluir las ideas generales de contratos inteligentes del protocolo RGB original.

Preguntas frecuentes

¿Por qué elegir Nostr?

Nostr es una capa ideal para aplicaciones a gran escala basadas en criptografía. Es un protocolo de distribución de información súper simple, directo, práctico, imparcial y fácil de integrar. Muchos proyectos web3 pueden utilizar cosas como Arweave e IPFS, que tienen valores y filosofías completamente diferentes. Se puede pensar en Nostr como un protocolo súper flexible, sin la obsesión por una red P2P totalmente descentralizada, ni el compromiso excesivo con la economía de tokens y los mecanismos de incentivos que han existido durante mucho tiempo en el mundo web3, lo que hace que Nostr sea más práctico y sin prejuicios.

¿Por qué no utilizar simplemente los activos de blockchain?

Permitir a los usuarios emitir sus propios activos nativos en la red Nostr basándose en Eventos, en lugar de utilizar directamente los tokens blockchain existentes en la red Nostr, se basa principalmente en el simple hecho de que si no se crea ningún valor, los tokens no tienen valor. Para los productos de consumo, la mayoría de los activos de blockchain simplemente crean fricción en el flujo de trabajo del producto en lugar de agregar valor al producto. En lugar de imponer un mecanismo de token en un producto, es mejor observar la perspectiva del usuario y ver qué necesita y cómo blockchain puede ayudar. Creemos que los activos nativos basados ​​en eventos se ajustan a esta metodología. Los desarrolladores y usuarios de aplicaciones pueden ver lo que pueden hacer con los activos desde su propia perspectiva, en lugar de obligarlos a aceptar los activos y reglas existentes de blockchain. Además, es más probable que los activos basados ​​en eventos funcionen a la perfección con el protocolo Nostr, aportando nuevas formas de jugar a los productos y herramientas existentes del ecosistema Nostr.

¿Por qué elegir CKB?

Implementar protocolos vinculantes usando CKB es mucho más fácil debido a su programabilidad. Bitcoin es aún más difícil. Además, dada la forma única en que CKB está vinculado a BTC, sería más fácil vincularse primero a CKB y luego a BTC.

Conclusión

En general, Nostr, como protocolo de distribución de información simple y práctico, es muy adecuado para la adopción a gran escala de aplicaciones de consumo. La programabilidad de CKB y su relación vinculante con Bitcoin lo convierten en una opción ideal para implementar el protocolo vinculante Nostr. Al mismo tiempo, al emitir activos nativos basados ​​en Nostr Event, se pueden diseñar nuevos mecanismos de productos basados ​​en aplicaciones, lo que permite a Nostr competir con otras aplicaciones tradicionales de Internet y encontrar su propio PMF único.