Skip to content
The Bitcoin Mining Parliament
Branch: master
Clone or download
Latest commit 69619c5 Aug 18, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
__maximum_simplicity BMP 0.2-beta Aug 9, 2019
autoload + Aug 18, 2019
lib + Aug 6, 2019
public + Aug 18, 2019
template Refact Aug 17, 2019
.gitignore + Aug 6, 2019
.htaccess BMP 0.2-beta Aug 9, 2019 + Jun 19, 2019 * Aug 15, 2019
index.php + Jun 22, 2019
scheme.sql + Jul 17, 2019

The Bitcoin Mining Parliament


BMP is a Hashpower Voting System for Bitcoin Global Adoption

  • Hardware-wallet auth.
  • Multi-blockchain SHA-256 merge.
  • Real-time hashpower chat.
  • Nick change.
  • Voting, with multiple points and options.
  • Votes with hashpower.
  • Rectifiable votes (in open votings).
  • 100% verifiable, on-chain, open-source.


Any needed rules and incentives can be enforced with this consensus mechanism.

Last sentence of Bitcoin: A Peer-to-Peer Electronic Cash System by Satoshi Nakamoto (2008-10)

If freedom is the why, Bitcoin is the how.

Tweet by Roger Ver (2015-10-02)

As a new form of executive power, it is likely that in the near future a virtual and transparent Bitcoin Mining Parliament (BMP) will be established. There each participant can have voice and vote in proportion to their percentage of demonstrable exahases per second.

Extract from Miners are the executive power of Bitcoin by Javier González González (2017-10-31)

Currently, the Bitcoin miners estimate consensus with inadequate coordination.

This causes contentious hardforks that divide the blockchain, fracture the community, create confusion and damage adoption. Miners can take responsibility, better than anyone else, for preventing the risk of such events happening again.

In the process of technological development, often crossroads arise with two valid but incompatible solutions in the same blockchain. Therefore, technological development requires decision-making.

The human tendency to become entangled in conflict is a predictable pattern. With multiple development teams competing, confrontation is only a matter of time. To resolve this, miners must assume their executive role.

Moreover, in a technological race, the acceleration vector is a decisive factor that makes the difference. Global adoption will be conquered by the blockchain capable of evolving technologically at a faster rate.

For a successful global adoption to be possible, Bitcoin miners must coordinate effectively.

Extract from The Bitcoin Mining Parliament by Javier González González (2018-06-15)

We need stop the regular hard fork of Bitcoin Cash. We need stable Bitcoin protocol specification, We need multiple implementation. There should not be dev decide but miner vote.

Tweet by Haipo Yang (2018-08-10)

Yes, miners decide. It’s best you take a lead role in talking with devs, companies and users so you make sure you make the right decision. It will also help to sponsor the right teams, after all, you’re the one that’s getting paid for sustaining the ecosystem.

Tweet by Olivier Janssens (2018-08-10)

We need a decision making process for changing and improving the protocol.

Specification by Jihan Wu (2018-08-30)

No matter the outcome, this war will display the power and influence of the hashrate and this would potentially put weight on the importance of hashrate in the ecosystem. This lays the ground of using hashrate as the deciding factor for future Bitcoin splits. BTC, BCH, BSV and other coins which have same consensus algorithm and yet splits will eventually be unified.

Extract from ABC vs BSV Hash War (Part III) by Jiang Zhuoer (2018-11-14)


Talking and voting with hashpower -to discover consensus- in the most secure voting system ever known.

What [version 0.2-beta]

BMP is a voting system, completely on-chain, verifiable, replicable and driven by hashpower. A robust and expandable base system. Merge all Bitcoin SHA-256 hashpower. Expanding the vision of Satoshi Nakamoto whitepaper.

BMP is a LAMP web system connected to a multiple Bitcoin client -via RPC- to read blocks and transactions. Blockchain data is processed with this PHP in three SQL tables: Blocks, Miners and Actions.

Actions are stored in Bitcoin Cash (BCH) because is fast, cheap and stable.

Actions without hashpower are ignored. Miners power (%) changes with each block. Actions power never changes.

Actions are composed in JavaScript and broadcast with Trezor Connect (more hardware wallets in future).

BMP does not store private keys and the database is public information.

More in BMP Protocol and the BMP paper in English, Chinese and Spanish.

Requirements to participate

  1. Your address in a coinbase output in the last 2,016 blocks of BTC, BCH or BSV.
  2. Trezor hardware wallet.

Manual action to participate

  • Standard transaction in BCH.
  • Target address in coinbase VOUT in the last 2016 blocks of BTC, BCH and/or BSV.
  • Target address in TX_PREV VOUT (Any index).
  • Target address in VOUT INDEX=0.
  • OP_RETURN payload in VOUT INDEX=1 according to BMP Protocol (Prefix = 9d).

The BMP facilitates the OP_RETURN hex.

Examples: chat, vote.

Hashpower signaling

  1. power_by_value By default, BMP calculates the hashpower percentage of each output address with the coinbase value. This makes it compatible with all blocks. With P2Pool, even the smallest miner can participate, right now.

  2. power_by_opreturn In order not to interfere with mining operations, there is a second method that allows to signal hashpower quotas in one or more addresses in coinbase OP_RETURN output. This ignores the value and allows the delegation of hashpower with simplicity.

In this way, with simplicity, miners can delegate hashpower in other people to participate.

Requirements to deploy

  1. GNU/Linux
  2. Apache
  3. MariaDB or MySQL SQL database
  4. PHP
  5. Bitcoin BCH client, with -txindex (for actions)
  6. Bitcoin BTC client
  7. Bitcoin BSV client

Tested environment

  • x86_64 NVME
  • GNU/Linux CentOS 7.6
  • PHP 7.3
  • MariaDB 5.5
  • MySQL 5
  • Firefox 67
  • Chrome 74
  • Trezor One
  • Bitcoin ABC 0.19.10
  • Bitcoin Core 0.18.0
  • Bitcoin SV 0.2.1
  • P2Pool

How to deploy

  1. Put the BMP code in the www httpd public directory.
  2. Configure RPC and SQL access by renaming autoload/_password.php.
  3. Wait Bitcoin clients synchronization (BTC, BCH and BSV).
  4. Execute scheme.sql in a new SQL database.
  5. Set a crontab every minute with: curl
  6. Wait BMP synchronization.

Known problems

  • Logo.
  • OP_RETURN size too small because Trezor hardware limits (?).
  • More hardware wallets support.
  • IRC-like classic attacks.
  • Internationalization.
  • 0-conf latency (+5 sec).
  • Absolute power corrupts absolutely.

Javier González González
BMP Architect

You can’t perform that action at this time.