Voting transactions

A new type of governance for the bitcoin protocol

Most markets get steered by the demand of the customers; if enough people want to do business with certain types of companies, the market will adapt. The bitcoin mining industry processing transactions in exchange for transaction fees. However, bitcoin users cannot choose which miner’s can process their transactions. As a result, the mining industry is not formed after the ideals of their customers, like; having a decentralized mining industry and using green energy.

In this article, I will describe a method by which the sender of a bitcoin transaction can choose which miner’s can earn their transaction fees so that miner’s are rewarded and punished for their behavior.

How do voting transactions work?

We will call transactions that support specific miner’s voting transactions. Normal bitcoin transactions are broadcasted over the network for every miner to confirm, voting transactions should be send directly to the subset of miners the sender wants to vote for. The transaction will be sent directly to the miner’s and mining pools that the sender wants to support. The first miner to confirm the transaction will receive the transaction fee. The other nodes in the network don’t know about this transaction until it is included in a block.

Make bitcoin more decentralized, one transaction at a time.

What to vote?

Voting transactions are a method for bitcoin users to enforce change.

Support small pools

Many people see the centralization of the bitcoin mining industry as a threat to bitcoin, currently (November 2015) the 3 biggest mining pools own more than 51% of the network. Assuming that miners maximize their profit: miners will only switch to a small pool if it is more profitable over a bigger pool. Currently, there is no big difference in profit between mining for small pools vs mining for big pools. This implies that a little extra income from fees could make miners switch to smaller pools.

Other causes you could support

Support pools that use green energy

Support pools outside of China

Support mining pools voting for a specific implementations of bitcoin

Support pools that run up-to-date software

Boycott miners that behave badly

Can these tiny fees really change the miners behavior?

For this to work, transaction fees should be significant enough for miners to care. Last month the average transaction fee per block was 0.2 BTC, about 0.8% of the miners revenue. This might be low now, but it is growing exponentially, a year ago it was only 0.4% of revenue. Gavin Andresen and Gregory Maxwell agree with each other on one thing: bitcoin transaction fees will rise. Then there are the upcoming block reward halving and growing number of transaction: I expect this transaction fees to be around 3-4% of the miners revenue by November next year.

Miners will changes if the cost of change will be covered by extra income from supporting transactions. In the examples above, like keeping software up-to-date and moving to smaller pools. The cost of change is very low and a small group of users could make changing a profitable decision.

Implementation without permission

This section contains some technical remarks on how you could possibly set up a miner that allows voting transactions. Feel free to skip this section.

Miners that want to receive supporting transactions, should run a bitcoin node that does not relay any transactions.

To mitigate the risk of double spending public transactions, miners should always prefer public transactions over private transactions.

Wallets that support supporting transactions, will have an option in the preferences that asks which miners they want to support. Users can support multiple groups to get their transactions confirmed faster.

This implementation doesn’t require any kind of fork, if a miner updates their bitcoin node software and users decide to support this miner, this can be done without any changes to the bitcoin network.

Bitcoin is about giving power back to the people

Conclusion

Voting transactions is a concept that enforces miners adapt to the demands of users. The implementation is relatively simple and doesn’t require any permission or fork. There is more research needed (and probably some experiments) to learn if voting transactions are indeed a viable governance model.

Thanks for reading, let me know what you think.