Como funciona o Smart Contracts do Ethereum?

https3a2f2fcdn-evbuc-com2fimages2f390204252f2386322027232f12foriginal
Imagem extraída de http://www.eventbrite.com

Como muitas idéias na indústria de blockchain, uma confusão geral encobre os chamados “contratos inteligentes”.

screen-shot-2017-03-28-at-5-43-08-pm-728x539

Uma nova tecnologia possibilitada por blockchains públicos, os chamados contratos inteligentes, são difíceis de entender porque o termo confunde parcialmente a interação principal descrita.

Enquanto um contrato padrão descreve os termos de um relacionamento (geralmente um aplicável por lei), um contrato inteligente impõe um relacionamento com o código criptográfico.

Em outras palavras, os contratos inteligentes são programas que são executados exatamente como estão configurados por seus criadores.

Concebida originalmente em 1993, a ideia foi originalmente descrita pelo cientista da computação e criptógrafo Nick Szabo como uma espécie de máquina de venda digital. Em seu famoso exemplo, ele descreveu como os usuários poderiam inserir dados ou valor e receber um item finito de uma máquina, neste caso um lanche ou um refrigerante do mundo real.

Em um exemplo simples, os usuários do ethereum podem enviar 10 ether para um amigo em uma determinada data usando um contrato inteligente (consulte o nosso guia “O que é o Ether?”).

Nesse caso, o usuário criaria um contrato e enviaria os dados para esse contrato, de modo que pudesse executar o comando desejado.

Ethereum é uma plataforma criada especificamente para criar contratos inteligentes.

Mas essas novas ferramentas não devem ser usadas isoladamente. Acredita-se que eles também podem formar os blocos de construção para ‘aplicações descentralizadas’. E até mesmo empresas autônomas descentralizadas inteiras.

Como os contratos inteligentes funcionam

Vale a pena notar que o bitcoin foi o primeiro a suportar contratos inteligentes básicos no sentido de que a rede pode transferir valor de uma pessoa para outra. A rede de nós só validará transações se determinadas condições forem atendidas.

Mas o bitcoin é limitado ao caso de uso de moeda.

Em contraste, o Ethereum substitui a linguagem mais restritiva do bitcoin (uma linguagem de script de cerca de uma centena de scripts) e a substitui por uma linguagem que permite aos desenvolvedores escrever seus próprios programas.

O Ethereum permite que os desenvolvedores programem seus próprios contratos inteligentes, ou ‘agentes autônomos’, como o white paper ethereum os chama. A linguagem é ‘Turing-complete’, o que significa que suporta um conjunto mais amplo de instruções computacionais.

Contratos inteligentes podem:

  • Funcionar como contas “multi-assinatura”, de modo que os fundos são gastos apenas quando uma porcentagem exigida de pessoas concordam
  • Gerenciar acordos entre usuários, digamos, se comprar um seguro do outro
  • Fornecer utilidade para outros contratos (semelhante ao funcionamento de uma biblioteca de software)
  • Armazenar informações sobre um aplicativo, como informações de registro de domínio ou registros de associação.

Força em números

Extrapolando esse último ponto, os contratos inteligentes provavelmente precisarão de assistência de outros contratos inteligentes.

Quando alguém faz uma aposta simples na temperatura em um dia quente de verão, pode desencadear uma seqüência de contratos por trás disso.

Um contrato usaria dados externos para determinar o tempo, e outro contrato poderia liquidar a aposta com base nas informações recebidas do primeiro contrato quando as condições fossem atendidas.

A execução de cada contrato exige taxas de transação de éter, que dependem da quantidade de energia computacional necessária.

Como explicado no tópico “Como funciona o Ethereum.”, a Ethereum executa um código de contrato inteligente quando um usuário ou outro contrato envia uma mensagem com taxas de transação suficientes.

A máquina virtual Ethereum, em seguida, executa contratos inteligentes em ‘bytecode’, ou uma série de “uns e zeros” que podem ser lidos e interpretados pela rede.

Texto e imagem extraída de http://www.coindesk.com – Tradução livre