Hello, my name is nathan and I hope I don't screw up with my first post
![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif)
Transactions are being sent like dozens per second,
Nope, not even durring the last spam attack. The last peak TX according to blockchain.info
1 was 214,487 tx in july. Thats 214,487/(60*60*24) 2.4 TX per second.
and miners have to work hard on creating blocks as a system for building a reliable and trustable unique blockchain that contains all verified transactions ever made since the very first one.
One problem about this system is that, in order to know the current balance of a particular address, we have to check the blockchain for all transactions it has received, and from what addresses. Then, we have to also check all transactions of all those addresses to check if they had enaugh balance, and you have to go like this all way back to where those particular bitcoins where generated by mining, so then you can verify the balance of that address. So, we have a big problem, that is getting bigger every second, way bigger, and definitely could be 1TB soon, that big.
No, thats not how bitcoin works. You can work your way back for every currently existing unspend output, but you dont have to. Its enough if you check whether the TX is valid and keep and set of all known unspend outputs aka UTXO.
Also assuming we constantly have full blocks (1 MB every 10 minutes) and currently the blockchain is 50 GB in size (its not that big yet) we would need another 1000GB-50GB * 1000 * 10min = 9.5*10^6 minutes or 18 more years to reach 1 TB. I would not call that soon. Considering the instantly switch to XT and get 8 MB blocks now it would still take over 2 years (not considering further growth for simplicity).
There's people that doesn't really mind about this, they say webwallets are a good solution, but remember bitcoin is all about decentralization, remember mtgox.
Im not sure what your point is here, but decentralization is indeed what makes bitcoin or crypto currencies in general special.
So, I think I have a solution for this, but I don't know if it could be implemented or if it is not a good practice. So here it goes, this is my idea:
It's all about mining. Transactions become trustable when they are mined into the blockchain, because each block have a cost of generating. I propose to add an overblockchain, that resume X amount of blocks drastically, since an overblock only includes:
- the hash of the previous overblock (just like with normal blocks do with the previous block)
- the hashes of all blocks, one by one, from the first one to the last one this overblock includes (it has to include at least 100 more blocks than the last overblock)
- a list of all addresses that contains bitcoins right after the last block included here, and the balance of each address.
So in order to save data you want to add more data by storring the UTXO set every 100 blocks on the blockchain?
So, if that overblock contains the blocks 1 to 100, and in the block 101 is written that some address has sent you money, then you just have to look back to that overblock to see if that address had enaugh balance.
The mining of this overblocks is rewarded to the miner with bitcoins, just like blocks are, but from now on, blocks will only receive half of what they received (half of the -currently- 25BTC and half of the fees) the other half will be rewarded to the overblock miner.
So an overblock would be awarded 100*25/2 = 1250 BTC?
And the difficulty of overblocks should be 100 times higher than the difficulty of the last block included, which means that every 100 blocks (that would ideally represent 16.45 hours, an overblock will be mined).
So, maybe when we have more than 100 overblocks, we can start dumping normal blocks, and keep only the ones included in the last 100 overblocks.
Of course you can set your wallet to keep everything, for example if you are a website and want it to be public or something, but it would really save space to people that don't want that much data.
So, start telling me the probably hundreds of problems this could lead us to, but please don't be mean, I am a nice guy when you get to know me
![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif)
I hope you dont consider it mean to point at flaws in your reasoning. Your solutions sounds like something you though about a little without too much knowledge off how bitcoin actually works. Do not let that stop you from thinking further about possible solutions to scaling problems, but its probably best if you read more about bitcoin to understand better where a solution is needed.
Pruning
2,3 is something that is actually implemented currently. Its just not working with a full node that acts as a wallet yet. Pruning is similar to what you suggest without the extra data. The client forgets about certain blocks and only keeps the data it needs.
1
https://blockchain.info/charts/n-transactions2
https://www.reddit.com/r/Bitcoin/comments/33oz973
https://www.reddit.com/r/Bitcoin/comments/33qv3a/pruning_support_what_is_it_and_where_might_it/