What is behind Enecuum’s Proof-of-Work? And why we have selected RandomX by Monero

The current refinement of the Enecuum mining is primarily driven by the discussions of the project’s community, which significantly assists in evaluating the protocols in our TestNet.
Generally, the Enecuum mining concept is an intelligent combination of existing approaches, namely: Proof-of-Work (PoW), Proof-of-Stake (PoS), and Proof-of-Activity (PoA). Each element of the system has its own functionality, namely: PoW generates blocks, PoS is responsible for the distribution of blocks between PoA nodes, and, finally, PoA is responsible for adding a block to the chain by a group of smartphones. Rewards are distributed among the nodes in different ways.
Undoubtedly, the execution of PoA on mobile devices consumes some energy. Still, it is insignificant in comparison with analogs on mobile PoW. Our previous research on power consumption provides an overview of such measurements executed on different smartphones. It compares our algorithm with other mining systems. Since we have already examined the operation of PoA, this post aims to answer the question of many Enecuum users:
“What will be the PoW algorithm in Enecuum, and why?”
Indeed, the question of the algorithm selection was repeatedly raised by both the technical team and the community during the project life.
The problem of SHA-256
Today, Enecuum is on the verge of transition from a test network to a permanent one. While the community was waiting, the team invited early adopters to be the first to test PoW on a standalone BIT network. Thus, BIT token and its personal network with the SHA-256 algorithm temporarily appeared for PoW testing purposes. According to the test results, SHA-256 is suitable for the project from a technical perspective. However, ASIC mining of this hashing function was proven to be too efficient, which has both pros and cons.
One of the ultimate goals of Enecuum is to fulfill the fairness criteria for PoW nodes placing all mining approaches competitive. After a lot of coffee and discussions, the team decided to check another algorithm in the BIT network. We have selected RandomX introduced by Monero. Note, integrating RandomX is not fully approved, but it has several features distinguishing it from other PoW algorithms.
ASICs-ASICs-ASICs
One of the most critical problems of existing PoW mining systems is the possibility of a powerful player to join the computational puzzle solution race. Such possible superiority happened to Bitcoin and many other projects when mining farms stepped in.
Interestingly, Monero was also based on the CryptoNight algorithm developed purely for CPUs and also got under the ASICs’ pressure.
We are not expecting Enecuum users’ personal equipment to be specifically designed to mine tokens but most probably to have an average CPU and GPU. In case miners would step in, new users would require significant investments to join the system, which is not Enecuum’s goal.
Nonetheless, let us recall the roots of blockchain, which was designed as a system operating in a purely decentralized way. Well, ASICs mostly encourage the main enemy of the crypto space — centralization. ASIC farms are produced by a particular group of enterprises leading to a scenario where one or two companies can get a monopoly on most of the blockchain hash rate. But it is more profitable to sell their devices, at least for now. Still, keep in mind the possibility of a 51% attack.
Enecuum team does not support the idea of switching their system to a centralized operation, which was the main reason for leaving SHA-256 behind.
Alternative solutions
In the very beginning, BIT was planned to be built on the EquiHash algorithm, which is also resistant to mining farms. However, it has a significant drawback in terms of the hashing process.
We have set a requirement that changes in hashed data (microblocks) should not affect the hashing rate. While for EquiHash, adding new microblock to the data to be hashed eliminates all of the previous work. That was the reason why EquiHash was not selected for Enecuum. Our system is designed in such a way that PoW has economic motivation of adding new microblocks to the hashing data but loosing previous work makes a dilemma of what gives more profit: less reward and higher chance to mine a block or more reward adding more microblocks but risk to receive zero reward being unable to publish new block in time. Long story short, EquiHash gives PoW a motive to put economic concern above maintaining the network itself.
In the case of RandomX, the hash function is random, unlike EquiHash, therefore, the speed of finding the hash does not change the average hashing rate.
So, why RandomX?
RandomX still prefers CPU mining. Initially, the GPU mining in Monero was not supported at all, however, after a series of independent audits (most of which were funded by Monero users themselves) developers made several key algorithm updates, and GPU mining became possible, and the hashing rate is currently comparable to the previous CryptoNight algorithm.
In summary, on the one hand, RandomX provides fairness to users due to the random selection of a hashing function and, on the other hand, reduces the desire to switch to ASICs because it does not affect profitability. Technically speaking, the algorithm uses the same virtual machine with a particular set of instructions. Any executable code is converted to native code on the go, and executed programs are consolidated into a 256-bit result using the Blake2b cryptographic hashing function.
In this way, Enecuum aims to increase equity between all PoW participants in the system. RandomX’s current choice has several modes of operation. It also reopens the opportunity for personal computers with conventional CPUs and GPUs to act as miners.