Contrato de Hashed Timelock (HTLC) - KamilTaylan.blog
22 Junho 2021 22:42

Contrato de Hashed Timelock (HTLC)

O que é um contrato de Hashed Timelock (HTLC)?

Um Hashed Timelock Contract (HTLC) é um tipo de contrato inteligente usado em aplicativos de blockchain para eliminar o risco da contraparte, permitindo a implementação de transações com limite de tempo. Em termos práticos, isso significa que os destinatários de uma transação devem reconhecer o pagamento, gerando uma prova criptográfica dentro de um determinado prazo. Caso contrário, a transação não ocorre.

As trocas atômicas, o comércio de cadeia cruzada entre criptomoedas, costumam ser conseguidas usando HTLCs. Além disso, a rede relâmpago do Bitcoin (LN) também emprega HTLCs.

Principais vantagens

  • Um contrato timelock hashed (HTLC) reduz o risco de contraparte em contratos inteligentes descentralizados, criando efetivamente um depósito baseado em tempo.
  • Esse tipo de contrato inteligente exige que o recebedor de um pagamento o reconheça dentro de um determinado período de tempo ou o perca.
  • Os pagamentos usando HTLCs são condicionais e, portanto, têm benefícios de eficiência para transações de blockchain. Esta propriedade torna os HTLCs uma ferramenta fundamental usada pela rede de raios.

Como funciona um contrato de Hashed Timelock

A Hashed Timelock Contrato (HTLC) utiliza vários elementos existentes criptomoeda transações. Por exemplo, as transações HTLC usam várias assinaturas, que consistem em uma chave pública-privada, para verificar e validar as transações. Mas há dois elementos que distinguem o HTLC das transações de criptomoeda padrão ou dos contratos inteligentes comuns.

O primeiro elemento é o hashlock. Um hashlock é uma versão hash ou criptograficamente embaralhada de uma chave pública gerada pelo originador de uma transação. A chave privada associada é então usada para desbloquear o hash original. No HTLC, a parte de origem gera uma chave e faz o hash dela. O hash é armazenado em uma pré-imagem que é posteriormente revelada durante a transação final. Os HTLCs são programados para expirar após um determinado período de tempo ou número de blocos gerados, criando uma data de encerramento conhecida.

O segundo elemento importante do HTLC é um timelock. Dois timelocks diferentes são usados ​​para definir restrições de tempo em contratos gerados usando HTLC. O primeiro é CheckLockTimeVerify (CLTV). Ele usa uma base de tempo para bloquear e liberar bitcoins. Isso significa que as restrições de tempo são codificadas e as moedas são liberadas apenas em uma data e hora específicas ou em uma altura específica do tamanho do bloco.

O segundo é CheckSequenceVerify (CSV). Não depende do tempo. Em vez disso, ele usa o número de blocos gerados como uma medida para controlar quando finalizar uma transação.



Para conduzir uma transação usando HTLC, as partes interessadas precisam abrir canais entre si. 

Exemplos do mundo real de um Timelock com hash

Suponha que Alice queira trocar seu Bitcoin por Litecoin de Bob. Uma transação típica de HTLC entre eles ocorre da seguinte forma:

  1. Alice gera um hash de sua chave privada e o envia para Bob no blockchain de Litecoin. Ela também gera uma pré-imagem do hash criando uma transação nominal. Esta pré-imagem a ajudará a validar e finalizar a transação. 
  2. Bob também gera um hash de sua chave e o envia para Alice. Além disso, ele cria uma pré-imagem ao realizar uma transação nominal (em Litecoin) com Alice. 
  3. Assim que Alice recebe a transação Litecoin de Bob, ela a assina usando a chave original que já está disponível com ela na pré-imagem. Bob faz o mesmo do seu lado, usando sua chave privada para desbloquear a transação de Alice.