Strictly speaking you are very wrong.
The blocksize was capped at 1MB and what you are referring to is the "soft cap"
and is neither a hardfork or a softfork. You are very wrong that a block made larger
than the soft cap would have been invalidated, in fact, some miners made larger blocks
while other still mined at the lower soft cap levels.
Ah, I thought that it was a mutually respected rule, sorry then. I didn't know that during the period when the "soft cap" was 500 KB, there were miners making larger blocks. Why did miners restrict themselves then to 500 KB ? You are saying that it is pure ignorance/incompetence on their side ?
No, the only rule is 1MB (protocol) and the "soft cap" is the miners own code on their
own miner. As blocks became more full, people asked the miners to raise their
"soft caps". Prior to this act, most miners didn't know they could raise their soft cap.
At this time, large miners are mining away not paying attention to the communities or
anything. They just maintain their rigs, repair them, watch them, collect the btc, and
feed their families. It is only recently that they have begun to start participating in the
communities and asserting their perceived power, which mainly comes from what some
have told them and not actual experience.
You are wrong in many of your statements and your interpretation of words and
events are incorrect. A softfork needs 95% miner consensus, so the other miners
that are "FORCED" are 5% acceptable loss which quickly follows.
No, a soft fork doesn't need 95% miner consensus. That is an extra mechanism that has been applied to past soft forks in bitcoin, but the dynamics of mining doesn't make that necessary. As we saw, on litecoin, it was set at 75%.
On systems as large as Bitcoin, you want something safe like 95% to ensure that no
second chain will survive. At 75%, and a contentious proposal, 25% loss is not safe
and could allow the "old chain" to survive. Maybe on litecoin that number was alright,
since there isn't billions involved plus they knew no miner would bother with a second
litecoin chain, but Bitcoin is different. We must assume there are malicious or idealistic
actors who will attempt to preserve the "old chain", 95% is the safest, allegedly.
A soft fork, by definition, is a change in *de facto protocol* that makes potentially correct blocks under the old protocol invalid under the new protocol, but is such that all potentially correct blocks under the new protocol are also correct under the old one. For instance, black-listing an address is an example of a soft fork. Rejecting any block that contains a transaction with that address, while before, such a block would be accepted, is typically a soft fork.
I don't know if I agree. A blacklisting as you describe doesn't need a soft or hard fork.
The miners could just have a list of UTXOs that their government deems to be illegal,
and it would be illegal for them to accept that UTXO into their blocks. Thankfully, in
this case, mining isn't fully centrlzied within one nation, so in theory, that UTXO can
be moved by a miner who is not under that country's jurisdiction.
In the event that code is added to enforce a blacklisting on all miners, I think that
might need a hardfork, but I am not sure really. I assume the code must be changes
so that miner have reference to dirty UTXOs within the protocol, which would be a
hardfork. I could be wrong though.
A hard fork, by definition, is a change in the *de facto protocol* that makes potentially correct blocks under the new protocol invalid under the old protocol. There are two variants, here: bilateral (that is, the correct blocks under the old protocol will also be invalid under the new one) or unilateral (the correct blocks under the old protocol are still considered valid by the new protocol).
A soft fork, and an unilateral hard fork, are each-other's time reversals, so any undone soft fork is an unilateral hard fork (for instance, removing an address from a black list is an unilateral hard fork).
I agree in theory.
The difference between the two (softfork v unilateral hardfork) is that verifying nodes
do not need to upgrade under a softfork, but do need to under the hardfork.
As to the needs for miner consensus for it to work dynamically, depending on the kinds of fork, we have 3 situations:
A) soft fork:
if a majority of miners applies a soft fork, then the minority of miners is forced to follow, because all old protocol blocks they will make, will end up being orphaned, as they accept the forked blocks themselves, and hence cannot build an own chain. A minority of soft forking miners will always mine themselves on "old blocks" and hence orphan themselves out of business. So with a soft fork, there's always only one chain, and the majority imposes its will on the minority.
I agree in theory.
B) bilateral hard fork:
Whatever the ratio of miners picking one or the other protocol, two independent chains emerge, all users get "double coins" and if exchanges allow so (list both chains), users can vote with their money ; miner revenue vs difficulty will be such, that the hash rate will adapt to the market valuations of both chains. Bitcoin has an extra problem here for the minority chain, which is the slow difficulty adjustment, making the minority chain grow very slowly.
In this case, there's no forcing minorities: each has its own chain. The market votes.
I disagree. In this situation, influences outside of consensus and the markets will
come into play. There are malicious and idealistic parties who are waiting for this
opportunity. For example, malicious actors will Ddos and attack the miners and
exchanges on either chains in order to influence the markets. What the users may
actually want, can be perverted and prevented by allowing "the markets" to decide.
All markets are manipulated and will be manipulated. Basically, it would not be a fair
vote since attackers will come from all corners of the earth. In this case, we can rig it
so the least worthy chain, that the users hate and don't want, can get the most hash
and perceived value. So in this way, I think bilateral hardforks could be more
dangerous than unilateral hardforks.
C) unilateral hard fork:
Only when the forkers have majority, they can split off. If they are minority, they get orphaned because they don't build on each other fast enough. So if the old protocol is majority, they cannot fork away. If the old protocol is minority, they can fork away, but the old protocol can remain as an independent fork. We are then in situation B, but the danger is that if ever the market votes for the old protocol, the new chain will be taken over at a certain point, and be entirely orphaned (even after, say, a month or so) and all transactions in the new coin are gone. Unilateral forks are hence extremely dangerous.
In all of this, non mining nodes count for zilch. But in B and C, USERS in the market count a lot (whether they have a full node or not).
I disagree. Any hardfork is contingent upon both miners and verifying nodes having
high consensus. Non-mining nodes only count for "zilch" when it is a Softfork. Otherwise,
verifying nodes are a complementary consensus structure in all hardfork types.
When you talk about "users" voting and done so through the exchanges, that vote needs
to be determined before any fork occurs, not after. Users voting after the fork has occurred
is backwards and makes no sense. Relying on the markets is an illusion since they can be
manipulated so that it seems the users want one thing, when they are all voting for another.
Satoshi created Bitcoin because these market systems are manipulatible. We can not now
fall back on these flawed systems to determine the future of Bitcoin that rejected those
old ways. It is contradictory IMO.