BitcoinTimestamp icon indicating copy to clipboard operation
BitcoinTimestamp copied to clipboard

Better way

Open ghost opened this issue 12 years ago • 4 comments

The general principal of stamping a hash of some data into the blockchain is fine, except it causes bitcoins to be sent to unredeemable addresses.

One could achieve the same result by using the hash of the data to create a private key (just like a brain wallet). You can then send coins to the bitcoin address of that, and be able to redeem the coins afterwards.

ghost avatar Nov 24 '13 16:11 ghost

Probably. This project was a pretty early first pass.

In this case, the addresses are not unredeemable. The default 16 are ones I control and someone can swap them out for others pretty easily.

So you are proposing hash(data) be used as the brain wallet password? That would work, except it isn't as nice and clear as being able to read the hash from the transaction. You have to have the hash and then you can see that the transaction matches.

fireduck64 avatar Nov 24 '13 16:11 fireduck64

Verification is always technical because to verify the hash you still need to calculate the bitcoin address using a few steps. This just changes the steps to

privateKey = brainwallet(hash(data))
address = get_address_from(privateKey)

Either way you need software to verify it, so I think the benefits are great here. Remember now have a minimum dust level which could rise later, bitcoin price is skyrocketing so this becomes expensive, and now we reduce the fee to 2 x miners fee which is more likely to go down over time.

ghost avatar Nov 24 '13 16:11 ghost

Reference implementations:

Python

https://github.com/willwharton/pybrainwallet/blob/master/brainwallet.py or https://github.com/jgilmour/brainwallet-check/blob/master/brainwallet-check.py

Javascript

https://github.com/brainwallet/brainwallet.github.com/blob/master/js/brainwallet.js or https://github.com/pointbiz/bitaddress.org/blob/master/src/ninja.brainwallet.js

ghost avatar Nov 25 '13 09:11 ghost