Fonte: Bitcoin Magazine; Compilado por: Wuzhu, Golden Finance
Rollups recentemente se tornaram o foco da expansão do BTC, tornando-se a primeira coisa a realmente roubar o protagonismo da Rede de iluminação em termos de atenção mais ampla. O objetivo dos Rollups é ser uma segunda camada fora da cadeia que não esteja sujeita às 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 antecipadamente (ou ‘emprestados’) 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 implementados em Ethereum e outros sistemas Turing Completo, mas recentemente houve um foco na portabilidade para blockchains baseadas em UTXO (por exemplo, Bitcoin). Este artigo não pretende discutir o estado atual da implementação em Bitcoin, mas sim discutir as funcionalidades do Rollup idealizado que as pessoas têm buscado a longo prazo, as quais dependem de capacidades ainda não suportadas pelo Bitcoin, ou seja, a capacidade de verificar diretamente provas de conhecimento zero (ZKP) em Bitcoin.
A estrutura básica do Roll é a seguinte: uma única conta (UTXO em BTC) 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 existentes no Rollup. Todas essas contas são autorizadas com Chave pública/Chave privada, então, para fazer gastos fora da cadeia, os usuários ainda precisam assinar alguma coisa 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 do Rollup unilateralmente, sem a permissão do operador.
Os operadores de Rollup devem incluir um 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 este ZKP, 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 maliciosamente 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, os utilizadores podem vê-la e aceder-lhe, mas como podem eles colocar os seus ramos na árvore de forma a poderem sair quando quiserem sem permissão?
Rollup Apropriado
Em um Rollup apropriado, sempre que uma nova transação fora da cadeia for confirmada e o estado da conta Rollup for alterado, 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 são apenas adicionadas nas transações de atualização do Rollup.
Em implementações mais avançadas, use a diferença de equilíbrio de contas. Isso essencialmente resume quais contas tiveram fundos adicionados ou removidos durante o processo de atualização. Isso faz com que cada atualização do Rollup inclua apenas alterações no saldo da conta 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 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 fundos), ao mesmo tempo que permite aos utilizadores garantir o acesso às informações necessárias para sair unilateralmente. As regras de rollup exigem que estes dados sejam incluídos no rollup formal fornecido aos utilizadores usando a cadeia de Bloco, ou seja, as transações que não incluem o resumo da conta ou as diferenças de conta são consideradas inválidas.
Prazo de validade
Outra abordagem para lidar com a questão da disponibilidade de dados de retirada do usuário é colocar os dados em outro lugar fora da cadeia de Blocos. Isso introduz questões sutis, 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, especialmente projetadas para servir como 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 podem garantir que estejam absolutamente corretos. No entanto, quando são publicados em um sistema externo, a melhor coisa que podem fazer é verificar a prova SPV, ou seja, que os dados foram publicados em outro sistema.
Isto requer prova de que os dados existem em outras provas na cadeia, o que é essencialmente um problema da Máquina Oracle. A cadeia de Bloco do BTC não consegue verificar totalmente qualquer coisa que aconteça fora do seu próprio bloco na cadeia, a melhor que pode fazer é verificar ZKP. No entanto, ZKP não pode verificar se os dados de rollup do bloco, após a sua geração, são verdadeiramente transmitidos publicamente. Não pode verificar se a informação externa é verdadeiramente tornada pública para todos.
Isto abre as portas para ataques de retenção de dados, ou seja, criar compromissos sobre dados publicados e usá-los para impulsionar o rollup, mas na realidade os dados não estão disponíveis. Isso impede que os utilizadores levantem fundos. A única solução real é depender totalmente do valor e da estrutura de incentivos de sistemas que não sejam o BTC.
Entrar e sair de uma situação difícil
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 blockchain 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 BTCBloco como uma 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 e a quantidade total de transações que podem ser processadas fora da cadeia. Cada atualização do rollup requer espaço de Bloco proporcional ao número de contas que tiveram saldo alterado desde a última atualização. A teoria da informação permite apenas que os dados sejam comprimidos até certo ponto, e nesse aspecto não há mais potencial de expansão.
Por outro lado, o uso de diferentes camadas para alcançar a disponibilidade de dados elimina o limite rígido dos benefícios de escalabilidade, mas também traz novas questões de segurança e soberania. Em um Rollup que utiliza BTC para alcançar a disponibilidade de dados, se os dados que o usuário deseja extrair não forem automaticamente publicados na blockchain, o estado do Rollup não pode mudar. 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 sequestrar os fundos dos usuários do BTCRollup produzindo um Bloco em vez de transmitir o Bloco real, para tornar os dados disponíveis.
Então, se realmente conseguirmos implementar o Rollup ideal no BTC, alcançando verdadeiramente saques unilaterais para os usuários, como seria isso?
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.
Revista Bitcoin: Quais são os desafios enfrentados pelo Rollup?
Fonte: Bitcoin Magazine; Compilado por: Wuzhu, Golden Finance
Rollups recentemente se tornaram o foco da expansão do BTC, tornando-se a primeira coisa a realmente roubar o protagonismo da Rede de iluminação em termos de atenção mais ampla. O objetivo dos Rollups é ser uma segunda camada fora da cadeia que não esteja sujeita às 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 antecipadamente (ou ‘emprestados’) 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 implementados em Ethereum e outros sistemas Turing Completo, mas recentemente houve um foco na portabilidade para blockchains baseadas em UTXO (por exemplo, Bitcoin). Este artigo não pretende discutir o estado atual da implementação em Bitcoin, mas sim discutir as funcionalidades do Rollup idealizado que as pessoas têm buscado a longo prazo, as quais dependem de capacidades ainda não suportadas pelo Bitcoin, ou seja, a capacidade de verificar diretamente provas de conhecimento zero (ZKP) em Bitcoin.
A estrutura básica do Roll é a seguinte: uma única conta (UTXO em BTC) 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 existentes no Rollup. Todas essas contas são autorizadas com Chave pública/Chave privada, então, para fazer gastos fora da cadeia, os usuários ainda precisam assinar alguma coisa 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 do Rollup unilateralmente, sem a permissão do operador.
Os operadores de Rollup devem incluir um 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 este ZKP, 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 maliciosamente 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, os utilizadores podem vê-la e aceder-lhe, mas como podem eles colocar os seus ramos na árvore de forma a poderem sair quando quiserem sem permissão?
Rollup Apropriado
Em um Rollup apropriado, sempre que uma nova transação fora da cadeia for confirmada e o estado da conta Rollup for alterado, 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 são apenas adicionadas nas transações de atualização do Rollup.
Em implementações mais avançadas, use a diferença de equilíbrio de contas. Isso essencialmente resume quais contas tiveram fundos adicionados ou removidos durante o processo de atualização. Isso faz com que cada atualização do Rollup inclua apenas alterações no saldo da conta 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 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 fundos), ao mesmo tempo que permite aos utilizadores garantir o acesso às informações necessárias para sair unilateralmente. As regras de rollup exigem que estes dados sejam incluídos no rollup formal fornecido aos utilizadores usando a cadeia de Bloco, ou seja, as transações que não incluem o resumo da conta ou as diferenças de conta são consideradas inválidas.
Prazo de validade
Outra abordagem para lidar com a questão da disponibilidade de dados de retirada do usuário é colocar os dados em outro lugar fora da cadeia de Blocos. Isso introduz questões sutis, 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, especialmente projetadas para servir como 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 podem garantir que estejam absolutamente corretos. No entanto, quando são publicados em um sistema externo, a melhor coisa que podem fazer é verificar a prova SPV, ou seja, que os dados foram publicados em outro sistema.
Isto requer prova de que os dados existem em outras provas na cadeia, o que é essencialmente um problema da Máquina Oracle. A cadeia de Bloco do BTC não consegue verificar totalmente qualquer coisa que aconteça fora do seu próprio bloco na cadeia, a melhor que pode fazer é verificar ZKP. No entanto, ZKP não pode verificar se os dados de rollup do bloco, após a sua geração, são verdadeiramente transmitidos publicamente. Não pode verificar se a informação externa é verdadeiramente tornada pública para todos.
Isto abre as portas para ataques de retenção de dados, ou seja, criar compromissos sobre dados publicados e usá-los para impulsionar o rollup, mas na realidade os dados não estão disponíveis. Isso impede que os utilizadores levantem fundos. A única solução real é depender totalmente do valor e da estrutura de incentivos de sistemas que não sejam o BTC.
Entrar e sair de uma situação difícil
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 blockchain 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 BTCBloco como uma 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 e a quantidade total de transações que podem ser processadas fora da cadeia. Cada atualização do rollup requer espaço de Bloco proporcional ao número de contas que tiveram saldo alterado desde a última atualização. A teoria da informação permite apenas que os dados sejam comprimidos até certo ponto, e nesse aspecto não há mais potencial de expansão.
Por outro lado, o uso de diferentes camadas para alcançar a disponibilidade de dados elimina o limite rígido dos benefícios de escalabilidade, mas também traz novas questões de segurança e soberania. Em um Rollup que utiliza BTC para alcançar a disponibilidade de dados, se os dados que o usuário deseja extrair não forem automaticamente publicados na blockchain, o estado do Rollup não pode mudar. 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 sequestrar os fundos dos usuários do BTCRollup produzindo um Bloco em vez de transmitir o Bloco real, para tornar os dados disponíveis.
Então, se realmente conseguirmos implementar o Rollup ideal no BTC, alcançando verdadeiramente saques unilaterais para os usuários, como seria isso?