Photo by Fotis Fotopoulos / Unsplash

A Evolução das Linguagens de Programação para Contratos Inteligentes em Blockchain

Artigos 17 de Jul de 2023

Bitcoin foi inventado para substituir bancos, sem órgãos reguladores. A descentralização levou à criação de contratos inteligentes que, uma vez executados, não envolvem intervenção humana. Os desenvolvedores usam linguagens de programação ad hoc para contratos inteligentes. Embora linguagens de programação famosas como C + +, Java, Python, Go, Ruby, JavaScript, etc sejam vistas como as melhores, outras foram criadas que dependem delas: Solidez, Ferrugem, Mover e claridade. Algumas cadeias de bloqueio usam linguagens de programação "clássicas.

A Evolução das Linguagens de Programação para Contratos Inteligentes

SOLIDEZ (EUTEREU E EVM)

Solidez é uma linguagem de programação projetada especificamente para desenvolver contratos inteligentes EVM para Ethereum (Avalanche, Bnb Chain, Cronos Chain, Fantom, etc). Solidez é um código de alto nível dividido em instruções específicas fáceis de entender para as máquinas. Ele suporta objetos, booleanos, enumerações, números inteiros, cadeias, matrizes de bytes e variáveis de status. Mesmo desenvolvedores que não têm experiência com o Solidity podem ser ajudados no desenvolvimento se forem proficientes em JavaScript, Python e C + +. De fato, os fundamentos de desenvolvimento de blockchain da Solidity coordenam-se com essas linguagens de programação. Portanto, é usado para implementar contratos inteligentes na máquina virtual Ethereum. O código de solidez é gravado no EVM, convertido pelo compilador e depois executado pelo processador. Também é usado para escrever dapps no software de código aberto Tendermint (para iniciar o blockchain no Cosmos).

RUST (SOLANA, POLKADOT, EGLD, PERTO)

Rust é usado principalmente para escrever contratos inteligentes em Solana, Polkadot, Near e Egld. É uma linguagem de programação próxima às de baixo nível, embora não seja muito diferente de C + + e JavaScript. O Rust oferece muitos recursos, como segurança de memória, tempo de execução reduzido, etc. Isso permite que você escreva um contrato inteligente compilado no wasm que não possui erros de memória e consome menos espaço de armazenamento no blockchain. Ele permite que os desenvolvedores criem dapps personalizáveis e escaláveis.

MOVE (APTOS, REDE SUI)

Criado para apoiar a criação de ativos digitais, Move é uma linguagem de programação de código aberto, usada para preservar a simplicidade e suportar as necessidades complexas da infraestrutura de contrato inteligente. Com base no Rust, o Move visa desenvolver lógicas de transações personalizáveis e contratos inteligentes, principalmente para as cadeias de bloqueio da rede Aptos e Sui. O Move suporta booleanos, referências, números inteiros não assinados de 64 bits, matrizes de bytes de tamanho fixo e endereços de 256 bits. Também codifica a propriedade de ativos digitais e cria procedimentos para a transferência desses ativos. Ele também aborda os problemas da representação indireta através da introdução de recursos, um tipo personalizável inspirado na lógica linear. Além disso, cada transação possui um script responsável por codificar a lógica que um validador deve executar. A linguagem Move basicamente possui três componentes: tipos, estruturas e procedimentos. Os tipos são dados primitivos usados nele, como Booleano, Inteiro, matriz de bytes de tamanho fixo e tipo de dados de endereço. As estruturas são fundamentalmente limitadas e ilimitadas (estruturas de recursos e estruturas gerais). Os procedimentos são métodos simples na linguagem de programação Move.

COSMWASM (COSMOS)

CosmWasm ativa o WebAssembly (Máquinas virtuais WASM) (VM) no Cosmos SDK. A adição de WebAssembly ao Cosmos SDK permite que o software seja executado com segurança em uma blockchain. Wasm é uma linguagem intermediária que compila o código do desenvolvedor em uma máquina virtual portátil. Este produto permite que os desenvolvedores escrevam módulos no Rust que se integram perfeitamente ao Cosmos SDK, para que eles possam tirar proveito dos módulos SDK e do algoritmo de consenso do BPoS Tendermint, desenvolvendo lógica de aplicativo personalizada (amplamente baseada em Rust). Em segundo lugar, a capacidade de carregar código em transações, em vez de reiniciar a cadeia, permite uma implementação muito mais rápida de novos recursos.

MICHELSON (TEZOS)

Esse idioma usado pelo Tezos é baseado em pilha, com primitivas, tipos de dados de alto nível e verificação estrita do tipo estático. Seu design de cereja reúne características de diferentes famílias de idiomas (Scheme, Forth, ML e Cat). Michelson é uma série de instruções executadas em sequência: cada instrução recebe como entrada a pilha resultante da instrução anterior e a reescreve para a próxima. A pilha contém valores imediatos e estruturas alocadas por heap. Todos os valores são imutáveis e coleta de lixo. Os tipos de pilha de entrada e saída são fixos e monomórficos, e o programa é testado antes de ser introduzido no sistema. Nenhuma execução inteligente do contrato pode falhar porque uma instrução foi executada em uma pilha de comprimento ou conteúdo inesperado.

SCILLA (ZILLIQA)

Scilla (A linguagem inteligente de nível intermediário do contrato) é uma linguagem de contrato inteligente de nível intermediário desenvolvida para o blockchain Zilliqa. Ele foi projetado principalmente para garantir a segurança de contratos inteligentes. Ele impõe uma estrutura para contratos inteligentes, tornando os aplicativos menos vulneráveis a ataques (eliminando algumas vulnerabilidades conhecidas diretamente no nível linguístico). Além disso, a estrutura principal da Scilla tornará as aplicações inerentemente mais seguras e mais suscetíveis à verificação formal. O idioma é desenvolvido em conjunto com a formalização de sua semântica e é incorporado ao assistente de teste Coq (uma ferramenta de ponta para testes mecanizados de propriedades do programa). Coq é baseado em uma teoria avançada da digitação dependente e apresenta um grande conjunto de bibliotecas matemáticas. Foi aplicado com sucesso anteriormente para implementar compiladores certificados (ou seja, aplicativos totalmente verificados mecanicamente), simultâneos e distribuídos, incluindo cadeias de bloqueio, entre outros.

HASKELL (CARDANO)

Haskell é uma linguagem de programação funcional. Haskell tem suas raízes na academia e no estudo da lógica, bem como em iterações anteriores de linguagens de programação funcional, como Miranda. As linguagens de programação funcional enfatizam o uso de funções "puras" sempre que possível: funções que sempre dão o mesmo resultado para a mesma entrada. É adequado para códigos e programas que exigem um alto grau de verificação formal. Por meio de Haskell, os contratos inteligentes Plutus e Marlowe da Cardano podem ser implementados com um código preciso e formalmente verificado que oferece um alto nível de garantia desde o início. Plutus e Marlowe são oferecidos como um conjunto de bibliotecas para Haskell, aproveitando a documentação existente da Haskell, kits de ferramentas e uma comunidade altamente profissional, fornecendo uma base para a construção segura, contratos inteligentes de nível empresarial. O código fora da cadeia e na cadeia para Cardano está escrito em Haskell.

CLARIDADE (BLOCKSTACK)

Clareza é uma linguagem inteligente de programação de contratos introduzida pelo Blockstack para suas pilhas blockchain. O Blockstack visa construir sua Internet fornecendo serviços de contrato inteligentes. É uma linguagem de programação projetada como "não completa" e "não destinada à compilação" (é uma linguagem interpretada). A clareza suporta tipos booleanos, opcionais, tupla, lista, resposta e principais. Com a ajuda de sua incompletude rotacional, a Clarity é capaz de calcular transações com bastante antecedência. No Clarity, o código-fonte do próprio contrato é publicado e executado pelos nós blockchain, removendo quaisquer representações intermediárias pré-compiladas. Através das funções de controle, também pode reduzir quaisquer erros. A previsibilidade permite que os desenvolvedores saibam como o programa será executado.

Conclusão

A evolução das linguagens de programação para contratos inteligentes em blockchain tem sido notável. Desde a introdução do Bitcoin e da descentralização das transações financeiras, várias linguagens foram criadas para atender às necessidades específicas de cada blockchain. Do Solidity ao Rust, Move, Michelson, Scilla, Haskell e Clarity, cada linguagem oferece recursos e funcionalidades exclusivas para o desenvolvimento de contratos inteligentes. Essas linguagens permitem que os desenvolvedores criem aplicativos personalizados, seguros e escaláveis para diferentes plataformas blockchain. Com a contínua inovação e aprimoramento das linguagens de programação, a implementação de contratos inteligentes continuará a se fortalecer, abrindo caminho para a próxima geração de aplicativos descentralizados e serviços baseados em blockchain.

Marcadores

Crypto Bloko

Crypto Bloko é um canal informativo sobre o universo das criptomoedas e blockchain.