O que é um contrato inteligente?

Concluído

Um contrato inteligente é um programa que está armazenado dentro de um blockchain. Os contratos inteligentes expandem o blockchain dos dados ao código. Representam um contrato entre as partes. O contrato é codificado e quando ocorre uma ação, o código é executado e dá uma resposta.

Todos os termos e condições dos contratos são definidos de forma programática. Uma definição especifica as regras, os requisitos e as recompensas dos participantes no blockchain. Especifica também como os recursos digitais são transferidos entre as partes. Cada contrato inteligente recebe um endereço de 20 bytes que o identifica exclusivamente.

Os contratos inteligentes são executados por conta própria, enviam eventos que acionam transições de estado e chamam funções. São perfeitos para a tecnologia blockchain, pois permitem que pessoas desconhecidas façam negócio de uma forma especificada em segurança sem intermediários.

Os contratos inteligentes são utilizados mais frequentemente com o Ethereum. O Ethereum é o primeiro blockchain programável do mundo. Permite definir contratos inteligentes para ajudar a facilitar a transferência de recursos digitais, como o Ether.

A linguagem que utilizará para escrever os contratos é o Solidity. O Solidity tem a tecnologia Turing, o que significa que pode escrever contratos complicados de uma forma claramente definida e codificada.

Como cada transição de estado é registada e imutável, deve testar exaustivamente o contrato antes de o lançar num ambiente de produção. As correções de erros podem ser dispendiosas e até causar danos críticos ao sistema.

Os contratos inteligentes têm as seguintes principais propriedades e vantagens:

  • Transparência: Os usuários de blockchain podem ler contratos inteligentes e acessá-los usando APIs.
  • Imutabilidade: a execução de contratos inteligentes cria logs que não podem ser alterados.
  • Distribuição: A saída do contrato é validada e verificada por nós na rede. Os estados do contrato podem ser visíveis publicamente. Em alguns casos, até mesmo as variáveis “privadas” são visíveis.

Casos de utilização

Os contratos inteligentes podem beneficiar muitos setores e processos. Considere os seguintes casos de utilização.

Seguros: Quando determinados eventos ocorrem, os contratos inteligentes acionam automaticamente uma reclamação que simplifica e agiliza o processo de sinistros. Então, para determinar o valor da compensação que os usuários recebem, os detalhes da reivindicação podem ser registrados no blockchain. Esta funcionalidade pode reduzir os tempos de processamento e os erros humanos.

Votação: os contratos inteligentes podem ajudar a tornar a votação automática e transparente. Cada contrato serve como um voto, que representa a identidade de um eleitor. Como um blockchain é imutável, que significa que não pode ser alterado, os votos não podem ser adulterados.

Cadeias de suprimentos: à medida que os itens se movem pela cadeia de suprimentos, os contratos inteligentes podem registrar a propriedade e confirmar quem é responsável por um produto a qualquer momento. Em qualquer fase, o contrato inteligente pode ser utilizado para descobrir exatamente onde os produtos devem estar. Se qualquer parte falhar a entrega na cadeia de fornecimento dentro do prazo, cada parte saberá onde o problema ocorreu.

Manutenção de registos: Muitas indústrias podem utilizar contratos inteligentes para melhorar a velocidade e a segurança da manutenção de registos. A tecnologia blockchain pode ser utilizada para digitalizar registos e encriptá-los e armazená-los em segurança. Além disso, o acesso pode ser restringido para que apenas as pessoas permitidas consigam aceder aos registos.

Propriedade da propriedade: os contratos inteligentes podem registrar quem possui a propriedade. São uma forma rápida e económica de registar a propriedade. Os contratos inteligentes também podem ajudar a facilitar a transferência da propriedade de forma oportuna e segura.

Ferramentas para trabalhar com contratos inteligentes

Muitas ferramentas podem ajudá-lo a desenvolver contratos inteligentes com eficiência. As secções seguintes sugerem alguns ambientes de desenvolvimento integrado (IDEs), extensões e estruturas que pode explorar.

IDEs

  • Visual Studio Code: um editor de código que é redefinido e otimizado para criar e depurar aplicativos Web e de nuvem modernos. Neste módulo, utilizamos o Visual Studio Code em todos os exercícios.
  • Remix: Um compilador baseado em navegador e IDE que você pode usar para construir contratos Ethereum na linguagem Solidity e para depurar transações. O Remix é uma ótima forma de explorar contratos de exemplo. Pode utilizá-lo para escrever, testar e implementar os seus próprios contratos. Não utilizamos o Remix neste módulo, mas pode experimentá-lo nos exercícios do contrato.

Extensões

  • Trufa para extensão VS Code: Esta extensão pode simplificar como você cria, constrói e implanta contratos inteligentes em livros contábeis Ethereum. Esta extensão tem integração integrada com Truffle, Ganache e mais ferramentas e serviços. Neste módulo, usaremos essa extensão para escrever e testar contratos inteligentes.

Frameworks

  • Truffle Suite: Use o conjunto de ferramentas Truffle para testar contratos Ethereum antes de implantá-los em livros contábeis públicos e incorrer em custos reais. Para facilitar o trabalho como programador, desenvolva localmente. O conjunto de ferramentas inclui o Truffle, o Ganache e o Drizzle. Neste módulo, vamos utilizar o Truffle.
  • OpenZeppelin: Use as ferramentas do OpenZeppelin para escrever, implantar e operar aplicativos descentralizados. O OpenZeppelin disponibiliza dois produtos: a biblioteca de contratos e o SDK. Não utilizamos o OpenZeppelin neste módulo, mas pode experimentá-lo mais tarde quando escrever aplicações de blockchain seguras.