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

robot
Geração do resumo em andamento

Fonte: Bitcoin Magazine; Tradução: Wuzhu, Jinse Caijing

Rollups recentemente se tornaram o foco da expansão do BTC, tornando-se a primeira coisa a realmente roubar o brilho da Rede de iluminação em termos de atenção mais ampla. Rollups visam 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”) antecipadamente 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 originalmente projetados para operar na Ethereum e em outros sistemas Turing Completo, mas recentemente o foco mudou para portá-los para blockchains baseadas em UTXO (por exemplo, BTC). Este artigo não pretende discutir a situação 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 capacidade de verificar Prova de conhecimento zero (ZKP) diretamente no BTC.

A estrutura básica do Roll é a seguinte: uma única conta (UTXO no BTC) mantém o saldo de todos os usuários no Rollup. Esta UTXO contém um compromisso que existe na forma da raiz de Merkle da árvore Merkle, comprometendo todos os saldos atuais de conta existentes no Rollup. Todas essas contas são autorizadas usando chaves públicas/privadas, portanto, para gastar fora da cadeia, os usuários ainda precisam assinar algo com sua Chave Secreta. Esta parte da estrutura permite aos usuários sair a qualquer momento sem permissão, basta fazer uma transação provando que sua conta é parte da árvore Merkle, eles podem sair unilateralmente do Rollup sem permissão do operador.

Os operadores do Rollup devem incluir um ZKP nas transações para atualizar o saldo da conta na cadeia durante o processo de conclusão das transações fora da cadeia. Sem este ZKP, a transação será inválida e, portanto, não pode ser incluída no bloco. Esta 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 de forma maliciosa para roubar os fundos dos usuários ou redistribuí-los desonestamente para outros usuários.

A questão é: se apenas a raiz da árvore de Merkle for publicada na cadeia, os usuários podem visualizá-la e acessá-la, então como eles podem colocar seus ramos na árvore para poderem sair sem permissão quando quiserem?

Rollup Apropriado

Em um Rollup apropriado, cada vez que uma nova transação fora da cadeia é confirmada e o estado da conta do Rollup muda, as informações são diretamente colocadas na blockchain. Não é a árvore inteira, isso 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, é utilizado o diferencial de saldo. Essencialmente, isso é um resumo de quais contas tiveram aumento ou diminuição de fundos durante o processo de atualização. Isso faz com que cada atualização do Rollup contenha apenas as alterações de saldo das contas que ocorreram. 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, o que lhes permite reconstruir a árvore de Merkle do saldo atual.

Desta forma, é possível poupar uma grande quantidade de despesas e espaço de Bloco (poupando assim fundos), enquanto ainda permite que os utilizadores garantam o acesso às informações necessárias para sair unilateralmente. As regras do rollup exigem que estes dados sejam incluídos no rollup oficial fornecido aos utilizadores através da Bloco, ou seja, as transações que não incluem um resumo de conta ou diferença de conta são consideradas inválidas.

Validade

Uma outra maneira de lidar com problemas de disponibilidade de dados de retirada do usuário é colocar os dados em outro lugar fora da cadeia de blocos. Isso traz consigo questões sutis, pois o rollup ainda precisa garantir que os dados estejam disponíveis em outro lugar. Tradicionalmente, outras cadeias de blocos são usadas para esse fim, projetadas especificamente como uma camada de disponibilidade de dados para sistemas como o rollup.

Isso cria um dilema de segurança igualmente poderoso. Quando os dados são publicados diretamente na cadeia de blocos BTC, as regras de consenso podem garantir que estejam absolutamente corretos. No entanto, quando eles são publicados em sistemas externos, o melhor que podem fazer é verificar a prova SPV, ou seja, que os dados foram publicados em outro sistema.

Isso requer uma prova de que os dados estão presentes em outras cadeias, sendo esse um problema final de Máquina Oracle. A cadeia de blocos BTC não pode verificar completamente nada além do que acontece em seu próprio bloco na cadeia, o melhor que pode fazer é verificar ZKP. No entanto, ZKP não pode verificar se o bloco contendo os dados do rollup realmente foi transmitido publicamente após a geração. Não pode verificar se as informações externas realmente estão disponíveis para todos.

Isso abriu a porta para ataques de retenção de dados, ou seja, a criação de compromissos para a publicação de dados e seu uso para impulsionar o 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 completamente de estruturas de valor e incentivo fora do BTC.

Entre a espada e a parede

Isso traz um dilema para o rollup. Quando se trata de problemas de disponibilidade de dados, basicamente existe uma escolha binária entre publicar os dados na blockchain do BTC ou em outro lugar. Essa escolha tem um impacto significativo na segurança, soberania e escalabilidade do rollup.

Por um lado, o uso do Blockchain BTC como camada de disponibilidade de dados definirá um limite rígido para a escalabilidade do rollup. O espaço do Bloco é limitado, o que define um limite para a quantidade de rollups que podem existir ao mesmo tempo e para a quantidade total de transações que podem ser processadas fora da cadeia. Cada atualização do rollup requer espaço de Bloco proporcional à quantidade de contas cujos saldos mudaram desde a última atualização. A teoria da informação permite apenas uma compressão de dados até certo ponto, e nesse ponto não há mais potencial de expansão.

Por outro lado, usar 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. Em 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á mudar. Com Validiums, essa 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 se apropriar dos fundos dos usuários de BTCRollup produzindo Blocos em vez de realmente transmitir o Bloco.

Então, se realmente conseguirmos uma implementação ideal de Rollup no BTC, alcançando verdadeiramente saques unilaterais dos usuários, como seria isso?

BTC2.54%
ETH3.29%
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)