Blockchain/Nível IV · Protocolo a fundo/4.1 Script/Lição 5
Hashlocks e HTLCs
O segredo que desbloqueia tudo, e o cronômetro que o salva de ser perdido para sempre
MateriaisQualquer editor de texto ou linha de comando com suporte a SHA-256Um explorador de blocos (por exemplo, mempool.space)O whitepaper da Lightning Network de Poon & Dryja
Curiosidade
- Como um pagamento pode ser bloqueado por uma senha conhecida apenas por uma pessoa, sem que essa pessoa precise confiar em mais ninguém?
- Se revelar o segredo para reivindicar seu próprio dinheiro expõe-o a toda a rede, o que impede que outros o roubem primeiro?
- Por que cada etapa em um caminho de pagamento com vários nós precisa de um prazo ligeiramente diferente?
Explorar
- O hashlock é uma condição do Bitcoin Script que restringe o gasto até que dados específicos, a pré-imagem, sejam revelados. As moedas ficam bloqueadas por trás de um hash, geralmente fornecido pela pessoa que detém o segredo. A propriedade crucial aqui é que, se algum participante revelar a pré-imagem para reivindicar seus fundos, ele a revelará para quem quer que veja a reivindicação: na cadeia, para todos; dentro de um canal Lightning, para a contraparte.
- Essa revelação pública permite que outras partes que possuem saídas bloqueadas pelo mesmo hash também as gastem. Na Lightning Network, isso significa que, quando o destinatário final (Charlie) revela o segredo para receber o pagamento de Bob, esse mesmo segredo desbloqueia a saída de Alice, que estava bloqueada para Bob. Esse mecanismo possibilita a atomicidade: ou todos recebem o pagamento, ou ninguém recebe.
- No entanto, um hashlock puro tem uma falha: se Charlie desaparecer e nunca revelar a pré-imagem, os fundos ficam presos para sempre. Adicionar um timelock cria um contrato com bloqueio temporal por hash (HTLC). O script agora estipula: para o último elo, oferecido por Bob: “Charlie pode reivindicar essas moedas ao revelar a pré-imagem antes do prazo T, OU Bob pode retomá-las após T.”
- Essa lógica de dois caminhos garante uma operação sem necessidade de confiança. Se o pagamento for bem-sucedido, Charlie revela o segredo dentro do prazo estipulado, desencadeando uma sequência de reivindicações por parte de Bob até Alice. Se o pagamento falhar ou Charlie ficar off-line, cada HTLC expira e seu proponente (Bob em relação a Charlie, Alice em relação a Bob) recupera os fundos por meio do ramo de tempo limite do script.
- Essa diferença protege cada nó intermediário: se seu parceiro a jusante reivindicar o valor com a pré-imagem no último momento, o nó intermediário ainda terá tempo de usar essa pré-imagem a montante antes que seu próprio HTLC recebido possa ser reembolsado.
- Embora quebra-cabeças de script possam ser complexos, contratos do mundo real como HTLCs sempre incluem verificações de assinatura, juntamente com hashlocks e timelocks. Isso vincula a solução a partes específicas e impede o front-running por parte dos mineradores, situação em que um minerador pode encontrar uma pré-imagem válida no mempool e redirecionar o pagamento para si mesmo antes que ele seja confirmado.
Fatos-chave
- O hashlock restringe os gastos até que um dado específico (a pré-imagem) seja revelado publicamente.
- Assim que qualquer hashlock que utiliza um determinado hash for aberto, a pré-imagem revelada permite que todos os outros hashlocks que usam esse mesmo hash sejam utilizados.
- Um HTLC combina hashlocks e timelocks para exigir que o destinatário gaste o valor antes de um prazo final ou permitir que o remetente receba um reembolso.
- HTLCs são usados em transações de compromisso da Lightning Network para possibilitar roteamento multi-hop sem necessidade de confiança, com atomicidade.
- O script fornece OP_SHA256 e OP_HASH160 para hashlocks; o Lightning utiliza hashes de pagamento SHA-256.
- Tier Nolan propôs trocas atômicas entre cadeias usando esse mecanismo de hashlock em 2013.
Exercício nove, seis, três, um
9ReunirListe 9 cenários do mundo real ou criptográficos em que uma ação revela um segredo que permite realizar várias outras ações (por exemplo, abrir um cofre, publicar uma prova de trabalho).
6AgruparAgrupe os 9 em 6 de acordo com a forma como o segredo é protegido: único proprietário, vários proprietários, temporário, limitado ao espaço, público mas caro ou irreversível.
3DestilarReduza os 6 para 3 mecanismos centrais que permitem coordenação sem confiança entre partes que não se conhecem.
1CristalizarEscreva 1 frase sobre por que um hash é um compromisso e uma pré-imagem é uma chave, e como um temporizador os torna seguros.
Verificação de fatos
Datas, números e afirmações verificados com as fontes publicadas listadas abaixo.