Acabei de revisar de novo aquelas partes do processo de liquidação @BabylonLabs_io e percebi que eu nunca tinha entendido uma coisa direito: o cofre foi assinado com antecedência, é um script que ninguém consegue alterar. Então como ele “sabe” quando liberar o BTC?

Antes, eu achava que devia existir algo parecido com um oráculo, apenas observando ao lado: algum sinal era enviado fora da cadeia, e na cadeia ele era executado. Ao investigar, vi que não é assim — a abordagem da TBV é o contrário: em vez de fazer o Bitcoin tentar detectar o que está acontecendo na cadeia hospedeira, ela exige que a parte que quer usar BTC traduza, por conta própria, o que já ocorreu na cadeia hospedeira para uma prova criptográfica que um script do Bitcoin consiga verificar, e então a submeta.

O próprio script, do começo ao fim, não entende empréstimo, não entende liquidação, não entende preço. Ele faz só uma coisa — verificar se aquela prova satisfaz um determinado caminho de gasto definido previamente.

É exatamente por isso que, no whitepaper, a existência da mecânica de “reivindicar transação” e “transação de desafio” faz sentido. O tomador quer recuperar o BTC: primeiro envia um claim; se ninguém contestar, espera um timelock e pronto. Mas enquanto o credor tiver suspeita de que há algo errado, ele pode iniciar um desafio e obrigar o tomador a revelar na hora a prova ZK assinada — se a prova for válida, libera; se a prova for inválida, o segredo é extraído do circuito de ofuscação e a retirada é bloqueada diretamente.

Em todo esse processo, não há nenhum terceiro na cadeia do Bitcoin fazendo uma arbitragem. O poder de decidir está escrito nas condições do próprio script, não fica com pessoas.

Entendendo dessa forma, a TBV na verdade não muda “se o BTC existe”, mas sim dá ao Bitcoin pela primeira vez a capacidade de reagir de maneira verificável a um evento externo que ele próprio não consegue entender completamente — sem precisar confiar no que alguém diz; basta verificar se a prova atende ou não.

Por quanto tempo exatamente o timelock da janela de desafio é configurado, eu não encontrei um valor unificado no documento. Pode ser que cada aplicação integrada defina o seu próprio. Não cheguei a verificar isso ainda. Se você fosse projetar a duração dessa janela de desafio, você tenderia a deixá-la mais longa por segurança ou mais curta por experiência? #baby $BABY