Optimizing the energy consumption of blockchain-based systems using evolutionary algorithms: a new problem formulation

Akram Alofi, Mahmoud A. Bokhari, Rami Bahsoon, Robert Hendley

Research output: Contribution to journalArticlepeer-review

294 Downloads (Pure)


Blockchain technology has become important in numerous industrial, financial and technological domains as a potential means of creating secure peer-to-peer systems for transactions. A core component of blockchain technology is a consensus algorithm, most commonly Proof-of-Work (PoW). PoW is used to establish trust among peers; however, it does require the expenditure of an enormous amount of energy. Energy minimisation, whilst ensuring trust within blockchain-based systems using PoW, is a challenging problem. In this paper, we represent the problem as a subset selection problem of miners in blockchain-based systems. We formulate the problem of blockchain energy consumption as an optimisation problem with four conflicting objectives: energy consumption, carbon emission, decentralisation and trust. We propose a model composed of different fitness functions. It can be used to explore the complex search space by selecting a subset of miners that minimises the energy consumption without drastically impacting the primary goals of the blockchain technology (i.e. security/trustworthiness and decentralisation). We integrate our proposed fitness functions into five evolutionary algorithms to solve the problem of blockchain miner selection. Our results show that energy savings can be achieved, but with little degradation in other competing objectives. We also report on the performance of the used algorithms.
Original languageEnglish
JournalIEEE Transactions on Sustainable Computing
Early online date22 Mar 2022
Publication statusE-pub ahead of print - 22 Mar 2022


Dive into the research topics of 'Optimizing the energy consumption of blockchain-based systems using evolutionary algorithms: a new problem formulation'. Together they form a unique fingerprint.

Cite this