Bitcoin Forum
September 16, 2019, 03:38:09 PM *
News: Latest Bitcoin Core release: 0.18.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Using Locktime for inheritance planning, backups or gifts  (Read 184 times)
This is a self-moderated topic. If you do not want to be moderated by the person who started this topic, create a new topic. (1 post by 1 user deleted.)
LoyceV
Legendary
*
Online Online

Activity: 1610
Merit: 4601


Largest Merit Circle on BPIP!


View Profile WWW
September 01, 2019, 09:24:37 PM
Last edit: September 02, 2019, 02:01:12 PM by LoyceV
Merited by Carlton Banks (2), Kakmakr (2), pooya87 (2), hatshepsut93 (1), Coin-1 (1), iasenko (1), morvillz7z (1)
 #1

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!

1568648289
Hero Member
*
Offline Offline

Posts: 1568648289

View Profile Personal Message (Offline)

Ignore
1568648289
Reply with quote  #2

1568648289
Report to moderator
1568648289
Hero Member
*
Offline Offline

Posts: 1568648289

View Profile Personal Message (Offline)

Ignore
1568648289
Reply with quote  #2

1568648289
Report to moderator
1568648289
Hero Member
*
Offline Offline

Posts: 1568648289

View Profile Personal Message (Offline)

Ignore
1568648289
Reply with quote  #2

1568648289
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1568648289
Hero Member
*
Offline Offline

Posts: 1568648289

View Profile Personal Message (Offline)

Ignore
1568648289
Reply with quote  #2

1568648289
Report to moderator
1568648289
Hero Member
*
Offline Offline

Posts: 1568648289

View Profile Personal Message (Offline)

Ignore
1568648289
Reply with quote  #2

1568648289
Report to moderator
hatshepsut93
Hero Member
*****
Offline Offline

Activity: 1274
Merit: 855


Bitcoin realist


View Profile
September 01, 2019, 09:45:37 PM
 #2

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?

pooya87
Legendary
*
Offline Offline

Activity: 1764
Merit: 1874


Remember tonight for it's the beginning of forever


View Profile
September 02, 2019, 03:26:21 AM
 #3

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.

Kakmakr
Legendary
*
Offline Offline

Activity: 1778
Merit: 1354

★ ChipMixer | Bitcoin mixing service ★


View Profile
September 02, 2019, 06:50:48 AM
 #4

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 <cancer> 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 <while I am still here to explain things> 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?

LoyceV
Legendary
*
Online Online

Activity: 1610
Merit: 4601


Largest Merit Circle on BPIP!


View Profile WWW
September 02, 2019, 07:45:41 AM
 #5

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.

Quote
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)
You're right Smiley It's just that I'm so used to using real Bitcoin.

Quote
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.
I didn't even know SIGHASH_ANYONECANPAY exists. But it makes it more complicated.

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 <cancer> 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 is 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.

pooya87
Legendary
*
Offline Offline

Activity: 1764
Merit: 1874


Remember tonight for it's the beginning of forever


View Profile
September 02, 2019, 12:44:24 PM
 #6

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.

Indamuck
Hero Member
*****
Offline Offline

Activity: 1120
Merit: 553



View Profile
September 02, 2019, 01:06:36 PM
 #7

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.




▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄    ▄▄▄▄                  ▄▄▄   ▄▄▄▄▄        ▄▄▄▄▄   ▄▄▄▄▄▄▄▄▄▄▄▄    ▄▄▄▄▄▄▄▄▄▄▄▄▄▄   ▄▄▄▄▄▄▄▄▄▄▄▄▄▄   ▄▄▄▄▄▄▄▄▄▄▄
 ▀████████████████▄  ████                 █████   ▀████▄    ▄████▀  ▄██████████████   ████████████▀  ▄█████████████▀  ▄█████████████▄
              ▀████  ████               ▄███▀███▄   ▀████▄▄████▀               ████   ████                ████                   ▀████
   ▄▄▄▄▄▄▄▄▄▄▄█████  ████              ████   ████    ▀██████▀      ██████████████▄   ████████████▀       ████       ▄▄▄▄▄▄▄▄▄▄▄▄████▀
   ██████████████▀   ████            ▄███▀     ▀███▄    ████        ████        ████  ████                ████       ██████████████▀
   ████              ████████████▀  ████   ██████████   ████        ████████████████  █████████████▀      ████       ████      ▀████▄
   ▀▀▀▀              ▀▀▀▀▀▀▀▀▀▀▀   ▀▀▀▀   ▀▀▀▀▀▀▀▀▀▀▀▀  ▀▀▀▀        ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀▀▀▀▀        ▀▀▀▀       ▀▀▀▀        ▀▀▀▀▀

#1 CRYPTO CASINO & SPORTSBOOK
  WELCOME
BONUS
.INSTANT & FAST.
.TRANSACTION.....
.PROVABLY FAIR.
......& SECURE......
.24/7 CUSTOMER.
............SUPPORT.
BTC      |      ETH      |      LTC      |      XRP      |      XMR      |      BNB      |     more
iasenko
Hero Member
*****
Offline Offline

Activity: 686
Merit: 1213


Running my first Full Node :)


View Profile WWW
September 02, 2019, 01:14:03 PM
Last edit: September 02, 2019, 01:25:17 PM by iasenko
 #8

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



javadsalehi
Member
**
Offline Offline

Activity: 364
Merit: 12


View Profile
September 02, 2019, 01:21:00 PM
 #9

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?
LoyceV
Legendary
*
Online Online

Activity: 1610
Merit: 4601


Largest Merit Circle on BPIP!


View Profile WWW
September 02, 2019, 02:12:57 PM
 #10

Just share the private key of your funds while you are alive and avoid this complicated mess.
Lol, how about no Tongue

Quote
If you can't trust that person enough then you shouldn't be leaving your money to them in the first place.
Even if you trust that person completely, you're still introducing another risk factor to lose your funds due to mistakes or theft.

Quote
It is sheer stupidity to ever have something locked for years with no way to get out.
That's not what I'm proposing.

Quote
What if bitcoin has another inflation bug that causes a catasrophic decline in price and you need to liquidate immediately.
HODL!

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).

Quote
Edit: just shared it on my twitter Cheesy
Aren't you supposed to spam a list of links if you do that? Tongue

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.

Kakmakr
Legendary
*
Offline Offline

Activity: 1778
Merit: 1354

★ ChipMixer | Bitcoin mixing service ★


View Profile
September 03, 2019, 06:43:53 AM
Last edit: September 03, 2019, 06:55:47 AM by Kakmakr
 #11

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.  

pooya87
Legendary
*
Offline Offline

Activity: 1764
Merit: 1874


Remember tonight for it's the beginning of forever


View Profile
September 03, 2019, 07:15:39 AM
Merited by LoyceV (1)
 #12

~ 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.

iasenko
Hero Member
*****
Offline Offline

Activity: 686
Merit: 1213


Running my first Full Node :)


View Profile WWW
September 06, 2019, 12:34:12 PM
 #13

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

Robot1982
Newbie
*
Offline Offline

Activity: 7
Merit: 10


View Profile
September 06, 2019, 05:11:32 PM
Merited by LoyceV (1), squatter (1)
 #14

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.
LoyceV
Legendary
*
Online Online

Activity: 1610
Merit: 4601


Largest Merit Circle on BPIP!


View Profile WWW
Today at 02:29:15 PM
 #15

Bump

Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!