Blockchain: Body of Knowledge

This guide is a list of topics technically savvy person needs to be familiar with to understand the concept of blockchain technology.

Prerequisites

Blockchain technology is a multi-disciplinary field built atop cryptography, computer science and economics. The background section includes some requisite fundamentals in these fields that will ensure you have solid footing before diving deeper into the blockchain specifics since many of the features that exist today are results of years and years of previous research. In order to understand why blockchains work, you need to understand their building blocks — what came before blockchains, and why those things didn’t work.

Data structures. You’ll want to be familiar with the characteristics and complexity guarantees of the major data structures: linked lists, binary search trees, hash maps, and graphs (specifically, directed acyclic graphs which feature prominently in blockchains).

Cryptography. All cryptocurrencies use public/private key cryptography as the basis for identity and authentication. I’d recommend studying RSA (it’s easy to learn, and doesn’t require a very strong math background), then look at ECDSA. Elliptic curve cryptography requires significantly more abstract math — it’s not important to understand all the details, but know that this is the cryptography that’s used in most cryptocurrencies, including Bitcoin.

The other important cryptographic primitive is the cryptographic hash function. These can be used to construct commitment schemes, and are the building block for Merkle trees. Merkle trees enable Merkle proofs, one of the key optimizations that blockchains use for scalability.

Distributed systems are absolutely essential to reasoning about blockchains. Once you’re no longer living on a single machine, you have to start reasoning about consistency and consensus. You’ll want to know the difference between linearizable and eventual consistency models. You’ll also want to learn the guarantees of fault-tolerant consensus algorithms, such as Paxos and RAFT. Know the difficulties of reasoning about time in a distributed system. Appreciate the tradeoffs between safety and liveness.

With that background, you’ll be able to understand the difficulties around Byzantine fault-tolerant consensus, the primary security requirement of public blockchains. You’ll want to learn about PBFT, one of the first scalable algorithms to deliver Byzantine fault-tolerant consensus. PBFT is the basis for many non-proof-of-work blockchain consensus algorithms. Once again, you don’t need to understand the details of how and why PBFT is correct, but get the general idea and its security guarantees.

Networking. The decentralization of blockchains derives in large part from their peer-to-peer network topology. As such, blockchains are direct descendants of the past P2P networks.

To understand the blockchain communication model, you need to understand the basics of computer networking: this means understanding how Internet routing works.

Public blockchains tend to spread messages via gossip protocols using flooding. It’s instructive to learn the history of P2P network design, from Napster to Gnutella, BitTorrent and Tor. Blockchains have their own place, but they draw upon the lessons of these networks and how they were designed.

Game theory. The most important branch of economics that plays into cryptocurrencies is game theory, the study of payoffs and incentives among multiple agents. Two key concepts in your repertoire should be Nash equilibria and Schelling points, as they feature prominently in cryptoeconomic analysis.

Macroeconomics. Cryptocurrencies are not just protocols, they are also forms of money. As such, they respond to the laws of macroeconomics. Cryptocurrencies are subject to different monetary policies, and respond predictably to inflation and deflation. You should understand these processes and the effects they have on spending, saving, etc. Another valuable economic concept is the velocity of money, especially as it corresponds to valuing a currency.

Microeconomics. Cryptocurrencies are also deeply interwoven with markets, which requires an understanding of microeconomics. You’ll need a strong intuition for supply and demand curves. You should be able to reason about competition and opportunity costs (they’ll apply frequently to cryptocurrency mining). For many coin distributions and cryptoeconomic systems, auction theory features prominently.

Computer Science

Cryptography

Economics

* How the blockchain will radically transform the economy — Bettina Warburg describes how the blockchain will eliminate the need for centralized institutions like banks or governments to facilitate trade.

Blockchain Basics

Blockchain IRL

Security, anonymity, decentralization

  • Cold and hot storage
  • How to safely store cryptocurrencies
  • Anonymity and pseudo-anonymity, the ability to deanonymize cryptocurrency users
  • Mixing as a way of achieving anonymity
  • Mining pool strategies and network stability
  • Types of attacks: Double Spends, 51% Attacks, Replay Attacks, Routing attacks, Selfish mining, Sybil attack, Stake bleeding.

Other Topics

  • Atomic Swap - A method employed within crypto networks that allows users to exchange assets directly into other assets directly from their wallets without a centralized exchange.
  • Non-trivial usage: proof of ownership, timeless records
  • Role of OpenSource software
  • Blockchain and DarkNet: Tor, Zcoin и Zcash
  • Graphene based projects
  • Bitcoin's Academic Pedigree — history of technologies that formed the foundation of Bitcoin and other blockchains.

Current Issues

  • Consensus protocols and decentralization
    • PoW — energy waste
    • PoS — lack of decentralization
  • Initial coin distribution
    • Lack of transparency
    • Decentralized tokens are centralized if they are in too few hands
    • Pre-mining

Tools

Books and Courses

  • blockchain.txt
  • Last modified: 2019/08/21 11:53
  • by rzh