Article says<p>> <i>This is also why address reuse in Bitcoin is encouraged as to sign a transaction you need to reveal your public key. If you don't reuse an address after sending a transaction from the address, you don't need worry about the private key of that address being exposed.</i><p>Shouldn't that say "address reuse in Bitcoin is <i>discouraged</i>"? Otherwise I don't think I understand what he's trying to say.
Very cool. This could be used to implement offline wallet with minimal amount of third party code.<p>One issue I'd like to point is I wish the author used proper random generated private key. Examples on the internet have a nasty habits of being copy pasted and reused verbatim :(
Hi Sam,<p>If you're reading the comments, can you do this treatment but for Ethereum and the smart contracts built on top of it?<p>I find that your article gives a good explanation especially for beginner to understand from the code perspective.
Looks like there was bitcoin left in the address he published the private key for until about 30 minutes ago. I hope that was a deliberate giveaway.<p><a href="https://blockchain.info/tx/2685ff794de17cebdf94eb0f111e8b8c03529a9ae628909cef4090663b54e565" rel="nofollow">https://blockchain.info/tx/2685ff794de17cebdf94eb0f111e8b8c0...</a>
>> 0xFACEBEEF and sent it 0.0005 BTC.. 1 month later and someone had stolen my 0.0005 BTC! I guess people must occasionally trawl through addresses with simple/common private keys.<p>This made it worth reading the article. Such cyberpunk!
This is an excellent writeup! If any readers are looking for an already-written and tested bitcoin client library and can use javascript, <a href="https://bitcoinjs.org/" rel="nofollow">https://bitcoinjs.org/</a> is great. I wrapped a simple cli tool around the library to make the 'coindust' npm package to do simple operations with bitcoin addresses and public bitcoin APIs.
I am actually really surprised it took a month for someone to swipe the BTC he sent to an address with a private key of 0xfacebeef. That could be found via an incremental search in under an hour of CPU search time on one computer.<p>I note that compressed public keys are not being used in these examples - it's highly recommended to use them, since they reduce transaction size and cost.<p>Regarding weak keys - there have been a lot of weak key generation techniques in bitcoin where hiding the public key won't do you any good.
Can someone explain why bitcoin adresses can be created (offline) without blockchain-validation for duplicates?<p>Even if the chances are very small I mean...like....gone is gone...no bank to call for a false transaction.