Blockchain Scaling Idea
I have though about a blockchain scaling idea. I don't know if it has been mentioned yet before if so then I repeat it. My idea about a blockchain scaling solution, and it's actually more like a resource preservation solution is to just simply delete the older parts of the blockchain.
Structure
Basically the structure of the blockchain is simple. It's made up of blocks of data, which are transactions packaged that are created periodically depending on the block interval of that blockchain. The header of every block is a sha256 hash of the previous block, thus linking together all blocks cryptographically right to the genesis block. Thus it can be cryptographically proven that all inputs are linked with the outputs and that the transaction chain is legitimate, so every unit of cryptocurrency can be traced back to it's creation. This ensures that all transactions are legitimate, and that the coin supply can't be manipulated by external entities.
Deleting Old Data
Basically my idea is to just delete the old data, of each transaction chain but in a way to not interfere with other transactions. So let's say transactions that are like 50-100 hops away from the current one, and making sure that on all branches the length is that. Now the number of hops is arbitrary and it's better to set a bigger number to ensure the integrity of the blockchain.
Because think about it, in a couple of years the blockchain will really be undownloadable, it will be many Petabytes size, it will be impossible to download it from the start and verify it on a computer.
So really the only thing that matters is the upcoming blocks which may be 1-2-8 MB size large, I don't know, but they are no big deal if you don't have to verify it against the past values. If a new node wants to start up, then it will be very hard to do so, I can probably see blockchains being sold on 1 PB hard-disks in the future.
So the main cost is the storage cost, the bandwidth and CPU power needed to verify incoming TX is a piece of cake, 8 MB/10 minutes is nothing, your average Youtube video is now like 100 MB.
So one way to free space is to just delete the old transactions. Think about it, new nodes will barely join due to the economic constraints, and the old nodes have already had plenty of time to verify those blocks.
So at some point it really becomes unfeasible to keep the transaction itself, why not just keep the hash of the transaction? Yes we would only need to keep the header of the block, basically just a hash data and a few more bits like versionbit and such. So what 300 bytes? Something like that.
So even a 8 MB obsolete block can be stripped down to 300 bytes. That is a -99.99625% space reduction. Now that is efficiency.
And why the hell would you want to keep blocks that are like 50 years old? Who the hell will go through the old transactions anyway? If there are plenty of hops between a current transaction and an old transaction, then there is absolutely no need to keep anything before that, the blockchain before that can be safely erased.
To give you an example with 3 hops (obviously we would choose a bigger distance like 50-100 hops):
(sorry for bad artwork, I'm on wife's PC, and no good image editor software at hand)
So as you can see basically this is how 1 BTC would move around in the blockchain (fees ignored). If 3 hops were the trigger, and 3 hops as the minimum distance between all transaction branches, not just yours, since your root transaction involves other people too eventually.
In this example we could delete everything before the blue line, including the origin of the 1 BTC and everything before that, and only keep a SHA256 hash of the blocks before that.
Now you might say SHA256 is not safe and it should be upgraded in the future once quantum computers come out. Sure, but other than that, if a well tested, proven cryptographic hash that provides security into the future, well then that hash can easily replace the data itself, and no security is lost.
We only need to prove the link between the transactions, we don't need to keep the data, and for that a simple hash function is plenty, and in 50-100 hops there is plenty of time to verify that transaction and verify the hash many times, so this doesn't lower security at all. But it does improve resource efficiency tremendously.
Sources:
https://pixabay.com
good information and what I'm looking for, hope to see you again. thank you for posting
if you delete my data, will i still be able to do my accounting? keep proof of earnings/expenses.
You don't understand, your data is not deleted that frequently. Your transaction is still linked to all transactions perhaps not back to the beginning but plenty of data.
It's just that the transaction after that will no longer be open to dispute.
To give you an analogy, it's like if you build a chair with your own hands and many tools, you throw away all the tools and the byproduct after the chair is finished.
So after the transaction data is deleted only the hash will remain which will contain proof that your data is linked to the early data, but the early data is no longer needed.
sounds good but for legal/investigative reasons you mat have to keep the data until the statute of limitations runs out on a dispute. Maybe 10 years?
Again, people can optionally keep the data if they want for investigatory or whatever else reasons. It's just that the protocol won't require it.
Wealthy people, big institutions will probably keep all their data permanently. But there is really no reason to remember the transaction deatails of a coffee you bought 50 years ago.
Very good idea. Upvoted and Followed. Let's build this.