...
While I do understand your point about improving on the ability of the users to come to consensus, it seems a stretch to me to suggest that regular changes to the way Bitcoin operate can strengthen the trust people have in it. Rather we should strive to come to a point where the consensus critical code in Bitcoin is set in stone for eternity as it becomes harder and harder for an ever-growing ecosystem to come to consensus on a proposed change.
For that reason, I am wary and quite frankly curious of recent attempts by Hearn in particular to lessen the impact and the dangers of hard forks.
I think we mostly agree--it should be difficult to
actually change the consensus layer because we should all be in tight agreement about what's in that layer. And we are in agreement!: we all agree that double spending is bad, we all agree that valid signatures should be required to spend coins, and we all agree that Bob shouldn't be able to create coins out of thin air. In other words, we already agree on what constitutes valid
transactions.
But we don't agree on the block size limit. That's OK, though, because we don't actually need to view the block size limit as part of the consensus layer. The block size limit doesn't affect what
transactions are valid.
So I suggest we agree to disagree on the block size limit. Let's move the limit from the consensus layer into the transport layer instead, and give all node operators the ability to
very easily adjust it. If we do this, then we don't even need to worry about figuring out the "perfect way to adjust the block size"; it will evolve naturally in a decentralized fashion.
What do you think?
Here's more on that topic:
...
Why do we have a consensus layer in the first place? It is a way for us to agree on what transactions are valid and what transactions are invalid. For example, we all agree that Alice shouldn't be able to move Bob's coins without a valid signature, and that Bob shouldn't be able to create coins out of thin air. The consensus layer is about obvious stuff like that. In order for Bitcoin to function as sound money, we need to agree on "black-or-white" rules like this that define which transactions are valid and which are invalid.
Notice that the paragraph above discusses valid and invalid transactions. No where did I say anything about blocks. That's because we only really care about transactions in the first place! In fact, how can a block be invalid just because it includes one too many valid transactions?
Satoshi added the 1 MB limit as an anti-spam measure to deal with certain limitations of Bitcoin's transport layer--not as a new rule for what constitutes a valid transaction. We should thus think of every block that is exclusively composed of valid transactions as itself valid. The size of the block alone should not make it invalid. Instead, if a block is too big, think of it as likely to be orphaned (a "gray" rule) rather than as invalid (a black-or-white rule). Perhaps above a certain block size, we're even 100% sure that a block will be orphaned; still we should view it as a valid block! It will be orphaned because the transport layer was insufficient to transport it across the network--not because there was anything invalid about it.