How can a miner know from which two (or more) BIPs they can choose when they are about to vote? Is there a list of currently active BIPs for voting?


This question is based on a misconception. Miners do not vote on proposals. Consensus changes to Bitcoin are made by the entire ecosystem transitioning to new rules that they choose, by running node software that enforces these rules.

Miners are a part of that ecosystem, and their enforcing of new rules is part of what makes them safe. But if miners refuse to adopt a rule change that the rest of the ecosystem demands, they have no choice. If a rule is implemented and enforced by the network's full nodes, then miners who produce blocks that do not follow those rules will simply be ignored.

Everything works better however, if miners and the rest of the ecosystem do not diverge on what rules they're demanding and enforcing. For that purpose, several past backward-compatible consensus changes ("softforks"), have used a mechanism where miners can signal that they're ready to enforce a particular rule, and once a certain threshold is reached, all of them (including non-miners) start enforcing those rules in lockstep.

So in reality, such a signalling mechanism is for coordination, not for voting. Proposals may go through even without miners' consent, but it's better for everyone if things are synchronized.

Previous softforks that have employed such a coordination mechanism are:

  • BIP34 Height in coinbase (2012)
  • BIP66 Strict DER signatures (2015)
  • BIP68/112/113 OP_CHECKSEQUENCEVERIFY and associated relative locktime semantics (2016)
  • BIP141/BIP143/144 Segregated witness (2016)
  • BIP147 Dealing with dummy stack element malleability (packaged together with BIP141/BIP143/BIP144) (2016)
  • BIP91 Reduced threshold Segwit MASF (2017)

The specific rules used by each of these differ (see my answer here for details). Some used a simple threshold of 750 or 950 blocks over the past 1000; some used BIP9.

Earlier softforks (BIP16, BIP30) were coordinated at the human layer. BIP16 did use signalling in blocks as well, but only to inform changes made to the software. The actual activation was time based (as soon as enough support was signalled, node software was modified to start enforcing new rules after a certain date). As BIP16 did have a competing proposal (BIP17), it was easy to misinterpret support for one or the other as a vote. Perhaps that is where the misconception originates.

Right now (as of July 2020), there are no unactivated consensus changes implemented in node software, so there is nothing to signal for, though there are discussions about the activation mechanism to use for BIP340/341/341 (Taproot).

Disclaimer: I am a (co-)author of some of the BIP documents listed in this answer (BIP30, BIP66, BIP141/143/144, BIP340/341/342).

  • Thank you a lot for your answer! – ddavi031 Jul 17 '20 at 10:37
  • 1
    But this part "the rest of the ecosystem demands" got me confused. Who is demanding the change? When BIP needs considering, who considers it? Who is the one that says: This BIPX is good, and this BIPY is bad? Is that the group of programmers who are currently controlling bitcoin github? Doesn't system that way seems a bit centralized? If you think I should move this to a new question, please tell me, but I commented because this questions are based on your answer. – ddavi031 Jul 17 '20 at 11:10
  • 1
    @ddavi031 Well, that's venturing into politics. But I wouldn't confuse coordination with centralization. Just because some developers (myself included) release software that includes a certain change does not imply people will run it. For example, Bitcoin Core only implemented BIP141/143/144, which miners weren't really signalling for. Other people proposed BIP148 and BIP91 to get it to activate, which were never included in Bitcoin Core, and yet many started running software that did - and miners followed. – Pieter Wuille Jul 17 '20 at 16:21
  • Thank you a lot for your answer Pieter! I wish you a lot of luck in your future work! – ddavi031 Jul 25 '20 at 17:15

People wishing to submit BIPs, first should propose their idea or document to the bitcoin-dev@lists.linuxfoundation.org mailing list. After discussion it will be published Here

  • So miner can now, at this very moment , mine a block and vote for some of the BIPs from this list? – ddavi031 Jul 16 '20 at 20:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.