Contents:
Had libconsensus being implemented without depending on levelDB, those additional restrictions wouldn't have been part of "the specification". But since the buggy implementation was a super-majority, the solution would have been to instantly from a specific block change the rules to not let the super-majority deviate from the specification and then have another consensus fork to remove them. Two theoretical consensus forks instead of one but the first one deployed practically for free.
The practical result would have been identical and only the definitions change. This means discussing something that went uncontroversially well further is "philosophical bike-shed" TM. If it is in their best interest of miners to softfork it should be assumed that they may likely enforce it. In some cases, even against the will of a super-majority of users. This is practically an attack on the network and the only solution is to carefully design the incentives so that the case is simply impossible.
If that fails, miners should still consider the risk of motivating a schism hardfork before attempting such a consensus fork. A deployment plan for this case is also unnecessary.
Fundamental disagreements and controversies are part of social systems, like the one defined as the human participants in the Bitcoin network. Without judging the motivation of the rule discrepancies or what rules were in place first, we're defining schism[1] hardforks as those in which - for whatever reason - users are consiously going to validate 2 different sets of consensus rules. Since they will validate different rulesets, they will end up following 2 different chains for at least some time, maybe forever.
While 2 chains cohexist, they can be considered two different currencies. We could say that bitcoin becomes bitcoinA and bitcoinB. The implications for market capitalization are completely unpredictable,. Schism hardforks have been compared to one type of altcoins called "spinoffs"[spinoffs] that distribute all or part of its initial seigniorage to bitcoin owners at a given block height.
This is very disruptive and hopefully will never be needed. But if it's needed the best deployment path is just to activate the rule changes after certain block height in the future.
On the other hand, it is healthy decentralization-wise that many independent software projects are ready to deploy a schism hardfork. In all of the following examples there's clearly a confrontation that is being resolved using an intentional consensus hardfork. Imagine ASIC production has been consolidated to a single company and distribution is simply not happening: the company is keeping them to mine itself. Such an untenable centralization could be fixed with great risks by switching the hash function used in the proof of work, effectively "pressing the restart button" on the ASIC market.
The next function should be simple to implement in ASIC as well so that the market can more easily develop as a healthy and competitive one as opposed to what the "ASIC-hard" proponents would want , but that's another story Since in this case the confrontation is clearly against the current miners any notion of "miners' voting" is utterly irrelevant. There's less extreme cases where changing the pow function would not be necessary. For example, let's imagine a bright future where commoditized ASICs are running in millions home-heaters all over the world, but the block size has been completely removed and the network has devolved to a very centralized system where only 2 big pools have the resources to fully validate full blocks and create block templates with competitive levels of transaction fees.
In that case, changing the pow function would be a terrible waste and a risk that could be avoided. A hardfork restoring a block size limit could help fixing this situation. Please don't take it as an argument for or against raising the block size limit: it's just an example. But in this case, again, those 2 big pools would probably be against the fork and, again, their voting is irrelevant. Let's imagine BIP66 had a crypto backdoor that nobody noticed and allows an evil developer cabal to steal everyone's coins.
The users and non-evil developers could join, fork libconsensus and use the forked version in their respective bitcoin implementations. Should miner's "vote" be required to express their consent? What if some miners are part of the cabal? In the unlikely event that most miners are part of such an evil cabal, changing the pow function may be required.
In other cases, mining "vote" doesn't have much value either since this kind of hardfork would not qualify as uncontroversial anyway. What if a single user decides he won't upgrade no matter what and he doesn't even attempt to explain his decision? Obviously, such a user should be just ignored. But what if the circumstances are slightly different? What if they're 2, 10 users? It is possible that we can never have a better definition than "I know it when I see it" [citation needed].
If a majority of miners adopts a softfork, users will follow that chain, even without understanding the new rules.
For them is like if blocks are created in a certain way or certain valid transactions are being rejected by miners for some reason. For old nodes it just looks like the new rules are policy rules rather than consensus rules. This greatly reduces the deployment risks, making softforks the preferred consensus rules upgrade mechanism. There were competing proposals, but BIP12 had clear disadvantage and BIP17 was considered a less tested but functionally equivalent version by most of the reviewers.
Although it was later discovered that BIP16 had unnecessary limitations and BIP17 is now considered superior, this probably still qualified for our vague concept of "uncontroversial". At the time, there was no "mining voting" implementation and it was simply deployed using the timestamp of the blocks at some time in the future as the activation trigger.
This can't guarantee the assumption that most miners have upgraded before enforcing the new rules and that's why the voting mechanism and first used for BIP30 and BIP The current miners' voting mechanism can be modified to allow for changes to be deployed in parallel, the rejection of a concrete softfork without getting locked for the deployment of the next one, and also a more efficient use of the version field in block headers [3].
BIP65 is expected to be deployed with the improved mechanism. Some consensus changes require all participants to upgrade their software before the new rules can be safely activated or they will face serious risk of following the wrong chain and being defrauded. Even if the exact same mechanism used for softforks would be more risky in these cases, that doesn't mean that this type of changes cannot be deployed in an uncontroversial and safe manner. For one, it would mean centralization of the network. The requirement is for the change to not have a chance of splitting the network.
Bitcoin Core contributor Johnson Lau put forward a couple of ideas, both good and bad, to show the tradeoffs of various approaches.
Lau argues the trick is finding a solution that decreases the likelihood of a timewarp attack, while also not risking a split. With this type of criticism still rolling in, it seems to be an ongoing discussion, as Friedenbach continues to argue forward blocks are worth preserving as a tool:. Clock photo by Srikanta H. U srikanta on Unsplash. Time traveling To begin, however, it helps to understand why the attack exists to begin with.
Prev Next. If the difficulty can never be reduced , subjective time is replaced by a value-determination system: Miners vote on how HIGH they want the difficulty to be via the timestamps they assign to the blocks they find. I mistakenly thought mine was immune. If they had not not to enforce a dishonest stamp, attacker would have just needed to send 6 timestamps minutes into the future, blocking all other miners who attempt to use honest timestamps in their templates. Bitcoin Cash could potentially see a time warp style attack occur against it if enough mining pools or even an ASIC manufacturer were to attempt to do so. Related posts More from author.
Luckily, this attack is difficult to execute. Another idea But the problem is that eradicating the time warp attack would ruin forward blocks. But many bitcoin technologists seem unsure that pure forward blocks are worth preserving. Read more about
In simple terms, a. › /05/20 › timewarp-attack-mining-difficulty.