Public Key Cryptography
Cryptography refers to the study and application of techniques used to transmit, protect and store information and communications securely in order to avoid being intercepted by third parties. It's a combination of theory and practice. We'll learn how it works and use PKC in our cryptocurrency implementation.
A transaction is a transfer of value that is broadcast to the network and collected into blocks. Transactions are not encrypted, so it is possible to browse and view every transaction ever collected into a block. Once transactions are buried under enough confirmations they can be considered irreversible. We'll learn how an unspent transaction output (UTXO) in Bitcoin can be spent as input in a new transaction. (And how that differs from Ethereum.)
Proof of Work
Proof of work (POW) is the algorithm used by Bitcoin and several other cryptocurrencies to achieve distributed consensus and prevent double spending. We'll learn about POW and other variants, e.g., Proof of Stake, Proof of Deposit, Proof of Burn, and Proof of Coin age.
A Merkle Tree, also known as a Hash Tree, is the structure built from the various cryptographic hashes in a blockchain. Since a hash generated from a certain input will always equal the same, and it will be different from any hash generated from a different input. A Merkle Tree is a very effective way to verify that all the transactions that make up the tree are accurate and haven’t been tampered with.
A gossip protocol is a decentralized way of exchanging information. The protocol defines the rules that are executed by each node in the network to determine the truthfulness of an information. For example, a rule might state that when two-thirds of the nodes return the same information, that information will be considered as the truth.
Satoshi Nakomoto created a brilliant solution for reaching consensus between nodes that don't trust each other. It's the solution to the longstanding computer science problem called the "Byzantine General's Problem." From there, networks become fully decentralized and permissionless. The first generation of systems use a probabilistic leader election process, i.e., who can find the hash first? We'll learn how POW increases security and how other algorithms increase performance and scaleability.
Cryptoeconomics is a combination of cryptography, networking, game theory and economic incentives that can be used to power a blockchain technology. Users want to transfer assets and require miners to process and store these transactions on the blockchain. Q: How can we incentivize miners? A: transactions fees and block rewards.
Smart Contracts are computer programs that can act as a contract. A Smart Contract can autonomously handle the enforcement and fulfillment of a contract. Actions can be verified by third parties and then trigger other events. All activity gets recorded on the blockchain.
Copyright: Lex Sheehan. Do not copy without permission.
I have worked with Lex and he is a clear and concise communicator that truly cares about his subject. He has experience in the blockchain / bitcoin software environment. It is wonderful to see that he is going to share his knowledge with the world.
The best way to learn how a distributed ledger works is to build one from scratch!
Start with the right design and implement a blockchain using your favorite programming language.
Get a deep understanding as Lex shares the story of cypherpunks, digital money and the precursors to Bitcoin.
Thoughtful programming assignments will be provided.
If you want to be entertained, watch a video or attend a blockchain conference; if you truly want to "get it" take my class.