Energy Efficiency in Blockchains
Supervisor: Claudio Sacerdoti Coen
University of Bologna, Italy
Objectives
The DC will study how to make algorithms used in blockchains reversible or partially reversible. He/she will first focus on one or more blockchains (e.g. Bitcoin and Ethereum) and their implementations to identify the parts of the code that are more responsible for energy consumption unrelated to packet transmission in a few scenarios (proof-of-work vs proof-of-stake, chain validation vs mining). More likely, one such part will be the implementation of the SHA-256 algorithm used at the base of the proof-of-work algorithm of Bitcoin. Then, the DC will try to rephrase those parts as partially reversible algorithms exploiting existing reversible programming languages such as Janus, RFun or Joule, but the DC will then interact with DC1 to exploit languages developed by the latter. It will also interact with DC4 and DC6 to exploit advances in reversible and partially reversible algorithms. Finally, the DC will focus on decentralised applications (DAPPS), also called smart contracts. DAPPS are usually written in high-level, resource aware languages that are later compiled into bytecodes that are interpreted by the nodes of the blockchain during chain validation and mining. All these languages allow rollbacks to abort computations for various reasons and restore the initial state. The natural research question here is to which extent the high-level and the bytecode languages can be made reversible, and whether a reversible interpreter for them can benefit from their reversibility, e.g. during rollback, ultimately also mitigating energy consumption.
Expected Results
1) Identification of energy-critical algorithms and their implementation in standard blockchains, including SHA-256; 2) A reversible or partially reversible implementation of SHA-256 algorithm; 3) A proposal for reversible bytecode and high-level languages for distributed applications, together with reversible compilers and interpreters.
Planned Secondments
M19, AGH, I. Ulidowski, reversible algorithms; M33, UNICA, M. Bartoletti, reversibility in smart contracts; M38, UCPH, R. Glück, smart code compilation.