Author

Topic: Blockchain size reduction question (Read 221 times)

legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
August 17, 2019, 03:04:53 AM
#9
Would it be possible to make a snapshot of blockchain in a form of a table which would contain ONLY two fields : all the addresses ever holding non-zero amount and actual amount kept on those adresses at a certain agreed block. That table could be verifieded by all nodes and signed and it will itself become a record frozen in time just like the blockchain itself - it would be just a subset of data held in blockchain.

Other nodes (which store whole blockchain) could verify the trimmed/stripped table, but you still need to trust them not to sign malicious table (which costs almost nothing).

New blockchain would start from the agreed block and would continue as usuall from that point.
Then users happy with this solution could keep this new table and much smaller "new" blockchain on their devices.

The users already happy with invention of light/SPV wallet.

As you say : If only a few nodes can afford to have the whole blockchain and only a few nodes can afford to download it, it's no longer a peer to peer network. I am afraid that sooner or later this happens due to impractical size of local blockchain copy.
It already happened to me - I had two HDD failures already and I can tell you that bringing  back the node in operation is not fun.

True, but Satoshi already foresee this would happen and there's no effective way without big trade-off.

For example, ETH block size now is almost 3TB and you can't use HDD to store it due to high I/O activity.
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
August 16, 2019, 11:44:34 PM
#8
Sooner or later we have to divide the blockchain to 2 parts (as has been previously suggested).
Old data and new data.

This would work, if the "old" data is also made available for downloading, so that if anyone doesn't trust that the beginning of the "new" data is correct, he/she can verify it himself.

A file with all the addresses and their balances takes less than 900M.  So maybe the new blockchain size would be around 3GB ?, with all the separate UTXO:s  included in it.

Would be great if the blockchain could be "pruned" every 5 years or so, and all the "discarded" data would be made available for downloading too, from outside of blockchain.
For people to validate the validity of the information, they would have to verify the whole block chain from the start of genesis. Else, it wouldn't be very effective for Bitcoin to exist. Centralisation wouldn't be ideal either, it would make attacks on Bitcoin easier and less expensive.

For most, I would think that running an SPV wallet would suffice while people who would want to support the network can run Bitcoin. The size would arguably be less of an issue with technological advancement and the various BIPs (Lightning network, schnorr signature etc).
member
Activity: 73
Merit: 17
August 16, 2019, 11:13:27 PM
#7
As you say : If only a few nodes can afford to have the whole blockchain and only a few nodes can afford to download it, it's no longer a peer to peer network. I am afraid that sooner or later this happens due to impractical size of local blockchain copy.
It already happened to me - I had two HDD failures already and I can tell you that bringing  back the node in operation is not fun.
legendary
Activity: 3038
Merit: 2162
August 16, 2019, 04:38:07 PM
#6
Sooner or later we have to divide the blockchain to 2 parts (as has been previously suggested).
Old data and new data.

This would work, if the "old" data is also made available for downloading, so that if anyone doesn't trust that the beginning of the "new" data is correct, he/she can verify it himself.

A file with all the addresses and their balances takes less than 900M.  So maybe the new blockchain size would be around 3GB ?, with all the separate UTXO:s  included in it.

Would be great if the blockchain could be "pruned" every 5 years or so, and all the "discarded" data would be made available for downloading too, from outside of blockchain.


You can already prune if you like, it just shouldn't be viewed as a method for achieving scalability in a big block scenario, big it still has the same centralization problem, which quickly turns the network into something like PayPal. If only a few nodes can afford to have the whole blockchain and only a few nodes can afford to download it, it's no longer a peer to peer network, it is more of client-server relationship.
full member
Activity: 378
Merit: 197
August 16, 2019, 08:29:35 AM
#5
Sooner or later we have to divide the blockchain to 2 parts (as has been previously suggested).
Old data and new data.

This would work, if the "old" data is also made available for downloading, so that if anyone doesn't trust that the beginning of the "new" data is correct, he/she can verify it himself.

A file with all the addresses and their balances takes less than 900M.  So maybe the new blockchain size would be around 3GB ?, with all the separate UTXO:s  included in it.

Would be great if the blockchain could be "pruned" every 5 years or so, and all the "discarded" data would be made available for downloading too, from outside of blockchain.


hero member
Activity: 1232
Merit: 738
Mixing reinvented for your privacy | chipmixer.com
August 16, 2019, 07:35:19 AM
#4
Then users happy with this solution could keep this new table and much smaller "new" blockchain on their devices.
Is someting like this possible at least in theory ?
if your concern is about storage space, you can run bitcoin core in pruned mode
but I think you still need to download full blockchain first before pruning it
btw to send/receive bitcoin you are not required to run a full node, just use spv wallet such as electrum
legendary
Activity: 2912
Merit: 6403
Blackjack.fun
August 16, 2019, 05:18:19 AM
#3
It has been discussed a lot of times, and there are a lot of problems with it, for example:
https://bitcointalksearch.org/topic/m.14097408

Quote
Then users happy with this solution could keep this new table and much smaller "new" blockchain on their devices.

The chain grows with a max of ~150M per day, that's ~ 50GB a year.
In 2009 the Iphone 3 had 16 Gb of storage., the xs comes with 512Gb, enough for 10 years of full blocks.

Anyhow, I wouldn't recommend running a full node on a smartphone.
There are far cheaper and more reliable ways of helping the network. Like Raspberry Pi 3.

legendary
Activity: 3472
Merit: 10611
August 16, 2019, 02:37:32 AM
#2
one of the things we are trying to do in bitcoin is to keep it "trustless" which means you (as a node) don't trust anybody else, you verify literary everything from the beginning of time (that is the first block known as genesis block where bitcoin blockchain began) by verifying every transaction with their signature, check the work that was done to produce that block,....

if we do what you said, then you will have to "trust" that those who created that "new blockchain" and deleted the history were honest and didn't change the immutable ledger (aka blockchain) in the process.
member
Activity: 73
Merit: 17
August 15, 2019, 11:48:56 PM
#1
I have a question on blockchain based or rather limited on my undestanding how it works.
Blockchain is getting bigger with every block and its size is one of the two bitcoin main problems - the other being 51% attack.
Blockchain is a record of all transactions forever frozen in time which is needed to prevent double payments. Since it is by design and in practice a frozen record and unchangable I have the following question:
Would it be possible to make a snapshot of blockchain in a form of a table which would contain ONLY two fields : all the addresses ever holding non-zero amount and actual amount kept on those adresses at a certain agreed block. That table could be verifieded by all nodes and signed and it will itself become a record frozen in time just like the blockchain itself - it would be just a subset of data held in blockchain.
Now in future instead of using the actual  blockchain nodes could reference to this new locked table. This table would be much smaller than the blockchain.
New blockchain would start from the agreed block and would continue as usuall from that point.
Then users happy with this solution could keep this new table and much smaller "new" blockchain on their devices.
Is someting like this possible at least in theory ?
Jump to: