In the wake of the 2008 financial crisis, Satoshi Nakamoto saw a problem with the finance system. Transactions managed by a trusted 3rd party like a bank were reversible and disputable. The reversibility and disputability of transactions caused fraud. The reliance on building trust with 3rd parties and merchants contributed to the collection of excessive and unnecessary personal data. In Nakamoto’s perfect system, currency would move between anonymous parties without fraudulent transactions, identities, or inflation. Enter and :
Thinking about the peak of $19,650.01 on Dec 15, 2017 and the future of , I asked myself, how exactly does cryptographic proof replace the need for trust? Searching for hype-free material, I read the . Here’s my version* of the rules and outcomes we’d expect from an electronic payment system based on cryptographic proof.
*Note that I’m not at all an expert. If something here doesn’t sound right, feel free to message me about a correction.
It’s hard to argue against the outcomes of a system like . There are programmatic solutions combining cryptography, statistics, and behavioral economics that address a whole slew of problems we’re facing in the finance, data, and tech industries including identity management, fraud, data collection, privacy protection. But as I was reading through the paper, I felt like I wasn’t equipped to adequately assess the downsides of . First, because I’m not well versed in the risks of the current financial system. And second, because I’m not well versed in the terminology used by Nakamoto. So I asked myself, how do I begin to wrap my head around a complex system designed to replace an even more complex system?
I took my time going through the paper and decoded 18 terms I found crucial to understanding the pros and cons . Beware, there are circular dependencies but I tried to order these such that core ideas are first, followed by resulting or supporting concepts. The goal is to share the way I interpret this information in case it helps others do the same.
: A list of records representing how and when two entities shared/sold goods, services, currency etc. The list is not in plane english or numbers like how we might track transactions today on receipts or in our bank accounts, but at its core, it is still just a list. For the list to become a , a group of people work on grouping records and turning them into ‘blocks’. Then they pass the groups through a computer formula to transform them into a cryptic code and sequence them according to the time of the transactions.
: A piece of code representing financial value. You track who owns the code and when via a . A lets you send and receive while updating the record kept on the using digital signatures.
Private key: A random hexadecimal number known only to a participant on the or in the crypto system. It is associated with a public key through a math function.
Public key: A random hexadecimal number shared with the other participants. There is no way to use the public key to figure out someone’s private key.
Hashing: Passing a piece of digital information through a mathematical formula to produce a significantly different output, that is always consistent with the input, and is impossible to determine input based on the resulting output hash value alone.
Digital signatures: A way to pass information from one owner to another and verify if it has changed. It applies to any type of codifiable information, not just currency. Let’s say I have a digital photo of a puppy I want to share with my friend. My friend wants to make sure the copy of the photo she receives is the same as the original photo of the puppy. I’d first use the photo + a hashing algorithm, to create a hash representing the original photo. Then I use my private key to encrypt the hash and the photo — call that an encrypted bundle. Now I want to share it with my friend so I create a new hash that is made up of the encrypted bundle + my friend’s public key. Then the information is encrypted using the my friend’s public key. My friend can use their private key to decrypt the outer layer, then use my public key to decrypt the inner layer and access the puppy photo hash and the puppy photo. They know which hashing algorithm I used to hash the puppy photo, so they can hash the photo and compare that hash to the hash I created before sending. If the hashes match, my friend knows that the information hasn’t changed. If the hashes do not match, then they know something was modified. Probably overkill for a photo of a puppy but my friends and I are nerds.
Electronic coin: A hashed series of digital signatures as each owner of the coin transfers it to the next owner. Each time it is transferred, a new hash of the previous hash + the new owners
Double spending: When someone uses the same coin/bill/asset multiple times even though its value should have already been transferred to another owner.
Peer-to-peer network: System that enables direct exchange of information between multiple people identified in the system. It tracks the participants, relationships, and transfers of information between multiple people/entities in the network. It acts as a facilitator/mediator without acting like a 3rd party or gatekeeper.
Nonce: An arbitrary number that can only be used once in a system. Used as a unique identifier for blocks of transactions, ensuring each block can only be added/used once.
CPU power: A central processing unit (CPU) is the brain of the computer where arithmetic and logic operations are executed by a control. How fast it accesses and processes information is determined by many aspects of the design; the size of the cache (a larger cache means it can more data to access quickly), temperature of the chip (proper cooling inhibiting flow of information across the board), clock speed (how fast or slow the cpu cycles depending on the voltage supplied to the component).
Proof-of-work: A challenge for software programs in the network to solve that goes like this: “Find a single value, X, that when hashed creates a string that begins with 303234 zero bits” (the number of zero bits changes for each proof of work). The time it takes for computers to solve that challenge slows down the addition of new information so that the network can verify each transaction. The challenge is solved when a computer’s CPU increments a nonce until it identifies the value that satisfies the proof-of-work requirements and is confirmed quickly by the network hashing the solution and it has the proper number of zero bits. As the number of zero bits required in the proof-of-work increases, the amount of work required to find the single value increases exponentially. The proof-of-work difficulty is determined by the networks’ ideal rate of blocks added per hour. It is a moving average that changes as the number and strength of CPUs change. This helps govern the pace at which computers add blocks so the network can verify the transactions.
Node: A computer or device participating in the network of other nodes on the internet. It often has a copy or partial copy of the records and contributes storage and processing power (CPU) to hashing of records.
Message: A digitally signed notice sent from a computer to the network to create a record of a transaction between two participants.
Fan-out: The circumstance where outgoing transactions depend on incoming transactions, one often limiting the other and slowing the system.
Distributed timestamp server: A computer program that assigns timestamps to groups of transactions that have already been hashed. It publicly posts the timestamped groups so everyone in the network sees that data existed at that point in time. The timestamp is included in each subsequent hash, linking each hash sequentially.
Merkle tree: Also known as a hash tree, is a data structure that creates a hierarchy of hashes. Nodes further up the hierarchy are hashes of their children, creating an efficient way to check the validity of the entire tree or just certain branches.
Binomial random walk: A type of mathematical process where two numbers are either added or subtracted from a starting point. Each has an equal probability of occurring and the process is time-dependent.
I’ll let you judge the future of and for yourself. Will it remove the need for 3rd parties in the future? Will it achieve the outcomes listed above? Will other industries be able to adopt cryptographic proof systems with the hopes of eliminating the expensive task of building trust? . I’m curious if others have different interpretations or helpful anecdotes to share, comment below.
Published at Thu, 18 Apr 2019 21:29:08 +0000