Pages:
Author

Topic: Using Locktime for inheritance planning, backups or gifts - page 3. (Read 3112 times)

legendary
Activity: 3472
Merit: 10611
ie it will forever be compatible with whatever official client is in use in 15 or 20 years time? a tx created with locktime today will always work in the future?

since bitcoin is not centralized, there is no centralized entity to release "official" anything. all we have is consensus that the entire network has to agree no matter what client they run. and since things like LockTime are enforced by the protocol to change them we have to create a fork and that is not going to happen and even if it does you will see it if you follow bitcoin (as in checking every couple of months).
legendary
Activity: 1666
Merit: 1196
STOP SNITCHIN'
i like this.

but how "baked in" to the protocol is locktime? ie it will forever be compatible with whatever official client is in use in 15 or 20 years time? a tx created with locktime today will always work in the future?

I don't think you have to worry about that too much. Height-based nLockTime was included in the original Bitcoin implementation and time-based nLockTime was implemented in version 0.1.6.

Time-locked bitcoins are one consideration in any fork that limits transaction size -- like the sigops limit Gavin Andresen wanted to introduce. Time-locked transactions that are too large would be invalidated. I doubt such a fork would gain wide consensus, though.
legendary
Activity: 4354
Merit: 3614
what is this "brake pedal" you speak of?
i like this.

but how "baked in" to the protocol is locktime? ie it will forever be compatible with whatever official client is in use in 15 or 20 years time? a tx created with locktime today will always work in the future?

sorry for noob question i just know btc slowly mutates as needed, and 15-20 years is a long time. as long as the locktime behavior is set in stone..

@Robot1982 i like that unix timestamp bit more than using block height, thanks.

newbie
Activity: 14
Merit: 16
Just as a note, you don't have to use block height in the locktime. You can actually use UNIX timestamps which is more precise than using block height (you can't know for sure how many blocks will be mined in 18 years). A value over 500000000 for nLockTime will be a UNIX timestamp: https://en.bitcoin.it/wiki/Protocol_documentation#tx I already tested this and it works as expected.
legendary
Activity: 2240
Merit: 3150
₿uy / $ell ..oeleo ;(
Holy Cow!! This is one of the best ways to give a gift to a newborn. I definitely will follow this method to give some babies a better chance for a easy future, I don't need to look for some stupid gifts they gonna trow in a year or two. Great work man, as always!! Just love reading your posts and ideas. Let's spread love and bitcoin Smiley
Which one are you going to use? The paper wallet with 25 year Locktime for yourself, or the 18 year Locktime with 25 year Locktime for yourself? The second option makes me feel slightly uncomfortable as I've never actually tested it. Another thing is that the receiving party has to trust you didn't keep a copy of the private key, and they'll only know for sure after at least 18 years! So you should probably only use this for people who trust you.
I'll wait for block 600,000 to happen to test it with the 0.1 mBTC (or see if someone else takes the funds before I do).

I'll go for the first option now because I know the parents well. Of course it really depends of the case. I like the idea and probably I'm going to use it more than once, so for sure the second solution with 18 years of locktime for the parents and 25 years for me will be used as well.
I can probably use the locking options for my kids too, so if something happens to me, the mother won't spend the money until the kids are 18 Smiley Well, I know the mother well so she won't spend them for sure.

Quote
Quote
Edit: just shared it on my twitter Cheesy
Aren't you supposed to spam a list of links if you do that? Tongue
Oh,blimey! Cheesy
legendary
Activity: 3472
Merit: 10611
~ on the "hidden" potential of some features that I have never experimented before. < Use OP_CHECKLOCKTIMEVERIFY >  ~

i think you might have confused what this is. OP's proposal has nothing to do with OP_CHECKLOCKTIMEVERIFY, the output he is spending and the new one he is creating are both simple P2PKH outputs (check the raw transactions yourself).
he is simply using "locktime" (the last 4 bytes of every transaction) alongside non-max sequences to make the new transaction spendable only at a certain block height specified by that locktime.
in this tx:
01000000012<-snipped the middle part->8acc0270900
0270900 is the locktime and is equal to 600000 which is interpreted as the block height.
legendary
Activity: 3542
Merit: 1965
Leading Crypto Sports Betting & Casino Platform
OP, I just gave you 2 merit points for this post, because it opened my eyes on the "hidden" potential of some features that I have never experimented before. < Use OP_CHECKLOCKTIMEVERIFY >  I am not a software developer and I always thought some of these features were too difficult for the average Joe to implement, but you made the task very simple with the way you presented it.  Wink  

I also never played around with https://coinb.in/ before, because I thought it was just a duplication of other web based wallet services that I used before. I will add this gem to my Crypto favorites.  Grin

Thank you for the feedback on my previous post, it all makes more sense now, after I started experimenting with it in the way you presented it.  
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
Just share the private key of your funds while you are alive and avoid this complicated mess.
Lol, how about no Tongue

Holy Cow!! This is one of the best ways to give a gift to a newborn. I definitely will follow this method to give some babies a better chance for a easy future, I don't need to look for some stupid gifts they gonna trow in a year or two. Great work man, as always!! Just love reading your posts and ideas. Let's spread love and bitcoin Smiley
Which one are you going to use? The paper wallet with 25 year Locktime for yourself, or the 18 year Locktime with 25 year Locktime for yourself? The second option makes me feel slightly uncomfortable as I've never actually tested it. Another thing is that the receiving party has to trust you didn't keep a copy of the private key, and they'll only know for sure after at least 18 years! So you should probably only use this for people who trust you.
I'll wait for block 600,000 to happen to test it with the 0.1 mBTC (or see if someone else takes the funds before I do).

Assume that I have 10 bitcoins and I sign a transaction which will be valid after 5 years from now. If I need money and I want to spend 1 bitcoin, what will happen?
Am I able to make this transaction? If yes, what will happen to that 10 bitcoins transaction?
As long as you have the private key, you can make any transaction you want. But that will instantly invalidate your Locktime Recovery Sheet, because the inputs don't exist anymore.
member
Activity: 364
Merit: 13
I am new to locktime and it is this the first time I've heard about it.
Assume that I have 10 bitcoins and I sign a transaction which will be valid after 5 years from now. If I need money and I want to spend 1 bitcoin, what will happen?
Am I able to make this transaction? If yes, what will happen to that 10 bitcoins transaction?
legendary
Activity: 2240
Merit: 3150
₿uy / $ell ..oeleo ;(
TL;DR
~
Giveaway
Another use I could think of, is when you give away some amount of Bitcoin for some occasion. Let's say a family member gets a baby, and you want to give the kid $100 in Bitcoin, but you don't want to risk it never being used. You can fund a good looking paper wallet, and give the parents the instruction to give it to the kid when he/she turns 18.
You keep a Locktime Recovery Sheet with Locktime 25 years in the future, and if the kid doesn't use the funds (by then hopefully worth a small fortune), you'll take it back after 25 years.
If you don't trust the parents not to touch it, you can give them a Locktime Recovery Sheet with a Locktime 18 years in the future, and keep one with a Locktime 25 years in the future for yourself. That way (when properly generated), nobody can access the funds earlier.

No spam
Please Smiley
On-topic posts are welcome!

Holy Cow!! This is one of the best ways to give a gift to a newborn. I definitely will follow this method to give some babies a better chance for a easy future, I don't need to look for some stupid gifts they gonna trow in a year or two. Great work man, as always!! Just love reading your posts and ideas. Let's spread love and bitcoin Smiley

Edit: just shared it on my twitter Cheesy


hero member
Activity: 1120
Merit: 554
Just share the private key of your funds while you are alive and avoid this complicated mess.  If you can't trust that person enough then you shouldn't be leaving your money to them in the first place.

It is sheer stupidity to ever have something locked for years with no way to get out.  What if bitcoin has another inflation bug that causes a catasrophic decline in price and you need to liquidate immediately.
legendary
Activity: 3472
Merit: 10611
I didn't even know SIGHASH_ANYONECANPAY exists. But it makes it more complicated.

it actually is a very easy thing to use. it's just that no wallet implements it, even bitcoin-core only supports it if you use its debug window (command line). it basically is creating a transaction that may or may not have more inputs added later. using it with Sighash_All you ensure that your outputs remain the same. or you could add Sighash_Single so that you sign one output and make sure that remains the same but still leave room open for cases if the other inputs added had a higher value so the "change" could be sent to a new output.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
What if I don't have a printer, don't want to buy a printer and don't trust any third-party printers ever? Mnemonic seeds allow me to make paper wallets with pen and paper, is there anything like that for raw transactions?
You could write it down, but it's extremely unlikely not to make any mistakes (hence the QR-code).
Without a printer, this isn't for you Tongue

you should really know what you are doing though, otherwise you may lock up your funds for eternity or sign a transaction that is not valid until hundreds of years.
You'll still have your original storage, and this doesn't have to be the only system you use.

OP, in your title, you mention doing this for inheritance, but most people do not know when they are going to die. In what type of scenario would you apply this for inheritance planning?
I can think of a few scenarios: If you have young kids, set the first Locktime around 15 years in the future. You'll need someone trusted to ensure your kids get it when they're older.
Or just make 10 copies: 10, 20, ..., 100 years in the future. Chances are you'll die eventually, so if you never use your funds, someone can use it.

Quote
I know some people become terminally ill and they would welcome something like this, but how do you notify people that does not know a thing about Crypto currencies, to manage this?
It can be as simple as a letter in a safe in your home.

Quote
I would like to see a time-locked paper wallet service that would automate a process that sends bitcoins to a wallet that I have given to people in advance
The reason I choose to include the paper wallet with the signed message, is so you don't have to trust they still have it after 10/20/40/60 years.

Quote
Obviously this must be linked to some Smart contract and not a third party service that might steal those coins. Do you think that might work?
As far as I know, that's not possible in Bitcoin.
legendary
Activity: 3542
Merit: 1965
Leading Crypto Sports Betting & Casino Platform
OP, in your title, you mention doing this for inheritance, but most people do not know when they are going to die. In what type of scenario would you apply this for inheritance planning? I know some people become terminally ill and they would welcome something like this, but how do you notify people that does not know a thing about Crypto currencies, to manage this?

I would like to see a time-locked paper wallet service that would automate a process that sends bitcoins to a wallet that I have given to people in advance and when I pass on, the bitcoins will be transferred to that Bitcoin address.

Obviously this must be linked to some Smart contract and not a third party service that might steal those coins. Do you think that might work?
legendary
Activity: 3472
Merit: 10611
you should really know what you are doing though, otherwise you may lock up your funds for eternity or sign a transaction that is not valid until hundreds of years. i did something like that recently on testnet because i didn't know about BIP68 and relative locktime, which is for version 2  transactions and the Sequence starts having a more complicated meaning (still haven't read about it though).

Quote
(to create this example, I ignored all proper security measures and used Bitaddress.org and Coinb.in online. That's why I only used 0.0001BTC for this example. This is very bad practice to do for anything with value. Take precautions!)
you could've used TestNet to save on precious bitcoins and fees and also don't create unnecessary transaction on the main blockchain. run bitaddress.org html or open the website by adding "?testnet=true" to the end. and go to https://coinb.in/#settings and set the network to Bitcoin(testnet)

Quote
We can't predict transaction fees in the future, so you'll have to take a guess there.
you could also sign with ALL | AnyoneCanPay flags so that in the future they could add an input to your signed transaction to cover the fee.
legendary
Activity: 3024
Merit: 2148
What if I don't have a printer, don't want to buy a printer and don't trust any third-party printers ever? Mnemonic seeds allow me to make paper wallets with pen and paper, is there anything like that for raw transactions? I guess I could just send them the signed transaction via the Internet, and give them the seed of the wallet that has the receiving address on paper. Or I could give them everything on a flash drive. Anyone has some other ideas?
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
TL;DR
As a bad-case-scenario backup, you can create a signed transaction that's only valid several years in the future, and sends your funds to an unencrypted wallet under your control.
If you ever need it, all you have to do is wait until you can broadcast the transaction.

Long version
I'll start by quoting myself:
~why would you give your family access to your Bitcoins? If it's meant for the "hit by a bus scenario", there might be another option. I've been thinking about this for a while now, but haven't actually used it:
1. Print a normal paper wallet.
2. Sign a transaction to send funds from your cold storage to the normal paper wallet, but add a Locktime so it's only valid from a block far far in the future. Say 1 million block count or even more (but not so far none of your family members will still be alive). Or while you're at it: create a few versions (1 million blocks, 1.5 million, 2 million) and print them on different sheets of paper.
3. Print the transaction and store it with the paper wallet.
4. If you're still alive a couple of months before the first transaction becomes valid: burn it, the next one becomes your new fail safe.
If your family ever needs it, all they have to do is wait a few years, broadcast the transaction, and the paper wallet becomes valuable.
I brought this up in another topic, and received more support than I expected. Hence the dedicated thread Smiley

Note: I haven't used this yet for a real application, it's only meant as a proof of concept.

Example
Address: 1GiL5Chm7qM9aV7xXWiAVKp7VnKPps13x8 (Balance: ) (HODL storage)
Private key: KxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxHw
This is the address in super secret private storage that only I can access.

Locktime Recovery Sheet
The following information including images is printed on the Locktime Recovery Sheet, together with it's private key and QR-codes. Whoever gets access to this paper after the Locktime expired, gets access to the funds. So keep it safe!

** start locktime recovery sheet **
Address: 1Kx5kYqStfhPQntRv185pTuyafLoaYLrV7 (Balance: ) (Recovery)
Private key: L3YR5E2NrGVXViKNBUGeBjmHxEFgEHkg5QJ9XS67YZJ6f1EyZFny

Image loading...

Signed Recovery Transaction
Code:
010000000126063a71fecd0c76fa7d31a561cbe95bf2c7e5da01ae04fed6a6e9dfbc80953e010000006a47304402201a16d89264518baca8f4959b446372c6ce91e8d1fbc0b7b48618aeb76113df33022040eb804bf7cd6519d01709066658251cef1822ff49fd07707e058a07b27b42f9012103f78766b4346bcec0f2ae92d7e132e6b321c47627f14356a704b3ce57169dcb4e000000000116260000000000001976a914cfdd1b997472bd0b668e7472d9708305f116994d88acc0270900
Image loading...
This transaction is valid from Block 600,000 (slightly less than 50 days from now).
** end locktime recovery sheet **

(to create this example, I ignored all proper security measures and used Bitaddress.org and Coinb.in online. That's why I only used 0.0001BTC for this example. This is very bad practice to do for anything with value. Take precautions!)

Precautions
Create this on an offline system that won't go online again afterwards. Use for example Ubuntu or Knoppix from a LIVE DVD without ethernet/Wi-Fi, and use a dumb printer that doesn't store anything.
Don't use an online website to generate QR-codes.
It's probably wise to leave some instructions for whoever is going to use your Locktime Recovery Sheet in the future. He or she should understand the importance, so it's not just dismissed by someone who doesn't know anything about Bitcoin.
Verify the signed transaction (offline!) to ensure it does what you want it to do.

Different versions
Since you don't know how long it will be before anyone needs this, you can quite easily create a few different versions with different Locktimes. A couple of months before each one of them would become valid, you can simply burn the paper and the next one takes it's place.

Risks
You should only do this if you know what you're doing! It's meant for long-term HODL funds, and you should know the pre-signed transaction becomes invalid the moment you move any of the input funds. You should also know any newly added funds won't automatically be added to your Locktime Recovery Sheet. You have to keep track of this by yourself.
We can't predict transaction fees in the future, so you'll have to take a guess there. There's no need to make it very high, because the receiver can always use CPFP if needed. It shouldn't be under the minimum though.
Don't accidentally set a Locktime many centuries ahead!
You may miss out on possible Forkcoins that use proper replay protection.

Giveaway
Another use I could think of, is when you give away some amount of Bitcoin for some occasion. Let's say a family member gets a baby, and you want to give the kid $100 in Bitcoin, but you don't want to risk it never being used. You can fund a good looking paper wallet, and give the parents the instruction to give it to the kid when he/she turns 18.
You keep a Locktime Recovery Sheet with Locktime 25 years in the future, and if the kid doesn't use the funds (by then hopefully worth a small fortune), you'll take it back after 25 years.
If you don't trust the parents not to touch it, you can give them a Locktime Recovery Sheet with a Locktime 18 years in the future, and keep one with a Locktime 25 years in the future for yourself. That way (when properly generated), nobody can access the funds earlier.

No spam
Please Smiley
On-topic posts are welcome!
Pages:
Jump to: