Equihash
   HOME

TheInfoList



OR:

Equihash is a memory-hard
Proof-of-work Proof of work (PoW) is a form of cryptographic proof in which one party (the ''prover'') proves to others (the ''verifiers'') that a certain amount of a specific computational effort has been expended. Verifiers can subsequently confirm this expe ...
algorithm introduced by the
University of Luxembourg The University of Luxembourg (French: ''Université du Luxembourg''; German: ''Universität Luxemburg''; Luxembourgish: ''Universitéit Lëtzebuerg'') is a public research university in Luxembourg. History The University of Luxembourg was found ...
's Interdisciplinary Centre for Security, Reliability and Trust (SnT) at the 2016 Network and Distributed System Security Symposium. The algorithm is based on a generalization of the
Birthday problem In probability theory, the birthday problem asks for the probability that, in a set of randomly chosen people, at least two will share a birthday. The birthday paradox is that, counterintuitively, the probability of a shared birthday exceeds 5 ...
which finds colliding hash values. It has severe time-space trade-offs but concedes vulnerability to unforeseen parallel optimizations. It was designed such that parallel implementations are bottle-necked by memory bandwidth in an attempt to worsen the cost-performance trade-offs of designing custom
ASIC An application-specific integrated circuit (ASIC ) is an integrated circuit (IC) chip customized for a particular use, rather than intended for general-purpose use, such as a chip designed to run in a digital voice recorder or a high-efficie ...
implementations. ASIC resistance in Equihash is based on the assumption that commercially-sold hardware already has quite high memory bandwidth, so improvements made by custom hardware may not be worth the development cost.


General

Equihash was proposed by
Alex Biryukov Alex Biryukov is a cryptographer, currently a full professor at the University of Luxembourg. His notable work includes the design of the stream cipher LEX, as well as the cryptanalysis of numerous cryptographic primitives. In 1998, he develop ...
and
Dmitry Khovratovich Dmitry Khovratovich is a Cryptography, cryptographer, currently a Lead Cryptographer for the Dusk Network, researcher for the Ethereum Foundation, and member of the International Association for Cryptologic Research. He developed, together with ...
as part of the University of Luxembourg research group CryptoLUX. It was introduced at the Network and Distributed System Security Symposium 2016 in
San Diego San Diego ( , ; ) is a city on the Pacific Ocean coast of Southern California located immediately adjacent to the Mexico–United States border. With a 2020 population of 1,386,932, it is the eighth most populous city in the United States ...
. Notable
blockchain A blockchain is a type of distributed ledger technology (DLT) that consists of growing lists of records, called ''blocks'', that are securely linked together using cryptography. Each block contains a cryptographic hash of the previous block, ...
-based projects such as ZCash, BitcoinZ, Horizen, Aion, Hush, and Pirate Chain have integrated Equihash for reasons such as security, privacy, and ASIC miner resistance. The manufacturer
Bitmain Bitmain Technologies Ltd., is a privately owned company headquartered in Beijing, China, that designs application-specific integrated circuit (ASIC) chips for bitcoin mining. History It was founded by Micree Zhan and Jihan Wu in 2013. Prior ...
has succeeded in optimizing the processing of Zcash's Equihash-200,9 with an ASIC.


Specification

Equihash has three parameters – n, k, and d – which determine the algorithm's time and memory requirements. The time complexity is proportional to 2^while the memory complexity is proportional to 2^. The algorithm is often implemented with d = 0 (using an alternative method of controlling the effective difficulty). The problem in Equihash is to find distinct, n-bit values i_1, i_2, ..., i_ to satisfy H(i_1) \oplus H(i_2) \, \oplus \, ... \, \oplus \, H(i_) = 0 such that H(i_1 \parallel i_2 \parallel \, ... \, \parallel i_ ) has d leading zeros, where H is a chosen
hash function A hash function is any function that can be used to map data of arbitrary size to fixed-size values. The values returned by a hash function are called ''hash values'', ''hash codes'', ''digests'', or simply ''hashes''. The values are usually ...
. In addition, there are "algorithm binding conditions" which are intended to reduce the risk of other algorithms developed to solve the underlying birthday problem being applicable. A memory-less verification requires 2^khashes and XORs.


Memory-hardness and time-space tradeoffs

It is proposed that the puzzle in Equihash be solved by a variation of Wagner's algorithm for the generalized birthday problem. (Note that the underlying problem is not exactly the Generalized Birthday Problem as defined by Wagner, since it uses a single list rather than multiple lists.) The proposed algorithm makes k iterations over a large list. For every factor of \frac fewer entries per list, computational complexity of the algorithm scales proportional to q^ for memory-efficient implementations. Alcock and Ren refute Equihash’s security claims, concluding that no tradeoff-resistance bound is in fact known for Equihash.


Usage

The cryptocurrency Zcash implements Equihash with n=200 and k=9. The cryptocurrency BitcoinGold implements Equihash with n=144 and k=5.


See also

*
Proof of stake Proof-of-stake (PoS) protocols are a class of consensus mechanisms for blockchains that work by selecting validators in proportion to their quantity of holdings in the associated cryptocurrency. This is done to avoid the computational cost of ...


References

{{Cryptocurrencies Cryptocurrencies Cryptographic algorithms