Introduction to Cryptography & Cryptocurrencies

All currencies need some way to control supply and enforce various security properties to prevent  cheating. In fiat currencies, organizations like central banks control the money supply and add  anti‐counterfeiting features to physical currency. These security features raise the bar for an attacker,  but they don’t make money impossible to counterfeit. Ultimately, law enforcement is necessary for  stopping people from breaking the rules of the system. 


Cryptocurrencies too must have security measures that prevent people from tampering with the state  of the system, and from equivocating, that is, making mutually inconsistent statements to different  people. If Alice convinces Bob that she paid him a digital coin, for example, she should not be able to  convince Carol that she paid her that same coin. But unlike fiat currencies, the security rules of  cryptocurrencies need to be enforced purely technologically and without relying on a central  authority.  

As the word suggests, cryptocurrencies make heavy use of cryptography. Cryptography provides a  mechanism for securely encoding the rules of a cryptocurrency system in the system itself. We can  use it to prevent tampering and equivocation, as well as to encode the rules for creation of new units  of the currency into a mathematical protocol. Before we can properly understand cryptocurrencies  then, we’ll need to delve into the cryptographic foundations that they rely upon.  

Cryptography is a deep academic research field utilizing many advanced mathematical techniques  that are notoriously subtle and complicated to understand. Fortunately, Bitcoin only relies on a  handful of relatively simple and well‐known cryptographic constructions. In this chapter, we’ll  specifically study cryptographic hashes and digital signatures, two primitives that prove to be very  useful for building cryptocurrencies. Future chapters will introduce more complicated cryptographic  schemes, such as zero‐knowledge proofs, that are used in proposed extensions and modifications to  Bitcoin. 

Once we’ve learnt the necessary cryptographic primitives, we’ll discuss some of the ways in which  those are used to build cryptocurrencies. We’ll complete this chapter with some examples of simple  cryptocurrencies that illustrate some of the design challenges that we need to deal with. 

2 comments:

Powered by Blogger.