Show Posts
|
Pages: « 1 [2] 3 »
|
The blockchain is way too big. Why do we need all this information? Outputs are required for the confirmation of new transactions but inputs and spent outputs are not. The only reason this data can't be deleted from the blockchain is because they are part of the data set that was originally used to generate the merkle root and the block hash.
What if we exclude input data from new blocks before they are hashed? Nodes can still validate transactions in new blocks using input data in their mempools and we can discard that data whenever we want. The problem, however, is that utxos in the blockchain cannot be re-confirmed after the input data is discarded. An attacker with enough hash power can chose any old block for which he believes no input data exists and generate an alternative chain segment that, under current consensus rules, can later be used to orphan it and every block above it. Instead of blocks becoming more secure with each confirmation, they become more vulnerable.
The simplest solution to this is to make blocks immutable as soon as they become part of the main chain. That's when the network can safely discard the transaction data and prune the outputs that have been spent. Now the blockchain is much smaller and even more secure than before.
|
|
|
|