WEB3DEV

Cover image for O que é o Contrato Inteligente de Bloqueio de Tempo?
Paulo Gio
Paulo Gio

Posted on • Atualizado em

O que é o Contrato Inteligente de Bloqueio de Tempo?

https://miro.medium.com/max/1100/0*Ky7TW54aLcItxnVj.webp

Um contrato inteligente de bloqueio de tempo (timelock smart contract) é um tipo de contrato digital que permite a liberação de fundos ou outros ativos em uma data ou hora específica no futuro. Os contratos inteligentes de bloqueio de tempo são usados para criar acordos de depósito de garantia, pagamentos adiados e outros tipos de transações atrasadas.

Como funcionam os contratos inteligentes de bloqueio de tempo?

Um contrato inteligente de bloqueio de tempo contém um conjunto de regras e condições que especificam quando e como o contrato pode ser executado. Quando o contrato é criado, as partes envolvidas concordam com os termos da temporização. Isso pode incluir especificar uma determinada data ou hora em que o contrato será executado, ou estabelecer uma condição que deve ser atendida antes que o contrato possa ser executado.

Uma vez criado o contrato de bloqueio de tempo, ele é armazenado em uma blockchain. Isso garante que o contrato não possa ser adulterado ou manipulado. Quando o tempo ou as condições especificadas são atendidas, o contrato é executado automaticamente e os ativos são transferidos adequadamente.

Por que usar um contrato inteligente de bloqueio de tempo?

Os contratos inteligentes de bloqueio de tempo podem ser usados em uma variedade de situações em que é benéfico adiar a execução de uma transação. Por exemplo, um contrato inteligente de bloqueio de tempo pode ser usado para criar um acordo de depósito de garantia. Nesse tipo de acordo, os fundos não são liberados até que ambas as partes tenham cumprido suas obrigações. Isso pode ajudar a prevenir fraudes ou disputas.

Outro uso para contratos inteligentes de bloqueio de tempo é para pagamentos adiados. Isso pode ser útil se você estiver vendendo um produto ou serviço e precisar receber o pagamento antecipadamente, mas não quiser entregar o produto ou serviço até uma data posterior. Ao usar um contrato inteligente de bloqueio de tempo, você pode garantir que receberá o pagamento quando estiver pronto para entregar o produto ou serviço.

Quais são os benefícios dos contratos inteligentes de bloqueio de tempo?

Os contratos inteligentes de bloqueio de tempo oferecem vários benefícios, incluindo:

Segurança

Os contratos inteligentes de bloqueio de tempo são armazenados em uma blockchain, o que os torna invioláveis. Isso garante que os termos do contrato não possam ser alterados após sua criação.

Necessidade Mínima de Confiança

Os contratos inteligentes de bloqueio de tempo não exigem uma confiança entre as partes envolvidas. Isso ocorre porque o contrato é executado automaticamente quando o tempo ou as condições especificadas são atendidas.

Eficiência

Os contratos inteligentes de bloqueio de tempo podem ajudar a simplificar as transações e reduzir a necessidade de processamento manual.

Custo-benefício

Os contratos inteligentes de bloqueio de tempo podem ajudar a economizar nos custos associados aos contratos tradicionais, como honorários advocatícios.

Quais são os riscos associados aos contratos inteligentes de bloqueio de tempo?

Existem alguns riscos a serem observados ao usar contratos inteligentes de bloqueio de tempo, incluindo:

  • Perda de controle: depois que um contrato inteligente de bloqueio de tempo é criado, as partes envolvidas perdem o controle sobre o contrato. Isso significa que o contrato não pode ser alterado ou cancelado.
  • Circunstâncias imprevistas: sempre existe a possibilidade de circunstâncias imprevistas impedirem a execução de um contrato inteligente de bloqueio de tempo. Por exemplo, se o período de tempo especificado expirar antes que as condições do contrato sejam atendidas, o contrato não será executado.
  • Hacking: embora a tecnologia blockchain seja segura, sempre existe a possibilidade de um hacker obter acesso ao contrato e executá-lo prematuramente.

Como criar um contrato inteligente de bloqueio de tempo?

Se você deseja criar um contrato inteligente de bloqueio de tempo, há algumas coisas que você precisa fazer:

  1. Escolha uma plataforma blockchain: primeiro, você precisa escolher uma plataforma blockchain que permita a criação de contratos inteligentes de bloqueio de tempo. Algumas escolhas populares incluem Ethereum, EOS e Tezos.
  2. Selecione uma linguagem de programação: Em seguida, você precisa selecionar uma linguagem de programação que utilizará para escrever o código para seu contrato inteligente de bloqueio de tempo. Algumas escolhas populares incluem Solidity, Vyper e Michelson.
  3. Escreva o código: Depois de escolher uma plataforma e linguagem de programação, você pode começar a escrever o código para seu contrato inteligente de bloqueio de tempo. O código especificará os termos do contrato, incluindo o período de tempo ou as condições que devem ser atendidas antes que o contrato possa ser executado.
  4. Compile o código: Depois de terminar de escrever o código, você precisa compilá-lo. Isso converterá o código em um formato que pode ser lido pela blockchain.
  5. Implantar o contrato: Finalmente, você precisa implantar o contrato na blockchain. Isso tornará o contrato acessível a todas as partes envolvidas.

Uma vez que o contrato for implantado, ele não pode ser alterado ou cancelado. Isso significa que é importante considerar com cuidado os termos do contrato antes de implantá-lo.

Uma regra prática é sempre usar uma abordagem TDD, ou Test-Driven Development (Desenvolvimento Guiado por Testes), ao escrever qualquer contrato inteligente para garantir que, a cada passo do caminho, seu contrato esteja se comportando conforme o esperado.

Aqui está um exemplo de um contrato inteligente de bloqueio de tempo que liberará fundos 24 horas após a implantação do contrato:

// SPDX-License-Identifier: MIT
pragma solidity >=0.5.0 <0.9.0;

contract TestTimelock {
   address payable public beneficiary;
   uint256 public releaseTime;
   constructor(address payable _beneficiary, uint256 _releaseTime) {
       beneficiary = _beneficiary;
       releaseTime = _releaseTime;
   }
   function release() public payable {
       require(block.timestamp >= releaseTime, "Not passed yet");
       beneficiary.transfer(address(this).balance);
   }
}
Enter fullscreen mode Exit fullscreen mode

Escrevi outra postagem no blog que explica passo a passo como escrever um contrato inteligente de bloqueio de tempo com Solidity, Web3.js, Truffle e implantar na rede Goerli. Leia esta postagem no blog e mãos na massa.

Resumo

Nesta postagem de blog, aprendemos que um contrato de bloqueio de tempo é um contrato inteligente que permite bloquear seus tokens ou Ether por um determinado período de tempo. Para garantir que seus tokens não sejam negociados ou usados até uma determinada data, ou para evitar que alguém pegue seus tokens antes de uma determinada data, os contratos de bloqueio de tempo são o caminho a seguir. Eles são usados para uma variedade de propósitos e existem algumas maneiras diferentes de implementá-los. Existem benefícios e riscos associados à implantação de contratos inteligentes de bloqueio de tempo que você deve sempre considerar. Por fim, detalhamos algumas etapas que alguém que deseja redigir um contrato inteligente de bloqueio de tempo deve seguir.

Eu espero que tudo isso tenha sido útil. Feliz codificação!

Artigo original publicado por Chris. Traduzido por Paulinho Giovannini.

Top comments (0)