Notícia

Bitcoin Brasil

O que são smart contracts?

Publicado em 18 junho 2018

Smart contracts são programas automáticos de software construídos sobre um protocolo blockchain, nos quais se observa a coordenação entre antecessores e sucessores pré-determinados, inseridos dentro de uma lógica de autoexecutabilidade. Na prática, são capazes de, ao verificar o cumprimento de determinada condição previamente estipulada pelas partes, autoexecutar sua consequência programada (semelhantes a uma condição “se A, então B”).

Originalmente a expressão foi concebida pelo jurista, criptógrafo e cientista da computação norte-americano Nick Szabo já na década de 1990. Para Szabo, smart contracts seriam como protocolos de transação computacionais que executam os termos de um contrato. O autor tinha, em resumo, a ideia de não apenas utilizar esses programas para impor a execução de determinadas cláusulas, mas também empregar criptografia para garantir proteção contra fraudes e violações, além de assegurar transparência em todo o sistema.

Exemplo de rede pública sobre a qual smart contracts podem ser gerados é o Ethereum, blockchain nascido após aquele do Bitcoin. Semelhantemente, trata-se de uma rede open source. Contudo, diferente do Bitcoin, a rede Ethereum apresenta-se como uma plataforma viabilizadora de um protocolo alternativo que permite a construção e execução de aplicações diversificadas e descentralizadas, tais como os Dapps (decentralized applications) e os smart contracts. Reforça-se, portanto, o maior caráter inventivo disponibilizado por essa plataforma, a qual propicia a criação de diversas aplicações descentralizadas de maneira mais prática e diversificada do que quando comparada à rede blockchain originalmente trazida pelo Bitcoin.

O Ethereum representa, pois, uma plataforma viabilizadora da hospedagem e execução desses programas, transformando a visão de Szabo acerca dos smart contracts em, finalmente, algo concreto. Para isso, operam eletronicamente e são compostos por códigos (na linguagem de programação Solidity, por exemplo, quando escritos na plataforma Ethereum), os quais descrevem precisamente as condições e os resultados previstos, incorporando-os ao programa.

Além disso, o conceito técnico básico de smart contracts (automação e autoexecutabilidade), em sua origem, prescinde da rede blockchain. Todavia, com o uso da tecnologia peer-to-peer descentralizada, há um empoderamento de tais códigos na medida em que se possibilita maior transparência e segurança, além, é claro, de uma descentralização quanto à validação e armazenamento das informações relativas à execução desses programas.

Transparência, aqui, no sentido de verificabilidade, ou seja, saber qual conjunto de regras rege o contrato e quais informações a outra parte está armazenando. Difere, portanto, de programas em Python, por exemplo, nos quais não é possível verificar de maneira ampla e imediata o código executado em outro computador. Nos sistemas de smart contract por blockchain, há um completo isolamento e exposição do código, o que faz com que todo o processo seja totalmente verificável por todos.

Descentralização, por sua vez, relaciona-se com a garantia da integridade e aplicabilidade do contrato. Isso porque, nos casos em que o programa está nas mãos de uma única entidade, torna-se naturalmente mais fácil, para essa, alterar seus termos, ou até mesmo evitar unilateralmente a execução. Como resposta, a descentralização permite a verificação independente e por toda a rede, o que dificulta a prática de fraudes.

Além disso, é importante ressaltar que esses programas apenas serão autoexecutáveis caso o ativo que disser respeito à sua gestão e execução situar-se na rede blockchain, tal como é o exemplo da alocação de criptomoedas entre as partes envolvidas. Essa restrição denota, pois, o limite atual para as ações dos smart contracts: não é possível, se eles são utilizados de forma isolada, a autoexecução de programas que não tenham seus ativos representados (ou “tokenizados”) na rede blockchain.

Implementar um smart contract on-chain, ou seja, programas que comunicam ocorrências verificadas e que digam respeito a ativos representados em blockchain, não é tarefa complicada. Porém, caso seja necessário que um smart contract interaja com o mundo físico, isso exigirá a conexão com um oracle. São esses que informam, ao programa, a ocorrência ou não de determinada condição, conectando, no caso, a plataforma Ethereum com o mundo exterior (off-chain). Permite-se, assim, que o código importe dados externos à rede.

Os smart contracts não representam, pois, necessariamente, contratos sob o ponto de vista com o qual estamos acostumados a lidar. Conforme visto, trata-se, sobretudo, de um conceito tecnológico relativo à autoexecutabilidade transparente (portanto, verificável) e descentralizada (logo, íntegra) de programas.

—————————————————————————————————————————

Gustavo Marchi de Souza Mello é graduando em Direito pela USP com dupla diplomação pela Université Lyon III, pesquisador FAPESP em smart contracts e membro da associação Lawgorithm.

—————————————————————————————————————————