Retric, membro da comunidade CKB, propôs protocolo Nostr Binding

O artigo original foi publicado no Github https://github.com/RetricSu/nostr-binding/blob/main/docs/lightpaper-zh.md

Neste artigo, propomos um protocolo que liga as estruturas de dados básicas do protocolo Nostr ao blockchain CKB. Através desta ligação, permitimos que os dados nativos do Nostr herdem as características do UTXO/Cell na blockchain CKB, trazendo novas possibilidades ao protocolo Nostr baseado em mecanismos on-chain. Um caso de uso potencial é a emissão de ativos nativos no Nostr. O protocolo de ligação Nostr também traz um novo paradigma de desenvolvimento para dApps. Em vez de dividir seu dApp em dois sistemas (um é um servidor off-chain e o outro é um contrato inteligente on-chain), construímos dApps usando um sistema consistente com diferentes níveis de dados. Isto é fundamentalmente diferente do modelo do Ethereum.

Estrutura de três camadas do Web5:

Sobre Nostr

Nostr é um protocolo de distribuição de mensagens simples e aberto que usa um modelo de cliente de retransmissão para distribuir mensagens padrão em redes globais. O modelo relé-cliente é semelhante à rede P2P no blockchain, mas mais barato, mais flexível, mais prático (e mais centralizado) e mais adequado para adoção em massa de aplicações de consumo. As mensagens padrão são a principal inovação da Nostr. Nostr define um formato de mensagem padrão baseado em JSON (este formato de mensagem também é a estrutura de dados básica do protocolo) para descrever vários dados. Chama-se "Evento".

Estrutura do evento:

Um Evento é um dado que contém conteúdo arbitrário e é assinado pelo usuário para que possa ser verificado no lado do cliente sem confiar em nenhum servidor de retransmissão. Todas as mensagens que você publica no protocolo Nostr são eventos de diferentes tipos e requisitos. Você pode aprender mais sobre o Nostr nos NIPs.

Sobre CKB

CKB é a rede de segunda camada do Bitcoin com um design semelhante ao UTXO e ao estilo POW. A estrutura de dados básica do CKB é chamada Cell. Cell é um UTXO de uso geral com forte programabilidade.

Estrutura celular:

Estrutura do roteiro:

Você pode aprender mais sobre o CKB em docs.nervos.org.

vinculativo

A chamada ligação visa criar um relacionamento de mapeamento um para um entre o Nostr Event e o CKB Cell. Os eventos são usados ​​para definir os detalhes de seus ativos, e as células mapeadas para esse evento são usadas para fornecer proteção de propriedade e outros recursos específicos do blockchain. Para criar esse mapeamento um-para-um, você precisa ter um ponto de evento Nostr para uma célula CKB e vice-versa. Devido à simplicidade dos protocolos Nostr e CKB, criar esta ligação é muito fácil.

Tudo que precisamos é de dois scripts

Introduzimos dois scripts CKB no protocolo de ligação Nostr. O primeiro é o Script de ligação Nostr, que é um Type Script que define métodos para vincular eventos do protocolo Nostr ao CKB. É um script muito simples, mas cobre a lógica central da ligação. O segundo é o Nostr lock Script, um Lock Script que usa Nostr Event como assinatura de desbloqueio. Ele é usado para simplificar a experiência do usuário e o processo de construção de Nostr dApps baseados em CKB.

Script de ligação Nostr

Nostr binding Script é um Type Script usado para definir regras para vincular certos eventos especiais do protocolo Nostr à cadeia. O script de ligação Nostr garante que a célula que usa este script como Type Script seja a única célula ativa que existe no blockchain CKB e está vinculada a um evento Nostr específico.

script de ligação:

  • TYPE_ID é usado para garantir que apenas uma célula ativa no blockchain tenha esse tipo de hash

  • NOSTR_EVENT_ID é usado para garantir que a célula aponte apenas para um evento Nostr exclusivo

A célula que usa o script de ligação Nostr como tipo Script é a célula de ligação do evento Nostr.

Estrutura do evento vinculada por Nostr:

  • A tag cell_type_id no evento Nostr asset garante que o evento aponte apenas para uma célula CKB exclusiva

Evento Nostr Asset Apresenta um ativo criado pelo usuário. Nostr Asset Metadata Event Metadados usados ​​para descrever a mesma coleção de ativos.

Estrutura do evento de metadados de ativos Nostr:

Script Nostr Lock

Nostr lock Script é um Lock Script que usa Nostr Event como prova de desbloqueio. Ele é usado para simplificar a experiência do usuário e o processo de construção de Nostr dApps baseados em CKB.

Estrutura do script Nostr lock:

  • args é definido como a chave pública da conta Nostr. Você também pode adicionar um valor de POW nos últimos 4 bytes, o que significa que uma certa dificuldade de POW deve ser alcançada para desbloquear o Evento.

  • Quando args tem 32 bytes, todos 0, significa que ninguém pode desbloquear o bloqueio.

  • Quando os primeiros 32 bytes são todos 0 e os últimos 4 bytes são diferentes de zero, significa que o bloqueio pode ser desbloqueado por qualquer conta Nostr, desde que o evento de desbloqueio atenda a um certo valor de dificuldade POW (isso pode ser usado para justiça). emissão)

Nostr desbloqueia a estrutura do evento:

Para desbloquear uma célula CKB usando o script Nostr lock, um evento Nostr unlock deve ser fornecido no campo testemunha da transação. Os usuários podem gerar vários eventos de desbloqueio, mas como o evento registrará a transação CKB correspondente na tag quando carregado na cadeia, os eventos restantes se tornarão automaticamente inválidos, portanto não há risco de repetição.

O script Nostr lock também pode suportar assinaturas múltiplas. Seus argumentos de script de bloqueio podem ser um ID de evento Nostr. O campo Tag deste Evento registra todas as chaves públicas do proprietário M P. O desbloqueio requer pelo menos N (N<=M) contas Nostr para fornecer o evento de desbloqueio Nostr como prova.

Com a ajuda do Nostr lock Script, os usuários podem usar o cliente ecológico Nostr e o plug-in do navegador para assinar e gerar diretamente eventos desbloqueados como provas de assinatura para desbloquear transações CKB, para que os desenvolvedores dessas ferramentas ecológicas Nostr fora da cadeia possam saber tão pouco quanto possível E introduzir CKB e código relacionado ao blockchain. Ao mesmo tempo, os usuários podem quase “não se importar” com o blockchain. A parte do projeto ou outros voluntários podem executar uma retransmissão especial para monitorar se há novos eventos de desbloqueio na rede Nostr e, em caso afirmativo, ajudar a analisar as transações e enviá-las à cadeia CKB para desbloqueio. As taxas de transação podem ser pagas através de Células que reservam parte de seu saldo como taxas de manuseio.

Emitir ativos

ligação direta

Usuário: Requer conta Nostr e CKB

  1. Indexe a célula CKB e calcule o TYPE_ID da célula

  2. Gere evento de ativo Nostr com assinatura Nostr usando TYPE_ID

  3. Use o evento Nostr asset para gerar transação de ligação CKB e enviá-la para a cadeia

por RGB++

Usuário: Requer conta Nostr, carteira Bitcoin e Satoshi

  1. Indexe UTXO, gere mapeamento de célula por meio de RGB++ e calcule o TYPE_ID da célula

  2. Gere evento de ativo Nostr com assinatura Nostr usando TYPE_ID

  3. Use o evento Nostr asset para gerar transação de ligação CKB e enviá-la para a cadeia

transferir

Ao bloquear com Nostr

Usuário: conta Nostr necessária

  • Indexe a célula que você deseja desbloquear usando o script Nostr lock no CKB

  • Construa uma transação CKB e substitua esta célula por outro script de bloqueio

  • Usando os resultados da etapa 2, gere um evento de desbloqueio do Nostr por meio da extensão do cliente/navegador Nostr

  • Envie o evento de desbloqueio do Nostr para um grupo de retransmissão especial e envie-o para a cadeia

Ao usar outros bloqueios

Usuário: Precisa ter uma carteira correspondente a outros bloqueios, não são necessárias operações relacionadas ao Nostr

Basta seguir o processo normal em CKB/RGB++ para desbloquear a transferência.

Problemas de escalabilidade

A principal vantagem do protocolo de ligação Nostr é que ele é muito simples e direto. A simplicidade também torna mais fácil para os desenvolvedores de clientes criarem produtos com base nela. Por outro lado, a desvantagem do protocolo de ligação Nostr é a questão da escalabilidade. Sob esse design simples, o rendimento do token Nostr está vinculado ao blockchain CKB, de modo que o blockchain CKB se tornará o gargalo. Considerando que o Nostr foi concebido como uma rede social mais flexível destinada à adoção em massa, este rendimento pode tornar-se um problema no futuro, quando um grande número de utilizadores interagir com estes ativos nativos.

No entanto, vemos algumas opções para resolver este problema:

  1. Integrado com rede CKB Lightning

Como os ativos nativos Nostr criados pelo protocolo de ligação Nostr podem ser tratados como ativos CKB comuns, podemos usá-los para estender o protocolo de ligação Nostr assim que a CKB Lightning Network for lançada. O protocolo de ligação Nostr em si não requer nenhuma alteração, é um recurso gratuito. Mas a desvantagem é que você precisa aguardar o lançamento da CKB Lightning Network.

  1. Implemente um canal de pagamento simples, mas útil

Outra opção antes do lançamento da CKB Lightning Network é implementar alguns canais de pagamento muito simples, mas úteis, como os canais Spillman. O canal Spillman é um canal de pagamento unilateral mais simples de implementar. Há um pagador e um beneficiário no canal. Este tipo de canal de pagamento pode não ser muito útil para uma blockchain, mas no caso do protocolo de ligação Nostr, ele se encaixa perfeitamente em um modelo de assinatura entre criadores de conteúdo e seus seguidores.

  1. Ligação N para 1 em vez de ligação 1 para 1

Em vez de criar uma ligação de 1 para 1, podemos criar uma ligação de N para 1 entre o Evento Nostr e a Célula CKB. Em outras palavras, agrupamos vários eventos em uma célula para escalabilidade. Isso tornará o custo de armazenamento de mapeamento on-chain muito menor do que o Nostr Event off-chain. No entanto, o problema com a ligação N para 1 é que ela requer o design de um novo padrão para controlar e dividir a propriedade de eventos agrupados. Isto será mais complexo e exigirá trabalho adicional de concepção e implementação.

  1. Solução de estilo RGB

Outra maneira de alcançar a escalabilidade máxima é criar uma solução estilo RGB, usando a célula CKB como um selo único e tornando o protocolo Nostr uma camada de implementação semelhante ao protocolo RGB. Esta solução simplifica o fluxo de trabalho ao optar por implementar apenas o padrão de token e excluir as ideias gerais de contrato inteligente do protocolo RGB original.

perguntas frequentes

Por que escolher a Nostr?

Nostr é uma camada ideal para aplicações em grande escala baseadas em criptografia. É um protocolo de distribuição de informações super simples, direto, prático, imparcial e fácil de integrar. Muitos projetos web3 podem usar coisas como Arweave e IPFS, que possuem valores e filosofias completamente diferentes. Você pode pensar no Nostr como um protocolo super flexível, sem a obsessão por uma rede P2P totalmente descentralizada, nem o comprometimento excessivo com a economia simbólica e mecanismos de incentivo que existem há muito tempo no mundo web3, o que torna o Nostr mais prático e imparcial.

Por que não usar apenas ativos blockchain?

Permitir que os usuários emitam seus próprios ativos nativos na rede Nostr com base em eventos, em vez de usar diretamente tokens blockchain existentes na rede Nostr, baseia-se principalmente no simples fato de que, se nenhum valor for criado, os tokens não terão valor. Para produtos de consumo, a maioria dos ativos blockchain simplesmente cria atrito no fluxo de trabalho do produto, em vez de agregar valor ao produto. Em vez de forçar um mecanismo de token em um produto, é melhor olhar a perspectiva do usuário e ver o que ele precisa e como o blockchain pode ajudar. Acreditamos que os ativos nativos baseados em eventos se enquadram nesta metodologia. Os desenvolvedores e usuários de aplicativos podem ver o que podem fazer com os ativos de sua própria perspectiva, em vez de forçá-los a aceitar os ativos e regras existentes do blockchain. Além disso, é mais provável que os ativos baseados em eventos funcionem perfeitamente com o protocolo Nostr, trazendo novas formas de jogar aos produtos e ferramentas existentes do ecossistema Nostr.

Por que escolher a CKB?

A implementação de protocolos de ligação usando CKB é muito mais fácil devido à sua programabilidade. Bitcoin é ainda mais difícil. Além disso, dada a forma única como o CKB está vinculado ao BTC, seria mais fácil vincular-se primeiro ao CKB e depois ao BTC.

Conclusão

No geral, o Nostr, como um protocolo de distribuição de informações simples e prático, é muito adequado para adoção em larga escala de aplicações de consumo. A programabilidade e a relação de ligação do CKB com o Bitcoin tornam-no uma escolha ideal para implementar o protocolo de ligação Nostr. Ao mesmo tempo, ao emitir ativos nativos baseados no Nostr Event, novos mecanismos de produtos podem ser projetados com base em aplicativos, permitindo que o Nostr concorra com outros aplicativos tradicionais da Internet e encontre seu próprio PMF exclusivo.