Executando verificação de segurança...
1

📜 O que são Contratos Inteligentes?

Quando queremos que duas ou mais pessoas entrem em acordo sobre determinado assunto, escrevemos contratos que delimitam regras e normas a serem seguidas, seja um contrato de um aluguel ou algum contrato de venda. Esse documento servirá como meio de assegurar que ambas as partes concordam.

Mas você sabia que é possível criar contratos que não precisam de intermediadores para funcionar e ser validado?

Me refiro aos smart contracts (contratos inteligentes). Diferente de contratos físicos, os smart contracts não necessitam de órgãos ou intermediadores para serem validados ou autenticados. Eles são escritos utilizando linguagens de programação, alguns com linguagens utilizadas comercialmente como Python, C++, Rust, etc. E outros com uma linguagem nativa da rede blockchain onde são criados, como o Solidity/Vyper (utilizado em redes que suportam a EVM).

Qual a vantagen de utilizar um smart contract?

A característica mais marcante de um contrato inteligente é o fato de não poder ser alterado depois, uma vez criado um contrato e inserido no blockchain o mesmo se torna imutável, claro que podemos utilizar formas complexas para modificar algo nos contratos, mas é algo que poucos programadores entendem a fundo.

Além de garantir a integridade dos dados, pois os contratos inteligentes são escritos em blockchain, eles podem ser abrangidos para diversas áreas, como empréstimos, crédito de carbono, derivativos e até mesmo cadeia logística.

Como eles são criados?

Como citei anteriormente, os contratos inteligentes são escritos no blockchain utilizando linguagens de programação, a mais utilizada no momento é o solidity. O solidity é uma linguagem compilada que foi criado para o desenvolvimento de smart contracts em blockchains que suportem a arquitetura da EVM (Ethereum Virtual Machine). Com ele você pode criar criptomoedas, Dapps (aplicativos descentralizados), NFTs (tokens não fungíveis), praticamente qualquer coisa.

Escrevendo um smart contract

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

contract HelloWorld {
    
    string msg = "Hello World";

    function sayHello() public view returns (string memory){
        return msg;
    }
}

Parece bem complicado, mas irei explicar linha por linha:

1 - A primeira linha do contrato diz respeito a licença que nosso contrato terá, como não possuo nenhuma licença só deixei 'MIT' que é uma licença pública:

// SPDX-License-Identifier: MIT

2 - A próxima linha serve para informar qual a versão do nosso compilador iremos utilizar, pois o solidity é uma linguagem compilada, logo após a compilação ela será convertida para um bytecode:

pragma solidity ^0.8.9;

3 - A estrutura dos contratos são muito semelhantes às classes, o que diferencia é apenas a nomenclatura, em vez de declarar classe você irá declarar contract:

contract HelloWorld {

}

4 - As variáveis do solidity são extremamentes tipadas, isso evita problemas e bugs desnecessários:

string msg = "Hello World";

5 - As funções do solidity não são tão diferentes de outras linguagens, porém tem algumas características a observar, note que definimos que nossa função é public(pública), do tipo view(não altera o estado da blockchain) e que retorna um dado do tipo string:

function sayHello() public view returns (string memory){
  return msg;
}

Conclusão

É muito legal conhecer esse novo mundo, a demanda no mercado para profissionais de contratos inteligentes e engenharia voltado a blockchain é gigantesca. Se você têm interesse em aprender mais sobre o solidity acesse a documentação aqui. Obrigado pela atenção ;-)

Carregando publicação patrocinada...
2

Eu estava pesquisando sobre web3, blockchain e afins. Contratos inteligentes eram frequêntemente citados. Este post foi bastante elucidativo. Estou estudando Rust e animado as possibilidades em programar com esta linguagem em diversos segmentos, quem sabe o que o futuro reserva.