Bitcoin works best when markets decide how Bitcoin evolves, not a small group of individuals (miners, developers, merchants, etc). Right now, the only way for the vast number of spenders and HODLers (i.e. the people who give Bitcoin value) to influence the network with their desires is via posts on forums that have very little influence on the actual behavior of the Bitcoin network. Every user of Bitcoin should have influence over what Bitcoin is.
With that in mind, I'd like to propose a feature that allows Bitcoin users to pay/influence miners only if they signal support for a particular feature (i.e. version bit). This would be a normal bitcoin transaction - it spends inputs to outputs and sets the miner fee to a high enough value to be included in a block (no change here). The only difference is that the transaction is only valid if a specific version bit is enabled. This will encourage miners to enable a specific feature while at the same time, there is a real cost for the transaction creator trying influence miners.
Let's say Alice is interested in a potentially controversial feature, feature Alpha. Alice writes a command line script that creates a new transaction every day with $0.10 in miner fees only if Alpha is enabled and publishes the transaction to the Bitcoin network.
Alice notices no miners have created a block with Alpha enabled so her transaction remains unspent. Since this feature is really important to Alice, Alice decides to increase the miner fee to $10.00 on the transaction. Miners see a transaction with a very large fee - so they decide to create a block with Alpha enabled to collect her fee. This does not enable feature Alpha, it only shows a small amount of miner support for feature Alpha.
Alice publishes her command line script to a popular forum and more like minded users begin to run Alice's script with whatever fee they feel is appropriate to similarly influence the miners. In fact, so many users are now using Alice's script that almost enough Alpha enabled blocks are being created by miners to enable feature Alpha.
But Bob has the opposing view - he strongly believes feature Alpha should not be enabled. Bob sees that the network is about to enable Alpha, so he makes and shares his own script that creates transactions that are only valid if the version bit is disabled.
It is then up to those users that care about Alpha to compete by giving higher fees to miners to influence the blocks miners create.
Miners are economically encouraged to behave neutrally and create whatever block gives the highest total transaction fees. The miners will be aware that even if they hold a specific opinion on Alpha, it makes the most sense for them economically to create a block that has the greatest total miner fee. If they don't behave this way, a competing miner that chooses the largest total fees will have an economic advantage by getting larger transaction fees.
Is it possible to add a new OP code to support such a feature? Is it possible via soft fork? Is there anything else that needs to be implemented before such a feature would work? And most importantly, would it work?
With that in mind, I'd like to propose a feature that allows Bitcoin users to pay/influence miners only if they signal support for a particular feature (i.e. version bit). This would be a normal bitcoin transaction - it spends inputs to outputs and sets the miner fee to a high enough value to be included in a block (no change here). The only difference is that the transaction is only valid if a specific version bit is enabled. This will encourage miners to enable a specific feature while at the same time, there is a real cost for the transaction creator trying influence miners.
Let's say Alice is interested in a potentially controversial feature, feature Alpha. Alice writes a command line script that creates a new transaction every day with $0.10 in miner fees only if Alpha is enabled and publishes the transaction to the Bitcoin network.
Alice notices no miners have created a block with Alpha enabled so her transaction remains unspent. Since this feature is really important to Alice, Alice decides to increase the miner fee to $10.00 on the transaction. Miners see a transaction with a very large fee - so they decide to create a block with Alpha enabled to collect her fee. This does not enable feature Alpha, it only shows a small amount of miner support for feature Alpha.
Alice publishes her command line script to a popular forum and more like minded users begin to run Alice's script with whatever fee they feel is appropriate to similarly influence the miners. In fact, so many users are now using Alice's script that almost enough Alpha enabled blocks are being created by miners to enable feature Alpha.
But Bob has the opposing view - he strongly believes feature Alpha should not be enabled. Bob sees that the network is about to enable Alpha, so he makes and shares his own script that creates transactions that are only valid if the version bit is disabled.
It is then up to those users that care about Alpha to compete by giving higher fees to miners to influence the blocks miners create.
Miners are economically encouraged to behave neutrally and create whatever block gives the highest total transaction fees. The miners will be aware that even if they hold a specific opinion on Alpha, it makes the most sense for them economically to create a block that has the greatest total miner fee. If they don't behave this way, a competing miner that chooses the largest total fees will have an economic advantage by getting larger transaction fees.
Is it possible to add a new OP code to support such a feature? Is it possible via soft fork? Is there anything else that needs to be implemented before such a feature would work? And most importantly, would it work?