Ultrapassar os Limites do Bitcoin: Um Guia Completo para Auditoria da Escala da Camada2 do BTC

Intermediário8/27/2024, 9:33:27 AM
Este artigo explora as soluções de escalonamento da camada 2 do BTC, incluindo a Lightning Network, Sidechains e tecnologias Rollup, que facilitam transações rápidas e de baixo custo, mantendo a descentralização e a segurança da rede BTC. A Lightning Network melhora a velocidade e a privacidade das transações através de canais de pagamento e transações off-chain, enquanto Sidechains como CKB e Stacks oferecem recursos independentes e inovadores através da âncora bidirecional. A tecnologia Rollup aumenta a capacidade de processamento através do processamento de grandes volumes de transações off-chain, apesar dos desafios no tempo de liquidação e recursos computacionais.

Desde a sua criação em 2009, o Bitcoin (BTC), como a primeira criptomoeda do mundo, gradualmente se tornou a pedra angular dos ativos digitais e das finanças descentralizadas. No entanto, à medida que o número de utilizadores e o volume de transações aumentam, várias questões com a rede BTC tornaram-se cada vez mais evidentes:

  • Altas Taxas de Transação: Quando a rede Bitcoin está congestionada, os utilizadores precisam de pagar taxas mais elevadas para garantir que as suas transações são confirmadas rapidamente.
  • Tempo de Confirmação da Transação: A blockchain do Bitcoin gera um novo bloco aproximadamente a cada 10 minutos, o que significa que as transações on-chain normalmente requerem múltiplas confirmações de bloco antes de serem consideradas finais.
  • Limitações do Contrato Inteligente: A linguagem de script do Bitcoin é limitada em funcionalidade, o que torna difícil implementar contratos inteligentes complexos.

Neste artigo, referimo-nos a tecnologias como oRede Lightning, Sidechains e Rollup coletivamente como soluções de escalabilidade BTC Layer2. Estas tecnologias permitem transações rápidas e de baixo custo, mantendo a descentralização e segurança da rede BTC. A introdução de tecnologias Layer2 pode melhorar a velocidade das transações, reduzir os custos das transações, otimizar a experiência do utilizador e expandir a capacidade da rede, fornecendo suporte técnico crucial e inovação para o futuro desenvolvimento do BTC.

Atualmente, a Beosin tornou-se o parceiro oficial de segurança de vários projetos Layer2 de BTC como Merlin Chain e auditou vários protocolos do ecossistema BTC, incluindo Bitmap.Games, Surf Protocol, Savmswap e Mineral. Em auditorias passadas, inúmeras cadeias públicas bem conhecidas, como Ronin Network, Clover, Self Chain e Crust Network, passaram com sucesso nas auditorias de segurança de cadeias públicas da Beosin. A Beosin agora oferece uma solução de auditoria abrangente para o BTC Layer2, fornecendo serviços confiáveis e completos de auditoria de segurança para todo o ecossistema BTC.

A Rede Lightning

O conceito inicial por trás da Lightning Network era conhecido como um "canal de pagamento". A filosofia de design era atualizar continuamente o status de transações não confirmadas através da substituição de transações até que elas fossem eventualmente transmitidas para a rede Bitcoin. Quando Satoshi Nakamoto criou o Bitcoin em 2009, ele já havia proposto a ideia de canais de pagamento, inclusive incluindo um código preliminar para canais de pagamento no Bitcoin 1.0. Esse rascunho permitia que os usuários atualizassem o status da transação antes que fosse confirmada pela rede. No entanto, não foi até o lançamento do white paper intitulado A Rede Lightning do Bitcoin: Pagamento Instantâneo Escalável Fora da Cadeiaque a Lightning Network realmente surgiu e ganhou atenção pública.

Atualmente, a implementação de canais de pagamento e da Lightning Network tornou-se bastante madura. Até o momento, a Lightning Network é composta por 13.325 nós e 49.417 canais, com um total de 4.975 BTC empenhados.

https://1ml.com/

Na Lightning Network, garantir a segurança dos ativos dos usuários durante as transferências é crucial. Abaixo, explicaremos como a Lightning Network opera e como protege a segurança dos ativos do usuário, com base na escala dos nós da rede.

Ambas as partes envolvidas submetem duas transações à Bitcoin mainnet: uma para abrir o canal e outra para o fechar. O processo geralmente envolve três passos:

1. Abertura de Canal:

Primeiro, ambos os utilizadores apostam Bitcoin numa carteira multi-assinatura na rede BTC através da Lightning Network. Depois do Bitcoin ser apostado com sucesso e bloqueado, o canal de pagamento é aberto, permitindo que ambas as partes realizem transações fora da cadeia dentro deste canal.

2.Transações fora da cadeia:

Uma vez que o canal é aberto, todas as transações de transferência entre os utilizadores são processadas dentro da Lightning Network, e não há limite para o número dessas transações off-chain. Estas transações não precisam de ser submetidas imediatamente à mainnet Bitcoin, mas são instantaneamente completadas através do mecanismo off-chain da Lightning Network.

Este método de processamento off-chain aumenta significativamente a velocidade e eficiência das transações, evitando congestionamentos na rede principal do Bitcoin e altas taxas de transação.

3. Encerramento do canal e liquidação do razão:

Quando um dos utilizadores decide sair do canal, ocorre um ajuste final do razão. Este processo garante que todos os fundos no canal sejam distribuídos de acordo com o estado mais recente. Ambos os utilizadores depois levantam os seus saldos ajustados respetivos da carteira multi-assinatura, refletindo a distribuição real dos fundos no momento em que o canal é encerrado. Finalmente, a transação que representa o estado final do razão é submetida à Bitcoin mainnet.

As vantagens da Rede Lightning incluem:

  • Velocidade de transação aumentada:
    A Lightning Network permite aos utilizadores realizar transações fora da cadeia, o que significa que as transações podem ser concluídas quase instantaneamente sem esperar pelos tempos de confirmação do bloco. Isto permite velocidades de transação de segundo nível, melhorando bastante a experiência do utilizador.
  • Privacidade Reforçada:
    As transações fora da cadeia na Lightning Network não precisam ser registradas publicamente na principal cadeia de blocos do Bitcoin, melhorando a privacidade das transações. Apenas a abertura e o fecho dos canais precisam ser registrados na cadeia principal, para que as atividades de transação dos usuários não sejam totalmente divulgadas.
  • Suporte para Micro-Pagamentos:
    A Lightning Network é particularmente adequada para lidar com micro pagamentos, como pagamentos de conteúdo e pagamentos entre dispositivos IoT. Transações tradicionais de Bitcoin, devido às altas taxas, não são ideais para micro pagamentos frequentes, mas a Lightning Network aborda esse problema.

Os desafios enfrentados pela Rede Lightning incluem:

  • Liquidez da rede:
    A Lightning Network depende de o Bitcoin estar pré-bloqueado no canal. Isso significa que os utilizadores devem depositar Bitcoin suficiente nos seus canais de pagamento com antecedência para facilitar transações. Liquidez insuficiente pode levar a falhas de pagamento, especialmente para pagamentos maiores.
  • Encaminhamento:
    Encontrar uma rota eficaz do remetente para o destinatário pode ser uma questão complexa, especialmente à medida que a rede cresce em escala. À medida que o número de nós e canais de rede aumenta, garantir a conclusão bem-sucedida do pagamento se torna mais desafiador.
  • Confiança de Custódia: Os nós podem ser suscetíveis a ataques maliciosos, e os usuários precisam confiar que os nós aos quais estão conectados não tentarão roubar fundos. Existe também a questão de saber se os nós podem evitar vazamentos de chave privada.
  • Normas Técnicas e Interoperabilidade: São necessários padrões técnicos e protocolos consistentes para garantir a interoperabilidade entre diferentes implementações da Lightning Network. Atualmente, várias equipas de desenvolvimento estão a trabalhar em várias implementações da Lightning Network, o que poderia levar a problemas de compatibilidade.
  • Questões de privacidade: Embora a Lightning Network melhore a privacidade das transações de Bitcoin, as informações da transação ainda podem ser rastreadas ou analisadas. Além disso, os operadores de nós de rede podem ver as transações que passam pelos seus nós, comprometendo potencialmente alguma privacidade.

A segurança da Rede Lightning tem um impacto direto na escalabilidade off-chain do Bitcoin e na segurança dos fundos dos utilizadores. Portanto, além dos itens de auditoria comuns para as cadeias públicas (detalhados no apêndice no final deste documento), a Rede Lightning também precisa de abordar os seguintes riscos de segurança-chave:

  • Congestão de canal:
    Avalie a abrangência do design do sistema da Lightning Network para garantir que não seja suscetível a ataques de negação de serviço que possam levar a congestionamentos de canais.
  • Interferência de Canal:
    Avaliar a segurança da estrutura de canais da Lightning Network para garantir que não é vulnerável a ataques de congestionamento de canais.
  • Bloqueio e Desbloqueio de Ativos do Canal:
    Rever os processos de bloqueio e desbloqueio de ativos na Lightning Network para garantir que as transferências de fundos entre on-chain e off-chain sejam seguras e confiáveis durante a abertura ou fecho de canais de pagamento.
  • Atualizações do Estado e Encerramento do Canal:
    Avaliar os processos de atualização do estado dos canais e o mecanismo de encerramento forçado para garantir que, em caso de situação anormal, o estado mais recente possa ser reconhecido e executado com precisão.
  • Travas de tempo e Contratos com Tempo Bloqueado (HTLCs):
    Avaliar a implementação de HTLCs para garantir que as condições de bloqueio de tempo e de hash sejam corretamente aplicadas, evitando possíveis perdas de fundos devido a problemas de janela de tempo.
  • Dependência de carimbos de data/hora da blockchain:
    Avaliar a dependência da Rede Lightning dos carimbos de data/hora da blockchain do Bitcoin para garantir a sincronização adequada dos tempos on-chain e off-chain, prevenindo ataques baseados no tempo.
  • Segurança do Algoritmo de Roteamento: Examine a eficiência e segurança dos algoritmos de roteamento para prevenir riscos de exposição de privacidade e manipulação de roteamento malicioso.
  • Armazenamento de Canal e Recuperação de Dados:
    Verifique o mecanismo de armazenamento do canal e a estratégia de recuperação de dados para garantir que os estados do canal possam ser restaurados no caso de falhas de nós ou desconexões inesperadas, evitando a perda de fundos.

Sidechains

Ao contrário da Lightning Network, uma sidechain é uma blockchain independente que opera em paralelo com a mainchain (como a blockchain BTC) e interopera com ela através de um mecanismo conhecido como uma âncora bidirecional (2WP). O objetivo das sidechains é permitir funcionalidades adicionais e escalabilidade sem alterar o protocolo da mainchain.

Uma sidechain, como uma blockchain independente, tem o seu próprio mecanismo de consenso, nós e regras de processamento de transações. Pode adotar diferentes tecnologias e protocolos de acordo com as necessidades de cenários de aplicação específicos. Através do mecanismo de pino de duas vias, a sidechain comunica com a mainchain, garantindo que os ativos possam ser transferidos livre e seguramente entre elas. A operação do mecanismo de pino de duas vias geralmente envolve os seguintes passos:

  1. O utilizador bloqueia BTC na mainchain. Uma entidade de confiança obtém e utiliza a Verificação Simplificada de Pagamento (SPV) para confirmar se a transação de bloqueio do utilizador foi confirmada.

  2. A entidade confiável emite uma quantidade equivalente de tokens para o usuário na sidechain.

  3. Após completar as suas transações, o utilizador bloqueia as restantes tokens na sidechain.

  4. Após verificar a legitimidade das transações, a entidade confiável desbloqueia e liberta o valor correspondente de BTC para o utilizador na mainchain.

Nota 1: As entidades confiáveis desempenham um papel crítico no mecanismo de pino de duas vias, gerenciando o bloqueio e a liberação de ativos. Estas entidades devem possuir altos níveis de confiança e capacidade técnica para garantir a segurança dos ativos dos utilizadores.

Nota 2: A verificação SPV permite que um nó verifique a validade de uma transação específica sem baixar toda a blockchain. Os nós SPV só precisam baixar os cabeçalhos dos blocos e usar a Árvore de Merkle para verificar se a transação está incluída no bloco.

Projetos de Sidechain Representativos

CKB (Rede Nervos) \
Nervos Network é um ecossistema de blockchain público de código aberto projetado para alavancar os benefícios de segurança e descentralização do mecanismo de consenso Proof of Work (PoW) do Bitcoin, ao mesmo tempo que introduz um modelo UTXO mais escalável e flexível para lidar com transações. No seu cerne está a Base de Conhecimento Comum (CKB), uma blockchain de Camada 1 construída em RISC-V e que utiliza PoW como mecanismo de consenso. Estende o modelo UTXO para o modelo de Célula, permitindo armazenar qualquer dado e suportar scripts escritos em qualquer idioma para execução como contratos inteligentes on-chain.

Stacks

Stacks conecta cada bloco Stacks a um bloco Bitcoin através do seu mecanismo de Prova de Transferência (PoX). Para facilitar o desenvolvimento de contratos inteligentes, Stacks projetou a linguagem de programação Clarity. Em Clarity, o obter-informações-de-bloqueio-de-queima?a função permite a entrada de uma altura de bloco Bitcoin para recuperar o hash do cabeçalho do bloco, enquanto o altura-de-bloqueio-de-queimaA palavra-chave recupera a altura do bloco atual da cadeia Bitcoin. Estas funções permitem que os contratos inteligentes Clarity leiam o estado da cadeia base do Bitcoin, permitindo que as transações Bitcoin acionem contratos. Ao executar automaticamente estes contratos inteligentes, o Stacks estende a funcionalidade do Bitcoin. Para uma análise detalhada do Stacks, pode consultar o artigo de pesquisa anterior da Beosin:O que é Stacks? Que desafios podem enfrentar as Stacks da rede de camada 2 do BTC?

Vantagens das Sidechains

  • As sidechains podem adotar diferentes tecnologias e protocolos, permitindo vários experimentos e inovações sem afetar a estabilidade e segurança da mainchain.
  • As sidechains podem introduzir funcionalidades não presentes na mainchain, como contratos inteligentes, proteção de privacidade e emissão de tokens, enriquecendo os cenários de aplicação do ecossistema blockchain.

Desafios das Sidechains

  • As sidechains têm mecanismos de consenso independentes, que podem não ser tão seguros como o principal BTC. Se o mecanismo de consenso de uma sidechain for fraco ou tiver vulnerabilidades, isso poderá levar a um ataque de 51% ou outras formas de ataques, colocando em risco a segurança dos ativos dos utilizadores. A segurança do principal BTC depende do seu enorme poder de hash e da ampla distribuição de nós, que uma sidechain pode não ser capaz de igualar.
  • A implementação do mecanismo de pino de duas vias requer algoritmos criptográficos complexos e protocolos. Se houver vulnerabilidades dentro deste mecanismo, isso poderia levar a problemas nas transferências de ativos entre a cadeia principal e a cadeia lateral, potencialmente resultando em perda ou roubo de ativos.
  • Para equilibrar velocidade e segurança, a maioria das sidechains é mais centralizada do que a mainchain.

A Camada 2 é um sistema blockchain completo, por isso os itens gerais de auditoria para blockchains públicas também se aplicam às sidechains. Para mais detalhes, consulte o apêndice no final deste artigo.

Além disso, devido às suas características únicas, as sidechains requerem algumas auditorias adicionais:

  • Segurança do Protocolo de Consenso:
    Reveja se o protocolo de consenso da sidechain (por exemplo, PoW, PoS, DPoS) foi completamente validado e testado quanto a vulnerabilidades potenciais ou vetores de ataque, como ataques de 51% ou ataques de longo alcance.
  • Segurança do Nó de Consenso:
    Avalie a segurança dos nós de consenso, incluindo gestão de chaves, proteção de nós e backups de redundância, para evitar que os nós sejam comprometidos ou abusados.
  • Bloqueio e Liberação de Ativos:
    Examine o mecanismo de pino bidirecional entre a sidechain e a mainchain para garantir que os contratos inteligentes responsáveis pelo bloqueio e liberação de ativos sejam seguros e confiáveis, evitando gastos duplos, perda de ativos ou falhas de bloqueio.
  • Verificação entre Cadeias:
    Verifique a precisão e segurança da verificação cruzada de forma a garantir que o processo seja descentralizado e à prova de adulteração, evitando falhas na verificação ou verificação maliciosa.
  • Auditoria de código de contratos inteligentes:
    Realize uma auditoria minuciosa de todos os contratos inteligentes em execução na sidechain, detetando quaisquer vulnerabilidades ou backdoors potenciais, especialmente na lógica de contrato que lida com operações cross-chain.
  • Mecanismo de atualização:
    Rever a segurança do mecanismo de atualização do contrato inteligente, garantindo que existam processos adequados de auditoria e consenso da comunidade para evitar atualizações maliciosas ou manipulação de contratos.
  • Comunicação entre nós:
    Inspeccionar a segurança do protocolo de comunicação entre os nós da sidechain, garantindo a utilização de canais encriptados para prevenir ataques de homem-no-meio ou violações de dados.
  • Comunicação entre Cadeias:
    Avaliar os canais de comunicação entre a sidechain e a mainchain para garantir a integridade e autenticidade dos dados, evitando que a comunicação seja sequestrada ou adulterada.
  • Timestamp e Tempo de Bloco:
    Verifique o mecanismo de sincronização de tempo da sidechain para garantir consistência e precisão no tempo de geração de blocos, evitando ataques ou rollback de blocos causados por discrepâncias de tempo.
  • Segurança da Governança On-Chain:
    Rever o mecanismo de governação da sidechain para garantir transparência e segurança nos processos de votação, proposta e tomada de decisão, prevenindo controlo ou ataques maliciosos.
  • Auditoria da Economia do Token:
    Examinar a tokenomics da sidechain, incluindo a distribuição de tokens, mecanismos de incentivo e modelos de inflação, garantindo que os incentivos econômicos não levem a comportamentos maliciosos ou instabilidade do sistema.
  • Mecanismo de Taxa:
    Rever o mecanismo de taxa de transação da sidechain para garantir que esteja alinhado com as necessidades dos utilizadores da mainchain e da sidechain, prevenindo a manipulação de taxas ou congestão de rede.
  • Segurança dos Ativos:
    Auditar o mecanismo de gestão de ativos on-chain para garantir que os processos de armazenamento, transferência e queima de ativos sejam seguros e fiáveis, sem risco de acesso não autorizado ou roubo.
  • Gestão de Chaves:
    Inspeccione a estratégia de gestão de chaves da sidechain para garantir a segurança das chaves privadas e o controlo de acesso, evitando a fuga ou uso indevido das chaves.

Rollup

Rollup é uma solução de escalonamento da Camada 2 projetada para melhorar o throughput e eficiência de transações blockchain. Ao agregar um grande número de transações ("Rolling up") e processá-las off-chain, reduz a carga na cadeia principal, enviando apenas os resultados finais de volta para ela.

Rollup vem em dois tipos principais: zk-Rollup e op-Rollup. No entanto, ao contrário do Ethereum, a falta de completude de Turing do Bitcoin impede o uso de contratos inteligentes para verificação de prova de conhecimento zero (ZKP) diretamente em sua rede. Isso significa que soluções tradicionais de zk-Rollup não podem ser implementadas no Bitcoin. Então, como o zk-Rollup pode ser usado para alcançar a escalabilidade da Camada 2 do Bitcoin? Vamos explorar o projeto da Rede B² como exemplo:

Para realizar a verificação de ZKP no Bitcoin, a B² Network desenvolveu um script Taproot que integra a verificação de prova de conhecimento zero do zk-Rollup com o mecanismo de desafio de incentivo do op-Rollup. Aqui está como funciona:

  1. A rede B² primeiro agrega todas as transações do usuário em um Rollup.
  2. Um sequenciador ordena então essas transações Rollup, armazenando-as em armazenamento descentralizado e processando-as através de um zkEVM.
  3. Após a sincronização do estado da cadeia Bitcoin, o zkEVM processa as execuções de contratos e outras transações, consolidando os resultados e enviando-os para o agregador.
  4. O provador gera uma prova de conhecimento zero e envia-a para o agregador, que combina as transações e a prova e as encaminha para os Nós B².
  5. Nós B² verificamos a prova de conhecimento zero e criamos um script Taproot com base nos dados do Rollup armazenados no armazenamento descentralizado.
  6. O Taproot, que é uma UTXO com um valor de 1 satoshi, contém B² Inscrição na sua estrutura de dados, armazenando todos os dados Rollup, enquanto o Tapleaf armazena os dados de verificação de todas as provas. Após passar pelo mecanismo de desafio de incentivo, é submetido ao Bitcoin como um compromisso baseado em zk-proof.

Vantagens do Rollup:

  • Rollup herda as características de segurança e descentralização da cadeia principal. Ao enviar regularmente dados de transações e estado para a cadeia principal, assegura a integridade e transparência dos dados.
  • Rollup pode ser integrado de forma transparente nas redes blockchain existentes, como o Ethereum, permitindo aos programadores aproveitar facilmente os seus benefícios sem modificações significativas nos contratos inteligentes e aplicações existentes.
  • O Rollup aumenta significativamente a capacidade de transações ao processar um grande número de transações fora da cadeia e enviá-las em lotes para a cadeia principal, resultando num aumento notável de transações por segundo (TPS).
  • Uma vez que as transações Rollup são processadas fora da cadeia, reduzem drasticamente os recursos computacionais e o espaço de armazenamento necessários para as transações na cadeia, diminuindo assim significativamente as taxas de transação do usuário.

Desafios do Rollup:

  • Se os dados off-chain se tornarem indisponíveis, os utilizadores podem não conseguir verificar transações e recuperar o seu estado.
  • As transações Rollup precisam ser processadas em lotes e eventualmente enviadas para a cadeia principal, o que pode levar a tempos de liquidação mais longos. Isso é especialmente verdadeiro no caso do op-Rollup, onde há um período de disputa, fazendo com que os utilizadores esperem mais tempo pela confirmação final da transação.
  • Embora a ZK Rollup forneça maior segurança e confirmação instantânea, requer recursos computacionais substanciais para gerar provas de conhecimento zero.

Dado que o Rollup é utilizado, os seus principais itens de auditoria de segurança são consistentes com os da Camada 2 da Ethereum.

Outros (Babilónia)

Para além das soluções tradicionais de camada 2 do BTC, surgiram alguns novos protocolos de terceiros relacionados com o ecossistema BTC, tais como Babylon:

Babylon tem como objetivo transformar 21 milhões de BTC em ativos de staking descentralizados. Ao contrário de outras soluções de Camada 2 BTC, Babylon não se concentra em escalar a rede BTC. Em vez disso, é uma blockchain única com um protocolo de staking BTC especializado projetado principalmente para interagir com as cadeias de Proof of Stake (PoS). O objetivo é fazer staking de BTC para aumentar a segurança das cadeias PoS, abordando questões como ataques de longo alcance e riscos de centralização.

A arquitetura está dividida em três camadas:

  • Camada Bitcoin:Esta é a base sólida de Babilónia, aproveitando a segurança renomada do Bitcoin para garantir que todas as transações sejam ultra-seguras, tal como são na rede Bitcoin.
  • Camada Babilónia:O núcleo de Babilónia, esta blockchain personalizada conecta o Bitcoin a várias cadeias PoS. Ele lida com transações, executa contratos inteligentes e garante a operação suave em todo o ecossistema.
  • Camada de Cadeia PoS: A camada superior consiste em várias cadeias PoS, cada uma selecionada por suas vantagens únicas. Esta estrutura concede ao BabylonChain notável escalabilidade e flexibilidade, permitindo que os usuários se beneficiem dos melhores recursos de diferentes blockchains PoS.

Babylon opera assinando blocos finais na cadeia BTC para proteger cadeias PoS. Isto alarga essencialmente o protocolo de base com uma ronda adicional de assinaturas. Estas assinaturas na ronda final +1 têm uma característica única: são Assinaturas Únicas Extraíveis (EOTS). O objetivo é integrar pontos de verificação PoS na cadeia BTC, abordando as questões de longos períodos não vinculativos e ataques de longo alcance em sistemas PoS.

Vantagens de Babilônia:

  • Babilônia acelera o processo de desvinculação da participação PoS.
  • Ao apostar BTC, Babilónia ajuda a aliviar as pressões inflacionárias na rede PoS correspondente.
  • Babylon abre novos caminhos para detentores de BTC ganharem retornos.

Desafios da Babilónia:

  • As taxas de recompensa de staking e outros fatores econômicos impactam significativamente o incentivo para o staking de BTC.
  • Não existe uniformidade nos mecanismos de recompensa entre as diferentes cadeias PoS.

O foco na segurança varia dependendo da implementação específica de protocolos de terceiros. Para Babilônia, alguns pontos-chave de auditoria de segurança incluem:

1. Segurança de Contrato Inteligente: Os contratos de staking em BTC são implementados através de scripts UTXO, que requerem atenção cuidadosa à sua segurança. 2. Segurança do Algoritmo de Assinatura: A segurança do algoritmo de assinatura utilizado para gerir o staking no contrato é crucial, pois afeta a geração e verificação de assinaturas. 3. Design do Modelo Econômico: O modelo econômico do protocolo, especialmente em termos de recompensas e penalidades, deve ser analisado para garantir que não leve à perda de ativos do usuário.

Apêndice:

Itens Gerais de Auditoria para Cadeias Públicas & Camada 2

  • Estouro de inteiro:Verificar o overflow e underflow de inteiros.
  • Loop Infinito:Verifique se as condições do loop no programa são razoáveis.
  • Recursão Infinita:Certifique-se de que as condições de saída para chamadas recursivas estão devidamente definidas.
  • Condição de corrida:Examinar operações de acesso a recursos partilhados em condições concorrentes.
  • Exceções não tratadas:Identificar código que lança exceções que causam a saída inesperada do programa.
  • Divisão por Zero:Verifique se existem casos em que a divisão por zero possa ocorrer.
  • Conversão de Tipo:Garantir que as conversões de tipo sejam precisas e que nenhuma informação crítica seja perdida no processo.
  • Array Fora dos Limites:Certifique-se de que os elementos do array são acessados dentro de limites válidos.
  • Vulnerabilidades de deserialização:Verificar problemas durante o processo de desserialização.
  • Implementação de Segurança da Funcionalidade:Verifique se a implementação das interfaces RPC é segura e consistente com o seu design funcional.
  • Configurações sensíveis de permissão da interface RPC:Certifique-se de que as permissões de acesso para interfaces RPC sensíveis estão configuradas adequadamente.
  • Mecanismo de Transmissão Criptografada:Verificar a utilização de protocolos de transmissão encriptada, como TLS.
  • Análise de Formato de Dados de Pedido:Verifique o processo de análise dos formatos de dados de solicitação.
  • Ataque de Desbloqueio de Carteira:Certifique-se de que os fundos não são roubados através de pedidos RPC quando um nó desbloqueia sua carteira.
  • Segurança Web Tradicional:Verifique as seguintes vulnerabilidades: Cross-Site Scripting (XSS), Injeção de Modelos, Vulnerabilidades de Componentes de Terceiros, Poluição de Parâmetros HTTP, Injeção SQL, Injeção XXE, Vulnerabilidades de Desserialização, Vulnerabilidades SSRF, Injeção de Código, Inclusão de Arquivos Locais, Inclusão de Arquivos Remotos, Injeção de Comandos, etc.
  • Mecanismo de Autenticação e Identificação de Nó de Rede:Certifique-se de que existe um mecanismo de reconhecimento de identidade de nó e que não pode ser contornado.
  • Envenenamento da Tabela de Roteamento:Verifique se a tabela de roteamento pode ser manipulada ou sobrescrita arbitrariamente.
  • Algoritmo de Descoberta de Nós:Certifique-se de que o algoritmo de descoberta de nós seja equilibrado e imprevisível, abordando questões como desequilíbrios em algoritmos de distância.
  • Auditoria de Ocupação de Conexão:Certifique-se de que o limite e a gestão dos nós conectados na rede p2p sejam razoáveis.
  • Ataque Eclipse:Avalie o custo e o impacto dos ataques de eclipse, fornecendo análises quantitativas, se necessário.
  • Ataque Sybil:Avalie o mecanismo de consenso de votação e analise as estratégias para verificar a elegibilidade para votar.
  • Ataque de escuta: Verifique se o protocolo de comunicação não divulga informações privadas.
  • Ataque Alienígena:Avaliar se os nós conseguem reconhecer outros nós da mesma rede blockchain.
  • Sequestro de Tempo:Verificar o mecanismo de cálculo do tempo de rede nos nós.
  • Ataque de Exaustão de Memória:Verifique áreas de alto consumo de memória.
  • Ataque de Exaustão de Disco:Verifique áreas que envolvam armazenamento de arquivos grandes.
  • Ataque de Estresse de Soquete:Verificar estratégias que limitem o número de conexões.
  • Ataque de Exaustão de Manipulação de Kernel:Certifique-se de que os limites na criação de alças de kernel, como alças de arquivo, sejam razoáveis.
  • Vazamentos de memória persistentes:Identificar áreas propensas a vazamentos de memória.
  • Segurança do Algoritmo de Hash:Certifique-se de que o algoritmo de hash é resistente a colisões.
  • Segurança do Algoritmo de Assinatura Digital:Verifique a segurança do algoritmo de assinatura e sua implementação.
  • Segurança do Algoritmo de Criptografia: Certifique-se de que o algoritmo de encriptação e a sua implementação são seguros.
  • Segurança do Gerador de Números Aleatórios:Verifique se os algoritmos críticos de geração de números aleatórios são razoáveis.
  • Segurança na Implementação do BFT:Avaliar a segurança da implementação do algoritmo de Tolerância a Falhas Bizantinas (BFT).
  • Regra de Escolha de Fork:Verifique a regra de escolha do garfo para garantir a segurança.
  • Detecção de Centralização:Identificar qualquer centralização excessiva no design do sistema.
  • Auditoria do Mecanismo de Incentivo:Avaliar o impacto do mecanismo de incentivo na segurança.
  • Ataque de Gasto Duplo:Verifique se o consenso pode defender-se contra ataques de gastos duplos.
  • Auditoria de Ataque MEV:Avaliar o impacto do Valor Máximo Extraível (MEV) na equidade da cadeia durante o empacotamento de blocos.
  • Auditoria do Processo de Sincronização de Blocos:Verifique problemas de segurança durante o processo de sincronização.
  • Auditoria de Análise de Formato de Bloco:Avaliar as preocupações de segurança durante a análise de formato de bloco, como erros de análise que levam a falhas.
  • Auditoria do Processo de Geração de Blocos:Rever a segurança do processo de geração de blocos, incluindo a construção da raiz da árvore de Merkle.
  • Auditoria do Processo de Verificação de Blocos:Verifique os itens de conteúdo das assinaturas de bloco e se a lógica de verificação é adequada.
  • Auditoria da Lógica de Confirmação de Blocos:Avalie se o algoritmo de confirmação de bloco e sua implementação são razoáveis.
  • Colisão de Hash de Bloco:Verifique como as colisões de hash de bloco são construídas e se o tratamento de tais colisões é apropriado.
  • Limites de Recursos de Processamento de Blocos:Verifique se os limites de recursos para o pool de blocos órfãos, a computação de verificação e a endereçamento de disco são razoáveis.
  • Auditoria do Processo de Sincronização de Transações:Rever problemas de segurança durante o processo de sincronização da transação.
  • Colisão de Hash de Transação:Verifique como as colisões de hash de transação são construídas e tratadas.
  • Análise de Formato de Transação:Avaliar as preocupações de segurança durante a análise de formato de transação, como erros de análise que levam a falhas.
  • Verificação de legitimidade da transação:Verificar os itens de conteúdo de várias assinaturas de transação e se a lógica de verificação é suficiente.
  • Limites de Recursos de Processamento de Transações:Reverificar se os limites de recursos para a pool de transações, cálculo de verificação e endereçamento de disco são razoáveis.
  • Ataque de maleabilidade de transação:Avalie se as transações podem alterar campos internos (por exemplo, ScriptSig) para alterar o hash da transação sem afetar a sua validade.
  • Auditoria de Ataque de Reprodução de Transações:Verifique a deteção do sistema de ataques de repetição de transações.
  • Verificação de bytecode de contrato inteligente:Rever a segurança do processo de verificação de contrato da máquina virtual, como verificar overflows de inteiros e loops infinitos.
  • Execução de Código de Byte de Contrato Inteligente:Avaliar as preocupações de segurança durante a execução de bytecode pela máquina virtual, como overflows de inteiros e loops infinitos.
  • Modelo de Gás:Certifique-se de que as taxas de processamento de transações/execução de contratos para cada operação atômica sejam proporcionais ao consumo de recursos.
  • Integridade do Registo:Certifique-se de que as informações críticas sejam registradas nos logs.
  • Segurança de Registro:Verifique se o processamento de log introduz problemas de segurança, como transbordamentos de inteiro.
  • Registos Contendo Informações Sensíveis:Certifique-se de que os registos não contenham chaves ou outras informações privadas.
  • Armazenamento de Registos:Verificar se o registo excessivo leva ao consumo de recursos nos nós.
  • Segurança da Cadeia de Fornecimento de Código de Nó:Rever problemas conhecidos com todas as bibliotecas de terceiros, componentes e versões de estrutura de cadeia pública.

Como uma das primeiras empresas de segurança em blockchain a nível global especializada em verificação formal, a Beosin concentra-se num ecossistema abrangente de “segurança + conformidade”. A empresa estabeleceu sucursais em mais de 10 países e regiões em todo o mundo. Os seus serviços englobam produtos de conformidade em blockchain e serviços de segurança num único local, incluindo auditorias de segurança de código antes do lançamento do projeto, monitorização de riscos de segurança em tempo real e interceção durante a operação do projeto, recuperação de ativos roubados, combate à lavagem de dinheiro (AML) para ativos virtuais e avaliações de conformidade que cumprem os requisitos regulamentares locais. Damos as boas-vindas a projetos com necessidades de auditoria para contactar a equipa de segurança da Beosin.

Aviso legal:

  1. Este artigo é reproduzido a partir de [ Beosin], Todos os direitos autorais pertencem ao autor original [Beosin]. Se houver objeções a esta reimpressão, por favor entre em contato com o Gate Aprenderequipa e eles vão tratar disso prontamente.
  2. Aviso de Responsabilidade: As opiniões expressas neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipa Gate Learn. Salvo indicação em contrário, copiar, distribuir ou plagiar os artigos traduzidos é proibido.

Ultrapassar os Limites do Bitcoin: Um Guia Completo para Auditoria da Escala da Camada2 do BTC

Intermediário8/27/2024, 9:33:27 AM
Este artigo explora as soluções de escalonamento da camada 2 do BTC, incluindo a Lightning Network, Sidechains e tecnologias Rollup, que facilitam transações rápidas e de baixo custo, mantendo a descentralização e a segurança da rede BTC. A Lightning Network melhora a velocidade e a privacidade das transações através de canais de pagamento e transações off-chain, enquanto Sidechains como CKB e Stacks oferecem recursos independentes e inovadores através da âncora bidirecional. A tecnologia Rollup aumenta a capacidade de processamento através do processamento de grandes volumes de transações off-chain, apesar dos desafios no tempo de liquidação e recursos computacionais.

Desde a sua criação em 2009, o Bitcoin (BTC), como a primeira criptomoeda do mundo, gradualmente se tornou a pedra angular dos ativos digitais e das finanças descentralizadas. No entanto, à medida que o número de utilizadores e o volume de transações aumentam, várias questões com a rede BTC tornaram-se cada vez mais evidentes:

  • Altas Taxas de Transação: Quando a rede Bitcoin está congestionada, os utilizadores precisam de pagar taxas mais elevadas para garantir que as suas transações são confirmadas rapidamente.
  • Tempo de Confirmação da Transação: A blockchain do Bitcoin gera um novo bloco aproximadamente a cada 10 minutos, o que significa que as transações on-chain normalmente requerem múltiplas confirmações de bloco antes de serem consideradas finais.
  • Limitações do Contrato Inteligente: A linguagem de script do Bitcoin é limitada em funcionalidade, o que torna difícil implementar contratos inteligentes complexos.

Neste artigo, referimo-nos a tecnologias como oRede Lightning, Sidechains e Rollup coletivamente como soluções de escalabilidade BTC Layer2. Estas tecnologias permitem transações rápidas e de baixo custo, mantendo a descentralização e segurança da rede BTC. A introdução de tecnologias Layer2 pode melhorar a velocidade das transações, reduzir os custos das transações, otimizar a experiência do utilizador e expandir a capacidade da rede, fornecendo suporte técnico crucial e inovação para o futuro desenvolvimento do BTC.

Atualmente, a Beosin tornou-se o parceiro oficial de segurança de vários projetos Layer2 de BTC como Merlin Chain e auditou vários protocolos do ecossistema BTC, incluindo Bitmap.Games, Surf Protocol, Savmswap e Mineral. Em auditorias passadas, inúmeras cadeias públicas bem conhecidas, como Ronin Network, Clover, Self Chain e Crust Network, passaram com sucesso nas auditorias de segurança de cadeias públicas da Beosin. A Beosin agora oferece uma solução de auditoria abrangente para o BTC Layer2, fornecendo serviços confiáveis e completos de auditoria de segurança para todo o ecossistema BTC.

A Rede Lightning

O conceito inicial por trás da Lightning Network era conhecido como um "canal de pagamento". A filosofia de design era atualizar continuamente o status de transações não confirmadas através da substituição de transações até que elas fossem eventualmente transmitidas para a rede Bitcoin. Quando Satoshi Nakamoto criou o Bitcoin em 2009, ele já havia proposto a ideia de canais de pagamento, inclusive incluindo um código preliminar para canais de pagamento no Bitcoin 1.0. Esse rascunho permitia que os usuários atualizassem o status da transação antes que fosse confirmada pela rede. No entanto, não foi até o lançamento do white paper intitulado A Rede Lightning do Bitcoin: Pagamento Instantâneo Escalável Fora da Cadeiaque a Lightning Network realmente surgiu e ganhou atenção pública.

Atualmente, a implementação de canais de pagamento e da Lightning Network tornou-se bastante madura. Até o momento, a Lightning Network é composta por 13.325 nós e 49.417 canais, com um total de 4.975 BTC empenhados.

https://1ml.com/

Na Lightning Network, garantir a segurança dos ativos dos usuários durante as transferências é crucial. Abaixo, explicaremos como a Lightning Network opera e como protege a segurança dos ativos do usuário, com base na escala dos nós da rede.

Ambas as partes envolvidas submetem duas transações à Bitcoin mainnet: uma para abrir o canal e outra para o fechar. O processo geralmente envolve três passos:

1. Abertura de Canal:

Primeiro, ambos os utilizadores apostam Bitcoin numa carteira multi-assinatura na rede BTC através da Lightning Network. Depois do Bitcoin ser apostado com sucesso e bloqueado, o canal de pagamento é aberto, permitindo que ambas as partes realizem transações fora da cadeia dentro deste canal.

2.Transações fora da cadeia:

Uma vez que o canal é aberto, todas as transações de transferência entre os utilizadores são processadas dentro da Lightning Network, e não há limite para o número dessas transações off-chain. Estas transações não precisam de ser submetidas imediatamente à mainnet Bitcoin, mas são instantaneamente completadas através do mecanismo off-chain da Lightning Network.

Este método de processamento off-chain aumenta significativamente a velocidade e eficiência das transações, evitando congestionamentos na rede principal do Bitcoin e altas taxas de transação.

3. Encerramento do canal e liquidação do razão:

Quando um dos utilizadores decide sair do canal, ocorre um ajuste final do razão. Este processo garante que todos os fundos no canal sejam distribuídos de acordo com o estado mais recente. Ambos os utilizadores depois levantam os seus saldos ajustados respetivos da carteira multi-assinatura, refletindo a distribuição real dos fundos no momento em que o canal é encerrado. Finalmente, a transação que representa o estado final do razão é submetida à Bitcoin mainnet.

As vantagens da Rede Lightning incluem:

  • Velocidade de transação aumentada:
    A Lightning Network permite aos utilizadores realizar transações fora da cadeia, o que significa que as transações podem ser concluídas quase instantaneamente sem esperar pelos tempos de confirmação do bloco. Isto permite velocidades de transação de segundo nível, melhorando bastante a experiência do utilizador.
  • Privacidade Reforçada:
    As transações fora da cadeia na Lightning Network não precisam ser registradas publicamente na principal cadeia de blocos do Bitcoin, melhorando a privacidade das transações. Apenas a abertura e o fecho dos canais precisam ser registrados na cadeia principal, para que as atividades de transação dos usuários não sejam totalmente divulgadas.
  • Suporte para Micro-Pagamentos:
    A Lightning Network é particularmente adequada para lidar com micro pagamentos, como pagamentos de conteúdo e pagamentos entre dispositivos IoT. Transações tradicionais de Bitcoin, devido às altas taxas, não são ideais para micro pagamentos frequentes, mas a Lightning Network aborda esse problema.

Os desafios enfrentados pela Rede Lightning incluem:

  • Liquidez da rede:
    A Lightning Network depende de o Bitcoin estar pré-bloqueado no canal. Isso significa que os utilizadores devem depositar Bitcoin suficiente nos seus canais de pagamento com antecedência para facilitar transações. Liquidez insuficiente pode levar a falhas de pagamento, especialmente para pagamentos maiores.
  • Encaminhamento:
    Encontrar uma rota eficaz do remetente para o destinatário pode ser uma questão complexa, especialmente à medida que a rede cresce em escala. À medida que o número de nós e canais de rede aumenta, garantir a conclusão bem-sucedida do pagamento se torna mais desafiador.
  • Confiança de Custódia: Os nós podem ser suscetíveis a ataques maliciosos, e os usuários precisam confiar que os nós aos quais estão conectados não tentarão roubar fundos. Existe também a questão de saber se os nós podem evitar vazamentos de chave privada.
  • Normas Técnicas e Interoperabilidade: São necessários padrões técnicos e protocolos consistentes para garantir a interoperabilidade entre diferentes implementações da Lightning Network. Atualmente, várias equipas de desenvolvimento estão a trabalhar em várias implementações da Lightning Network, o que poderia levar a problemas de compatibilidade.
  • Questões de privacidade: Embora a Lightning Network melhore a privacidade das transações de Bitcoin, as informações da transação ainda podem ser rastreadas ou analisadas. Além disso, os operadores de nós de rede podem ver as transações que passam pelos seus nós, comprometendo potencialmente alguma privacidade.

A segurança da Rede Lightning tem um impacto direto na escalabilidade off-chain do Bitcoin e na segurança dos fundos dos utilizadores. Portanto, além dos itens de auditoria comuns para as cadeias públicas (detalhados no apêndice no final deste documento), a Rede Lightning também precisa de abordar os seguintes riscos de segurança-chave:

  • Congestão de canal:
    Avalie a abrangência do design do sistema da Lightning Network para garantir que não seja suscetível a ataques de negação de serviço que possam levar a congestionamentos de canais.
  • Interferência de Canal:
    Avaliar a segurança da estrutura de canais da Lightning Network para garantir que não é vulnerável a ataques de congestionamento de canais.
  • Bloqueio e Desbloqueio de Ativos do Canal:
    Rever os processos de bloqueio e desbloqueio de ativos na Lightning Network para garantir que as transferências de fundos entre on-chain e off-chain sejam seguras e confiáveis durante a abertura ou fecho de canais de pagamento.
  • Atualizações do Estado e Encerramento do Canal:
    Avaliar os processos de atualização do estado dos canais e o mecanismo de encerramento forçado para garantir que, em caso de situação anormal, o estado mais recente possa ser reconhecido e executado com precisão.
  • Travas de tempo e Contratos com Tempo Bloqueado (HTLCs):
    Avaliar a implementação de HTLCs para garantir que as condições de bloqueio de tempo e de hash sejam corretamente aplicadas, evitando possíveis perdas de fundos devido a problemas de janela de tempo.
  • Dependência de carimbos de data/hora da blockchain:
    Avaliar a dependência da Rede Lightning dos carimbos de data/hora da blockchain do Bitcoin para garantir a sincronização adequada dos tempos on-chain e off-chain, prevenindo ataques baseados no tempo.
  • Segurança do Algoritmo de Roteamento: Examine a eficiência e segurança dos algoritmos de roteamento para prevenir riscos de exposição de privacidade e manipulação de roteamento malicioso.
  • Armazenamento de Canal e Recuperação de Dados:
    Verifique o mecanismo de armazenamento do canal e a estratégia de recuperação de dados para garantir que os estados do canal possam ser restaurados no caso de falhas de nós ou desconexões inesperadas, evitando a perda de fundos.

Sidechains

Ao contrário da Lightning Network, uma sidechain é uma blockchain independente que opera em paralelo com a mainchain (como a blockchain BTC) e interopera com ela através de um mecanismo conhecido como uma âncora bidirecional (2WP). O objetivo das sidechains é permitir funcionalidades adicionais e escalabilidade sem alterar o protocolo da mainchain.

Uma sidechain, como uma blockchain independente, tem o seu próprio mecanismo de consenso, nós e regras de processamento de transações. Pode adotar diferentes tecnologias e protocolos de acordo com as necessidades de cenários de aplicação específicos. Através do mecanismo de pino de duas vias, a sidechain comunica com a mainchain, garantindo que os ativos possam ser transferidos livre e seguramente entre elas. A operação do mecanismo de pino de duas vias geralmente envolve os seguintes passos:

  1. O utilizador bloqueia BTC na mainchain. Uma entidade de confiança obtém e utiliza a Verificação Simplificada de Pagamento (SPV) para confirmar se a transação de bloqueio do utilizador foi confirmada.

  2. A entidade confiável emite uma quantidade equivalente de tokens para o usuário na sidechain.

  3. Após completar as suas transações, o utilizador bloqueia as restantes tokens na sidechain.

  4. Após verificar a legitimidade das transações, a entidade confiável desbloqueia e liberta o valor correspondente de BTC para o utilizador na mainchain.

Nota 1: As entidades confiáveis desempenham um papel crítico no mecanismo de pino de duas vias, gerenciando o bloqueio e a liberação de ativos. Estas entidades devem possuir altos níveis de confiança e capacidade técnica para garantir a segurança dos ativos dos utilizadores.

Nota 2: A verificação SPV permite que um nó verifique a validade de uma transação específica sem baixar toda a blockchain. Os nós SPV só precisam baixar os cabeçalhos dos blocos e usar a Árvore de Merkle para verificar se a transação está incluída no bloco.

Projetos de Sidechain Representativos

CKB (Rede Nervos) \
Nervos Network é um ecossistema de blockchain público de código aberto projetado para alavancar os benefícios de segurança e descentralização do mecanismo de consenso Proof of Work (PoW) do Bitcoin, ao mesmo tempo que introduz um modelo UTXO mais escalável e flexível para lidar com transações. No seu cerne está a Base de Conhecimento Comum (CKB), uma blockchain de Camada 1 construída em RISC-V e que utiliza PoW como mecanismo de consenso. Estende o modelo UTXO para o modelo de Célula, permitindo armazenar qualquer dado e suportar scripts escritos em qualquer idioma para execução como contratos inteligentes on-chain.

Stacks

Stacks conecta cada bloco Stacks a um bloco Bitcoin através do seu mecanismo de Prova de Transferência (PoX). Para facilitar o desenvolvimento de contratos inteligentes, Stacks projetou a linguagem de programação Clarity. Em Clarity, o obter-informações-de-bloqueio-de-queima?a função permite a entrada de uma altura de bloco Bitcoin para recuperar o hash do cabeçalho do bloco, enquanto o altura-de-bloqueio-de-queimaA palavra-chave recupera a altura do bloco atual da cadeia Bitcoin. Estas funções permitem que os contratos inteligentes Clarity leiam o estado da cadeia base do Bitcoin, permitindo que as transações Bitcoin acionem contratos. Ao executar automaticamente estes contratos inteligentes, o Stacks estende a funcionalidade do Bitcoin. Para uma análise detalhada do Stacks, pode consultar o artigo de pesquisa anterior da Beosin:O que é Stacks? Que desafios podem enfrentar as Stacks da rede de camada 2 do BTC?

Vantagens das Sidechains

  • As sidechains podem adotar diferentes tecnologias e protocolos, permitindo vários experimentos e inovações sem afetar a estabilidade e segurança da mainchain.
  • As sidechains podem introduzir funcionalidades não presentes na mainchain, como contratos inteligentes, proteção de privacidade e emissão de tokens, enriquecendo os cenários de aplicação do ecossistema blockchain.

Desafios das Sidechains

  • As sidechains têm mecanismos de consenso independentes, que podem não ser tão seguros como o principal BTC. Se o mecanismo de consenso de uma sidechain for fraco ou tiver vulnerabilidades, isso poderá levar a um ataque de 51% ou outras formas de ataques, colocando em risco a segurança dos ativos dos utilizadores. A segurança do principal BTC depende do seu enorme poder de hash e da ampla distribuição de nós, que uma sidechain pode não ser capaz de igualar.
  • A implementação do mecanismo de pino de duas vias requer algoritmos criptográficos complexos e protocolos. Se houver vulnerabilidades dentro deste mecanismo, isso poderia levar a problemas nas transferências de ativos entre a cadeia principal e a cadeia lateral, potencialmente resultando em perda ou roubo de ativos.
  • Para equilibrar velocidade e segurança, a maioria das sidechains é mais centralizada do que a mainchain.

A Camada 2 é um sistema blockchain completo, por isso os itens gerais de auditoria para blockchains públicas também se aplicam às sidechains. Para mais detalhes, consulte o apêndice no final deste artigo.

Além disso, devido às suas características únicas, as sidechains requerem algumas auditorias adicionais:

  • Segurança do Protocolo de Consenso:
    Reveja se o protocolo de consenso da sidechain (por exemplo, PoW, PoS, DPoS) foi completamente validado e testado quanto a vulnerabilidades potenciais ou vetores de ataque, como ataques de 51% ou ataques de longo alcance.
  • Segurança do Nó de Consenso:
    Avalie a segurança dos nós de consenso, incluindo gestão de chaves, proteção de nós e backups de redundância, para evitar que os nós sejam comprometidos ou abusados.
  • Bloqueio e Liberação de Ativos:
    Examine o mecanismo de pino bidirecional entre a sidechain e a mainchain para garantir que os contratos inteligentes responsáveis pelo bloqueio e liberação de ativos sejam seguros e confiáveis, evitando gastos duplos, perda de ativos ou falhas de bloqueio.
  • Verificação entre Cadeias:
    Verifique a precisão e segurança da verificação cruzada de forma a garantir que o processo seja descentralizado e à prova de adulteração, evitando falhas na verificação ou verificação maliciosa.
  • Auditoria de código de contratos inteligentes:
    Realize uma auditoria minuciosa de todos os contratos inteligentes em execução na sidechain, detetando quaisquer vulnerabilidades ou backdoors potenciais, especialmente na lógica de contrato que lida com operações cross-chain.
  • Mecanismo de atualização:
    Rever a segurança do mecanismo de atualização do contrato inteligente, garantindo que existam processos adequados de auditoria e consenso da comunidade para evitar atualizações maliciosas ou manipulação de contratos.
  • Comunicação entre nós:
    Inspeccionar a segurança do protocolo de comunicação entre os nós da sidechain, garantindo a utilização de canais encriptados para prevenir ataques de homem-no-meio ou violações de dados.
  • Comunicação entre Cadeias:
    Avaliar os canais de comunicação entre a sidechain e a mainchain para garantir a integridade e autenticidade dos dados, evitando que a comunicação seja sequestrada ou adulterada.
  • Timestamp e Tempo de Bloco:
    Verifique o mecanismo de sincronização de tempo da sidechain para garantir consistência e precisão no tempo de geração de blocos, evitando ataques ou rollback de blocos causados por discrepâncias de tempo.
  • Segurança da Governança On-Chain:
    Rever o mecanismo de governação da sidechain para garantir transparência e segurança nos processos de votação, proposta e tomada de decisão, prevenindo controlo ou ataques maliciosos.
  • Auditoria da Economia do Token:
    Examinar a tokenomics da sidechain, incluindo a distribuição de tokens, mecanismos de incentivo e modelos de inflação, garantindo que os incentivos econômicos não levem a comportamentos maliciosos ou instabilidade do sistema.
  • Mecanismo de Taxa:
    Rever o mecanismo de taxa de transação da sidechain para garantir que esteja alinhado com as necessidades dos utilizadores da mainchain e da sidechain, prevenindo a manipulação de taxas ou congestão de rede.
  • Segurança dos Ativos:
    Auditar o mecanismo de gestão de ativos on-chain para garantir que os processos de armazenamento, transferência e queima de ativos sejam seguros e fiáveis, sem risco de acesso não autorizado ou roubo.
  • Gestão de Chaves:
    Inspeccione a estratégia de gestão de chaves da sidechain para garantir a segurança das chaves privadas e o controlo de acesso, evitando a fuga ou uso indevido das chaves.

Rollup

Rollup é uma solução de escalonamento da Camada 2 projetada para melhorar o throughput e eficiência de transações blockchain. Ao agregar um grande número de transações ("Rolling up") e processá-las off-chain, reduz a carga na cadeia principal, enviando apenas os resultados finais de volta para ela.

Rollup vem em dois tipos principais: zk-Rollup e op-Rollup. No entanto, ao contrário do Ethereum, a falta de completude de Turing do Bitcoin impede o uso de contratos inteligentes para verificação de prova de conhecimento zero (ZKP) diretamente em sua rede. Isso significa que soluções tradicionais de zk-Rollup não podem ser implementadas no Bitcoin. Então, como o zk-Rollup pode ser usado para alcançar a escalabilidade da Camada 2 do Bitcoin? Vamos explorar o projeto da Rede B² como exemplo:

Para realizar a verificação de ZKP no Bitcoin, a B² Network desenvolveu um script Taproot que integra a verificação de prova de conhecimento zero do zk-Rollup com o mecanismo de desafio de incentivo do op-Rollup. Aqui está como funciona:

  1. A rede B² primeiro agrega todas as transações do usuário em um Rollup.
  2. Um sequenciador ordena então essas transações Rollup, armazenando-as em armazenamento descentralizado e processando-as através de um zkEVM.
  3. Após a sincronização do estado da cadeia Bitcoin, o zkEVM processa as execuções de contratos e outras transações, consolidando os resultados e enviando-os para o agregador.
  4. O provador gera uma prova de conhecimento zero e envia-a para o agregador, que combina as transações e a prova e as encaminha para os Nós B².
  5. Nós B² verificamos a prova de conhecimento zero e criamos um script Taproot com base nos dados do Rollup armazenados no armazenamento descentralizado.
  6. O Taproot, que é uma UTXO com um valor de 1 satoshi, contém B² Inscrição na sua estrutura de dados, armazenando todos os dados Rollup, enquanto o Tapleaf armazena os dados de verificação de todas as provas. Após passar pelo mecanismo de desafio de incentivo, é submetido ao Bitcoin como um compromisso baseado em zk-proof.

Vantagens do Rollup:

  • Rollup herda as características de segurança e descentralização da cadeia principal. Ao enviar regularmente dados de transações e estado para a cadeia principal, assegura a integridade e transparência dos dados.
  • Rollup pode ser integrado de forma transparente nas redes blockchain existentes, como o Ethereum, permitindo aos programadores aproveitar facilmente os seus benefícios sem modificações significativas nos contratos inteligentes e aplicações existentes.
  • O Rollup aumenta significativamente a capacidade de transações ao processar um grande número de transações fora da cadeia e enviá-las em lotes para a cadeia principal, resultando num aumento notável de transações por segundo (TPS).
  • Uma vez que as transações Rollup são processadas fora da cadeia, reduzem drasticamente os recursos computacionais e o espaço de armazenamento necessários para as transações na cadeia, diminuindo assim significativamente as taxas de transação do usuário.

Desafios do Rollup:

  • Se os dados off-chain se tornarem indisponíveis, os utilizadores podem não conseguir verificar transações e recuperar o seu estado.
  • As transações Rollup precisam ser processadas em lotes e eventualmente enviadas para a cadeia principal, o que pode levar a tempos de liquidação mais longos. Isso é especialmente verdadeiro no caso do op-Rollup, onde há um período de disputa, fazendo com que os utilizadores esperem mais tempo pela confirmação final da transação.
  • Embora a ZK Rollup forneça maior segurança e confirmação instantânea, requer recursos computacionais substanciais para gerar provas de conhecimento zero.

Dado que o Rollup é utilizado, os seus principais itens de auditoria de segurança são consistentes com os da Camada 2 da Ethereum.

Outros (Babilónia)

Para além das soluções tradicionais de camada 2 do BTC, surgiram alguns novos protocolos de terceiros relacionados com o ecossistema BTC, tais como Babylon:

Babylon tem como objetivo transformar 21 milhões de BTC em ativos de staking descentralizados. Ao contrário de outras soluções de Camada 2 BTC, Babylon não se concentra em escalar a rede BTC. Em vez disso, é uma blockchain única com um protocolo de staking BTC especializado projetado principalmente para interagir com as cadeias de Proof of Stake (PoS). O objetivo é fazer staking de BTC para aumentar a segurança das cadeias PoS, abordando questões como ataques de longo alcance e riscos de centralização.

A arquitetura está dividida em três camadas:

  • Camada Bitcoin:Esta é a base sólida de Babilónia, aproveitando a segurança renomada do Bitcoin para garantir que todas as transações sejam ultra-seguras, tal como são na rede Bitcoin.
  • Camada Babilónia:O núcleo de Babilónia, esta blockchain personalizada conecta o Bitcoin a várias cadeias PoS. Ele lida com transações, executa contratos inteligentes e garante a operação suave em todo o ecossistema.
  • Camada de Cadeia PoS: A camada superior consiste em várias cadeias PoS, cada uma selecionada por suas vantagens únicas. Esta estrutura concede ao BabylonChain notável escalabilidade e flexibilidade, permitindo que os usuários se beneficiem dos melhores recursos de diferentes blockchains PoS.

Babylon opera assinando blocos finais na cadeia BTC para proteger cadeias PoS. Isto alarga essencialmente o protocolo de base com uma ronda adicional de assinaturas. Estas assinaturas na ronda final +1 têm uma característica única: são Assinaturas Únicas Extraíveis (EOTS). O objetivo é integrar pontos de verificação PoS na cadeia BTC, abordando as questões de longos períodos não vinculativos e ataques de longo alcance em sistemas PoS.

Vantagens de Babilônia:

  • Babilônia acelera o processo de desvinculação da participação PoS.
  • Ao apostar BTC, Babilónia ajuda a aliviar as pressões inflacionárias na rede PoS correspondente.
  • Babylon abre novos caminhos para detentores de BTC ganharem retornos.

Desafios da Babilónia:

  • As taxas de recompensa de staking e outros fatores econômicos impactam significativamente o incentivo para o staking de BTC.
  • Não existe uniformidade nos mecanismos de recompensa entre as diferentes cadeias PoS.

O foco na segurança varia dependendo da implementação específica de protocolos de terceiros. Para Babilônia, alguns pontos-chave de auditoria de segurança incluem:

1. Segurança de Contrato Inteligente: Os contratos de staking em BTC são implementados através de scripts UTXO, que requerem atenção cuidadosa à sua segurança. 2. Segurança do Algoritmo de Assinatura: A segurança do algoritmo de assinatura utilizado para gerir o staking no contrato é crucial, pois afeta a geração e verificação de assinaturas. 3. Design do Modelo Econômico: O modelo econômico do protocolo, especialmente em termos de recompensas e penalidades, deve ser analisado para garantir que não leve à perda de ativos do usuário.

Apêndice:

Itens Gerais de Auditoria para Cadeias Públicas & Camada 2

  • Estouro de inteiro:Verificar o overflow e underflow de inteiros.
  • Loop Infinito:Verifique se as condições do loop no programa são razoáveis.
  • Recursão Infinita:Certifique-se de que as condições de saída para chamadas recursivas estão devidamente definidas.
  • Condição de corrida:Examinar operações de acesso a recursos partilhados em condições concorrentes.
  • Exceções não tratadas:Identificar código que lança exceções que causam a saída inesperada do programa.
  • Divisão por Zero:Verifique se existem casos em que a divisão por zero possa ocorrer.
  • Conversão de Tipo:Garantir que as conversões de tipo sejam precisas e que nenhuma informação crítica seja perdida no processo.
  • Array Fora dos Limites:Certifique-se de que os elementos do array são acessados dentro de limites válidos.
  • Vulnerabilidades de deserialização:Verificar problemas durante o processo de desserialização.
  • Implementação de Segurança da Funcionalidade:Verifique se a implementação das interfaces RPC é segura e consistente com o seu design funcional.
  • Configurações sensíveis de permissão da interface RPC:Certifique-se de que as permissões de acesso para interfaces RPC sensíveis estão configuradas adequadamente.
  • Mecanismo de Transmissão Criptografada:Verificar a utilização de protocolos de transmissão encriptada, como TLS.
  • Análise de Formato de Dados de Pedido:Verifique o processo de análise dos formatos de dados de solicitação.
  • Ataque de Desbloqueio de Carteira:Certifique-se de que os fundos não são roubados através de pedidos RPC quando um nó desbloqueia sua carteira.
  • Segurança Web Tradicional:Verifique as seguintes vulnerabilidades: Cross-Site Scripting (XSS), Injeção de Modelos, Vulnerabilidades de Componentes de Terceiros, Poluição de Parâmetros HTTP, Injeção SQL, Injeção XXE, Vulnerabilidades de Desserialização, Vulnerabilidades SSRF, Injeção de Código, Inclusão de Arquivos Locais, Inclusão de Arquivos Remotos, Injeção de Comandos, etc.
  • Mecanismo de Autenticação e Identificação de Nó de Rede:Certifique-se de que existe um mecanismo de reconhecimento de identidade de nó e que não pode ser contornado.
  • Envenenamento da Tabela de Roteamento:Verifique se a tabela de roteamento pode ser manipulada ou sobrescrita arbitrariamente.
  • Algoritmo de Descoberta de Nós:Certifique-se de que o algoritmo de descoberta de nós seja equilibrado e imprevisível, abordando questões como desequilíbrios em algoritmos de distância.
  • Auditoria de Ocupação de Conexão:Certifique-se de que o limite e a gestão dos nós conectados na rede p2p sejam razoáveis.
  • Ataque Eclipse:Avalie o custo e o impacto dos ataques de eclipse, fornecendo análises quantitativas, se necessário.
  • Ataque Sybil:Avalie o mecanismo de consenso de votação e analise as estratégias para verificar a elegibilidade para votar.
  • Ataque de escuta: Verifique se o protocolo de comunicação não divulga informações privadas.
  • Ataque Alienígena:Avaliar se os nós conseguem reconhecer outros nós da mesma rede blockchain.
  • Sequestro de Tempo:Verificar o mecanismo de cálculo do tempo de rede nos nós.
  • Ataque de Exaustão de Memória:Verifique áreas de alto consumo de memória.
  • Ataque de Exaustão de Disco:Verifique áreas que envolvam armazenamento de arquivos grandes.
  • Ataque de Estresse de Soquete:Verificar estratégias que limitem o número de conexões.
  • Ataque de Exaustão de Manipulação de Kernel:Certifique-se de que os limites na criação de alças de kernel, como alças de arquivo, sejam razoáveis.
  • Vazamentos de memória persistentes:Identificar áreas propensas a vazamentos de memória.
  • Segurança do Algoritmo de Hash:Certifique-se de que o algoritmo de hash é resistente a colisões.
  • Segurança do Algoritmo de Assinatura Digital:Verifique a segurança do algoritmo de assinatura e sua implementação.
  • Segurança do Algoritmo de Criptografia: Certifique-se de que o algoritmo de encriptação e a sua implementação são seguros.
  • Segurança do Gerador de Números Aleatórios:Verifique se os algoritmos críticos de geração de números aleatórios são razoáveis.
  • Segurança na Implementação do BFT:Avaliar a segurança da implementação do algoritmo de Tolerância a Falhas Bizantinas (BFT).
  • Regra de Escolha de Fork:Verifique a regra de escolha do garfo para garantir a segurança.
  • Detecção de Centralização:Identificar qualquer centralização excessiva no design do sistema.
  • Auditoria do Mecanismo de Incentivo:Avaliar o impacto do mecanismo de incentivo na segurança.
  • Ataque de Gasto Duplo:Verifique se o consenso pode defender-se contra ataques de gastos duplos.
  • Auditoria de Ataque MEV:Avaliar o impacto do Valor Máximo Extraível (MEV) na equidade da cadeia durante o empacotamento de blocos.
  • Auditoria do Processo de Sincronização de Blocos:Verifique problemas de segurança durante o processo de sincronização.
  • Auditoria de Análise de Formato de Bloco:Avaliar as preocupações de segurança durante a análise de formato de bloco, como erros de análise que levam a falhas.
  • Auditoria do Processo de Geração de Blocos:Rever a segurança do processo de geração de blocos, incluindo a construção da raiz da árvore de Merkle.
  • Auditoria do Processo de Verificação de Blocos:Verifique os itens de conteúdo das assinaturas de bloco e se a lógica de verificação é adequada.
  • Auditoria da Lógica de Confirmação de Blocos:Avalie se o algoritmo de confirmação de bloco e sua implementação são razoáveis.
  • Colisão de Hash de Bloco:Verifique como as colisões de hash de bloco são construídas e se o tratamento de tais colisões é apropriado.
  • Limites de Recursos de Processamento de Blocos:Verifique se os limites de recursos para o pool de blocos órfãos, a computação de verificação e a endereçamento de disco são razoáveis.
  • Auditoria do Processo de Sincronização de Transações:Rever problemas de segurança durante o processo de sincronização da transação.
  • Colisão de Hash de Transação:Verifique como as colisões de hash de transação são construídas e tratadas.
  • Análise de Formato de Transação:Avaliar as preocupações de segurança durante a análise de formato de transação, como erros de análise que levam a falhas.
  • Verificação de legitimidade da transação:Verificar os itens de conteúdo de várias assinaturas de transação e se a lógica de verificação é suficiente.
  • Limites de Recursos de Processamento de Transações:Reverificar se os limites de recursos para a pool de transações, cálculo de verificação e endereçamento de disco são razoáveis.
  • Ataque de maleabilidade de transação:Avalie se as transações podem alterar campos internos (por exemplo, ScriptSig) para alterar o hash da transação sem afetar a sua validade.
  • Auditoria de Ataque de Reprodução de Transações:Verifique a deteção do sistema de ataques de repetição de transações.
  • Verificação de bytecode de contrato inteligente:Rever a segurança do processo de verificação de contrato da máquina virtual, como verificar overflows de inteiros e loops infinitos.
  • Execução de Código de Byte de Contrato Inteligente:Avaliar as preocupações de segurança durante a execução de bytecode pela máquina virtual, como overflows de inteiros e loops infinitos.
  • Modelo de Gás:Certifique-se de que as taxas de processamento de transações/execução de contratos para cada operação atômica sejam proporcionais ao consumo de recursos.
  • Integridade do Registo:Certifique-se de que as informações críticas sejam registradas nos logs.
  • Segurança de Registro:Verifique se o processamento de log introduz problemas de segurança, como transbordamentos de inteiro.
  • Registos Contendo Informações Sensíveis:Certifique-se de que os registos não contenham chaves ou outras informações privadas.
  • Armazenamento de Registos:Verificar se o registo excessivo leva ao consumo de recursos nos nós.
  • Segurança da Cadeia de Fornecimento de Código de Nó:Rever problemas conhecidos com todas as bibliotecas de terceiros, componentes e versões de estrutura de cadeia pública.

Como uma das primeiras empresas de segurança em blockchain a nível global especializada em verificação formal, a Beosin concentra-se num ecossistema abrangente de “segurança + conformidade”. A empresa estabeleceu sucursais em mais de 10 países e regiões em todo o mundo. Os seus serviços englobam produtos de conformidade em blockchain e serviços de segurança num único local, incluindo auditorias de segurança de código antes do lançamento do projeto, monitorização de riscos de segurança em tempo real e interceção durante a operação do projeto, recuperação de ativos roubados, combate à lavagem de dinheiro (AML) para ativos virtuais e avaliações de conformidade que cumprem os requisitos regulamentares locais. Damos as boas-vindas a projetos com necessidades de auditoria para contactar a equipa de segurança da Beosin.

Aviso legal:

  1. Este artigo é reproduzido a partir de [ Beosin], Todos os direitos autorais pertencem ao autor original [Beosin]. Se houver objeções a esta reimpressão, por favor entre em contato com o Gate Aprenderequipa e eles vão tratar disso prontamente.
  2. Aviso de Responsabilidade: As opiniões expressas neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipa Gate Learn. Salvo indicação em contrário, copiar, distribuir ou plagiar os artigos traduzidos é proibido.
Comece agora
Registe-se e ganhe um cupão de
100 USD
!