ProgPoW and FPGA: developers’ answer to the risk of centralization

Bitminer Factory
6 min readAug 6, 2018

--

When in 2009 Satoshi Nakamoto invented the Bitcoins, despite his brilliance he couldn’t really imagine how much his creation would have changed the world. He probably couldn’t foresee that his bright invention could be put at risk by the pattern itself he was trying to solve, i.e. the risk of centralization.

The fundamental idea behind the Proof of Work (PoW) method is that a peer-to-peer, or miner, network can coordinate itself without even knowing each other, with the common aim to maintain the blockchain integrity and the whole Bitcoin system. Since anyone can be a miner, including those having bad intentions, Satoshi created a method capable to irrefutably demonstrate the integrity of Bitcoin transactions contained in one block. How was it possible? He invented a such complex algorithm that it took a determined timespan to be solved. The node (or computer) that solves such mathematical problem acquires the right to place the next block on the chain and broadcast it to the whole network.

Why does it work? Because, due to the high number of computers in the network that are guessing numbers, a block is solved on average every 10 minutes. What if the problem is always solved by the same node? This would mean that that single node is able to manipulate transactions.

So how does the system prevent frauds? Each block contains a reference to the previous block, and that reference is part of the mathematical problem that needs to be solved in order to spread the following block to the network. So it’s extremely hard to pre-compute a series of blocks due to the high number of random guesses needed to solve a block and place it on the blockchain. You would need control of 51% of the computing power of the whole network to have a 50% chance to solve a block before some other node does and manipulates transactions. If this happened, the whole blockchain structure and together with it the Bitcoin value itself would collapse.

Until 2013, this fraud was considered very unlikely, but the increasing value of Bitcoins made it worthwhile to create specifically optimized chips, called ASICs (Application Specific Integrated Circuit), that on the one hand entailed huge investments, on the other featured computational speed even ten times higher than the current standards. Unfortunately the Chinese ASICs producers took advantage of this technology, creating huge farms able to control even more than 20% of the world mining capacity. Just put together 2 or 3 of these pools and you will easily reach “that” 50%.

The developers’ answers to the risk of centralization have been producing the most disparate solutions: the Proof of Stake, created by NXT, the dPoS, used by Lisk, NEO and ARK and many other, each featuring pros and cons.

The appearance of ProgPoW

As reply to the centralization attempts by ASICs producers, developers are focusing on algorithms specifically created to provide only a minimum advantage in terms of performance, compared to a GPU or a FPGA. This solution would exclude the economical advantages of ASICs producers and as a consequence it would reduce drastically their incentives to invest in ASICs production. ProgPoW comes from there. It is a Programmable Proof of Work algorithm, dynamic and mutable. ASICs are static for definition, and so useless.

So, why can’t we just think about a future of only GPU technology? The answer is related to their processor’s architecture, much different from the logical structure proper to ASICs or FPGAs.

In binary logic, processors work by reacting to an input of 0s and 1s in specific ways and then returning an output based on the decision. The decision itself happens in a circuit called a logic gate, each of which requires at least one transistor, with the inputs and outputs arranged differently by different operations.

The processor’s logic gates work together to make decisions using logic operators, based on the algebraic system.

In order to make it possible to programme complex calculations, methods to represent more and more complex operations were created, ending up to instruction set architecture of CPUs and GPUs. But this methods has a flaw: each instruction needs to be read, done and its result written somewhere prior to go forward. A process requiring much more time than a logical operation, which is by its definition instantaneous.

When an ASIC is created, we actually factorize the algorithm in binary logical operators, i.e. millions of transistors, that are “printed” on many silicon supports. What we obtain is a chip able to do only one single operation, but much quicker.

If even a minimum component of the algorithm is changed, the whole structure becomes useless.

Nowadays the FPGAs cost have decreased and the altcoins value has increased or is about to, therefore the FPGAs are back in the game to catch their rightful market share.

FPGA: the hardware for ProgPoW

In 1985 Xilinx co-founders Ross Freeman and Bernard Vonderschmitt invented the first commercially viable field-programmable gate array (FPGA).

Our R&D team with a sample FPGA hardware. We are delivering FPGA mining solutions in September 2018

Using a method where logical operators and connections between them were programmed (activated or deactivated) according to how the final circuit needed to be, it was finally possible to combine the incomparable speed of binary logic circuits with the reprogrammability. Nowadays the FPGAs are used in many different applications, from satellites to 5G mobile phones, since they allow to correct bugs and flaws or even to adapt to new protocols.

However, their usage is not recent: in 2012–2013 many Bitcoin miners used small and cheap Xilinx FPGAs called Spartan 6, because ASICs didn’t exist yet and FPGAs’ convenience in comparison to CPUs and GPUs was almost 10 times higher in terms of performance of GH/s. After the appearance of the first ASIC, however, this technology quickly declined because ASICs featured better performances at the same price and altcoins did not exist yet.

Even though they guarantee high performances, FPGA cannot compete in terms of costs per GH/s with ASICs.

Nevertheless, with the increasing importance taken by altcoins in 2018, many miners have been starting to inform themselves about the ability to adapt of various algorithms on the newest FPGAs. These R&D operations were mostly carried out secretly, that’s why they were not known until the beginning of 2019 when the topic bursted into social media and branch forums.

These integrated circuits are so complex that there are only 2 producers in the world: Xilinx and Altera, which in 2015 was bought by Intel. For this reason Chinese producers could hardly take control of FPGA technology (and of GPU one), and as a consequence, their intrinsic risk of centralization is much reduced compared to an ASIC.

It is pretty likely to imagine a future where FPGAs and GPUs will dominate ProgPoW crypto mining world, each one doing what it is optimized for, such as algorithms that make use of RAM memory (GPU) and algorithms that make use of logic (FPGA).

FPGAs can be much more performing than GPUs for some kinds of algorithms, in which the amount of logical operations prevails on memory access. Let’s take into account Keccak, a purely logical algorithm, and also one of the first made publicly available, that on the newest FPGA reaches 20 GH/s, while on one 1080TI GPUs hardly overcomes 1.3 GH/s. The difference is remarkable.

FPGAs usage is not limited to only logical algorithms: for example ethash for Ethereum is utmost the memory-hard algorithm. It is true that thanks to the DAG the central part of it fully exploits the super fast HBM2 of AMD GPUs technology, but for each calculated hash, one Keccak hash is made twice. Therefore the GPU is anything but optimized. Consider if it was possible to delegate the logical part (Keccak) of the hash to one FPGA and the memory part to one GPU: the results obtained would mean a significant performance improvement and would be the long expected cure-all to increase the existing GPU rigs performance.

--

--