This article has been translated from English to Portuguese.

O Ethereum é conhecido como uma "plataforma de contratos inteligentes".

Uma plataforma (ou plataforma de computação) é um ambiente operacional no qual um pedaço de software, como programas ou aplicações, pode ser executado (ou "executado").

Mas o que raio é um contrato inteligente?

O que é um contrato inteligente?

Os contratos inteligentes são programas de computador automatizados que são alojados e executados numa blockchain.

Smart Contract Code

Apesar do seu nome, os "contratos inteligentes" não são necessariamente inteligentes ou juridicamente vinculativos.

"Automatizado" em vez de "inteligente" e "programa" em vez de "contrato" teria sido um nome melhor, mas não fui eu o génio que inventou o conceito!

Nick Szabo - que cunhou o termo no final dos anos 90 - comparou os contratos inteligentes a uma máquina de venda automática.

Os utilizadores inserem moedas na máquina e, assumindo que a quantidade inserida está correta, a máquina "auto-executa-se" e entrega os bens solicitados. Só tu e a máquina de venda automática estão envolvidos. Não é necessário o envolvimento de terceiros. Nem sequer o proprietário da máquina de venda automática.

A interação requer pouca ou nenhuma confiança: a máquina de venda automática não tem outra opção senão entregar a mercadoria quando recebe o dinheiro.

Smart Contract Example

Agora imagina escrever acordos com termos tão claros e previsíveis como uma máquina de venda automática e depois utilizar a tecnologia blockchain para implementar automaticamente os termos de um acordo entre as partes.

É isso que um contrato inteligente faz.

No Ethereum, os contratos inteligentes são bits de instruções codificadas enviadas para a cadeia de blocos para que os participantes da rede possam aplicar e armazenar estes contratos de uma forma segura e sem confiança.

Em termos ligeiramente mais técnicos, um contrato inteligente é uma coleção de código e dados que reside num endereço específico na cadeia de blocos da Ethereum.

Os contratos inteligentes também são determinísticos, de modo que os envolvidos no contrato sabem quais resultados esperar quando o contrato é executado.

Pensa num contrato inteligente como um programa de software na blockchain que é executado automaticamente quando condições pré-determinadas são cumpridas.

Estas condições predeterminadas, diretamente escritas em linhas de código, são o equivalente aos "termos de acordo" num contrato tradicional.

Agora que já sabes o que são contratos inteligentes, deixa-me apresentar-te o que faz do Ethereum uma plataforma de contratos inteligentes.

O que é EVM?

EVM

Não, não se trata de um novo tipo de música eletrónica.

Se os contratos inteligentes são instruções escritas em código, é a Máquina Virtual Ethereum (EVM) que os executa na cadeia de blocos Ethereum.

Uma "máquina virtual" é uma peça de software que se comporta como um computador físico real que pode executar programas e implementar aplicações.

É basicamente um programa de software num computador físico que funciona como se fosse um computador separado dentro do computador principal.

Porque é que é necessário um "computador separado" para executar contratos inteligentes (que são apenas programas de computador)?

Uma vez que nem todos os nós Ethereum (que são apenas computadores) usam o mesmo hardware, sistema operativo (SO) e outras configurações, precisas de uma forma de "abstrair" tudo isto para que o código do contrato inteligente possa ser executado sem ter de lidar com todos os diferentes tipos de configurações de computador com os seus requisitos específicos.

Caso contrário, terias de escrever uma versão diferente do contrato inteligente para cada tipo de configuração de computador! 👎

Os contratos inteligentes não querem lidar com todo este drama! Quer ser agnóstico em relação ao dispositivo e ao SO.

É aqui que entra o EVM. 💪

Fornece um ambiente de execução para contratos inteligentes, o que significa que um contrato inteligente pode ser executado ("run") em qualquer ambiente ("qualquer computador ou sistema operativo").

Os programadores podem escrever um contrato inteligente e ter a certeza de que este segue a prática padrão da indústria de software "Write once, run anywhere" (WORA), também conhecida como "Write once, run everywhere" (WORE).

Basicamente, um contrato inteligente é executado em qualquer computador com um EVM, fixe, não é?

Mas isso não é a única coisa fixe.

Uma vez que o objetivo do EVM é ser o motor de computação incorporado em todos os nós Ethereum completos, é Turing-completo.

Em linguagem informática, "Turing-completo" significa que o EVM pode teoricamente computar qualquer coisa que possas pensar em computar.

Portanto, em teoria, QUALQUER aplicação informática pode ser programada e executada na plataforma Ethereum!

Os contratos inteligentes são escritos em código usando linguagens de programação de alto nível como Solidity, Vyper, ou Serpent.

Este código é compilado para algo chamado "bytecode" pelo EVM, que então é implantado no blockchain Ethereum

Graças ao EVM, a cadeia de blocos Ethereum pode ir além dos contratos inteligentes e pode ser usada para criar aplicações descentralizadas (dApps).

Na próxima lição, aprenderemos mais sobre aplicativos descentralizados (dApps).