Ethereum: como funcionam os contratos inteligentes?

Contratos inteligentes são a principal característica que tornou o Ethereum tão bem-sucedido. 

O que são contratos inteligentes e para que servem

O protocolo Bitcoin não prevê a possibilidade de criando contratos inteligentes verdadeiramente complexos, porque basicamente foi projetado apenas para permitir transações. 

Em contraste, o Ethereum, que nasceu 6 anos após o Bitcoin, foi projetado desde o início para ser basicamente uma rede capaz de hospedagem e execução de contratos inteligentes

Em 2014, o cofundador da Ethereum Vitalik Buterin escreveu explicitamente no whitepaper que a rede que ele estava projetando era um plataforma de próxima geração baseada em contratos inteligentes, e que os aplicativos alternativos ao Bitcoin baseados na tecnologia blockchain também incluíam o uso de ativos digitais para representar moedas e instrumentos financeiros personalizados, ativos não fungíveis e aplicativos mais complexos. 

Em particular, estes últimos, ou seja, contratos inteligentes, foram definidos como aplicações que envolvem o controle direto de ativos digitais por um código que implementa regras arbitrárias, ou organizações autônomas descentralizadas baseadas em blockchain, as chamadas DAOs.  

Vitalik escreveu: 

“O que o Ethereum pretende fornecer é um blockchain com uma linguagem de programação Turing-completa integrada que pode ser usada para criar 'contratos' que podem ser usados ​​para codificar funções arbitrárias de transição de estado, permitindo que os usuários criem qualquer um dos sistemas descritos acima. – assim como muitos outros que ainda não imaginamos – simplesmente escrevendo lógica em poucas linhas de código”.

Assim, contratos inteligentes no Ethereum são linhas de código pelas quais é possível programar a execução automática de instruções pela rede, quando certas condições são atendidas, sem ter de confiar a sua execução a um intermediário.

De fato, o próprio Buterin colocou o termo “contratos” entre aspas, pois ao invés de contratos reais entre as partes, eles são programas de computador executados por uma rede. 

De um ponto de vista geral, portanto, sua operação não é muito complicada. 

smart contract
Os contratos inteligentes são executados uma vez verificadas as condições neles contidas

Implantando contratos inteligentes na blockchain Ethereum

Em primeiro lugar, um ou mais desenvolvedores devem obviamente criar o contrato inteligente escrevendo as linhas de código apropriadas e, em seguida, devem enviá-lo para a rede Ethereum. 

Em termos técnicos, publicá-lo no blockchain Ethereum significa fazer com que todos os nós da rede o recebam e executem. Uma vez publicadas, todas as instruções nela contidas serão sempre executadas por todos os nós exatamente da mesma maneira. 

Assim, não só a sua publicação, mas também a execução de instruções é irreversível uma vez que é publicado no blockchain. 

Portanto, o que realmente importa são as instruções que ele contém – que podem ser as mais diversas – e quantas pessoas o utilizam. De fato, para que as instruções de um contrato inteligente sejam realmente executadas, deve haver uma ou mais transações que as invocam

Vale lembrar também que essas instruções geralmente envolvem o uso de recursos, como dados ou tokens, para que de fato sejam executadas, todas as condições estabelecidas conforme necessário devem ser atendidas. 

Às vezes, esses dados vêm de fora, graças aos chamados oráculos, enquanto às vezes simplesmente vêm de transações no blockchain. 

Normalmente, a transação que aciona a execução das instruções contidas em um contrato inteligente envolve o pagamento de uma taxa em ETH, e em muitos casos para realmente acionar a execução também envolve o pagamento ou envio de tokens específicos para o próprio contrato inteligente, ou outros contratos inteligentes. 

Tecnicamente, os contratos inteligentes são um tipo de conta no Blockchain Ethereum, “controlado” pela rede em vez de uma entidade central. Eles podem armazenar ETH ou tokens e também podem enviar transações na rede de forma autônoma.

Como interagir com o código e mais geralmente com dApps

Os usuários podem interagir com contratos inteligentes enviando transações que acionar uma das funções definidas em seu código. 

Portanto, o funcionamento de contratos inteligentes no Ethereum é geralmente muito simples: basta enviar uma transação de um determinado tipo para um contrato inteligente, e isso acionará a execução pelos nós de todas as instruções contidas na função do contrato inteligente invocada por a transação em si. 

Obviamente, dependendo de quais instruções estão contidas na função invocada, consequências muito diferentes podem ser geradas, variando não apenas de contrato inteligente para contrato inteligente, mas também de função para função. 

A enorme complexidade dos contratos inteligentes, portanto, deriva precisamente do que os contratos inteligentes individuais fazem, e não em geral do fato de que a rede Ethereum os suporta e os executa. Além disso, é absolutamente impossível listar como todos os tipos de contratos inteligentes na rede realmente funcionam. 


Fonte: https://en.cryptonomist.ch/2022/06/11/ethereum-smart-contracts-3/