How to create a transaction in Bitcoin that can be spend after a certain period (e.g. 1 month) such that: 1. It is guaranteed that the transaction will be valid after 1 month (the account has enough BTC in it). 2. The amount to be withdrawn is not locked for that period.

Lightning network will allow this to happen. However, the amount must be locked, which violates the second condition above..

  • 2
    I don't see how it could even be possible to satisfy both conditions. If the amount is not "locked", that implies that the owner is allowed to withdraw it before the month is up, perhaps paying it to some third party. So now what should happen when the month is up? Should the money be magically taken away from the third party and given to the original intended recipient? That doesn't seem desirable. Jan 21 '18 at 6:04

You can create a transaction that has a lock time set. If a transaction has a lock time, it cannot be confirmed until after the lock time has passed. This mostly meets the first constraint.

However the inputs that it spends from could be spent by another transaction before the lock time of the original has passed, thus meeting the second constraint.

The caveat is that the lock timed transaction will only be valid if the output that it spends from is not spent yet. Bitcoin does not use accounts so there is no balance.

  • I agree with you that the problem can be partially solved using a time lock. However, such solution does not 100% (or with high probability) guarantee that the transaction will be valid after the period. I am looking for a solution with no caveat.
    – Dukefleed
    Jan 22 '18 at 3:29
  • Then there is no solution.
    – Andrew Chow
    Jan 22 '18 at 4:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.