I am a big supporter of the view of emergent consensus expressed by BU supporters Justus Ranvier and Zanglebert Bingledack (ForkiusMaximus on reddit). Unfortunately, I think the Articles of Federation is too strict regarding the definition of block validity. I also believe that BU's governance model is unnecessarily bureaucratic and democratic.
The validity problem
Regarding block validity: imagine that as a software developer, I decided to modify the BU full node software that I run. I add an additional parameter: the block size at which I would leave the network represented by the longest proof of work chain rather than join it. Basically, I never accept blocks above this limit no matter how deep they are. If blocks are above this level I assume something is seriously wrong and that I don't want to partake in the new network. Because I agree with the Articles of Federation I set this limit much higher than the limit used to designate which blocks are only accepted after N confirmations. Suppose my parameters are such that I accept any blocks up to 8 MB immediately, I accept any blocks up to 32 MB after 4 confirmations, but I never accept blocks above 128 MB regardless of how many confirmations they have. As technology improves, I'll manually adjust these numbers of course.
Now the question: do we really want the BU Articles of Federation to state that I am in violation of their core philosophy? Am I doing something against the spirit of Satoshi's vision when I adopt such an upper limit? I would argue that my 128 MB limit is my personal "spam limit", just like Satoshi initially designated 1 MB as the spam limit back when block sizes were far below 1 MB. Satoshi never intended the 1 MB limit to be used to artificially squeeze our real transactions, and I never intend my 128 MB limit to artificially squeeze out real transactions. I'll adjust it upward as the network legitimately grows. The question is: what do I want my software to do automatically if tomorrow miners decide to mine 10 consecutive 200 MB blocks? I don't want to eventually accept them because they're deep in the longest PoW chain. I know that tomorrow there's no real user demand for blocks that big.
Is it so wrong for me to freely choose that I don't want to partake in a chain fork with 200 MB blocks at this time, and I'd rather stick with the smaller block chain? Do we not want to give users this option? IMO the UI should offer users an absolute 'spam limit' that they can either leave blank or configure how they see fit. The size of blocks that users will never accept is best governed by emergent consensus.
The governance problem
The BU governance structure (everything in the Articles of Federation after section 1) is unnecessarily complex and bureaucratic. The problem with Core is not that they don't allow democratic voting. The problem with Core is that they don't care much about what users want, and their vision of Bitcoin is different than Satoshi's. If BU was run by a benevolent dictator or just a small group who cared about user desires and agreed with section 1 of the Articles of Federation, everything would probably work fine. If they went off in a direction that people disagreed with, other people would create their own fork.
The reason why democracy and incredibly formal rules are used in government is that if government goes wrong, really really bad things can happen. Those in power can impose their will on people. Because Bitcoin is governed by code people run, those in control of a Bitcoin fork can't actually do anything bad with the minimal power they have, so the overly formal rules aren't really protecting against anything. They just slow things down and make things more complex.
A benevolent dictator of BU would want to know what the economic majority wanted. Probably the best source of this information in the future will be prediction markets on the price of a coin on each side of a fork, or futures markets for coins if a certain event / protocol change occurs. Until then, we can just use less formal ways of allowing users to express their opinions.
The validity problem
Regarding block validity: imagine that as a software developer, I decided to modify the BU full node software that I run. I add an additional parameter: the block size at which I would leave the network represented by the longest proof of work chain rather than join it. Basically, I never accept blocks above this limit no matter how deep they are. If blocks are above this level I assume something is seriously wrong and that I don't want to partake in the new network. Because I agree with the Articles of Federation I set this limit much higher than the limit used to designate which blocks are only accepted after N confirmations. Suppose my parameters are such that I accept any blocks up to 8 MB immediately, I accept any blocks up to 32 MB after 4 confirmations, but I never accept blocks above 128 MB regardless of how many confirmations they have. As technology improves, I'll manually adjust these numbers of course.
Now the question: do we really want the BU Articles of Federation to state that I am in violation of their core philosophy? Am I doing something against the spirit of Satoshi's vision when I adopt such an upper limit? I would argue that my 128 MB limit is my personal "spam limit", just like Satoshi initially designated 1 MB as the spam limit back when block sizes were far below 1 MB. Satoshi never intended the 1 MB limit to be used to artificially squeeze our real transactions, and I never intend my 128 MB limit to artificially squeeze out real transactions. I'll adjust it upward as the network legitimately grows. The question is: what do I want my software to do automatically if tomorrow miners decide to mine 10 consecutive 200 MB blocks? I don't want to eventually accept them because they're deep in the longest PoW chain. I know that tomorrow there's no real user demand for blocks that big.
Is it so wrong for me to freely choose that I don't want to partake in a chain fork with 200 MB blocks at this time, and I'd rather stick with the smaller block chain? Do we not want to give users this option? IMO the UI should offer users an absolute 'spam limit' that they can either leave blank or configure how they see fit. The size of blocks that users will never accept is best governed by emergent consensus.
The governance problem
The BU governance structure (everything in the Articles of Federation after section 1) is unnecessarily complex and bureaucratic. The problem with Core is not that they don't allow democratic voting. The problem with Core is that they don't care much about what users want, and their vision of Bitcoin is different than Satoshi's. If BU was run by a benevolent dictator or just a small group who cared about user desires and agreed with section 1 of the Articles of Federation, everything would probably work fine. If they went off in a direction that people disagreed with, other people would create their own fork.
The reason why democracy and incredibly formal rules are used in government is that if government goes wrong, really really bad things can happen. Those in power can impose their will on people. Because Bitcoin is governed by code people run, those in control of a Bitcoin fork can't actually do anything bad with the minimal power they have, so the overly formal rules aren't really protecting against anything. They just slow things down and make things more complex.
A benevolent dictator of BU would want to know what the economic majority wanted. Probably the best source of this information in the future will be prediction markets on the price of a coin on each side of a fork, or futures markets for coins if a certain event / protocol change occurs. Until then, we can just use less formal ways of allowing users to express their opinions.