Hacker News new | ask | show | jobs
by _cpancake 4127 days ago
Bitcoin either needs tons of bandwidth and storage space, or centralization. You can't have your cake and eat it too.
2 comments

Not really. US citizen makes 2 transactions per day. That's 1 kilobyte of data total.

That's really not a problem, centralized or decentralized, for bandwidth, storage or cpu to handle.

Fact of the matter is that a transaction costs some money, like 5 cents, which is in a way the price to transmit 500 bytes of data, verify it and store it. That's economical at any scale. And guess what, the marginal cost is only decreasing due to technology improvements. (moore's, kryder's and nielsen's laws)

The price of 1 gigabyte of storage is about 3 pennies today (retail), for example. And storage is not permanent either, you can prune old transactions (that's an innovation currently in development).

And again, that price is only dropping, in 1990 that price was a few thousand dollars by comparison.

But I need the entire blockchain for it to be decentralized, or someone else stores the entire blockchain, which is centralized.
Wrong. There are degrees of centralization. Hundreds or thousands of entities holding the blockchain is certainly not centralized. We don't need every single participant to hold the blockchain.
I don't think you understand the concept of centralization if you think that when someone else stores x, then x cannot be decentralized...

:-/

Check out this image:

http://cffn.ca/img/articles/Centralized-Decentralized-And-Di...

Bitcoin is both distributed and decentralized. In a world with 100 people, you can say that a system is sufficiently 'decentralized' if 10 of the people ran nodes, independent of eachother, where if any of the nodes lied or crashed the system would continue to work, and where few or no nodes collude with each other. It doesn't require every single one of the 100 people to hold the blockchain.

Bitcoin nodes is a bit like peer review of a dozen academics keeping each other in check, only it's based on math and cryptography and proof of work. The proof of work ensures it's not possible to lie to other nodes without expending lots of money on mining and risking not getting any reward in return when your blocks are rejected. And even if you lie, nodes can't send money they don't earn due to the public-key cryptography. And instead there are hundreds or even thousands of such nodes and miners, and we call that decentralized.

In other words you can run a decentralized system with thousands of copies of all transactions, as opposed to all 7 billion people needing to store a copy and relay every transaction to everyone else.

Beyond that, not all transactions need to even be stored by the nodes that are needed. If you sent me a dollar in 1990 and I spent that dollar, and whoever received it from me spent it and so on tens of thousands of times now in the past 25 years, then there's absolutely no practical reason for me to store the data on our transaction in 1990. It can be pruned. And so can all the transactions between 1990 and 2014, and most transactions in 2015 of that particular dollar, except the last recent few.

Concerning security of the blockchain the vast majority (an ever growing number) of transaction data can be safely thrown away.

Some research universities and businesses might save that data for posterity/research/datamining, but for the network to operate, to function, you can prune something like 99% of the data.

It takes a lot of bandwidth to verify the blockchain initially, but you don't have to store it all. Once you see that an input has been spent, you can discard the earlier transactions without losing information about the current balances. So you'd only need a few hundred MB of storage space.
This is interesting, I thought in order to use a fully independent client you needed to store the whole blockchain. Which clients support this?
Most of what's needed for this has been in the main/Satoshi client since 2012. The client uses the pruned chain for most transactions because it's faster, and just uses the full blockchain for syncing with other clients. But I don't know of any clients that turn off the full-blockchain part and use only the pruned one. https://bitcointalk.org/index.php?topic=119525.0 https://bitcointalk.org/index.php?topic=118660.msg1285690#ms...