Comprar Cripto
Mercado
Spot
Futuros
Financeiro
Promoção
Mais
reward-centerZona de iniciantes
Relatório de análiseDetalhes
Pesquisas sobre a Indústria

Pesquisa CoinEx: O Dilema de Segurança dos Ativos Blockchain: Motivos Pelos Quais o Tempo Real é Necessário Como Camada Adicional de Segurança

  • ETH0%
  • DOT0%
  • ATOM0%
  • LUNA0%
  • BTC0%
CoinEx logo
Publicado em 2022-04-07

Desde o DeFi Summer de 2020, impulsionado pelo avanço contínuo das infraestruturas blockchain, os protocolos DeFi evoluíram do Swap para Lend, para Yield Farming e para protocolos cada vez mais sofisticados, abrangendo estratégias de Yield Farming AMM (criação automatizada de mercado) baseadas em derivativos blockchain, plataformas de empréstimo estruturadas construídas sobre infraestrutura de empréstimo e protocolos de empréstimo on-chain conectando garantias do mundo real, etc.

Um dos principais fatores por trás do boom da inovação DeFi é um conceito chamado composabilidade. Na maioria das vezes, quando um novo protocolo DeFi é lançado, a maior parte do seu código-fonte também é disponibilizada ao público. Isso significa que os códigos-fonte de contratos inteligentes de um ou mais protocolos DeFi podem ser facilmente compostos juntos para criar um novo. Eles funcionam como blocos de Lego — blocos em diferentes formas podem ser usados para construir projetos únicos, reduzindo significativamente o custo da inovação.

Surpreendentemente, diante de tantas inovações, o número de usuários DeFi não apresentou crescimento significativo desde 2020. Enquanto isso, as instituições tradicionais não colocaram liquidez no espaço blockchain. Uma das principais causas para isso é a preocupação com a segurança do DeFi.

As finanças do mundo real vêm com um sistema seguro bem estabelecido. Por exemplo, ao transferir fundos do Banco A para o Banco B, carros-fortes e policiais armados estarão lá para manter os fundos seguros, o que é um processo tranquilizador. Além disso, os bancos também serão responsáveis pela propriedade de um cliente e oferecerão compensação por qualquer perda durante o processo. O DeFi, no entanto, difere do sistema financeiro tradicional. Os contratos inteligentes são imutáveis por design. São essencialmente caixas pretas que não enviarão logs legíveis, então as pessoas não podem ter uma visão clara dos processos internos. A maioria das auditorias de contratos inteligentes não ajuda, pois focam apenas em formas conhecidas de ataques, em vez de novos tipos de falhas que são altamente prováveis de ocorrer. Enquanto isso, muitos protocolos DeFi se rotulam como um produto "use por sua própria conta e risco". Isso pode ser assustador para usuários comuns e fazer com que não tenham confiança para colocar a maior parte de seus depósitos bancários em um ecossistema DeFi. O DeFi não decepcionou aqueles que não confiavam nele. Até agora, o DeFi viu 82 violações de segurança, com um valor inicial hackeado de mais de 1,8 bilhão de dólares. Em particular, o empréstimo flash é o ataque mais comum, representando 33 casos. Uma das razões de segurança por trás de um ataque de empréstimo flash é a falta do conceito de tempo preciso e um mecanismo de confirmação nos blockchains . Veremos as razões específicas nos capítulos seguintes.

Pesquisa CoinEx: O Dilema de Segurança dos Ativos Blockchain: Motivos Pelos Quais o Tempo Real é Necessário Como Camada Adicional de Segurança

I. Tempo e a Rede de Tempo dos Computadores

Vamos primeiro ver como o tempo funciona em programas de computador convencionais.

O tempo é um conceito essencial para programas de computador. Sem o conceito de tempo, é impossível acessar qualquer site habilitado para TLS, criar entropia para certos algoritmos, trocar segredos ou autenticar licenças do Windows. Tomamos o controle do tempo nos computadores como garantido, mas trocar e manter o controle do tempo é um problema incrivelmente difícil de resolver quando se trata de operações reais.

O tempo é essencialmente uma representação do estado global atual do universo. Isso significa que para qualquer momento dado, cada entidade deve compartilhar exatamente o mesmo valor. Isso é obviamente um grande problema para computadores: Vamos assumir que existe um enorme relógio atômico altamente preciso no centro do universo, transmitindo dados de tempo pela Internet. Um problema durante este processo é que a transmissão de dados leva tempo por si só. Quando um dispositivo recebe dados de tempo pela Internet e os aplica aos seus próprios sistemas, o estado global do universo (tempo) já teria mudado. Em outras palavras, é impossível para um dispositivo em rede estar perfeitamente atualizado com o valor global real do tempo.

Outro problema com o controle de tempo em rede é que não podemos prever perfeitamente o tempo necessário para a transmissão de dados — as condições de rede mudam constantemente, e ninguém pode garantir confiabilidade perfeita no mundo real. Combinado com o primeiro problema, isso significa que o receptor não pode replicar perfeitamente o valor do tempo, levando a inconsistências.

O Protocolo de Tempo de Rede (NTP) resolve este problema através da estrutura de verificação mútua de servidores de controle de tempo distribuídos globalmente (até 15 estratos) e construindo uma árvore geradora de caminho mais curto Bellman-Ford (que reduz tanto a latência quanto as inconsistências no tempo de transferência). Isso funciona perfeitamente bem para computadores pessoais e serviços centralizados, especialmente com aplicações que dependem de temporização precisa (por exemplo, programas de criptografia). Mesmo que os carimbos de tempo derivados através do NTP sejam meras estimativas, eles são precisos e maduros o suficiente para aplicações críticas em tempo dependerem deles.

Pesquisa CoinEx: O Dilema de Segurança dos Ativos Blockchain: Motivos Pelos Quais o Tempo Real é Necessário Como Camada Adicional de Segurança - image 2

Fonte: https://medium.com/@gokhansengun/bilgisayarlar-zaman%C4%B1-nas%C4%B1l-do%C4%9Fru-tutar-78c1203397f0

II. Mecanismo de Tempo em Redes Blockchain

O conceito de tempo também existe em blockchains. Embora alguns digam que o próprio blockchain é um derivado do conceito de tempo, o processamento de tempo de uma rede blockchain é extremamente impreciso comparado com a precisão de 64 bits do sistema NTP. Afinal, isso também é porque os alvos de serviço do tempo blockchain não são aplicações de contratos inteligentes sensíveis ao tempo como aplicações DeFi. Além disso, visa permitir a execução segura e eficiente do mecanismo de consenso. Tal objetivo diferente também torna as redes blockchain mais tolerantes a imprecisões de tempo. Nos parágrafos seguintes, discutiremos alguns mecanismos de consenso populares e como eles determinam o tempo. Dito isso, deve-se notar que a confirmação do tempo em blockchains é tão geralmente imprecisa que eles não podem realizar as operações financeiras e verificações de segurança para ativos on-chain que valem dezenas de bilhões de dólares.

1. Bitcoin

O Bitcoin apresenta o conceito de tempo porque é necessário para seu mecanismo de consenso Proof-of-Work. Sem um carimbo de tempo válido, a rede não pode verificar se uma determinada transação sendo minerada está tentando adulterar uma anterior. Embora cada bloco Bitcoin contenha um carimbo de tempo UNIX, o tempo do bloco não é uma representação precisa de um carimbo de tempo UNIX. Isso porque o consenso Bitcoin considera os carimbos de tempo apenas como parte do sistema de segurança PoW, não como uma ferramenta real para medir o tempo no blockchain.

Citando o Bitcoin Wiki, cada bloco contém um carimbo de tempo Unix fornecido pelos mineradores e será aceito como válido se for 1) maior que o carimbo de tempo mediano dos 11 blocos anteriores e 2) menor que o tempo ajustado da rede mais 2 horas. Portanto, a diferença entre os tempos dos blocos e os tempos do mundo real varia de uma hora a duas horas.

Pesquisa CoinEx: O Dilema de Segurança dos Ativos Blockchain: Motivos Pelos Quais o Tempo Real é Necessário Como Camada Adicional de Segurança - image 3

Fonte: https://en.bitcoin.it/wiki/Block_timestamp

2. Ethereum

Na rede Ethereum, os carimbos de tempo também são enviados diretamente pelos mineradores com grande flexibilidade. Em termos simples, um carimbo de tempo Ethereum pode ser verdadeiro ou falso, e não há maneira do mecanismo de consenso confirmar sua precisão. De acordo com uma postagem no fórum Ethereum (fonte: https://ethereum.stackexchange.com/questions/413/can-a-contract-safely-rely-on-block-timestamp/428#428), vários mecanismos podem ser usados para prevenir o desvio excessivo dos carimbos de tempo Ethereum: 1) Se o carimbo de tempo de um bloco desviar significativamente do tempo do mundo real, ninguém estará disposto a gerar mais blocos com este bloco como bloco pai; 2) O carimbo de tempo do último bloco não pode ser anterior ao bloco pai; 3) A dificuldade do bloco será a menor quando o bloco não for marcado antes do necessário. Esses mecanismos poderiam permitir que os mineradores enviassem voluntariamente carimbos de tempo que acreditam estar corretos. No entanto, quando existem outros incentivos externos, a rede Ethereum não possui nenhum mecanismo rigoroso para garantir que os mineradores ainda enviem o carimbo de tempo correto. Portanto, a rede não pode garantir o funcionamento adequado de protocolos sensíveis ao tempo (por exemplo, yield farming, empréstimos). Assim, grandes instituições não confiarão seu dinheiro ao Ethereum.

3. Polkadot

De acordo com o documento do Substrate, o Polkadot também marca blocos com carimbos de tempo que são fornecidos diretamente pelos mineradores. Enquanto isso, não há mecanismos rigorosos que confirmem ou sincronizem tais carimbos de tempo. O documento também afirma que embora o tempo de um bloco não possa ser provado, os validadores podem concordar que está dentro de algum delta de seu relógio de sistema.

Pesquisa CoinEx: O Dilema de Segurança dos Ativos Blockchain: Motivos Pelos Quais o Tempo Real é Necessário Como Camada Adicional de Segurança - image 4

Fonte: https://wiki.polkadot.network/docs/build-protocol-info

4. Cosmos

O Tendermint do Cosmos é o único algoritmo de consenso que insere o tempo no mecanismo de consenso, o que o equipa com o conceito mais robusto de tempo. Mais especificamente, os nós de um bloco votarão no tempo que foi submetido para alcançar um consenso, e apenas o registro de tempo que os nós concordarem será incluído no bloco.

Pesquisa CoinEx: O Dilema de Segurança dos Ativos Blockchain: Motivos Pelos Quais o Tempo Real é Necessário Como Camada Adicional de Segurança - image 5

Fonte: https://docs.tendermint.com/master/spec/consensus/bft-time.html

III. A Ausência de um Sistema de Registro de Tempo nos Blocos

As blockchains não são apenas imprecisas em termos de geração de registros de tempo, mas também carecem de um sistema ou mecanismo de registro de tempo dentro dos blocos. As transações do mundo real são enviadas e confirmadas uma por uma, cada uma com um tempo e sequência claros. Dessa forma, muitas transações falsas não podem ocorrer ou ser confirmadas. Em uma rede blockchain, por outro lado, as transações dentro de cada bloco são empacotadas juntas e não são marcadas com registros de tempo precisos uma por uma.

Embora todas as transações possam ser verificadas após a geração do bloco, é impossível determinar o tempo específico de submissão e a sequência de cada transação. Isso explica parcialmente por que muitos ataques (por exemplo, empréstimos relâmpago ou trocas relâmpago) podem ser executados. Se marcações precisas de tempo fossem fornecidas dentro dos blocos como prova para verificação, os protocolos de aplicação poderiam desenvolver algoritmos mais seguros e estáveis. Enquanto isso, devido às suas características intrínsecas, o tempo é uma rede de consenso altamente segura que é irreversível e imutável.

IV. Soluções Potenciais

A falta de tempo nas blockchains pode ser resolvida interna ou externamente.

Solução interna: Um mecanismo de confirmação em nível de consenso que verifica o tempo do bloco em relação ao tempo do mundo real deve ser introduzido, ou um sistema de tempo independente com maior precisão deve ser estabelecido.

Solução externa: As blockchains precisam de uma rede descentralizada que use uma rede oracle de tempo semelhante ao NTP para adicionar registros de tempo precisos aos blocos da rede e às transações dentro dos blocos.

Considerando a colaboração entre múltiplas cadeias, a solução externa pode ser mais adequada. Assumindo, por exemplo, que Ethereum e Terra tenham seus próprios relógios, se os registros de tempo fornecidos por esses relógios forem diferentes, será difícil determinar qual está correto durante as interações entre os dois. Por exemplo, em uma rede de computadores convencional, em última análise, apenas um relógio mestre diz a todos que horas são. As blockchains também precisam de um relógio mestre.

No futuro multiverso possibilitado por múltiplas cadeias, enfrentaremos outro desafio — o número de relógios em todos os diferentes computadores é muito maior do que o esperado. Por exemplo, existem relógios de jogos, relógios de acúmulo de juros DeFi, relógios de blockchain, etc. Como esses relógios perturbarão o tempo nos nós meta, será necessária uma única fonte confiável de tempo para unificar e sincronizar todas as transações. Quando tal rede oracle de tempo for eventualmente amplamente adotada, ela fornecerá uma camada extra de segurança, oferecendo confirmações de tempo adicionais para cada transação, assim como acontece no mundo real. O tempo também se tornará uma camada adicional de segurança para as redes blockchain.

Referência:

  1. https://medium.com/@gokhansengun/bilgisayarlar-zaman%C4%B1-nas%C4%B1l-do%C4%9Fru-tutar-78c1203397f0
  2. https://en.bitcoin.it/wiki/Block_timestamp
  3. https://ethereum.stackexchange.com/questions/413/can-a-contract-safely-rely-on-block-timestamp/428#42
  4. https://wiki.polkadot.network/docs/build-protocol-info