- Voltar ao menu
- Voltar ao menuPreços
- Voltar ao menuPesquisar
- Voltar ao menuConsenso
- Voltar ao menu
- Voltar ao menu
- Voltar ao menu
- Voltar ao menuWebinars e Eventos
Os contratos inteligentes de blockchain precisam de um novo tipo de due diligence
Dois especialistas jurídicos argumentam que precisamos de uma diligência aprimorada antes que transações de contratos inteligentes sejam escritas em "pedra de blockchain".
Mais de 20 anos atrás, Nick Szabo propôs o uso de um "contrato inteligente" para reduzir fraudes e custos de execução associados a contratos tradicionais em papel. Seu contrato inteligente seria implementado como um "protocolo de transação computadorizado que executa os termos de um contrato" – em outras palavras, um programa de computador.
Como qualquer outro software, um programa de computador de 'contrato inteligente' receberia entradas, executaria uma série de etapas do programa e forneceria saídas. Por exemplo, o contrato inteligente poderia esperar que uma condição predeterminada ocorresse (por exemplo: uma ação atinge um preço específico), considerar automaticamente os termos do contrato atendidos e acionar uma série predeterminada de etapas de desempenho (por exemplo: um pagamento) que seriam executadas automaticamente. Bem à frente de seu tempo, a ideia não pegou.
Avançando para 2016. Blockchains estão em abundância, e há um interesse renovado em contratos inteligentes, particularmente com a execução descentralizada de contratos: contratos inteligentes no blockchain.
O blockchain do Bitcoin está em operação desde 2009, mas, apesar de vários esforços, não parece se prestar à implementação conveniente de contratos inteligentes. Em contraste, o blockchain original do Ethereum , anunciado em 2014 e lançado em 2015, foi projetado especificamente para permitir a implementação de contratos inteligentes.
Problemas no paraíso
Desde o lançamento, os contratos inteligentes começaram a proliferar no ecossistema Ethereum . No entanto, a imutabilidade futura dos contratos inteligentes Ethereum é incerta após a amplamente divulgada “bifurcação dura” do Ethereum. O éter existente tornou-se efetivamente “E[i]ther” – éter clássico (ETC) e *novo* éter (ETH) – deixando as forças de mercado determinarem se um ou ambos sobreviverão.
O sistema Ethereum , como o Bitcoin, associa a propriedade da moeda (ether) a um endereço. Ao contrário do Bitcoin , no entanto, o Ethereum também fornece um endereço para código de contrato executável que roda no blockchain. Quando o endereço do contrato recebe uma mensagem adequada de um usuário ou outro contrato, o código é executado. Os contratos inteligentes do Ethereum são armazenados no blockchain e executados em “máquinas virtuais Ethereum ” (EVMs) por nós de computador autoselecionados, comumente conhecidos como “mineradores”. Esses nós realizam o processamento necessário para executar as etapas correspondentes do programa. Por uma taxa, é claro.
A taxa de processamento para cada contrato inteligente de Ethereum é proporcional à sua complexidade e uso de recursos de computação. Ao cobrar uma taxa proporcional, o uso indevido intensivo de recursos do sistema Ethereum é desencorajado.
Mas o uso excessivo de recursos do Ethereum não é o único tipo de uso indevido possível. Um artigo recente observou que, entre os cerca de 19.000 contratos inteligentes do Ethereum estudados, 44% continham vulnerabilidades. À medida que o código do contrato inteligente era copiado repetidamente e técnicas de redação falhas eram repetidas, o código cheio de erros se propagava. Código antigo e falho aparentemente se tornou a base instável para novos contratos inteligentes imponentes.
Como todos nós estamos dolorosamente cientes, bugs de software e vulnerabilidades de sistema não são nenhuma novidade. Os sistemas operacionais e softwares de aplicativos mais populares são “atualizados” frequentemente. E mais bugs são encontrados o tempo todo. O típico contrato de licença de software inclui anos de atualizações “gratuitas”.
Como corrigir um sistema imutável?
Como consumidor de software, sua “due diligence” é bem direta porque um processo de correção de erros é incorporado à licença do software. Quando (e não se) algo der errado, você tem alguma esperança de que alguém esteja tentando resolver o problema.
Mas contratos inteligentes não são softwares comuns. Um contrato inteligente deve implementar automaticamente um contrato da vida real: um acordo real entre duas (ou mais) partes. Depois que as partes negociadoras concordam com os termos de um acordo, esses termos são convertidos em um contrato inteligente – por exemplo: dado a um programador de computador para criar um código de contrato inteligente. Então, como as partes sabem se os termos acordados foram programados corretamente?
Além disso, se um contrato inteligente for armazenado em um blockchain imutável, então, por definição, seu código de programa armazenado não muda. A certeza que resulta de tal permanência se torna um recurso valioso. Mas essa certeza também significa que contratos inteligentes imutáveis não têm capacidades tradicionais de correção de erros. O código do programa que implementa o contrato inteligente não pode ser prontamente depurado após ser armazenado em um blockchain imutável. Quaisquer erros ou vulnerabilidades são definidos em 'blockchain stone'.
Um contrato inteligente precisa ser livre de erros, tolerante a erros ou, pelo menos de alguma forma, corrigível. Confiar em contratos de “forma” não é garantia de segurança – especialmente para contratos inteligentes. Softwares antigos e cheios de bugs certamente podem ser explorados e têm tido grande efeito. VejaO hack do DAO. Mais de US$ 50 milhões em ether foram desviados devido a uma vulnerabilidade de contrato inteligente.
É preciso haver um novo tipo de due diligence para esse novo tipo de contrato. Contratos inteligentes misturam direito e ciência da computação. A due diligence em contratos inteligentes deve fazer o mesmo.
Due diligence na era do blockchain
Que diligência é necessária para um contrato inteligente?
Uma análise tradicional da transação proposta e dos termos do contrato negociado deve identificar questões práticas e legais. Uma análise do código-fonte deve identificar falhas na programação do contrato inteligente antes que ele seja compilado.
Além disso, o contrato inteligente proposto deve ser executado em um simulador para ver como ele opera em resposta a mensagens esperadas e inesperadas de usuários e outros contratos. Tanto as questões legais quanto as questões de programação podem então ser abordadas em conjunto. Contingências esperadas e inesperadas podem ser identificadas, avaliadas e mitigadas.
Para a consternação de alguns, usar contratos inteligentes em um blockchain T eliminará a necessidade de advogados. Mais provavelmente, apenas mudará o que os advogados precisam fazer.
Prevemos que esse novo tipo de due diligence reunirá advogados especializados em transações, que podem revisar os termos de um acordo específico, especialistas em software, que podem analisar o código do programa de contrato inteligente e sua operação no blockchain, e advogados de "contratos inteligentes", que podem preencher a lacuna entre os dois.
Obviamente, a equipe de due diligence deve ser engajada bem antes de um contrato inteligente ser adicionado ao blockchain – mesmo antes do acordo subjacente ser negociado – para ajudar a evitar erros previsíveis. Ao conduzir esse novo tipo de due diligence com a equipe adequada, as partes contratantes inteligentes podem ter muito mais confiança em atingir os resultados pretendidos.
Uma diligência mais rigorosa em contratos inteligentes pode finalmente trazer alguma paz de espírito.
Auditoriaimagem via Shutterstock
Note: The views expressed in this column are those of the author and do not necessarily reflect those of CoinDesk, Inc. or its owners and affiliates.