A tecnologia de verificação formal do Tezos capacita a segurança das Finanças Descentralizadas.

robot
Geração de resumo em curso

A verificação formal do Tezos capacita a segurança das Finanças Descentralizadas

Tezos como uma conhecida blockchain PoS, seus destaques não se limitam à funcionalidade de Staking. A característica de verificação formal do Tezos é também uma das suas principais vantagens tecnológicas. Esta característica pode aumentar significativamente a segurança das aplicações de Finanças Descentralizadas, fortalecendo a confiança dos usuários na segurança dos fundos dos contratos inteligentes.

Segurança DeFi e métodos de Verificação formal

O rápido desenvolvimento das Finanças Descentralizadas atraiu a atenção de muitos desenvolvedores, e alguns protocolos DeFi famosos acumulam mais de cem milhões de dólares em fundos. No entanto, o campo DeFi ainda enfrenta um grande desafio: questões de segurança.

O custo deste problema é enorme, tendo um impacto negativo nos efeitos de rede de alguns projetos de blockchain. Nos últimos meses, vários projetos de Finanças Descentralizadas sofreram ataques, com perdas que variam de dezenas de milhares a dezenas de milhões de dólares. Alguns projetos conseguiram evitar perdas maiores ao detectar bugs através de autoavaliações oportunas e tomar medidas de congelamento.

Para os desenvolvedores de Finanças Descentralizadas que valorizam a segurança, a solução de verificação formal do Tezos pode fortalecer a segurança enquanto capacita as aplicações DeFi.

Nas aplicações tradicionais da internet, após um ataque de hackers ao servidor, basta reverter os dados dos usuários para recuperar as perdas. Assim, as aplicações tradicionais que priorizam a experiência do usuário podem sacrificar parte da segurança em troca de uma rápida iteração. No entanto, nas aplicações de Finanças Descentralizadas, devido à imutabilidade da blockchain, uma vez que um contrato inteligente é lançado e apresenta vulnerabilidades de segurança, as perdas causadas aos usuários serão enormes e irreparáveis.

Portanto, o processo de desenvolvimento de aplicações DeFi requer uma grande quantidade de testes e auditorias caras para garantir a segurança, o que, por sua vez, afeta a velocidade de iteração e a usabilidade do produto. Além disso, devido ao alto custo das auditorias de segurança, muitos desenvolvedores têm dificuldade em iniciar projetos de aplicações DeFi.

A escassez de talentos em desenvolvimento de blockchain resulta em custos de auditoria manual elevados. Assim, a adoção de validação assistida por máquinas está se tornando uma tendência atual, onde a Verificação formal é uma ferramenta chave para garantir a segurança.

Verificação formal é o uso de métodos formais da matemática para provar ou refutar as propriedades de um algoritmo, existindo principalmente duas abordagens:

  1. Verificação do modelo: listar todos os estados possíveis do sistema e verificar um a um, aplicável à validação totalmente automatizada de sistemas pequenos.

  2. Verificação dedutiva: primeiro, o código do sistema é marcado como um modelo matemático abstrato, em seguida, o teorema é provado, aplicável a sistemas grandes, mas requer que os métodos de operação do sistema sejam convertidos em uma linguagem compreensível para o sistema de verificação.

Durante muito tempo, devido aos altos custos, os métodos de Verificação formal foram aplicados principalmente em áreas acadêmicas, de defesa, militar e aeroespacial, com pouca aplicação no setor comercial. Dada a diferença essencial entre os ambientes operacionais de aplicações da internet tradicional e aplicações de blockchain, o processo de desenvolvimento também deve ser ajustado em conformidade, especialmente na proporção de investimento na fase de verificação de segurança.

Aplicação de linguagens funcionais no domínio das blockchains públicas

Para garantir a segurança, muitos projetos de blockchain optaram por linguagens funcionais na sua arquitetura subjacente, máquinas virtuais ou linguagens de contratos inteligentes, como Ocaml, Haskell, Erlang, entre outras. As linguagens funcionais desfrutam de uma boa reputação na área da segurança devido à sua definição rigorosa de tipos de variáveis, verificação de compilação e uma boa cadeia de ferramentas de verificação formal (como CoQ). O código escrito em linguagens procedimentais comuns geralmente precisa ser reescrito em linguagens funcionais para que possa ser submetido a verificação formal.

Entre os muitos projetos de blockchain, a variedade de linguagens de programação de contratos inteligentes suportadas pelo Tezos é a mais rica, incluindo não apenas várias linguagens funcionais como Pascal, Ocaml e Haskell, mas também a amplamente utilizada linguagem Python. Em comparação, alguns outros projetos exigem que os desenvolvedores aprendam uma nova linguagem funcional, o que sem dúvida aumenta a barreira de entrada para o desenvolvimento.

Características de segurança da linguagem Michelson

Tezos adotou uma abordagem inovadora no design da linguagem de contratos inteligentes. A base de seus contratos inteligentes utiliza a linguagem Michelson, baseada em Ocaml, enquanto os desenvolvedores interagem realmente com linguagens de alto nível como Python, sem a necessidade de entender profundamente a própria linguagem Michelson. Essa abordagem combina a segurança e auditabilidade da linguagem Michelson com a facilidade de uso de linguagens de alto nível como Python.

Michelson tem semelhanças arquitetônicas com o EVM do Ethereum, como ser uma linguagem de pilha, usar armazenamento em cadeia, adotar um modelo de custos de gas, ser Turing completo, entre outros. Mas a principal diferença entre Michelson e EVM é:

  1. Tipos estáticos: todos os dados que entram no contrato inteligente Michelson devem ter o tipo definido de forma clara, evitando bugs de programa relacionados a incompatibilidade de tipos.

  2. Cálculo atômico: O contrato inteligente Michelson deve ser executado completamente antes de chamar outros contratos, evitando ataques de reentrada.

  3. Falha de chamada clara: Existem apenas três situações em que a falha em tempo de execução ocorre: falha clara, esgotamento de gas e estouro de quantidade, evitando alguns ataques comuns em tempo de execução.

  4. Semântica rigorosa: normas estritas para maiúsculas, minúsculas, espaços, linhas curtas, etc., facilitando a auditoria de código.

Essas melhorias permitem que o Michelson resista melhor aos tipos de ataques comuns na Ethereum.

Pacote de Ferramentas SmartPy

Os desenvolvedores de DApp na Tezos não precisam dominar a linguagem Michelson. Eles podem usar o SmartPy SDK baseado em Python para compilar contratos inteligentes escritos em código Python na linguagem Michelson. Portanto, os desenvolvedores de DApp só precisam entender Python para começarem facilmente.

SmartPy é uma biblioteca Python, e o SmartPy.io permite que os usuários executem scripts Python no navegador. O site oficial do SmartPy oferece um editor online, onde os desenvolvedores podem escrever código diretamente em Python e compilá-lo em contratos inteligentes Michelson, que podem ser implantados na rede principal Tezos. Sua interface de uso é mais simples e clara do que o editor online Remix do Ethereum, tornando-o muito fácil de usar. O SmartPy também vem com alguns modelos de desenvolvimento prontos, facilitando a referência e o aprendizado para os desenvolvedores.

A interface do SmartPy.io inclui uma área de escrita de código e uma área de exibição dos resultados da execução. Os desenvolvedores podem facilmente escrever e editar o código do contrato usando Python. O SmartPy simplifica o processo de compilação e execução, bastando clicar no botão de execução para completar. Os resultados da execução são exibidos imediatamente no lado direito da tela, incluindo a entrada de chamada do contrato, o estado de armazenamento, o código Michelson compilado, entre outros.

Além do editor online, o SmartPy também oferece a versão de linha de comando SmartPyBasic, permitindo que os desenvolvedores compilen e executem código SmartPy em ambientes locais. Os contratos inteligentes implementados podem ser visualizados através do SmartPy Contract Explorer, com o estado atual do contrato e operações históricas sendo facilmente compreensíveis.

Atualmente, o SmartPy já suporta várias funcionalidades comuns do Python, como variáveis locais, verificação de tipos de variáveis, funções Lambda, entre outras. Algumas funcionalidades não suportadas (como arrays) podem ser substituídas por map. Isso significa que aprender SmartPy não requer um grande investimento de tempo e esforço, permitindo que os desenvolvedores se concentrem na implementação de funcionalidades mais avançadas.

Para os desenvolvedores que desejam começar com o SmartPy, há alguns cursos de treinamento disponíveis para referência:

  1. Guerras do Cryptoverse
  2. Curso de desenvolvedor SmartPy da Blockmatics

XTZ-1.85%
DEFI-3.89%
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • Comentar
  • Republicar
  • Partilhar
Comentar
0/400
Nenhum comentário
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)