Title: Ideas / Possible SOLUTION to NEVER-ENDING BLOCKCHAIN.. Post by: spartacusrex on March 11, 2013, 11:49:34 AM Hello,
I wanted to post this is the technical forum, but after 3 weeks of using the site I am still only 1hr 57 min newbie.. Anyway - I wanted to mention an idea for fixing the Never Ending Blockchain conundrum that hangs over us all. Simply assuming we'll be able to handle a 50 quintillion TB file, doesn't fill me, as a developer, with confidence.. I understand the protocol quite well, I think, and so I came up with this. Satoshi Dice is NOT A PROBLEM. He generates a lot of transactions, and miners get paid for processing tx's. That's what they do.! The fact that there is all this dust etc, is quite frankly irrelevant. The protocol allows it, so it's good. The PROBLEM - as I see it - is that if we want to keep a record of every transaction ever, this is a BIG task. What if we changed the perpective and kept the ONLY really important piece of information.. How much each account has in unspent output txs.. ? What I mean is this. The Blockchain is made up of blocks, mined by the miners. I say, that the only useful blocks, are ones with UNSPENT TX outputs. If a block is only full of SPENT tx outputs, other than for the sake of posterity, and as a checking reference, that block is not really essential. So - What if a miner could perform a special transaction, that spends UNSPENT tx outputs from earlier blocks, all from the same account, scoops them ALL UP, to say 1000 blocks behind the current block, and outputs 1 UNSPENT tx output in the latest block, for the SAME USER.? This would sweep up all the Satoshi Dust, and all the unused spends and make, one useable SPENDABLE output tx for the same account. You would simply remove the earlier blocks from the blockchain as they were cleared of spendable outputs.. Actually, maybe a special block that simple stores a list of [ account, IN amount, OUT amount, ] so that for reference we know the basic info, could be used to replace the much larger block which holds ALL the info.. hmm.. The Blockchain would then still have the correct amount of fixed coins in it, but it would be a 'ROLLING-CHAIN' that would sacrifice it's history, but maintain balances accurately. This would make its size orders of magnitude smaller.. actually manageable by todays hardware.. The Miners would love it because they benefit from a smaller blockchain, AND they could get paid for processing that SCOOP-UP transaction. You could say that ONLY blocks 1000 deep or more can be mined for UNSPENT txs.. This would also, rightly I think, bring in a very small, 1 Tx fee every so on, say 6 months, to keep your balance in the blockchain. As it gets shuffled up to a newer block. I don't know if this is easily possible, but I know that nothing is impossible.. This idea may be full of holes, but may spur some lateral thinking. Thoughts !? Title: Re: Ideas / Possible SOLUTION to NEVER-ENDING BLOCKCHAIN.. Post by: bezzeb on March 28, 2013, 01:44:19 PM Hey, interesting post, thanks for writing. Few comments:
First: Small fee for having your balance in the system is a no-go and violates the golden rule. My balance cannot be altered without MY wallet signature. To give a middle man the ability to take even 1 satoshi from my balance would as far as I understand violate all of the math which the system is built uppon. Also it would introduce an inflationary mechanism whereby in theory all accounts will be nibbled down to zero one day. It's arguable that this is a really bad idea from an economics perspective also. I prefer deflation over inflation any day as the market can in theory solve deflation. Inflation is a nasty transfer of wealth business which in all cases stems from some act of theft - either a perpetual fee or a devaluation through oversupply. Both are soundly avoided in the Bitcoin vision. Second: Merging lots of dust transactions. You mention this and I agree it would be very cool, but as far as I can tell would need to be implemented in the wallet applications as the network is not able to alter transactions. this could be very healthy for the network I think as by merging all the dust which resides in one wallet into a single output, we'd be essentially defragmenting the network - which would lead to data which could be pruned. See next point: Third: Satoshi's paper mentions the pruning of old transactions which cancel out somehow such as having already been re-spent. So he definitely foresaw the block-chain size problem. I've given it what little thought I posses, and careful pruning appears to me to be the only way to safely reduce storage needs while maintaining integrity, however as far as I know no pruning mechanism has been implemented yet, and even when it is implemented it won't have a HUGE impact because the network must keep all open bitcoin values which have not been spent. That's it's purpose, and that task could get REALLY MASSIVE if mainstream adoption ever happens. We're talking IPv6 massive as every human on earth could eventually have hundreds or thousands (or more) send/recieve addresses over the course of their lives with a hefty percentage of these containing a >0 balance and thus not being prunable until merged or spent..... It would seem a curve could be graphed to calculate the maximum size of the Block Chain given a certain number of global transactions per second combined with how many addresses are in the system. Then a mathematician could probably also estimate the effect of dust-merging and lastly forecast what effect pruning would have on said "defragmented" block-chain file given other parameters like age and quanity of "stale or lost" bitcoins.. Doing this calculation is FAR beyond my skills, but I'd sure love to see the result!! The infinite block-chain problem is my biggest concern with the Bitcoin network, and I don't see how it can grow past a certain point if it's not cracked. My local block storage is 7.1 GB today - a 7 fold increase in one year. This can't go on forever...... |