Why Nostr? What is Njump?
2024-02-23 13:10:35

bolsonitro_btc on Nostr: Contratos multisig com timelock e lightning network 🧵🧵🧵 Uma carteira ...

Contratos multisig com timelock e lightning network 🧵🧵🧵

Uma carteira multisig nada mais é que uma carteira bitcoin, onde duas pessoas devem assinar para gastar os fundos, isso é como um contrato em que as duas partes devem cumprir certas responsabilidades.

Em alguns contratos, é feita uma multisig 2/3 com um terceiro atuando como juiz das partes, isso é semelhante ao que existe no fiat e chama-se conta escrow.
Na imagem, um escrow service do fiat, sem uso de multisig.

Já o timelock, nada mais é que um atributo de uma transação do bitcoin, a transação só é válida e só pode ser incluída num bloco quando tiver decorrido o tempo de timelock, isso serve como um tipo de cláusula de saída de um contrato, por exemplo:

Ema sociedade empresarial com dois sócios tendo 50/50 em uma multisig 2/2, se as duas partes estiverem de acordo, os fundos podem ser movidos, os dois assinando a transação, porém à cada transação nova, uma transação timelock pode ser gerada e assinada pelos dois. 🔑

Portanto, em caso de discordância e decorrido o tempo do timelock, qualquer parte poderia unilateralmente, transmitir a transação que move os fundos para os dois sócios na proporção 50/50 (ou a proporção acordada), já que essa transação foi previamente assinada por ambos.

Ou seja, essa transação que ficaria guardada, serve de cláusula de saída do contrato, garantindo que a outra parte não será lesada.
É assim que uma carteira multisig e transações timelock pode ser usada em contratos.
OK mas o que isso tem haver com lightning network?
⚡️⚡️

Bom, a lightning é uma segunda camada do Bitcoin, onde as transações acontecem, e é registrado nos nodes o estado atual dos canais que ele tem.

Cada canal da lightning nada mais é que uma carteira multisig 2/2 onde ambos fizeram um depósito, e cada vez que ocorre uma transação, é gerada uma nova transação com timelock que é assinada pelas duas partes, mas não é transmitida na rede.

Portanto, em um canal, os nodes podem mandar bitcoins um pro outro, salvando o estado final apenas, sem precisar criar novas transações, além daquela que abriu o canal.

Em caso de fechamento do canal, os nodes se comunicam e fecham o canal (que é uma multisig 2/2), porém e no caso de um dos nodes estar offline? Como que faz? Perdeu tudo?

Então, aí que entram as transações timelock, que servem de cláusula de emergency withdraw do contrato (canal), um dos nodes unilateralmente pode transmitir a transação após decorrido o timelock, essa transação conterá o estado atual daquele canal (50/50 ou 90/10, whathever).

Dessa forma, mesmo em caso de uma das partes ir de base, existe um emergency withdraw no contrato, que foi previamente assinado pelas duas partes, cláusula de saída.

Não vou entrar em detalhes sobre o que acontece se um node lightning tentar fraudar o outro, mas vocês podem pesquisar sobre Lightning Watchtowers.
A parte de lightning aprendi numa palestra presencial com o

Estou exercitando esse pensamento pois estou pensando em outros casos de uso para carteiras multisig, algo bem fora da curva.
Author Public Key
npub1fmp5rehp74ehqcct00um0x54jw3006uc4lj97wuhp7sqxmwzlkhslcudr0