How Does Dogecoin Work?

Based upon the Scrypt algorithm, Dogecoin is derived from the Litecoin cryptocurrency, which is a fork of Bitcoin itself. The Scrypt (pronounced “ess-crypt” (Percival via Twitter, 2016)) algorithm is fundamentally different than the Secure Hashing Algorithm (SHA) used by Bitcoin, in that it is considered to be a “memory-hard” algorithm (Percival, 2009). This means that the Scrypt algorithm derives its keys from large pseudo-random strings that are generated and then kept in memory. By generating strings ahead of time, the computational requirements of each key is reduced, but the discrete logarithm problem of reversing the keys is exponentially increased due to the memory overhead required to create the key in the first place. This memory requirement was completely intentional in an effort to prevent the usage of Application Specific Integrated Circuits (ASICs) and other low-cost systems as attack vectors.

The concept of a memory-hard algorithm is not a new one, though, and was actually first described by Martin Hellman (Yes, the same one who worked with Whitfield Diffie on the Diffie-Hellman Key Exchange) in his 1980 paper “A cryptanalytic time-memory trade-off”, published to the IEEE Transactions on Information Theory. In this paper, Hellman outlines a concept of using time-memory trade-offs to increase the efficiency of an algorithm, while also increasing the difficulty of cryptanalysis, by storing the key dictionary as block chains within memory.

In her 1982 book “Cryptography and Data Security” author Dorothy E. Denning attributed a method of enhancing the time-memory trade-off to the usage of “Distinguished Points”, which she attributed to Ronald Rivest (of RSA infamy). This enhancement reduced the number of lookups required, while still maintaining the principal of the time-memory trade-off.

Throughout the years, the concept of time-memory trade-off has continued to evolve and improve. In the information security field, the most ubiquitous implementation of this approach has been through the usage of Rainbow Tables, which were invented by Philippe Oechslin and described in his 2003 paper “Making a Faster Cryptanalytic Time-Memory Trade-Off” published to the Annual International Cryptology Conference proceeding “Advances in Cryptology”. A Rainbow Table is simply a lookup table of precomputed hashes used in password cracking. While these tables can drastically decrease the amount of time required to perform a brute-force attack on a password, they can also consume vast amounts of storage. This is the very essence of the time-memory trade-off