The algorithms are creative.
At least, this is according to Howard Chu, a developer of monoprograms who has devoted his time to protecting cryptography from specialized mining hardware, called ASIC, built by a multibillion-dollar mining industry. And recently, Chu has found a solution to permanently keep the ASICs out of the network – a job testing algorithm that calls RandomJS that exploits the fact that hardware can not "multiple things at once".
Perhaps the most interesting thing about his algorithm is that he could only stumble on innovation because of his hobby of traditional Irish violin games.
From his hometown in Donegal, one of Ireland's most rural and richest corners of music, Chu told CoinDesk, the algorithm was created with the same imagination he draws from his musical practice.
According to him, music and code are deeply connected at the neurological level, and require that the logical and creative sides of the brain function simultaneously. As a result, Chu said that there is a frequent overlap between programming and musical talent – one that has exploited for the algorithm.
"Music is very mathematical, the basis of music is mathematics, but at the same time there is creativity," he told CoinDesk.
And with that, Chu has created an algorithm that uses randomly generated code.
Because ASICs can only be designed to work on an algorithm, the use of randomly generated code in an algorithm would make ASIC rapidly incompatible and, as such, unprofitable. In this way, many developers think that ASIC producers are simply freeing themselves from hardware development for cryptocurrency projects that frequently change their algorithm.
Leading this interest in the ASIC block code is the mining giant, the Bitmain incursion into the cryptocurrency communities outside of bitcoin in the last year. More specifically for Chu, Bitmain released the Anthemer X3 ASIC in March that was scheduled to run the test algorithm of the underlying work of monero, cryptonight.
Shortly thereafter the monero developers triggered what became known as the "crypto war on miners", promoting an emergency software update in April to change the cryptocurrency algorithm so that Antminer X3 would be useless on the protocol.
Since then, Monero developers have made regular changes to the software to remove any re-emerging hardware.
But due to the risk that the small software modified by Monero has committed itself to not being sufficient to dissuade long-term hardware manufacturers, Chu has built RandomJS as a more sustainable solution for cryptocurrency.
Speaking of the algorithm, Chu said:
"RandomJS is coming to the problem from one direction that no one else is".
A widely respected programmer, Chu is the senior architect of the OpenLDAP project, which has created an open source database layer that underlies much of the telecommunications industry.
And he worked on Monero since 2015.
According to Chu, RandomJS is linked to his musical practice by virtue of his new approach.
While ASIC hardware manufacturers analyze the software and build optimized hardware to run for a particular algorithm, RandomJS takes the opposite approach, analyzing the functions of the CPU hardware – the type that underlies most of the consumer laptops – and building outward from there.
Chu described the challenge as a balance between two functions of a work trial protocol – the time it takes to calculate an algorithm and the rate at which it is checked.
For example, while SHA 256 (the work-proof algorithm that underlies bitcoin) is simple to verify, according to Chu, it's basically "too easy" to compute, which means it's trivial to build hardware around it.
"The cryptographic hash is really great to prove something is genuine, but it's horrible as a unit of work because it's too easy," Chu told CoinDesk. "It is very simple to embed SHA 256 into a chip and clone thousands of these computing units."
As such, RandomJS makes the processing process more complex, trying to use the functionality of the CPU in a more holistic way, using blockchain data as input to generate random code.
"We take an input, which is the hash of the previous block, and we use it as a seed for a pseudo-random number generator," Chu explained.
However, the algorithm itself is evaluated by the monero core team and, according to Chu, there are a number of things that could delay their adoption. For one, it may not currently work on the general purpose, or GPU, hardware that includes most of Monero's mining infrastructure.
So there's still a lot of work to do.
A musical mind
That said, Chu's algorithm is perhaps one of the most unique, if not artistic, techniques to block ASICs.
Some might even say, with the code that always changes, it's a high-energy approach – one that fits why Chu, originally from Los Angeles, has arrived in the northwest of Donegal in the first place.
He was led to the rugged coastline due to his passion for traditional Irish music.
But even in Donegal, he found the landscape reflected in local music.
"The style of the Donegal violin is quite energetic, sharp and punctuated, and the first time I was on Malin Head and I looked at the coast and the waves crashing on the rocks, I was like, ah, this is that" energy, "Chu told CoinDesk.
As such, Chu plans to create a programming school in Donegal, where there are also music lessons as part of the curriculum.
"This will give flexibility and training and a different way of thinking about things," he said.
According to the developer, computer education often trains students to think logically, which does not prepare them for the real world that requires developers to creatively tackle new problems.
Speaking of his interest in mixing music and programming, Chu concluded:
"You can not do it without creativity, and if you have not been trained to use the creative part of your mind, then you will be in trouble."
Photo by Howard Chu courtesy of Joseph Lopez