A origem teórica dos contratos inteligentes pode ser encontrada em um artigo publicado por Nick Szabo em 1996, que os define como: "Um conjunto de promessas declaradas digitalmente, utilizando protocolos através dos quais as partes cumprem e verificam tais promessas". 8 No entanto, deve-se notar que na década de 1990 a tecnologia para criar esse tipo de contrato não existia, então a ideia não foi implementada na prática. Não foi até 2009, 9, quando a versão 0.1 do Bitcoin apareceu no Sourceforge 10 usando blockchains, que a porta foi aberta para que os contratos inteligentes se tornassem realidade. Assim, em 2013, Vitalik Buterin publicou um artigo no qual descreve uma nova plataforma de código aberto chamada Ethereum, baseada na tecnologia blockchain, “com uma linguagem de programação completa Turing integrada, que pode ser usada para criar contratos.
11 O desenvolvimento e implementação do Ethereum em 2014 resultou no nascimento de contratos inteligentes (smart contracts) no mundo virtual, graças ao fato de que esta cadeia de blocos permite estabelecer comandos e programação, o que abre a possibilidade de definir uma série de regras ou cláusulas de um contrato. Em princípio, um contrato é um acordo de vontades que cria ou transmite direitos e obrigações às partes que o assinam. Tradicionalmente, esses acordos são feitos verbalmente ou por escrito. No entanto, com o aparecimento das TIC, a formação e mesmo a sua execução foram evoluindo (Castrillón Víctor e Anahiby Becerril, 2015), até chegar ao que hoje conhecemos como contratos inteligentes. Em 2018, a Comissão Europeia promoveu a criação do Observatório Europeu de Blockchain, que no ano seguinte emitiu um relatório intitulado “Marco legal e regulatório de blockchains e contratos inteligentes”. O relatório define contratos inteligentes como “um programa de computador armazenado em uma blockchain, que uma ou mais partes podem acessar.
Esses programas geralmente são auto-executáveis e fazem uso de propriedades de blockchain, como imutabilidade, descentralização, etc.» (European Blockchain Observatory, 2019: 22). Em outras palavras, os contratos inteligentes são programas para realizar uma ou várias tarefas específicas e determinadas, de acordo com as instruções inseridas por um programador. As partes manifestam a sua vontade de chegar a um acordo. As partes contratantes especificam as condições do contrato. Um programador escreve o código de computador que permitirá a execução automática quando ocorrerem os eventos esperados. Cada uma das cláusulas é criptografada por meio de sistemas de autenticação e verificação, em uma cadeia de blocos. As cláusulas cadastradas no bloco são verificadas pelo sistema de consenso, com o qual o serviço é executado automaticamente. Agora, o desenvolvimento de plataformas de contratos inteligentes não é uma tarefa fácil, principalmente se você começar a partir da criação do blockchain no qual elas irão operar.
No entanto, existem ferramentas que facilitam seu desenvolvimento e operação. Um exemplo é o Ethereum, um blockchain que permite que qualquer pessoa escreva contratos inteligentes e aplicativos descentralizados onde possam criar suas próprias regras de propriedade arbitrárias, formatos de transação e funções de transição de estado (Buterin, 2015a). Apesar de ser uma blockchain pública, sua tecnologia possibilita a criação de uma blockchain privada a partir dela. O Ethereum permite que contratos inteligentes sejam gerados por meio de uma linguagem de programação proprietária chamada Solidity, além de armazenar dados e transações com Ether, a moeda associada à plataforma. Contraparte: Plataforma para o desenvolvimento e execução de contratos inteligentes e outros tipos de aplicações descentralizadas. Baseado no blockchain do Bitcoin, ele usa a mesma linguagem de programação do Ethereum, Solidity. Ganache: É um ambiente de desenvolvimento para criação e execução de contratos inteligentes na rede Ethereum. Esse ambiente facilita a criação de um blockchain privado e a conexão entre o blockchain e os contratos inteligentes que você deseja executar.