Autor: Laboratórios 3P

1. Introdução

Como o blockchain mais antigo e seguro, o modelo de conta UTxO usado pelo Bitcoin dificulta o suporte a funções de contratos inteligentes como Ethereum e só pode suportar algumas funções limitadas baseadas em linguagem de script. Portanto, nos 15 anos desde o nascimento do Bitcoin, ele não foi usado para implementar vários protocolos DeFi e NFTs deslumbrantes como o Ethereum, que geralmente são usados ​​para transferências peer-to-peer e armazenamento de valor.

O protocolo Ordinals, lançado oficialmente em 14 de dezembro de 2022, mudou tudo. Ele coloca os metadados que os usuários precisam armazenar na cadeia na entrada da transação e implementa um conjunto de programas baseados na teoria ordinal [^1] para rastrear. e registre essas "Inscrições". O que essa “gravação” consegue é registrar metadados estáticos, em vez de programas on-chain executáveis ​​dinamicamente, como os contratos inteligentes Ethereum. Isso também faz com que a “inscrição” se torne naturalmente um NFT no Bitcoin. Com base na teoria ordinal, as pessoas também podem construir transações para realizar a transferência e transação entre essas inscrições.

Posteriormente, em 6 de março de 2023, foi proposto o protocolo BRC-20 baseado em Ordinais, que foi utilizado para implementar tokens fungíveis no Bitcoin, correspondente ao protocolo ERC-20 no Ethereum. O protocolo baseado em ordinais é muito simples. O processo de cunhagem e transferência do token está escrito na inscrição no formato Json. A metáfora mais vívida é um pedaço de papel com registros de transferência escritos nele, e a contabilidade fica para o terceiro. partido. As agências tripartidas farão isso.

Tal protocolo BRC-20 tem uma estética violenta e também é um compromisso sob vários fatores. Tokens homogêneos, como moedas coloridas, já apareceram no Bitcoin antes. Isso não pode provar que o BRC-20 seja uma aplicação fracassada, mas também parece indicar que pode não ser um acordo de longo prazo. Neste ponto, entramos no tópico deste artigo, Taproot Assets baseados na Lightning Network.

2. Rede relâmpago

Lightning Network é uma solução de Camada 2 construída em Bitcoin. Seu objetivo é ajudar os usuários a economizar custos e melhorar a eficiência em cenários de pagamento Bitcoin. A ideia em que se baseia a Lightning Network também é muito simples, ou seja, construir um pool de fundos. Esse pool de fundos também é chamado de canal de micropagamento para ambas as partes da transação. Mais especificamente, envolve dois conceitos principais:

* Contrato revogável de maturidade de sequência (RSMC): foto de grupo revogável quando a sequência expirar * Contrato Hashed Timelock (HTLC): contrato hash time lock

O RSMC assume que existe um canal de micropagamento entre as duas partes. Ambas as partes depositam primeiro uma parte dos fundos neste canal. No caso inicial, o plano de alocação entre as duas partes é o valor pré-depositado. Cada vez que ocorre uma transação, ambas as partes precisam confirmar os resultados de distribuição gerados após a transação e, ao mesmo tempo, invalidar o plano de distribuição original. Este processo envolve muitos conceitos e é bastante inteligente. Para obter detalhes, consulte [A Dive into Lightning Network (Part One)][^14], e seu papel na Lightning Network é construir o corredor de pagamento entre as duas partes. .

HTLC é um bloqueio de hash com eventos, que exige que uma determinada parte envie a imagem original $m$ de um determinado valor de hash $h=H(m)$ dentro de um determinado período de tempo para obter o direito de usar um determinado UTxO. Ele é usado para construir roteamento de pagamento na Lightning Network. Para o processo de implementação específico, consulte [Rede Lightning em detalhes, parte 2: HTLC e roteamento de pagamento] [^15].

A Lightning Network integra esses dois mecanismos, permitindo que as transações sejam concluídas fora da cadeia entre quaisquer dois nós da Lightning Network.

3. Atualização de raiz principal

Taproot é uma compilação de três propostas de melhoria de Bitcoin (BIPs) [BIP-0340 (assinatura Schnorr)], [BIP-0341 (Taproot)] e [BIP-0342 (TapScript)], e também é o que os ativos Taro podem A base para implementação. Aqui é explicado o MAST envolvido na implementação dos ativos do Taro:

MASTRO

Merklized Abstract Syntax Tree (MAST) [^7][^8][^9] foi introduzida no BIP-0341, cujo objetivo é ocultar as condições de gasto do UTxO e reduzir o tamanho das informações. Isso faz parte da atualização Taproot. A atualização Taproot combina o P2SH (Pay-to-Script-Hash) e o P2PKH (Pay-to-Public-Key-Hash) originais, para que uma soma possa ser gerada diretamente por meio da chave privada. . Para usar, você também pode fornecer scripts e provas Merkle para resultados de gastos.

MAST combina árvores semânticas abstratas e árvores Merkle são uma estrutura de dados comum em blockchains e não serão descritas em detalhes aqui. A árvore de sintaxe abstrata (AST) é um método de dividir um programa em pequenos pedaços independentes para descrever o programa. Isso tornará o programa mais fácil de analisar e otimizar. Para obter detalhes, consulte [Árvore de sintaxe abstrata](https://. em wikipedia.org/wiki/Abstract_syntax_tree). O MAST combina a ideia do AST de dividir o programa em vários pequenos blocos, depois faz o hash de cada pequeno bloco do programa e usa a ideia da árvore hash Merkle para construir esses resultados hash em uma árvore Merkle.

Considere esse script[^9]: Alice deseja poder gastar seu Bitcoin a qualquer momento, mas se ela não gastar por três meses consecutivos, seus irmãos Bob e Charlie poderão gastar o UTxO. segue

OP_IF    OP_CheckSig OP_ELSE     "3 meses" OP_CSV OP_DROP     2 2 OP_CHECKMULTISIG OP_ENDIF

No P2SH, tal script precisa ser totalmente exposto na transação ao gastá-lo. Alice precisa fornecer o script e as chaves públicas de Bob e Charlie contidas nele ao gastar o UTxO.

Depois de ter o MAST, divida as duas condições do script para obter um MAST simples

Neste ponto, Alice só precisa optar por fornecer seu script de verificação de chave pública e Hash2 como prova Merkel ao gastar, sem expor o script específico no Hash 2. Esta parte da informação não será carregada na cadeia. Isto também reduz ainda mais a sobrecarga de transações semelhantes. É natural que fornecer um script completo sempre exija menos dados do que fornecer um hash do script. Esta estrutura também oferece a possibilidade de implementação de contratos inteligentes. Desta forma, assim como o bytecode no EVM, a função a ser chamada pode ser selecionada com base nos primeiros 4 bytes dos dados de entrada antes de ser executada. A diferença é que tal chamada de script exige que o usuário forneça um script específico e um certificado Merkel para provar que o script é legítimo.

4. Principais ativos raiz

Taproot Assets (Taproot Assets, posteriormente referido como Taro) [^2][^3][^5] é um protocolo que ainda está em fase de proposta. Ele pode realizar a emissão de ativos em Bitcoin. através da cadeia. As transações são transferidas através da rede Bitcoin (as transações e transferências de NFTs foram implementadas por Ordinals). Em particular, ativos homogêneos de Taro podem ser transferidos na Lightning Network com taxas mais baixas e mais privacidade após serem depositados no Lightning Channel. Da mesma forma, existe o protocolo RGB que tenta executar contratos inteligentes na Lightning Network [^ 4].

O Taro pode circular na rede principal do Bitcoin ou na Lightning Network de segunda camada. Primeiro, considere a situação na rede Bitcoin. Taro é um **formulário de metadados de hash** anexado à transação. O objetivo do uso de hash é reduzir o espaço ocupado pela transação e economizar taxas de manuseio. Este **formulário de metadados de hash** é o núcleo do Taro. Esse valor de hash pode até representar milhões de transações reais. Seu princípio será apresentado mais tarde.

A segunda é a situação do Taro na Lightning Network. O uso da Lightning Network permite que ativos homogeneizados do Taro alcancem velocidades de transação mais rápidas, o que é semelhante ao uso da Lightning Network para transferir Bitcoin com mais rapidez e menor custo. Na proposta do Taro, a própria Lightning Network não precisa ser alterada. Para implementar uma transação de um determinado ativo do Taro, apenas o primeiro canal e o último canal de todo o caminho de pagamento precisam ser capazes de identificar o ativo do Taro. e os canais de rota intermediária são métodos normais de transferência da Lightning Network. Eles transferem Bitcoins equivalentes, o que também resulta na troca de ativos Taro com outros ativos na borda da rede.

Protocolo Taro

Agora que entendemos os benefícios que o Taro pode trazer, a próxima coisa que precisa ser introduzida é: o que é? E como conseguir isso? Assim como você precisa entender que o BRC-20 é uma pilha de papel que exige que uma agência terceirizada registre os registros de transferência, o ERC-20 é uma série de informações de saldo registradas e mantidas por contratos inteligentes. Como a Taro realiza a emissão e transferência de ativos?

Árvore de ativos

A árvore de ativos é uma estrutura de árvore Merkle de dois níveis no Taro, que é usada para representar os ativos do Taro. O primeiro nível é uma árvore Merkel composta por informações do Taro como nós folha, enquanto o segundo nível é uma árvore composta por MS-SMT que representa os ativos pertencentes a cada conta. A ideia do MS-SMT é relativamente simples. A árvore hash Merkle forma uma estrutura de árvore baseada em hash, cada nó também armazena a soma dos subnós esquerdo e direito (a operação hash em si também é um tipo de soma. Árvores e árvores MS-SMT são usadas para tal ativo). construir o UTxO de Taro.

Asset Leaf (Aseet Leaft) é a estrutura de nível mais baixo na árvore de ativos. Ele aparece como um nó azul claro no diagrama da árvore de ativos. Ele usa assetScriptKey (assetScriptKey pode ser comparado ao valor hash do script de transação em transações P2SH). como a chave. Cada folha de ativo representa um UTxO de um ativo Taro. As opções contidas na folha de ativo podem ser encontradas em [Compreendendo o Protocolo de Ativos Taproot].

MS-SMT

Merkle Sum Sparse Merkle Tree [^11] é uma estrutura de dados definida em [bip-tap-ms-smt]. É uma versão aprimorada da árvore Merkle esparsa e atualmente é uma das propostas de bips que permanecem não aceitas. Como a chave tem 256 bits, tal MS-SMT tem $2^{256}$ nós folha, a maioria dos quais estão vazios, portanto é uma árvore Merkle esparsa.

Cada folha contém uma quantidade, e cada ramo compromete o total da folha para cima, de modo que a soma contida no ramo pode ser conhecida sem conhecer o conteúdo de cada subárvore. Como uma árvore Merkle normal, uma árvore podada contendo quaisquer folhas pode fornecer uma prova de adesão (um conceito em acumuladores criptográficos, que é uma "prova" usada para provar que um elemento está em um conjunto intermediário). O MS-SMT também oferece suporte à prova de inexistência de membros (que é implementada indicando explicitamente que a folha de uma chave inexistente é Nenhuma), ou seja, provando que tal chave é Nenhuma na árvore para provar que ela não existe Esta estrutura pode ser eficiente para verificar se há alterações nos valores e distribuições armazenados na árvore.

A imagem abaixo é uma árvore de soma de Merkle e a estrutura após o envio de alterações. A árvore esparsa de soma de Merkle combina as características de árvores esparsas. Ela constrói nós de elementos vazios e armazena apenas informações significativas.

Emissão de ativos taro

A emissão de ativos Taro requer um identificador Assim como o contrato inteligente de tokens ERC-20 terá um endereço, o protocolo Taro define como o identificador é gerado: ID=SHA256(genesisPoint||assetTag||assetMeta) que cunhará o. ativo As informações de saída da transação usadas, a tag do ativo (como um hash do nome do ativo) e os metadados do ativo (imagem, link ou documento) são criptografados para produzir um identificador.

O script de transferência de ativos Taro pode ter entrada e saída semelhantes às transações Bitcoin, e a transação para criar ativos não precisa incluir nenhuma entrada de ativos Taro. Pode-se observar que os ativos Taro seguem o modelo UTxO do Bitcoin, e a emissão. de ativos é emitir um Uma transação de ativos Taro não tem entradas, apenas saídas.

A entrada e a saída do Taro são implementadas com base na árvore de ativos Como mencionado acima, o primeiro nível da árvore de ativos representa o UTxO* (esta escrita continuará a ser usada posteriormente, * indica que tal estrutura está no ativo Taro. O que é isso? os ativos Taro são armazenados em não-Bitcoin)? O que é armazenado no MS-SMT correspondente ao ID do ativo Taro é a informação da saída do ativo Trao pelo UTxO*.

A transação de emissão para construir um ativo Taro é mostrada na figura abaixo. É necessário um Bitcoin UTxO como entrada e gera um Bitcoin UTxO normal e o UTxO* adicional do ativo Taro A. **Tal UTxO\* aparece na forma de uma raiz de Merkel no Bitcoin** e aparece na forma de uma árvore de ativos fora da cadeia. A árvore de ativos registra o assetId do ativo Taro A e o MS correspondente ao ativo. A. -Registros em SMT.

Transferência de ativos Taro

Se você entender a criação de ativos na seção anterior, poderá entender o processo de transferência de ativos mais rapidamente. A transferência de ativos é semelhante a uma transação em Bitcoin, selecionando uma série de UTxO disponíveis como entrada e, em seguida, gerando uma série de UTxO. Nos ativos Taro, uma série de UTxO* disponíveis são selecionados como entrada e uma série de UTxO* são produzidos.

Nesta transação, A transfere todos os seus ativos Trao X para B sem dividi-los. Quando B recebe a transação, ele precisa verificar se o ativo atende às condições de pagamento e nenhuma saída redundante é gerada para confirmar o recebimento do ativo.

As condições que devem ser verificadas incluem, mas não estão limitadas a:

*A árvore de ativos criada para B contém novos UTxOs que atendam às condições de pagamento? * A entrada UTxO foi removida da árvore de ativos de A que foi atualizada? * Se houver outros resultados na transação, eles contêm árvores de ativos adicionais?

Essas informações podem ser verificadas pelas provas de adesão/não adesão do MS-SMT e pela saída de pré-imagens e provas do Trproot. A fusão e divisão de ativos não serão descritas em detalhes. Seu processo é semelhante ao processo de transferência de ativos, mas a saída UTxO* contém um certificado de divisão ou um certificado de fusão.

Universo Tarô

Universe é um serviço que fornece aos detentores de ativos informações e provas sobre ativos[^6]. Sua função é semelhante ao explorador de blocos Bitcoin[^13], mas exibirá as informações armazenadas com os dados de transação do ativo Taro. -chain Ativos Taproot. O universo pode ser operado pelo próprio emitente do ativo, ou o emitente pode nomear um operador. É concebível que o universo operado pela comunidade agregue as informações apresentadas pelos detentores dos ativos.

5. Conclusão

Até agora, no artigo anterior, apresentamos brevemente a tecnologia na qual se baseia a implementação do ativo Taro, bem como seus próprios princípios de implementação. No próximo artigo, o 3P Labs apresentará o status de desenvolvimento dos ativos Ordinals e Taro.

资料引用[^1]: [Manual da Teoria Ordinal][^2]:[O que é Taro no Bitcoin?][^3]:[Ativos Taproot][^4]:[UMA BREVE INTRODUÇÃO AOS PROTOCOLOS RGB][^5]:[Ativos Taproot: Um Novo Protocolo para Bitcoin e Lightning Multiativos][^6]:[Protocolo de Ativos Taproot][^7]:[Árvore de Sintaxe Abstrata Merklized][^8]:[Árvore de Sintaxe Abstrata Merklized][^9]:[O que é uma Árvore de Sintaxe Abstrata Merklized (MAST) do Bitcoin?][^10]:[Compreendendo o Protocolo de Ativos Taproot][^11]:[bip-tap-ms-smt][^12]:[Corrigindo a Lacuna de Privacidade nos Protocolos de Prova de Responsabilidade]

[^13]:[Blockstream Explorer][^14]:[Um mergulho na Lightning Network (Parte Um)]([Um mergulho na Lightning Network (Parte Um)][^15]:[Rede Lightning em profundidade, parte 2: HTLC e roteamento de pagamento]