Tezos Blockchain: análise aprofundada da perspectiva da auditoria PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Tezos Blockchain: análise aprofundada da perspectiva da auditoria 

Tempo de leitura: 5 minutos

O projeto blockchain da Tezos teve um início esplêndido ao arrecadar US$ 232 milhões com a Oferta Inicial de Moedas, obtendo o segundo lugar em receber os maiores fundos entre as 20 maiores ICOs.

Entre as redes blockchain mais populares, como Ethereum ou Bitcoin, como a Tezos conseguiu ganhar todo o hype? Para descobrir a resposta, vamos dar uma olhada nos atributos distintivos de Tezos que atraíram hordas de torcedores. 

Enquanto o blockchain que surgiu durante seu tempo funcionou no consenso Proof-of-Work (PoW), o blockchain Tezos foi inovador no uso de Prova de EstacaConsenso baseado em (PoS) com um mecanismo de auto-alteração e governança na cadeia. 

Como resultado, a Tezos se destacou como a alternativa perfeita para a construção de aplicativos DeFi ecologicamente corretos que exigem substancialmente menos energia e baixos custos. Então, como a infraestrutura do Tezos se equipara à flexibilidade na implementação de atualizações com muito mais facilidade?

Isso nos leva a aprender sobre a configuração arquitetônica, que agrega valor ao Tezos.

Contratos inteligentes no Tezos

Contratos inteligentes são contratos executáveis ​​programados para processar a troca de tokens entre duas partes sem exigir que uma das partes confie na outra. 

Quando se trata de Tezos, ele é escrito exclusivamente usando a linguagem de programação Michelson. Além disso, a Tezos emprega verificação formal para garantir a exatidão do código, o que o torna mais seguro e confiável. 

Enumerando as especificidades do Tezos Blockchain

A destaques do Tezos são dadas aqui para uma melhor compreensão de sua configuração e singularidade. 

Auto-alteração

O Tezos, que valida os blocos que operam no algoritmo de consenso, é integrado com um mecanismo auto-alterável. Quaisquer alterações ao protocolo, como mudar para um consenso diferente, modificar o sistema de recompensas, adicionar transações, etc., são implementadas com base no sistema de votação on-chain. 

Quaisquer pequenas a grandes mudanças no protocolo econômico da Tezos são desencadeadas pelo procedimento de votação on-chain. Esse protocolo de autocorreção tem a vantagem de evitar as bifurcações ou divisões na comunidade.

Governança na cadeia

Tezos se opõe ao Bitcoin e ao Ethereum, que seguiram os sistemas de governança não formalizados que levaram às divisões do blockchain (Bitcoin Cash e Ethereum clássico). 

A governança on-chain em Tezos facilita os “Bakers”, também conhecidos como Mineradores, para propor e votar em atualizações de protocolo. A metodologia on-chain no Tezos foi projetada para implementar automaticamente as atualizações no código do protocolo subjacente sem passar por um diretor centralizado. 

Consenso de prova de participação: O PoS 

O consenso PoS no Tezos permite que qualquer pessoa participe. Para ser um padeiro Tezos que valida o bloco e permite a construção de consenso, o padeiro deve possuir uma posse mínima de tokens XTZ (nativos). 

Ele também adota um método em que, se o usuário não tiver o suficiente para assar, ele pode delegar tokens XTZ a um padeiro com um grande saldo de Tez. Por sua vez, as recompensas ganhas pelo padeiro são redistribuídas aos delegantes. 

Exploração de terrenos encontrados em contratos inteligentes Tezos

Um dos relatórios de auditoria revelou erros na arquitetura de transmissão de mensagens dos contratos inteligentes do Tezos. Vamos decodificá-los aqui agora. 

Arquitetura de passagem de mensagens

Um contrato externo que deveria ser chamado durante a execução da função é enfileirado em uma lista de chamadas a serem executadas no contrato Tezos. 

A ordem encontrada no contrato da Tezos é, 

  • Execute a() # Próximas chamadas: [b, d]
  • Execute b() # Próximas chamadas: [d, c]
  • Execute d() # Próximas chamadas: [c]
  • Execute c() # Próximas chamadas: []

Onde você pode ver que o código d() é executado antes do código c().

Este tipo de execução tem a possibilidade de dois tipos de vulnerabilidades,

Bypass de autorização de retorno de chamada 

A arquitetura do Tezos é construída para evitar que o contrato leia o valor de retorno de uma chamada externa usando a função callback. Mas aqui, como não há restrição, o uso de callback pode levar a problemas de controle de acesso. 

Injeção de chamada

Ele oferece espaço para o invasor comprometer o contrato injetando chamadas entre uma função e uma chamada externa gerada. 

Na execução das funções, as chamadas geradas são enfileiradas na lista de chamadas a serem executadas. Um invasor pode obter uma vantagem colocando sua chamada na fila e executando o código entre o final da função executada e as chamadas geradas. 

Quando a chamada do invasor é executada, o saldo do contrato ou a memória do contrato vai para um estado inválido e o invasor obtém com êxito a injeção de chamada. 

Precauções a serem observadas ao codificar o Tezos Smart Contract usando Michelson

A linguagem de programação Michelson é uma opção para escrever contratos seguros resistentes a vazamentos de dados e roubos de fundos. Embora a linguagem de programação seja tão forte, há uma lista de erros que podem aparecer no contrato. 

Vamos entender os erros comuns e as maneiras de descartar os erros.

Reembolso para uma lista de contratos

Esta é uma condição em que os fundos de um grupo de pessoas são reembolsados ​​de uma só vez. Ocorre ao aceitar contratos arbitrários em que um usuário mal-intencionado inicia tal problema. 

Os possíveis problemas desse erro são um contrato que engole todo o gás através de uma série de retornos de chamada, a instrução 'FAIL' é chamada e interrompe todos os cálculos, erros de reentrada e assim por diante. 

Qual é a solução?

As contas padrão não executam o código; portanto, o problema acima pode ser resolvido criando uma conta padrão a partir das chaves das pessoas. Além disso, pode ser programado para que os usuários retirem seus fundos individualmente. 

Não definir o estado antes da transferência

A reentrada é um obstáculo comum no blockchain. Quando o contrato exige outro contrato externo para fazer transferências, o arbitrário ganha vantagem em fazer novas transferências se o estado não for atualizado após cada transferência.

Isso causa várias retiradas de fundos do contrato. 

Qual é a solução?

Tenha cuidado ao fazer chamadas para contratos externos e certifique-se de que seu comportamento não possa ser modificado. Para proibir a reentrada, sinalize no armazenamento para que os usuários não possam entrar novamente, a menos que tenham um bom motivo. 

Armazenar ou transferir dados privados

Os dados que são publicados podem ser visualizados explicitamente. Isso significa que as informações privadas se tornam visíveis para todos quando a transação é transmitida. Isso dá uma chance para o nó malicioso no sistema manipular a transação não assinada, atrasando-a ou modificando-a. 

Qual é a solução?

Assine as transações que contêm informações confidenciais. Usar contadores para impor ordens de transação pode resolver o problema. 

Garanta proteção pró aos projetos por meio de auditorias de contrato inteligente da Tezos 

Tezos construído com uma estrutura auto-alterável oferece melhor escalabilidade e confiabilidade, mas embora a segurança seja sempre uma questão para aplicativos baseados em blockchain. O menor dos problemas pode causar a maior perda de fundos. 

E é aí QuillAuditorias dá um passo à frente para proteger os ativos das garras de maus atores. Não damos a eles nenhuma chance de explorar o contrato, pois reconhecemos e corrigimos esses problemas conduzindo Auditorias de contrato inteligente Tezos

Faça uma consulta gratuita com nossos especialistas para conhecer nossos serviços de auditoria. 

2 Visualizações

Carimbo de hora:

Mais de Quilhash