Lighten the blockchain

One of the major issues of blockchains is that they get bigger and bigger, for instance the Bitcoin blockchain will exceed 250Gb by 2020:

This severely hurts the decentralization philosophy of cryptocurrencies, because nodes who can’t keep up with the growth of the blockchain cannot store it on their computer.

My idea is to limit the number of blocks. For example, the blockchain would contain all the last 1000 blocks, but all the blocks before that would not only be deleted by the nodes to lighten the blockchain, but all the transactions they contain would also be considered invalid because of the protocol. Whenever we add a new block, we forget the old one. Thus, the data structure of the blockchain would become a queue instead of a simply linked list like today.

But if you delete a block, all the creditors of the transactions would lose their money!

Yes, but it would encourage them to spend their money before the 1000 blocks limit comes, and making money circulate is very beneficial to the economy. It would also solve the problem of “sleeping money” where users lose their private key and all access to the coins is lost forever. The desktop assistant of the cryptocurrency would warn the user when some of their money is about to expire so they have to quickly use it. If they really don’t want to spend their money and it is about to expire, they can just create a second account and transfer their credit to the second wallet so that their money won’t be deleted because it would be stored on a new block.

But if you delete a block, all the debtors of the transactions would gain money out of thin air!

Not really, (edit not complete, will finish later)

1 Like

IPFS doesn’t store the file on the chain.It’s content-addressed.
My question how do we apply this?

Maybe my questions are dumb.
But how?

I am not talking about storing files on chain, but just reducing the size of the blockchain (whether it be Bitcoin, Ethereum, Filecoin, …). Filecoin in particular will be used for IPFS as a cryptocurrency to reward people who lend their hard drive to seed files, so maybe the suggestion I give here can be useful for IPFS.

1 Like

Reducing the block.
Smart !

1 Like

How is that any different from just not storing the entire blockchain on your computer?
There are nodes that do store the entire chain, and there are (most) nodes that don’t.

My understanding is that blockchains generally don’t carry the state of each wallet along with each block, so transaction validators must walk the chain backward to confirm the source wallet has sufficient tokens. Light nodes therefore aren’t fully functional, and must rely on full nodes for proper operation. It’s not such a huge issue yet since there are still enough full nodes around, but if blockchains ever enter mainstream, only a handful of data centers around the world will be able to run a full node.

The fairly new Stegos blockchain is doing something like this. I believe they only store the most recent valid state in the chain and periodically prune the transaction history to keep the chain as small as possible. It uses Proof of Stake with additional lottery incentive for nodes that do not have a stake. Evidently a phone can run a full node. I’ve been looking into it as a possible anonymity layer for IPFS and Filecoin since Stegos transactions are anonymous (Monero style) and it also allows sending in-chain data packets.

The difference is that the blocks beyond the limit are considered invalid by the protocol of the cryptocurrency itself, whereas with Bitcoin for example, if you are a light or partial node, the old transactions are still valid but you have to rely on a full node to prove to the network that they exist. With my suggestion, if there is a transaction “Alice sends 10 coins to Bob” at the beginning of the blockchain, then if you add just one new block at the end of the chain then the first block becomes invalid and Bob loses his 10 coins if he didn’t spend them by then.

The advantage is that the blockchain would have a fixed size (we add a new block, we delete the old block). Another possibility would be calculate the number of blocks before the oldest block expires dynamically, according to the number of different wallets in the blockchain (if there are 1000 users of the cryptocurrency, the size of the blockchain should logically be bigger than if there were only 10 users).

I know that the state of the entire ledger is not stored on each block, the blockchain would take way too much space otherwise. What I think is that we don’t care if we delete the first blocks of the blockchain and lose the original state of the ledger. If some people have credit transactions in the first blocks and don’t want to lose this money, all they have to do is create a second account and transfer their credit to the second wallet so that their money is stored on a new block and it won’t be deleted by the time limit.

From what I understand of Stegos, from time to time we recreate a new blockchain whose genesis block contains the balance of all the users from the previous blockchain (for example 'Alice=30, Bob=10, Charlie=15,…) so that the blockchain always keeps a relatively small size. But this doesn’t solve the problem where an user loses his private key and all his coins are lost forever, whereas my idea does.