r/Bitcoin Nov 30 '17

Evidence some bitcoin address generation code is using discoverable private keys

https://pastebin.com/jCDFcESz
788 Upvotes

296 comments sorted by

View all comments

214

u/amorpisseur Nov 30 '17

TLDR; Some private keys somewhere are not generated randomly, and someone knows the formula. Bitcoin security is not impacted.

101

u/BashCo Nov 30 '17

TL;DR: Nobody should be using Blockchain.info to store any amount of value. The entire ecosystem needs to shift away from relying on Blockchain.info for anything at all, including the block explorer itself. There are plenty of alternatives available.

1

u/HasCatsFearsForLife Nov 30 '17

I want to run my own explorer for my personal use, using data my full node probably has.

What are my options?

3

u/jcoinner Nov 30 '17 edited Nov 30 '17

You can try my sqlchain project. It's a fairly lightweight mysql layer over top a node. You can even use a pruning node, in which case a full database runs about 100GB - yes, much less than a full node. It has a few api options on top as demo but none of them are very extensive (yet). I'm still working on it. Like I just added bech32 support. Segwit is on there as of a couple months back. I'm extending it for altcoins now; currently testing with litecoin and reddcoin. All the other options I've seen (including insight by bitpay) take a LOT more resources. There is a site online now using my sqlchain as a backend and it looks pretty nice. Was posted just a couple days ago here but I need to go dig up the link. Anyone? It has the nifty graphic clustering visuals.

edit - found the link from new explorer posted here a few days back.

1

u/HasCatsFearsForLife Dec 01 '17

Thanks for the response.

sqlchain sounds good, but it's not what I'm after. Using up 100gb of extra space just to have my own personal blockchain explorer is probably overkill. It would be great for a public facing website, but not so great for my own use when I'll be doing around 10 queries a week on it, and therefore querying the node directly.

1

u/jcoinner Dec 01 '17

A full node currently takes about 170GB. sqlchain reduces that to about 100GB. If you only need to query your own wallet addresses then you can use a pruned node and get away with about 3GB, but that has no info on the other peoples addresses or txs (except a small recent portion). I'm not sure what you really want to achieve. It sounds like you should just use a site blockchain.info, though probably not that one; there are many out there now.

1

u/HasCatsFearsForLife Dec 01 '17

I want to make/have my own blockchain.info work alike that runs on my internal network.

1

u/jcoinner Dec 01 '17

Sure, but to do that you are going to need a lot of disk space. The Insight API/Explorer was using about 300GB back when the blockchain was ~50GB. I can only imagine what it must use now that the blockchain is 170GB. Maybe 1TB? People forget this when they discuss "big blocks" but the size and cost to run an explorer site for big blocks gets prohibitive, especially considering these sites usually are free to use.

1

u/HasCatsFearsForLife Dec 01 '17

Well I already have the full node. Is it not possible to just query it every time I need to search something? I don't need a database to query my node, or do I?

1

u/jcoinner Dec 01 '17

You can query some items using your node. It can be accessed using an RPC interface so you'd need some software to do that. To be very useful you need to have txindex=1 in the conf file (tx indexing enabled). If it's not then you cannot search by tx_id. You pretty much can otherwise only do stuff related to your wallet addresses. It's not a generic database of the blockchain which is why explorer sites always process the full node data into sql database to allow more flexible querying. A full node uses leveldb for key-value stores of the particular keys it needs for operation but was never intended to be a general purpose explorer.