Post
Topic
Board Português (Portuguese)
Merits 3 from 2 users
Re: Bitcoin - Perguntas e Respostas.
by
dive
on 20/08/2019, 17:25:02 UTC
⭐ Merited by bitmover (2) ,sabotag3x (1)
É possível agendar uma transação em alguma blockchain?
Ex: programar hoje para enviar 1 BTC para Alice dia 03/12/2019

Que eu saiba não.
Mas pelo menos no BTC o tempo é contado em blocos , não em dias.

Então você teria que calcular o block height naquela data (1 bloco a cada 10min em média)
Mas não conheço nenhum cliente que faça isso. Talvez de pra fazer no bitcoin core?

SIM - existem dois tipos de transação que você pode fazer:

1. nLockTime: uma transação que só se torna válida após uma certa altura do blockchain (número do block) e alguém precisa guardar a transação e só colocá-la na rede depois que passar esse tempo.
O cenário aqui é: Alice promete transferir para Bob 1 BTC daqui 1000 blocos (~7 dias) e cria uma transação colocando o nLockTime = Bloco Atual + 1000
Bob recebe uma mensagem da Alice com o conteúdo dessa transação assinada e pode colocar ela na rede só depois de 7 dias, para ela ser efetivada.
Se Bob colocar essa transação antes na rede, vai estar inválida/vai ser ignorada.
Se Alice criar uma outra transação reutilizando os inputs da transação que foi para o Bob, quando Bob tentar executar a transação, vai dar errado.
Se alguma coisa acontecer com Alice, Bob ainda consegue receber o 1 BTC daqui 7 dias.

Esse cenário já foi utilizado algumas vezes como um "dead-man switch" ou tipo de testamento onde alguém fica com uma transação no futuro que permite receber seus bitcoins, mas se você quiser, pode mover eles antes e invalidar essa transação futura.

2. CLTV = CheckLockTimeVerify: uma transação que trava os outputs (bitcoins) por um tempo pre-determinado.
O cenário aqui é: Alice promete transferir para Bob 1 BTC *agora* mas que Bob só poderá gastar depois 1000 blocos (~7 dias).
A transação é executada na rede e Bob "recebe" 1 BTC, mas não pode fazer nada para gastar eles antes do LockTime passar.
Alice também não consegue pegar esse 1 BTC de volta.

Você consegue fazer isso usando o Bitcoin Core mas montando a transação na mão (não tem telas para isso).
Não sei de outro client que permite fazer isso com telas...