Author

Topic: There is no problem with a blockchain size? (Read 180 times)

legendary
Activity: 3388
Merit: 4919
https://merel.mobi => buy facemasks with BTC/LTC
September 04, 2018, 07:13:15 AM
#12

Who guarantees the integrity? A central authority? The existing community?
What if a new member decided to join the community, he'd have to trust either the central authority or the "old" community (the community members that once had access to the full blockchain before it was pruned). Doesn't sound like something i'd want to be part of.

It's guaranteed by blockchain itself. You can not add or replace anything in the existing blocks so you can be sure that "this unspent output" is valid since the block which contains this transaction does not break blockchain integrity

It's true that currently, you cannot change anything in a block because it's a blockchain. The header of the next block contains the hash of the header of the previous block, the merkle tree of the transactions, a nonce and some other data that isn't interesting in this discussion.

So, pruning leads to this situation for a newcomer (unless i'm missing somehting here):

Block height x header: version, hash of header of block x-1 that cannot be verified, merkle root, time, nbits, nonce
Block height x+1 header: version, hash of header of block x, merkle root, time, nbits, nonce
Block height x+2 header: version, hash of header of block x+1, merkle root, time, nbits, nonce

It's the very first line that's interesting: nobody can verify that the hash of the header of block (height x-1) is correct, because we collectively pruned that block if we'd followed your proposal. Sure, people that were here since the beginning should have no problem with this, they once stored block height x-1, so there would be no reason not to trust block height x's header...

But if a newcomer would enter the community, he'd just have to assume that block height x's header is valid, but he'd have no way to independently verify this.
This would also mean he'd have no way of knowing his UTXO was built correctly, unless somebody was sending him all historic blocks, which cannot be done if they were collectively replaced by empty placeholders like you proposed.

Now, bitcoin core already allows you to prune your blockchain locally, and as long as some people still store the complete blockchain, everything is fine IMHO. You can even switch to an SPV wallet if you don't want to sync, but the moment everybody prunes the first couple of blocks, new members would have to start trusting other members instead of being able to verify everything themselfs. This might still be fine in the beginning (eventough i think it's not fine), but in the end we'd have to start trusting a decreasing number of people that once stored the very first blocks, centralising the trust to these individuals.
Sure, it's a moving chain, and as long as you were there from the start you can prune whatever you want and still trust the whole system... It's just that if you were not there from the start, and you only trust yourself (like you should do), you're starting to see the problems.
copper member
Activity: 90
Merit: 0
September 04, 2018, 07:04:16 AM
#11

Who guarantees the integrity? A central authority? The existing community?
What if a new member decided to join the community, he'd have to trust either the central authority or the "old" community (the community members that once had access to the full blockchain before it was pruned). Doesn't sound like something i'd want to be part of.

It's guaranteed by blockchain itself. You can not add or replace anything in the existing blocks so you can be sure that "this unspent output" is valid since the block which contains this transaction does not break blockchain integrity
legendary
Activity: 3388
Merit: 4919
https://merel.mobi => buy facemasks with BTC/LTC
September 04, 2018, 06:56:24 AM
#10

If every node in the network would prune block 1 and 2 (since all unspent outputs created by transactions in these blocks were now spent), how would the network ever know about unspent output c? It would be impossible for somebody to verify where unspent output c came from... We would just have to assume unspent output c exists, funds address 1b and is valid?


there is no need "to verify where unspent output c came from" as blockchain integrity guaranteed it's enough to know that this output is not spent yet

Who guarantees the integrity? A central authority? The existing community?
What if a new member decided to join the community, he'd have to trust either the central authority or the "old" community (the community members that once had access to the full blockchain before it was pruned). Doesn't sound like something i'd want to be part of.
copper member
Activity: 90
Merit: 0
September 04, 2018, 06:53:54 AM
#9

If every node in the network would prune block 1 and 2 (since all unspent outputs created by transactions in these blocks were now spent), how would the network ever know about unspent output c? It would be impossible for somebody to verify where unspent output c came from... We would just have to assume unspent output c exists, funds address 1b and is valid?


there is no need "to verify where unspent output c came from" as blockchain integrity guaranteed it's enough to know that this output is not spent yet
newbie
Activity: 294
Merit: 0
I don'tthink there would be much problem with transaction size. But, you can do more research on this.
newbie
Activity: 350
Merit: 0
That's an interesting post. But I think under such circumstances the condition of integrity would rather be unstable.
newbie
Activity: 154
Merit: 0
blockchain is a database which contain input and output both kind transaction so I don't think there should be any problem with it size and it not that keep growing forever so size is not a serious issue or it does fall any direct effect on the trading of coins, this thing cointain the information of your transaction which is important.
newbie
Activity: 252
Merit: 0
The blockchian technology is extremely important in the market of crypto currency. it holds information and traces where the coins are being transferring. Also the blockchian is now being used by large companies, they are seeking ways to apply the technology of the blockchain into their business ad upgrade their business.
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
And we can find blocks that consists of such transactions only and we can remove all this data preserving only block hash

No. Blockchain is a ledger. If anybody wants to audit some old transactions he has to be able to find them. The blockchain has to have them all.
If you have problems with the size on HDD you can always use pruning. Or, as @mocacinno said, use a SPV wallet like Electrum.
newbie
Activity: 336
Merit: 0
the technology of blockchain is very useful, not only for the market of crypto currency but for businesses as well. They use it to help in their business practices. The size of the blockchain doesn’t actually matter but rather the safety and the reliability on the blockchians algorithm, this would keep away hackers.
legendary
Activity: 3388
Merit: 4919
https://merel.mobi => buy facemasks with BTC/LTC
As we know each blockchain transaction has inputs and outputs
If all transaction inputs are spent then these inputs doest not contain important information anymore as it will not participate in any future transactions

And we can find blocks that consists of such transactions only and we can remove all this data preserving only block hash

So this means that a blockchain will not grow forever , it will grow forward but closer to the begining blocks can be replaced by its empty placeholders

Going this way we, of cause, lose transactions history but integrity would be ok

Why would the integrity be ok? Very simplistic, if each block contains only 1 transaction:
Block 1
coinbase reward funds address 1a creating new unspent output  b

Block 2
unspent output b funds address 1b creating new unspent output c

Block 3
unspent output c funds address 1c creating new unspent output d

If every node in the network would prune block 1 and 2 (since all unspent outputs created by transactions in these blocks were now spent), how would the network ever know about unspent output c? It would be impossible for somebody to verify where unspent output c came from... We would just have to assume unspent output c exists, funds address 1b and is valid?

If you don't like to synchronise your wallet, you can always use an SPV wallet if you want...

copper member
Activity: 90
Merit: 0
As we know each blockchain transaction has inputs and outputs
If all transaction inputs are spent then these inputs doest not contain important information anymore as it will not participate in any future transactions

And we can find blocks that consists of such transactions only and we can remove all this data preserving only block hash

So this means that a blockchain will not grow forever , it will grow forward but closer to the begining blocks can be replaced by its empty placeholders

Going this way we, of cause, lose transactions history but integrity would be ok
Jump to: