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

robot
Geração do resumo em andamento

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

Rollups have recently become the focus of BTC scalability, becoming the first thing that truly steals the spotlight from the Lighting Network, in terms of broader attention. Rollups aim to be a second layer outside the Lighting Network’s liquidity constraints, where end users need someone to pre-allocate (or ‘lend’) funds in order to receive money, or intermediate routing nodes need channel balances to facilitate seamless flow of payment amounts from sender to receiver.

Esses sistemas foram originalmente desenvolvidos para operar em Ethereum e outros sistemas Turing Completo, mas recentemente o foco tem sido em portá-los para blockchains baseadas em UTXO, como BTC. Este artigo não pretende discutir a implementação atual em BTC, mas sim as funcionalidades ideais de um Rollup que têm sido buscadas a longo prazo, as quais dependem da capacidade de BTC em verificar diretamente Prova de conhecimento zero (ZKP), que não é suportado atualmente.

A estrutura básica do Roll é a seguinte: uma única conta (UTXO em 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 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 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 a necessidade de permissão do operador.

Os operadores do Rollup devem incluir um ZKP nas transações para atualizar o saldo da conta na cadeia de forma adequada, caso contrário, a transação será inválida e não poderá 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 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, como é que os utilizadores colocam os seus ramos na árvore para que possam sair quando quiserem, sem permissão,01928374656574839201

Rollup Apropriado

Em um Rollup apropriado, sempre que uma nova transação fora da cadeia é confirmada e o estado da conta do Rollup sofre uma alteração, 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á os saldos e as contas serão apenas adicionadas nas transações de atualização do Rollup.

Em implementações mais avançadas, use diferenças de equilíbrio. Isso essencialmente resume quais contas aumentaram ou diminuíram os fundos durante o processo de atualização. Isso faz com que cada atualização do Rollup contenha apenas alterações nos saldos das contas que ocorreram. Em seguida, os usuários podem simplesmente digitalizar a cadeia e ‘calcular’ a partir do início do Rollup para obter o estado atual do equilíbrio da conta, 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 (economizando assim dinheiro), ao mesmo tempo que permite aos utilizadores garantir o acesso às informações necessárias para sair unilateralmente. As regras de rollup exigem que esses dados sejam incluídos no rollup formal fornecido aos utilizadores usando a cadeia de Bloco, 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

Outra maneira de lidar com a questão da disponibilidade dos dados de retirada do usuário é colocar os dados em outros lugares além da cadeia Bloco. Isso introduz questões sutis, rollup ainda precisa garantir fortemente que os dados estejam disponíveis em outros lugares. Tradicionalmente, outras cadeias Bloco são usadas para esse fim, especialmente projetadas como camadas de disponibilidade de dados para sistemas como rollup.

Isso criou um dilema de segurança com igual força. Quando os dados são publicados diretamente na cadeia de blocos do Bitcoin, as regras de consenso podem garantir que ele esteja absolutamente correto. No entanto, quando é publicado em um sistema externo, o melhor que pode ser feito é verificar a prova SPV, ou seja, que os dados foram publicados em outro sistema.

Isso requer provas de que os dados existem em outros blocos da cadeia, o que é essencialmente um problema da Máquina Oracle. A cadeia de blocos do BTC não consegue verificar completamente nada além do que acontece em seu próprio bloco na cadeia, o melhor que pode fazer é verificar ZKP. No entanto, o ZKP não pode verificar se o bloco que contém os dados do rollup foi realmente 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 as comportas para ataques de retenção de dados, ou seja, criar compromissos para publicar dados e usá-los para avançar rollup, mas os dados não estão realmente disponíveis. Isso impede que os usuários retirem fundos. A única solução real é depender completamente do valor e da estrutura de incentivos de sistemas fora do BTC.

Estar em um dilema

Isso cria um dilema para o rollup. Quando se trata de problemas de disponibilidade de dados, basicamente há uma escolha binária entre publicar os dados na cadeia BTC ou em outro lugar. Essa 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 estabelecerá um limite rígido para a escalabilidade do rollup. O espaço do bloco é limitado, o que estabelece um limite para o número de rollups que podem existir de uma só vez e para a quantidade total de transações que todos os rollups podem processar fora da cadeia. Cada atualização do rollup requer um espaço de bloco proporcional ao número de contas cujos saldos foram alterados desde a última atualização. A teoria da informação permite apenas que os dados sejam comprimidos até certo ponto, e nesse ponto não há mais potencial de escalabilidade.

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 disponibilidade de dados, se os dados que os usuários precisam extrair não forem automaticamente publicados no blockchain, o estado do Rollup não poderá mudar. Com o uso de Validiums, essa garantia depende inteiramente da capacidade do sistema externo utilizado para resistir a fraudes e ocultação de dados.

Agora, qualquer produtor de Bloco no sistema de disponibilidade de dados externos pode sequestrar os fundos dos usuários do BTCRollup produzindo um Bloco em vez de transmiti-lo realmente, tornando os dados disponíveis.

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

BTC-2,01%
ETH-3,04%
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)