paint-brush
ZKByte: uma solução de escalonamento Bitcoin Layer2 confiável utilizando conhecimento zero e BitVMpor@zkbase
494 leituras
494 leituras

ZKByte: uma solução de escalonamento Bitcoin Layer2 confiável utilizando conhecimento zero e BitVM

por ZKBase4m2023/12/30
Read on Terminal Reader

Muito longo; Para ler

A rede Layer 2 para BTC é estrategicamente elaborada para atender à crescente demanda por transações mais rápidas e eficientes dentro do ecossistema Bitcoin. Isto é conseguido descarregando certas tarefas de processamento de transações da blockchain principal, com o objetivo de aliviar o congestionamento. Um UTXO é usado para rastrear todos os estados da Camada 2, e um oráculo confiável é empregado para garantir que apenas os scripts de bloqueio/desbloqueio dos scripts de entrada/saída sigam o protocolo da Camada 2.
featured image - ZKByte: uma solução de escalonamento Bitcoin Layer2 confiável utilizando conhecimento zero e BitVM
ZKBase HackerNoon profile picture
0-item
1-item
2-item

O objetivo principal deste projeto é estabelecer uma rede de Camada 2 adaptada especificamente para o blockchain Bitcoin. A rede Layer 2 para BTC é estrategicamente elaborada para atender à crescente demanda por transações mais rápidas e eficientes dentro do ecossistema Bitcoin .


Isto é conseguido descarregando certas tarefas de processamento de transações da blockchain principal, com o objetivo de aliviar o congestionamento e reduzir substancialmente o tempo e os recursos necessários para confirmações de transações.


Reconhecendo as limitações inerentes às capacidades de computação da Máquina Virtual Bitcoin (VM), nosso projeto utiliza BitVM, o que demonstra o potencial de execução de contratos inteligentes entre duas partes. Aproveitando um esquema de desafio e resposta, o BitVM apresenta uma nova abordagem para melhorar a programabilidade da rede Bitcoin, superando as restrições tradicionais.


Para melhorar a segurança e a integridade da rede da Camada 2, a verificação do estado é facilitada através da integração de tecnologias Zero-Knowledge Proof.


Essas técnicas criptográficas avançadas permitem que a Camada 1 verifique com eficiência os estados da rede da Camada 2 sem comprometer a privacidade e a confidencialidade das transações subjacentes.

0. Arquitetura

O blockchain da Camada 2 adota um modelo de conta. O status de todo o blockchain é comprovado através do zkVM, baseado no sistema de prova Halo2. O estado da Camada 2 é sincronizado com a rede Bitcoin, e todos os estados da Camada 2 são verificados pelo verificador Zero-Knowledge Proof (ZKP) implementado pelo BitVM. Um UTXO é usado para rastrear todos os estados da Camada 2. Além disso, um oráculo confiável é empregado para garantir que apenas os scripts de bloqueio/desbloqueio de UTXOs de entrada/saída sigam o protocolo da Camada 2.



1. Comitê de Camada 2 e Oracle Confiável

Um grupo selecionado de usuários forma o comitê da Camada 2 responsável por monitorar a integridade geral da rede da Camada 2. Em caso de problemas de protocolo, o comitê pode intervir para interromper o protocolo e salvaguardar os bens de todos os usuários. O oráculo confiável é crucial para validar a exatidão dos UTXOs e scripts de entrada/saída.

2. Camada 1 a Camada 2

Um único endereço taproot é criado na rede Bitcoin para representar o protocolo da Camada 2. Quando um UTXO é criado e transferido para o endereço principal, o UTXO correspondente é efetivamente “movido” da Camada 1 para a Camada 2. As contas de protocolo ou comitê tratam exclusivamente da “transferência” de todos os ativos UTXO “depositados”.



3. Bloqueia a sincronização com a camada 1

Todos os estados da rede da Camada 2 são sincronizados com a Camada 1 na forma de blocos. Para um bloco, as seguintes informações devem ser fornecidas: transações em um bloco específico, estado das novas contas com as transações aplicadas, novos UTXOs para o estado atual do bloco (sempre pronto mesmo se o protocolo for quebrado) informações do bloco da prova de conhecimento zero da rede Bitcoin ( provando que a transição de estado do último bloco para o bloco atual está correta) Todos os estados na Camada 1 são registrados em um histórico de transações UTXO.




3.1 Mais sobre prova

A prova de conhecimento zero é empregada para verificar a exatidão da Camada 2. A prova tenta provar: As transações em bloco da Camada 2 são assinadas corretamente. O novo estado de todas as contas é tratado corretamente. Todos os depósitos até um bloco específico da Camada 1 são tratados corretamente. Para o estado atual, todas as distribuições UTXO são criadas corretamente.

3.2 Bloquear informações Desafio

Para garantir a exatidão das informações de bloco especificadas na Camada 1, é utilizado um esquema de desafio e resposta. Os provadores podem demonstrar a precisão das informações do bloco, indicando a presença de mais N blocos após um bloco específico dentro de um período de tempo bloqueado.


3.3 Circuito ZKP e aprimoramento de BitVM

Conforme ilustrado no artigo BitVM, a verificação de prova ZKP pode ser expressa como um circuito binário, que pode ser desafiado por duas partes. Com transações pré-assinadas, desafios podem ser enviados para obter compromissos de bits do circuito. Se 0 e 1 forem expostos por desafios, o desafiante vence. Para usar o BitVM para verificar a verificação ZKP, duas coisas devem ser observadas: os mesmos compromissos de circuito binário devem ser usados uma vez. Isso quer dizer que, se os comentários do mesmo circuito forem usados para muitos blocos, o comprometimento de 0 e 1 de um bit poderá ser exposto. Para verificação do ZKP, além da satisfação do circuito, a “entrada pública” também deve ser verificada. Para lidar com essas duas deficiências, para cada bloco da Camada 2, um circuito binário único é criado e as “entradas públicas” são fixas. Os scripts Bitcoin são usados para lidar com hash e verificação de entrada pública. E os compromissos corretos de bits de entrada pública são verificados por um oráculo confiável. Em termos de satisfação do circuito, qualquer membro do comitê tem a capacidade de levantar desafios.




4. Camada 2 a Camada 1

Os ativos podem ser movidos da Camada 2 para a Camada 1 através de dois métodos: retirada e retirada forçada. As transações de retirada são acionadas na Camada 2 e os circuitos ZKP garantem o tratamento das transações conforme o esperado. As transações de retirada forçada são iniciadas na rede Bitcoin.

4.1 Transação de retirada e retirada forçada

As transações de retirada, acionadas na Camada 2, são verificadas usando circuitos ZKP para garantir o tratamento adequado das transações. As transações de retirada forçada, iniciadas na rede Bitcoin, devem ser incluídas na próxima atualização do estado do bloco. 4.2 Distribuições UTXO Quando o estado de um bloco é atualizado, a distribuição UTXO é sincronizada. No caso de interrupção do protocolo, todos os UTXOs podem ser aplicados para garantir a segurança de todos os ativos do usuário. E entre esses UTXOs, apenas UTXOs de retirada ou retirada forçada são assinados por protocolo.

5. Saída da Camada 2

Uma vez que a prova do ZKP NÃO seja verificada, o comitê deverá interromper e sair do protocolo. Se o protocolo parar, o comitê assinou todas as distribuições UTXO especificadas no último estado do bloco da Camada 2. Com as assinaturas, um usuário pode sair da Camada 2 sem qualquer perda.





Referência

  1. BitVM: https://bitvm.org/bitvm.pdf
  2. Artigo sobre Bitcoin: https://bitcoin.org/bitcoin.pdf
  3. Explicação do Halo2: https://electriccoin.co/blog/explaining-halo-2/