Um tour pelos planos de expansão ecológica do BTC: BitVM, a arte da gravação

Como os contratos inteligentes são implementados na rede Bitcoin?

Escrito por: Simon shieh

Revisão do prefácio

No artigo anterior “Tour dos Planos de Expansão Ecológica BTC: Onde Ir para Inscrições”, discutimos os princípios técnicos e possíveis problemas de segurança da popular ecologia de inscrições, e mencionamos a possibilidade de usar inscrições recursivas para implementar contratos inteligentes. No entanto, devido às restrições de Luke aos scripts Taproot, a inscrição recursiva parece ter alguns obstáculos.Então, existem outras possibilidades para implementar contratos inteligentes na rede Bitcoin?

Robin Linus, cofundador do desenvolvedor de blockchain ZeroSync, publicou um artigo intitulado “BitVM: Compute Anything on Bitcoin” em 9 de outubro de 2023, no qual ele propôs o lançamento de um plano para trazer contratos inteligentes para o blockchain Bitcoin.

O artigo propõe uma ideia muito interessante de usar a raiz principal para realizar quase qualquer cálculo arbitrário e usar esses cálculos para verificar o que está acontecendo fora da cadeia Bitcoin. O truque é manter toda a lógica fora da cadeia e desafiar resultados desonestos na cadeia com algumas etapas de computação quando outros os afirmarem.

Em outras palavras, é colocar a lógica de um verificador na rede Bitcoin, usar a forte segurança de consenso do Bitcoin para se tornar um terceiro confiável para qualquer camada de computação completa de Turing e, em seguida, usar o princípio de Rollups Otimistas para realizar -cálculos em cadeia Verificação dos resultados.

Então, como colocar um pedaço da lógica do Verifier na rede Bitcoin? Para repetir a “gravação” da seção anterior, gostaria de chamá-la de tecnologia de “gravação” de circuitos na rede Bitcoin.

Circuito de porta lógica

Dentro do seu computador ou celular, a eletricidade executa todas as funções do computador, fornecendo uma série de uns e zeros. Isto é conseguido através de milhões de pequenos componentes chamados portas lógicas. Essas portas lógicas são os blocos básicos de construção dos chips de computador.

Cada porta lógica recebe um ou dois “bits” de informação, e cada bit é 1 ou 0. Em seguida, a porta lógica executa uma operação lógica simples de acordo com as regras definidas, como operações “AND”, “OR” ou “NOT”. O resultado dessas operações também é um bit, 1 ou 0. Após a conclusão da operação, o resultado é passado para a próxima porta lógica.

Este sistema baseado em operações lógicas simples levou à revelação de que mesmo os cálculos e funções mais complexos podem ser alcançados combinando um grande número de operações lógicas simples. Esta combinação e colaboração de portas lógicas é a base para que computadores e dispositivos eletrônicos modernos possam realizar tarefas complexas. Através destas operações lógicas básicas, os computadores podem lidar com operações aritméticas complexas, armazenamento de dados, renderização de imagens e outras funções.

A imagem abaixo é uma porta lógica muito especial chamada “porta NAND”. Ela pode construir qualquer tipo de circuito de porta lógica. É claro que não pode ser tão eficiente quanto outros tipos especializados de portas, mas ainda pode ser feito. O circuito de porta lógica do BitVM é composto por portas NAND.

Como gravar NAND Gate em Bitcoin

A construção de uma porta NAND sobre scripts Bitcoin existentes pode ser alcançada combinando um hash lock com dois opcodes que podem não ser bem conhecidos: OP_BOOLAND e OP_NOT.

Primeiro, um bloqueio de hash pode ser usado para criar um script de ramificação que pode ser gasto de duas maneiras: para satisfazer o bloqueio de hash ou para satisfazer o bloqueio de hash B. Assim, o caminho A coloca 1 na pilha e o caminho B coloca 0 na pilha.

Ao satisfazer um bloqueio de hash específico, você pode “desbloquear” um bit que serve como uma das entradas para a porta NAND que iremos construir. Como você só pode satisfazer os requisitos de um dos caminhos, essa abordagem permite que o usuário envie apenas um bit por vez.

A lógica de uma porta NAND é receber dois bits como entrada e emitir um bit. Se ambos os bits de entrada forem 1, a saída será 0; se as entradas forem outras combinações, a saída será 1. Usando dois truques de bloqueio de hash, você pode enviar essas duas entradas e verificar se a saída está correta, e é para isso que servem OP_BOOLAND e OP_NOT.

A operação de OP_BOOLAND é o oposto de uma porta NAND: se ambas as entradas forem 1, a saída será 1; qualquer outra combinação de entradas produz 0. OP_NOT gera o valor oposto da entrada. Portanto, ao combinar esses dois opcodes, você pode pegar duas entradas e fazer a soma inversa na pilha de scripts. Finalmente, você pode usar OP_EQUALVERIFY e o truque de bloqueio de hash para verificar a saída da asserção. Se os resultados reais da operação NAND na pilha forem inconsistentes com a saída declarada pelo usuário, o script falhará na validação.

Desta forma, o circuito da porta NAND é “gravado” no script Bitcoin, forçando efetivamente uma operação de porta NAND virtual através do script Bitcoin.

Como gravar circuitos em grande escala

Embora a idéia de usar scripts Taproot para obter gravação de circuito seja legal, sem falar em circuitos de ultra grande escala como PCs, mesmo para implementar qualquer conjunto de cálculos são necessários milhares de circuitos de porta NAND, o que é limitado no Bitcoin. cálculos complexos no espaço de script Taproot?

BitVM propõe o método Taproot script tree (Taproot Tree). Para implementar processos computacionais complexos em scripts Bitcoin, pode-se construir circuitos computacionais conectando portas lógicas em série. Neste esquema, os bloqueios hash são usados para vincular portas individuais para obter a execução sequencial de operações lógicas. Especificamente, se o script de uma porta produzir um resultado de saída diferente C1 ou C2 com base em diferentes entradas de pré-imagem de hash (valor de texto simples de hash), a próxima porta usará o valor de bloqueio de hash correspondente como sua entrada.

Este método pode implementar um mecanismo de penalidade, ou seja, se você tentar mentir sobre o resultado do portão anterior, poderá revelar apenas a imagem original de outro hash lock. Este mecanismo pode ser usado para computação interativa entre dois usuários, onde eles concordam antecipadamente em participar de uma tarefa computacional específica e, em seguida, decompõem o processo computacional em circuitos constituídos apenas por portas NAND. Eles precisam escolher o hash lock apropriado para cada porta do circuito e codificá-lo na árvore de script que bloqueia o UTXO.

Em seguida, vários endereços são usados para formar uma matriz de endereços Taproot e, em seguida, o circuito lógico é gravado no script Taproot de uma série de transações UTXO conectadas em uma estrutura de árvore por meio do método Taproot Tree, finalmente formando uma lógica “semelhante a contrato” que pode lidar com certas tarefas de computação.

Desafio de fraude

O desafio de fraude é o núcleo da tecnologia OP (Optimism Rollup) (embora ainda não tenha sido implementado ~).A ideia é que antes de um lote de transações ser enviado em lotes, o desafiante lança um desafio de fraude (compromisso vs. aposta) em as transações que são consideradas erradas., o contrato do Verificador na rede principal determinará se o remetente cometeu o mal com base nas mudanças na raiz do estado após a execução e, em seguida, alocará os ativos prometidos por ambas as partes.

No bitVM, a árvore de script é projetada em dois circuitos. Além de permitir que o provador se submeta a um circuito, o desafiante também precisa ser capaz de desafiar a declaração do provador. Isto pode ser conseguido através da pré-assinatura de uma série de transações. Essas transações pré-assinadas são conectadas através de “Desafio->Resposta->Desafio->…”. Se uma das partes parar por um período de tempo, a outra parte vencerá o desafio e recuperará os depósitos de ambas as partes.

A imagem acima mostra uma série de transações pré-assinadas:

*Desafio: Vicky (desafiadora/verificadora) libera uma pré-imagem no caminho do script (essas pré-imagens são conhecidas apenas pelo desafiante), que é utilizada para contestar a prova;

  • Resposta: Paul (o provador) executa a porta lógica correspondente e envia os fundos de volta ao script inicial;

Qualquer declaração inconsistente pode ser rapidamente refutada após algumas rodadas de investigação. Se o provador parar de cooperar com o desafiante fora da cadeia, o desafiante forçará o provador a cooperar na cadeia: cada vez que o desafiante desbloquear um hash lock, o nó folha Taproot correspondente a cada porta NAND no UTXO do provador terá apenas It só pode ser gasto se o provador conhecer uma pré-imagem do desafiante. O provador pode provar que um determinado nó folha Taproot é executado corretamente, revelando suas entradas e saídas. A premissa é que o desafiante desbloqueia a imagem original do hash correspondente ao Tapleaf, revelando-o.Através da pesquisa binária, o desafiante pode bloquear o erro do provador após uma rodada limitada (O(logn)) de desafios e respostas.

Todo o processo envolve múltiplas rodadas de interações para garantir que o contrato seja liquidado corretamente. O desafiante pode continuar desafiando o provador até que este confirme o resultado correto para cada portão, ou o desafiante pode retirar os fundos após um certo tempo, caso o provador não responda ao desafio. Num mundo ideal, todas as operações ocorrem fora da cadeia e ambas as partes colaboram para completar o acordo, mas se a cooperação for interrompida, ambas as partes podem garantir que o contrato seja resolvido corretamente através de um jogo de desafio na cadeia.

Obstáculos de pouso e problemas de segurança

Esta proposta envolve processar e gerar quantidades extremamente grandes de dados. A árvore de script Taproot usada pode conter bilhões de nós folha, e o tempo de processamento das transações pré-assinadas associadas pode levar pelo menos várias horas para garantir uma liquidação precisa. A execução das condições de desbloqueio predefinidas para cada endereço Taproot requer uma taxa de mineração, portanto, quanto mais combinações de endereços, maior será o custo.

Uma grande limitação deste esquema é que ele só funciona para interações entre dois participantes: um, como provador, certificando a exatidão de sua execução; e o outro, como verificador, desafiando as afirmações do primeiro. Embora estudos futuros possam encontrar formas de incluir mais participantes, neste momento não parece haver uma solução clara.

Num cenário de liquidação cooperativa, todos os participantes devem estar online, o que impõe certas restrições à praticidade e conveniência do protocolo.

Em termos de segurança, existem principalmente os seguintes riscos de segurança:

  1. Devido a restrições de custos, uma grande quantidade de trabalho de computação deve ser realizada fora da cadeia. A computação fora da cadeia apresenta alguns riscos de segurança comuns dos serviços centralizados.

  2. Uma grande quantidade de dados é armazenada fora da cadeia, e a disponibilidade e segurança dos dados também são pontos de risco que devem ser considerados.

  3. Se existem lacunas lógicas no próprio circuito gravado também é um ponto de risco de segurança.Devido à ilegibilidade do circuito, mais custos de auditoria ou custos de verificação formal precisam ser pagos.

Metatrust auxiliou a Uniswap na condução de um trabalho abrangente de verificação formal e tem uma experiência muito rica em auditoria de circuito ZK e verificação formal, o que pode fornecer garantia para a implementação segura do ecossistema BitVM.

As soluções dos dois artigos anteriores são soluções técnicas que acabaram de se tornar populares este ano. No próximo artigo, apresentaremos uma solução mais antiga e “ortodoxa”, uma versão atualizada da Lightning Network - Taproott Assets.

Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • Comentar
  • Republicar
  • Partilhar
Comentar
0/400
Nenhum comentário
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)