Author

Topic: How to use lock_time function on a paper wallet? (Read 563 times)

hero member
Activity: 662
Merit: 545
November 10, 2013, 11:17:15 PM
#4
Ok, I shot a message or two to Gavin: seems like I had misunderstood the above quote.  

Here is his response on how one would accomplish OP


Sure, theoretically possible:

1) Create a paper wallet that you keep somewhere safe.
2) Create a nLockTime transaction that sends all of the funds to a second paper wallet that you give to them.
3) Give them the transaction (printed/QR code? on a USB stick?) and the second paper wallet, and tell them to broadcast the transaction after their 21'st birthday.  (or give somebody else the transaction and ask them to broadcast it).

If you don't trust yourself to keep that first paper wallet safe, you could burn it. Then those funds are locked until that one transaction that funds the second paper wallet.

I believe blockchain.info has a way of broadcasting a "raw transaction" -- no guarantee that blockchain.info will still be around when they turn 21, of course, but there should be SOME way of broadcasting that transaction.

hero member
Activity: 662
Merit: 545

Some more research I have just found:

From Satoshi: https://bitcointalksearch.org/topic/m.22119
https://bitcointalksearch.org/topic/delayed-transactions-using-ntimelock-131443
https://people.xiph.org/~greg/signdemo.txt

However, from the brief amount of time I have researched this - this comment from the second link is worrisome:

One thing that wasn't mentioned yet was that there's not currently a mechanism for replacement.  Locked transactions can be "introduced" into the blockchain fairly easily, and nodes will accept them and hold them in their memory pool (and thus drop conflicting transactions), but they won't forward otherwise-valid replacements, and only miners with custom rules will mine them for you.  If you want to replace a time-locked transaction, you're going to have to mine it yourself, or go find a miner to agree to help you.  Once a replacement is mined (or even just a regular transaction spending one of the inputs), all nodes holding the time-locked tx will see the conflict and drop the one in their memory pool.

So, if you can create the tx, you can get the "time-delay" aspect out of the network right now, but you have to work pretty hard if you use the "replacement" aspect of it.

P.S. - Congrats on being the most well-spoken, research-driven, single-post Newbie I've seen on these forums Smiley

And this makes it seem like it is not even supported what-so-ever

from Gavin himself....

Time-in-the-future transactions are non-standard (as of 0.8?  I can never remember when things happened...)

Why: because there is a fill-up-memory denial of service attack, and it really isn't reasonable to expect the entire network to store your timelocked transactions "forever".

Even in the past, the statement "unspendable by the sender because of replacement not being implemented" was not true.  Wait long enough and only a subset of the network will have the timelocked transaction (because new nodes, old nodes restarting, etc). Broadcast a double-spending version without a timelock and it will get mined fairly soon.


Seems like this feature is totally dead...wtf bitcoin!

Anyone knowledgeable in the subject feel free to offer your wisdom!
legendary
Activity: 1274
Merit: 1004
hero member
Activity: 662
Merit: 545
I would like to create paper wallet for all my young siblings.  I will be putting BTC5 on each wallet.  However, I do not want them to be able to spend it until they are 21.

Is there any documentation on how to create these transactions and better yet how to apply them to a paper wallet?

The wiki is VERY lacking: https://en.bitcoin.it/wiki/NLockTime
Jump to: