Hacker News new | comments | show | ask | jobs | submit login
Blockstore: A Key-Value Store on Bitcoin (onename.com)
95 points by muneeb on Feb 17, 2015 | hide | past | web | favorite | 26 comments

Namecoin is around for years, and it's true key-value blockchain database, not DHT with values hashes stored in chain within financial transactions(why?). Another cryptocurrency, Nxt, has messaging ability giving possibility to write up to 1K chars within message, up to 10K in messages chain, enough for many kinds of documents.

Bitcoin technically has the capability to store at least 1K bytes per transaction using multi-sig outputs. 66 bytes per output * 15 possible outputs (for standard transactions) = 1K bytes. And you could do even more than that with non-standard transactions, making transactions with 3K bytes or more.

That said, you probably don't want to do this, because it contributes to blockchain bloat.

We made the decision of storing the data in a DHT because it's more efficient and you can store much more data than a few thousand bytes.

Hey buddy. You're killing it man. Thanks for all that you do.

One thing I've still not grokked about your vision: What kind of redundancy can you expect for the DHT? It seems clear that, for the foreseeable future, there will be millions of copies of the bitcoin blockchain. How can you know that there will be a sufficient number of copies, distributed in a sufficiently diverse pattern, in order to ensure preservation of the DHT?

Thanks! Really appreciate it.

1. The replication factor of the DHT is set to be high. 2. We'll be committed to seeding the network and will work with others to have them run nodes. 3. We will provide a full index of the DHT, so the data can be retrieved via our API as an alternative to checking the DHT (the data can be stored and mirrored anywhere, since it's hash-addressed).

"We'll be committed to seeding the network and will work with others to have them run nodes."

What incentive do they have to run nodes? Bittorrent has the tit-for-tat mechanism. IPFS is planning on incentivizing nodes with filecoin.

But BitCoin community is against abusing the financial block-chain for general purpose [0]. Reducing bloat is good, but why bloat it in first place?

[0] - https://en.bitcoin.it/wiki/Alternative_chain#Objective

I've been doing some analysis of the bitcoin blockchain and there are only around 17,400 transactions that take up a total of 16 MB in transactions and 550KB of OP_RETURN data. Some protocols use OP_CHECKMULTISIG, OP_CHECKSIG and other methods so this doesn't account for everything.

However, the vast majority of bitcoin blockchain "bloat" is from standard bitcoin transactions.

Financial and accounting data has always contained more than just integer values of credit and debit. Who, how, when and why are just as important to good bookkeeping as to what was transacted.

Blockstore, by creating transferable digital property in the form of a key/value store, creates an economic incentive to use Bitcoin. Right now, Bitcoin needs all the help it can get. Consumer adoption will not happen if Bitcoin is just trying to be a public ledger of integer values that attempts to compete with MasterCard and Western Union.

Good thing is that no one really controls block chain.

No single entity controls it, but that doesn't mean you can do whatever you want. If someone is abusing the blockchain by bloating it with useless garbage, there will be consensus for fixing that. So don't build a business or technology around abusing Bitcoin's blockchain, because you will be left out.

Why not set clear rules? 1 byte of blockchain costs XXX millibitcoins. You like it — you use it. You don't like it — you don't use it. It's clear that if anyone can use blockchain as information storage, someone WILL do it, now or later. I think it's better to set the rules sooner than fix things later when they are out of control.

It's tough to set any simple firm rules that maintain the right incentives, because (roughly) each byte incurs costs on every node storing/verifying the blockchain, while any set one-time fee can only be collected by some subset of those nodes up-front.

Thus you can expect continuing push-and-pull negotiations, perhaps requiring a separate system of continued payments, if you really want indefinite, reliable, unalterable storage.

Don't bitcoin transaction fees provide a means to handle that without resort to fixed centralized policy?

No, because the miner who gets the fee isn't the only one who will have to work extra. All full nodes will have to relay and store that transaction. And there is no known way to pay full node operators in a way that can't be abused.

Not the past blockchain - but isn't the future blockchain format subject to changes?

Hi Ryan! Right, we need to avoid faster blockchain bloat(btw we already have this problem even with financial transactions, as Toshi node bootstrap takes few weeks even on a relatively powerful server), but best way is to store data into not-Bitcoin chain I guess, and better, to work on chains with optional storage for different kinds of data(financial state not depends on).

I've been working on a Namecoin light-resolving client lately, and this looks really intriguing. However, like with Namecoin (but more urgent because of the need for Bitcoin blocks), how "fast" can a node come online to this system (and how much data is needed to be downloaded)?

Are you aiming for the "light-resolver" marketplace, or is this solution really for people who are already running full Bitcoin nodes?

Interesting. When your client will be released?

Not sure who huntaub is - there's an hl involved in Namecoin already that I know of but I don't think that huntaub is him.

Anyway, there's a somewhat detailed blog post that I helped write about light client design up on the Namecoin blog.


Seriously, this BUZZWORD meets BUZZWORD linkbait is getting old, especially the blockchain variety. Bitcoin is not the hammer to every nail. This is not a good idea and there is not even an attempt here to rationalize why this is a good idea.

But the cryptographic scarcity and consensus of Bitcoin may be just the thing to solve certain longstanding issues with DHTs, by increasing the cost of Sybil and DoS attacks.

What incentive do blockstore nodes have to store data? Bittorrent nodes have the tit-for-tat mechanism for faster downloads. IPFS nodes get monetary compensation via 'filecoin' (in the works).

Isn't Bitcoin already a key-value store? One private key can store millions of dollars of value.... :)

It can store an integer value. Storing longer data requires partitioning it across multiple transactions.

They're currently using Namecoin, and it works perfectly. The argument to use Bitcoin seems to be that it's sexier. Is it harder to get funding for Namecoin applications?

Neat! So if I understand correctly, first you retrieve the "value" from the blockchain, which acts as the index into the DHT you're running separately?

Are you seeding the DHT with your own machines right now? At web scale, wouldn't the number of machines participating in the storage network (as opposed to the blockchain) need to be huge?

Can anyone ELI5? Honestly, I'd settle for an ELI12 on this one.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact