IEEE Access (Jan 2022)
Efficient Generation of Program Execution Hash
Abstract
Distributed computing systems often require verifiable computing techniques in case their node is untrusted. To verify a node’s computation result, proof-of-work (PoW) is often utilized as a basis of verifiable computing method; however, this mechanism is only valid for computations producing results based on specific algorithm (e.g., AES decryption). To date, there is no efficient PoW mechanism applicable to arbitrary algorithm or a computation that does not produce any tangible output (e.g., void function). This paper proposes execution hash to serve as a proof for a program’s idempotent computation result without relying on its algorithm. Two versions of execution hash generation methods were designed and implemented and the efficacy was evaluated in terms of performance and reliability. Implementation was based on LLVM/Clang 6.0 and evaluation was based on open-source software, including GNU binutils/coreutils and Google’s OSSFuzz projects.
Keywords