Matt Corallo, one of the developers from the Bitcoin Core development team, made a proposal for improving the Bitcoin blockchain network by focusing on the independence of the mining nodes from the mining pools. Corallo published his proposal called BetterHash Mining Protocol(s) using the mailing list of the Bitcoin Core team. Corallo says: “We propose two new mining protocols to rethink the way in which work is generated in the Bitcoin network, potentially drastically increasing effective mining decentralization.”
According to the GitHub document related to the proposal, the goal is to help with the decentralization of the mining through implementing two proposals: the change of the getblocktemplate function that allows the selection of the blocks to work on behalf of the pools. The second proposal is related to the overcoming of Stratum, the currently used mining protocol, which is used for all the communication between the miners and the pools.
These two protocols generate a high dependency of the miners from the mining pools that participate in mining operations. With the changes proposed by Corallo, he expects to reduce the work assigned to the pools by allowing the mining nods to select the working blocks the would like to confirm, as well as managing the payments per found blocks and to reduce the load on the Stratum servers, which in turn would allow a more secure communication between the nodes and the pools. With these effects in mind, Corallo plans on reducing the influence of the large mining pools on the mining in the Bitcoin blockchain network. This is what Corallo says about the problems related to the Stratum protocol: “The Bitcoin mining landscape has many pressures that encourage centralization. One of the vectors by which these pressures are sustained is through the most widely deployed mining protocol: Stratum. Difficult to implement and poorly documented, the design of the Stratum protocol requires pool operators to build and distribute block templates to their clients. Without a diverse body of miners constructing block templates, the network’s censorship resistance is jeopardized (e.g. pool operators may use their position of power to restrict the flow of protocol upgrades). The cause for concern around these centralizing forces are further exacerbated by the lack of a cryptographically authenticated connection between the server and client, a vector for temporal attacks (e.g. MiTM) that allow malicious parties to silently gain control of hashpower until the pool operator and/or other miners intervene.
While entirely replacing the Stratum protocol may not have been strictly necessary to achieve the stated goals, the required architectural changes presented an opportunity to fix many of Stratum’s long-standing issues. In this context a wholesale protocol rewrite seemed more advantageous than an additional Stratum extension.”
The Stratum protocol is used since 2012 and it is one of the main elements for the functioning of the group mining (mining in pools). Despite its success and popularity, this protocol was not introduced using a bitcoin improvement proposal (BIP). Moreover, the protocol was constantly criticized because its development was private and without being authenticated by the developers from the Bitcoin community.
Stratum requires the operators of the mining pools to construct their block templates using determines specifications per getblocktemplate that, according to Corallo, compromise the wellbeing of the decentralization of the Bitcoin blockchain network. Because of this, in order to achieve the goals proposed by Corallo, he suggests to leave behind both of the aforementioned protocols and rewrite them, with the goal of giving the option to the mining pools to allow the users to work with blocks that use other protocol. This would allow them to receive the reward per block in a pool and work on the construction of another block in another one.
Among the arguments that motivated the proposal presented by Corallo, he affirms that the implementation of Stratum requires that each miner is pointed towards a shared Stratum server, which results in flooding of individual connections to the servers and makes the network connectivity slower and also compromises the operation of a large number of operators on each server. All this provides space for a vulnerability represented in a possible interference of the data transmitted by a third party, due to the low level of cryptography this data possesses.
On the other hand, the BetterHash protocol proposed by the Bitcoin Core developer plans on introducing the separation of the channels that conduct the work information and payment information of the mining pools, with the goal of creating the capacity for the participants in the group to create their own block templates without affecting their execution or reward for their processing. Corallo says in his proposal: “The segregation of these functions provide pool participants with the ability to construct block templates with transactions they (or another pool of their choice) have selected while the pool oversees the distribution of payouts. Prior to this proposal, miners wishing to build their own templates would have to solo mine or join p2pool, both of which have high payout variance. With BetterHash, miners can both lower their payout variance and build their own block templates.”
The main goal is to decentralized the mining operations without losing their efficiency.
The proposal created and published by Matt Corallo is one of the new initiatives whose goal is to tackle the widely criticized centralization of the mining operations in the Bitcoin blockchain network. Some developers from the Bitcoin community believe this is one of the biggest weaknesses of the Bitcoin network, since it could be prone to various types of attacks, especially if a groups of miners decides to behave maliciously. Despite all this, the Bitcoin mining keeps growing and more and more participants are joining, as we have seen in the cases of GMO, a corporation from Japan and the South Korean tech giant Samsung.