Bitcoin Magazine: Quais são os desafios do Rollup?

robot
Geração do resumo em andamento

Fonte: Bitcoin Magazine; Tradução: Wu Zhu, Golden Finance

Rollups recentemente se tornaram 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 tem como objetivo ser uma segunda camada fora da cadeia sem as restrições ou limitações de Liquidez do núcleo da Rede de iluminação, ou seja, os usuários finais precisam que os fundos sejam 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.

Estes sistemas foram inicialmente desenvolvidos para funcionar em redes como Ethereum e outras plataformas Turing Completo, mas recentemente houve um foco na sua adaptação para blockchains baseadas em UTXO (por exemplo, BTC). Este artigo não pretende discutir o estado atual da implementação no BTC, mas sim as funcionalidades ideais de Rollup que as pessoas têm buscado a longo prazo, as quais dependem de capacidades atualmente não suportadas pelo BTC, ou seja, a habilidade de verificar Prova de conhecimento zero (ZKP) diretamente no BTC.

A estrutura básica do Roll é a seguinte: uma única conta (UTXO no BTC) armazena o saldo de todos os usuários no Rollup. Essa UTXO contém um compromisso, que existe como a raiz de uma árvore de Merkle, comprometendo todos os saldos atuais das contas no Rollup. Todas essas contas são autorizadas com uma Chave Pública/Chave Privada, portanto, para realizar transações fora da cadeia, os usuários ainda precisam assinar determinado conteúdo com uma Chave Secreta. Essa parte da estrutura permite que os usuários saiam a qualquer momento sem permissão, basta que eles provem que sua conta faz parte da árvore de Merkle, e eles podem sair do Rollup unilateralmente, sem a necessidade de permissão do operador.

Os operadores do Rollup devem incluir uma prova de conhecimento zero (ZKP) na transação para atualizar a raiz de merkle do saldo da conta na cadeia ao concluir a transação fora da cadeia. Sem esta ZKP, a transação será inválida e não pode ser incluída no bloco da cadeia. Essa prova permite que as pessoas verifiquem se todas as alterações na conta fora da cadeia foram devidamente autorizadas pelo titular da conta e se o operador não atualizou o saldo maliciosamente para roubar fundos dos usuários ou redistribuir de forma desonesta para outros usuários.

A questão é, se apenas a raiz da árvore Merkle for publicada na cadeia, como os usuários podem colocar seus ramos na árvore para poderem sair quando quiserem sem permissão?

Rollup Apropriado

Em um Rollup apropriado, sempre que uma nova transação fora da cadeia é confirmada e o estado da conta Rollup muda, as informações são diretamente colocadas na blockchain. Não é a árvore inteira, o 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á o saldo e as contas serão apenas adicionadas nas transações de atualização do Rollup.

Em implementações mais avançadas, utiliza-se a diferença de saldo. Essencialmente, isso resume quais contas tiveram acréscimos ou reduções de fundos durante o processo de atualização. Isso permite que cada atualização do Rollup contenha apenas as alterações de saldo das contas ocorridas. Em seguida, os usuários podem simplesmente escanear a cadeia e ‘calcular’ a partir do início do Rollup para obter o estado atual do saldo das contas, permitindo que eles reconstruam a árvore de Merkle do saldo atual.

Desta forma, é possível poupar uma grande quantidade de despesas e espaço de bloco (e, portanto, poupar fundos), enquanto ainda permite que os utilizadores garantam o acesso às informações necessárias para a saída unidirecional. As regras de rollup exigem que esses dados sejam incluídos no rollup formal fornecido aos utilizadores usando a cadeia de blocos, ou seja, as transações que não incluem um resumo de conta ou diferenças de conta são consideradas inválidas.

Prazo de validade

Uma outra abordagem para lidar com problemas de disponibilidade de dados de saque do usuário é armazenar os dados em outro lugar que não seja na cadeia de blocos. Isso introduz um problema sutil, onde o rollup ainda precisa garantir que os dados estejam disponíveis em outro lugar. Tradicionalmente, outras cadeias de blocos são usadas para esse propósito, projetadas especificamente como uma camada de disponibilidade de dados para sistemas como o rollup.

Isso cria um dilema de segurança igualmente forte. Quando os dados são publicados diretamente na cadeia BTCBloco, as regras de Consenso podem garantir que estejam absolutamente corretos. No entanto, quando são publicados em um sistema externo, o melhor que podem 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 na cadeia, o que é essencialmente um problema de Máquina Oracle. A cadeia de blocos do Bitcoin não consegue validar completamente qualquer coisa que aconteça fora da sua própria cadeia, sendo o melhor que consegue fazer validar ZKP. No entanto, ZKP não consegue validar se os dados de rollup do bloco, após a geração, foram verdadeiramente divulgados publicamente. Não consegue validar se a informação externa foi verdadeiramente tornada pública para todos.

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

Entre a espada e a parede

Isto coloca o rollup numa situação difícil. 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 local. Esta escolha tem um impacto significativo na segurança, soberania e escalabilidade do rollup.

Por um lado, usar a cadeia BTCBloco como camada de disponibilidade de dados imporia um limite rígido à escalabilidade do rollup. O espaço do Bloco é limitado, o que estabelece um limite para a quantidade de rollups que podem existir de uma vez e para a quantidade total de transações que podem ser processadasfora da cadeia em todos os rollups. Cada atualização do rollup requer um espaço de Bloco proporcional à quantidade de contas cujos saldos tenham mudado desde a última atualização. A teoria da informação só permite que os dados sejam comprimidos até certo ponto, o que significa que não há mais potencial de escalabilidade.

Por outro lado, o uso de diferentes camadas para alcançar a disponibilidade de dados elimina o limite rígido dos ganhos de escalabilidade, mas também traz novos problemas de segurança e soberania. No Rollup que utiliza BTC para alcançar a disponibilidade de dados, se os dados que o usuário precisa extrair não forem automaticamente publicados na blockchain, o estado do Rollup não poderá ser alterado. Com o uso de Validiums, essa garantia depende inteiramente da capacidade dos sistemas externos de resistir a fraudes e ocultação de dados.

Agora, qualquer produtor de Bloco no sistema de disponibilidade de dados externos pode se apossar dos fundos dos usuários BTCRollup ao produzir um Bloco em vez de transmitir o Bloco real, tornando os dados disponíveis.

Então, se realmente conseguirmos implementar um Rollup ideal em BTC e efetivamente permitir retiradas unilaterais dos usuários, como seria isso?

BTC0.09%
ETH0.43%
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • Comentário
  • Repostar
  • Compartilhar
Comentário
0/400
Sem comentários
  • Marcar
Negocie criptomoedas a qualquer hora e em qualquer lugar
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)