Paper 2022/477

Algorithm-Substitution Attacks on Cryptographic Puzzles

Pratyush Ranjan Tiwari and Matthew Green

Abstract

In this work we study and formalize security notions for algorithm substitution attacks (ASAs) on cryptographic puzzles. Puzzles are difficult problems that require an investment of computation, memory or some other related resource. They are heavily used as a building block for the consensus networks used by cryptocurrencies, where they include primitives such as proof-of-work, proof-of-space, and verifiable delay functions (VDFs). Due to economies of scale, these networks increasingly rely on a small number of companies to construct opaque hardware or software (e.g., GPU or FPGA images): this dependency raises concerns about cryptographic subversion. Unlike the algorithms considered by previous ASAs, cryptographic puzzles do not rely on secret keys and thus enable a very different set of attacks. We first explore the threat model for these systems and then propose concrete attacks that (1) selectively reduce a victim's solving capability (e.g., hashrate) and (2) exfiltrate puzzle solutions to an attacker. We then propose defenses, several of which can be applied to existing cryptocurrency hardware with minimal changes. Given that these attacks are relevant to all proof of work cryptocurrencies that have a combined market capitalization around a $1 trillion USD (March, 2022), we recommend that all vulnerable mining protocols consider making the suggested adaptations today.

Metadata
Available format(s)
PDF
Category
Applications
Publication info
Preprint. Minor revision.
Keywords
algorithm-substitution attackproof of workverifiable delay functionproof of space
Contact author(s)
pratyush @ cs jhu edu
mgreen @ cs jhu edu
History
2022-04-23: received
Short URL
https://ia.cr/2022/477
License
Creative Commons Attribution
CC BY

BibTeX

@misc{cryptoeprint:2022/477,
      author = {Pratyush Ranjan Tiwari and Matthew Green},
      title = {Algorithm-Substitution Attacks on Cryptographic Puzzles},
      howpublished = {Cryptology ePrint Archive, Paper 2022/477},
      year = {2022},
      note = {\url{https://eprint.iacr.org/2022/477}},
      url = {https://eprint.iacr.org/2022/477}
}
Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.