Bitcoin Magazine: Quais são os desafios enfrentados pelo Rollup?

robot
Geração de resumo em curso

Fonte: Revista Bitcoin; Compilado por: Wuzhu, Golden Finance

Rollups recentemente tornaram-se o foco da expansão do BTC, tornando-se a primeira coisa a realmente roubar o holofote da Rede de iluminação em termos de atenção mais ampla. Rollups têm como objetivo ser uma segunda camada fora da cadeia que não é restrita ou limitada pela liquidez central da Rede de iluminação, ou seja, os usuários finais precisam ter fundos alocados (ou “emprestados”) com antecedência para receber dinheiro, ou os nós intermediários precisam de saldo de canal para facilitar o fluxo total do valor do remetente para o destinatário.

Esses sistemas foram originalmente executados no Ethereum e em outros sistemas Turing Completo, mas recentemente o foco tem sido em portá-los para blockchains baseadas em UTXO (por exemplo, BTC). Este artigo não pretende discutir a implementação atual no BTC, mas sim discutir as funcionalidades ideais de um Rollup que as pessoas têm buscado há muito tempo, as quais dependem da capacidade de verificar diretamente Prova de conhecimento zero (ZKP) no BTC, atualmente não suportada.

A estrutura básica do Roll é a seguinte: uma única conta (UTXO em BTC) que armazena o saldo de todos os usuários no Rollup. Este UTXO contém um compromisso, que existe na forma da raiz de Merkle da árvore de Merkle, comprometendo todos os saldos atuais das contas no Rollup. Todas essas contas são autorizadas com Chave pública/Chave privada, portanto, para fazer gastos fora da cadeia, os usuários ainda precisam assinar algum conteúdo com a Chave Secreta. Esta parte da estrutura permite que os usuários saiam a qualquer momento sem permissão, apenas provando que suas contas fazem parte da árvore de Merkle, eles podem sair unilateralmente do Rollup sem permissão do operador.

O operador do rollup deve incluir um ZKP na transação para atualizar a raiz merkle do saldo na cadeiaconta no processo de conclusão da transação for a cadeia, sem a qual a transação seria inválida e, portanto, não poderia ser incluída na cadeia Bloco. Este atestado permite verificar se todas as alterações ao Fora da Cadeiaconta estão devidamente autorizadas pelo titular da Conta e se o operador não atualizou maliciosamente o saldo para roubar fundos dos utilizadores ou redistribuí-los desonestamente a outros utilizadores.

A questão é, se apenas a raiz da árvore de Merkle for publicada na cadeia, como é que os utilizadores colocam os seus ramos na árvore para que possam sair quando quiserem sem permissão?

Rollup Apropriado

Em um Rollup apropriado, cada vez que uma nova transação fora da cadeia é confirmada e o estado da conta Rollup sofre alterações, as informações são diretamente colocadas na blockchain. Não é a árvore inteira, que seria absurdo, mas sim as informações necessárias para reconstruir a árvore. Em uma implementação simples, o resumo de todas as contas existentes no Rollup conterá os saldos e as contas serão apenas adicionadas nas transações de atualização do Rollup.

Na implementação mais avançada, utiliza-se a diferença de saldo. Essencialmente, isso resume quais contas tiveram dinheiro adicionado ou removido durante o processo de atualização. Isso permite que cada atualização do Rollup contenha apenas as alterações de saldo de conta ocorridas. Em seguida, os usuários podem simplesmente percorrer a cadeia e ‘calcular’ a partir do início do Rollup para obter o estado atual do saldo da conta, permitindo-lhes reconstruir a árvore de Merkle do saldo atual.

Dessa forma, é possível economizar muitos custos e espaço de Bloco (economizando assim fundos), ao mesmo tempo que permite aos usuários garantir o acesso às informações necessárias para sair unilateralmente. As regras do rollup exigem que esses dados sejam incluídos no rollup formal fornecido aos usuários usando a cadeia de Bloco, ou seja, transações que não incluem um resumo de conta ou diferença de conta são consideradas inválidas.

Validade

Outra maneira de lidar com problemas de disponibilidade de dados de retirada de usuários é colocar os dados em outro lugar fora do bloco cadeia. Isso introduz problemas sutis, rollup ainda precisa garantir que os dados estejam disponíveis em outro lugar. Tradicionalmente, outros blocos de cadeia são usados ​​para este fim, projetados especificamente como uma camada de disponibilidade de dados para sistemas como rollup.

Isso cria um dilema de segurança igualmente poderoso. Quando os dados são publicados diretamente na cadeia BTCBloco, as regras de Consenso garantem que ele esteja absolutamente correto. No entanto, quando é publicado em um sistema externo, o melhor que pode fazer é verificar a prova SPV, ou seja, que os dados foram publicados em outro sistema.

Isto requer uma prova de que os dados estão presentes em outras provas na cadeia, o que acaba por ser um problema da Máquina Oracle. A cadeia de Blocos do BTC não consegue validar totalmente nada para além do que acontece na sua própria cadeia, sendo o melhor que pode fazer validar ZKP. No entanto, ZKP não consegue validar se os dados de rollup do Bloco, uma vez gerados, foram realmente transmitidos publicamente. Não consegue validar se as informações externas foram verdadeiramente tornadas públicas para todos.

Isso abriu as portas para ataques de retenção de dados, ou seja, criar compromissos para dados publicados e usá-los para impulsionar o rollup, mas os dados não estão realmente disponíveis. Isso faz com que os usuários não consigam retirar fundos. A única solução real é depender completamente do valor e da estrutura de incentivos de sistemas além do BTC.

01928374656574839201

Isto coloca o rollup num dilema. Quando se trata de questões de disponibilidade de dados, basicamente existe uma escolha binária entre publicar os dados na cadeia de blocos BTC ou em outro lugar. Esta escolha tem um impacto significativo na segurança, soberania e escalabilidade do rollup.

Por um lado, usar a cadeia BTC como camada de disponibilidade de dados definirá um limite rígido para a escalabilidade do rollup. O espaço de bloco é limitado, o que define um limite para o número de rollups que podem existir de uma só vez e para o número total de transações que todos os rollups podem processar fora da cadeia. Cada atualização do rollup requer espaço de bloco proporcional ao número de contas que tiveram alteração de saldo desde a última atualização. A teoria da informação permite apenas que os dados sejam comprimidos até certo ponto, portanto, não há mais potencial de expansão.

Por outro lado, a utilização de diferentes camadas para alcançar a disponibilidade de dados eliminará o limite rígido dos ganhos de escalabilidade, mas também trará novas questões de segurança e soberania. No Rollup que utiliza BTC para alcançar a disponibilidade de dados, se os dados que o utilizador pretende extrair não forem automaticamente publicados na cadeia de blocos, o estado do Rollup não poderá mudar. Com os Validiums, esta garantia depende inteiramente da capacidade dos sistemas externos utilizados para resistir à fraude e ocultação de dados.

Agora, qualquer produtor de Bloco no sistema de disponibilidade de dados externos pode tomar posse dos fundos dos usuários do BTCRollup produzindo Blocos em vez de transmitir efetivamente esses Blocos, tornando os dados disponíveis.

Então, se realmente conseguirmos implementar o Rollup ideal no BTC, possibilitando verdadeiramente levantamentos unilaterais dos utilizadores, como seria isso?

BTC-0.27%
ETH-0.57%
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
  • Fixar
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)