Skip to content

donaldthibeau/crypto-archives

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

✨ Welcome To The Crypto Archives ✨

The Crypto Archives is a living resource stewarded by the analysts at Multicoin Capital, a thesis-driven cryptofund that invests in tokens reshaping entire sectors of the global economy.

It aims to provide a comprehensive archive of technical concepts, case studies, and essays in crypto. It traverses consensus algorithms, state machines, zero-knowledge proofs, hashing algorithms, peer-to-peer communication protocols, cryptoeconomics, and much, much more.

🚧 Note: This Archive Is Under Construction 🚧 Anyone is welcome to contribute to the archive by submitting a pull request. Contributions will be reviewed and incorporated as regularly as possible.

🖋️ Contributors

Thank you to our launch contributors that helped make this project possible!

Binance Research

Messari

Circle Research

If you'd like to join us in building this repo, please feel free to open pull requests and start contributing!

📖 Table of Contents


⚛️ Cryptographic Primitives

₿itcoin’s Predecessors

E-cash by David Chaum ( ipfs )

  • Laid the groundwork for a private, digital payments system. [1982]

Hashcash by Adam Back ( ipfs )

  • Proposed the first proof-of-work (PoW) function for anti-DoS. [1997]

B-Money by Wei Dai ( ipfs )

  • Proposed an anonymous, distributed electronic cash system using PoW. [1998]

Karma by Vivek Vishnumurthy, Sangeeth Chandrakumar and Emin Gün Sirer ( ipfs )

  • First cryptocurrency to use a distributed mint based on PoW. [2003]

Bit Gold by Nick Szabo ( ipfs )

  • Describes a system for the decentralized creation of unforgeable proof of work chains [2005]

Bitcoin’s Academic Pedigree by Arvind Narayanan and Jeremy Clark ( ipfs )

  • Excellent overview of the academic research upon which Bitcoin was built. [2017]

Hashing Algorithms

Here are the links to all major types of hashing algorithms :

SHA-256 and Implementation by Andrew Appel ( ipfs and ipfs )

  • A one-way hashing function using 32-bit words. [2001]

Scrypt by Colin Percival ( ipfs )

  • Introduced memory-hard hashing functions. [2009]

Blake2 by Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O’Hearn, and Christian Winnerlein ( ipfs )

  • Provides security superior to SHA-2 and similar to that of SHA-3: immunity to length extension, indifferentiability from a random oracle, etc. [2012]

Keccak256 by Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche and Ronny Van Keer ( ipfs )

  • Parent family of SHA-3 standards using the sponge construction, in which data is “absorbed” into the sponge, then the result is “squeezed” out. [2012]

CryptoNight by Nicolas van Saberhagen ( ipfs )

  • Memory-hard hash function designed to be inefficiently computable on GPU, FPGA and ASIC architectures. [2013]

Dagger by Vitalik Buterin ( ipfs )

  • A memory-hard to compute, memory-hard to verify alternative to Scrypt. [2013]

Hashimoto by Thaddeus Dryja ( ipfs )

  • Difficult to optimize via ASIC design due to being I/O bound, and difficult to outsource to nodes without the full data set. [2014]

Ethhash by Vitalik Buterin ( ipfs )

  • A combination of the Dagger and Hashimoto algorithms used in Ethereum 1.0. [2014]

X11 by strophy, thephez, Dimitris Apostolou (ipfs)

  • Uses multiple rounds of 11 different hashes (Blake, bmw, groestl, jh, keccak, skein, luffa, cubehash, shavite, simd, echo). [2015]

ProgPoW by IfDefElse ( ipfs )

  • An Ethhash redesign minimizing the improvements available to ASICs by maximizing the usage of the featureset of a commodity GPU. [2018]

Pederson Hash Function by Daira Hopwood ( ipfs )

  • Used in Zcash’s Sapling SNARK construction, reduces to discrete log. [2017]

Zero-Knowledge Argument Systems

The Knowledge Complexity of Interactive Proof Systems by Shafi Goldwasser, Silvio Micali, Charles Rackoff ( ipfs )

  • Introduced the IP hierarchy of interactive proof systems and gave the first zero-knowledge proof for a concrete problem. [1985]

Zerocash by Eli Ben-Sasson, Alessandro Chiesa, Christina Garman, Matthew Green, Ian Miers, Eran Tromer, Madars Virza ( ipfs )

  • The specification for a private digital currency based on zk-SNARKS. [2014]

Fair-Zero Knowledge by Matt Lepinski, Silvio Micali, abhi shelat ( ipfs )

  • A multi-verifier ZK system where every proof is guaranteed to be “zero-knowledge for all verifiers.” [2015]

Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture by Eli Ben-Sasson, Alessandro Chiesa, Eran Tromer, Madars Virza ( ipfs )

  • zk-SNARK: a non-interactive zk-proof with a trusted setup, constant sized proofs and near constant verification time. [2015]

Zcash Protocol Specification by Daira Hopwood, Sean Bowe, Taylor Hornby, Nathan Wilcox ( ipfs )

  • Implementation of the Zerocash specification. [2016]

Doubly Efficient zk-SNARKs without Trusted Setup by Riad S. Wahby, Ionna Tzialla, abhi shelat, Justin Thaler, Michael Walfish ( ipfs )

  • Hyrax: a non-interactive zk-proof without a trusted setup where proof size is small, and proof generation time grows sublinearly, as does verification time. [2017]

Lightweight Sublinear Arguments Without a Trusted Setup by Scott Ames, Carmit Hazay, Yuval Ishai, Muthuramakrishnan Venkitasubramaniam ( ipfs )

  • Ligero: a non-interactive zk-proof without a trusted setup. [2017]

Post-Quantum Zero-Knowledge and Signatures from Symmetric-Key Primitives by Melissa Chase, David Derler, Steven Goldfeder, Claudio Orlandi, Sebastian Ramacher, Christian Rechberger, Daniel Slamanig, Greg Zaverucha (ipfs)

  • ZKB++ design. [2017]

Bulletproofs by Benedikt Bu ̈nz, Jonathan Bootle, Dan Boneh, Andrew Poelstra, Pieter Wuille, and Greg Maxwell ( ipfs )

  • Bulletproof: a non-interactive zk-proof without a trusted setup where proof size grows logarithmically, proof generation time grows linearly, as does verification time. [2017]

Scalable, Transparent, and Post-Quantum Secure Computational Integrity by Eli Ben-Sasson, Iddo Bentov, Yinon Horesh, Michael Riabzev ( ipfs )

  • zk-STARK: a non-interactive zk-proof without a trusted setup where proof size is large, but proof generation time grows sublinearly, as does verification time. [2018]

Explaining zk-STARKS Part I , Part II , and Part III by Vitalik Buterin ( ipfs1 , ipfs2 , ipfs3 )

  • Three part explanation for how zk-STARKs work. [2018]

Aurora: Transparent Succinct Arguments for R1CS By Eli Ben-Sasson, Alessandro Chiesa, Michael Riabzev, Nicholas Spooner, Madars Virza, Nicholas P. Ward ( ipfs )

  • zk-STARK improvement where proof size is O(log2n), proof generation time is O(n log(n)), and verification time is O(n).

Zexe: Enabling Decentralized Private Computation by Sean Bowe, Alessandro Chiesa, Matthew Green, Ian Miers, Pratyush Mishra, Howard Wu ( ipfs )

  • A ledger-based system where users execute offline computations, and produce transactions that hide all information about the offline computations and can be validated by anyone in constant time. [2018]

Proofs of Space, Time & Replication

Proofs of Space by Hamza Abusalah, Joel Alwen, Bram Cohen, Danylo Khilko, Krzysztof Pietrzak, Leonid Reyzin ( ipfs )

  • Describes an alternative to Proof of Work where a service requester must dedicate a significant amount of disk space as opposed to computation. [2013]

Proofs of Unique Blockchain Storage by Sergio Demian Lerner ( ipfs )

  • Describes a construction that lets a node verify that a remote node has a unique copy of a data file over the Internet. [2014]

Proofs of Space and Time by Bram Cohen ( ipfs )

  • Describes an improvement to the safety of Proofs of Space by alternating with a Proof of Time to prevent re-mining attacks. [2017]

Proof of Replication by Juan Benet, David Dalrymple, Nicola Greco ( ipfs )

  • Describes an improvement to Proofs of Storage that enables a verifier to check that a prover is not deduplicating multiple copies of data in the same storage space. [2017]

Verifiable Delay Functions by Dan Boneh, Joseph Bonneau, Benedikt Bunz, Ben Fisch ( ipfs )

  • Describes the requirements for functions that require a specified number of sequential steps to evaluate, yet produces a unique output that can be efficiently and publicly verified. [2018]

A Survey of Two Verifiable Delay Functions by Dan Boneh, Benedikt Bunz, Ben Fisch ( ipfs )

  • A comparison of VDF constructions from Pietrzak and Wesolowski. [2018]

Minimal VDF Randomness Beacon by Justin Drake ( ipfs )

  • A proposal to use a VDF on Ethereum 2.0 as a source of randomness. [2018]

Other

Merkle Tree: Patent and Paper and in Ethereum by Ralph C. Merkle and Vitalik Buterin, respectively ( ipfs1 , ipfs2 , ipfs3 )

  • A fundamental data structure that allows for authenticating a small amount of data, like a hash, to be extended to also authenticate large databases of potentially unbounded size. (1982, 1988, 2015)

Why I Wrote PGP by Phil Zimmerman ( ipfs )

  • A short history of cryptography enabling digital privacy in the 1990s. [1991]

How to Time-Stamp a Digital Document by Stuart Haber, W. Scott Stornetta ( ipfs )

  • Proposed computationally practical procedures for digital time-stamping such that it would be infeasible for a user either to back-date or to forward-date a document, even with the collusion of a time-stamping service. [1991]

Secure Names for Bit-Strings by Stuart Haber, W. Scott Stornetta ( ipfs )

  • Introduced procedures to create unique content-addressable names for digital data. [1997]

Design of a Secure Timestamping Service with Minimal Trust Requirements by H. Massias, X. Serret Avila, J.J. Quisquater ( ipfs )

  • Defined the digital certificate intended to assure the existence of a generic digital document at a certain time. [1999]

The Elliptic Curve Digital Signature Algorithm by Don Johnson, Alfred Menezes, Scott Vanstone ( ipfs )

  • The algorithm used to create digital certificates (e.g. public/private key pairs) for a large variety of blockchains. [2001]

Short Signatures from the Weil Pairing by Dan Boneh, Ben Lynn, Hovav Shacham ( ipfs )

  • A signature scheme with half the signature length of a DSA signature. [2001]

Aggregate and Verifiably Encrypted Signatures from Bilinear Maps by Dan Boneh, Craig Gentry, Ben Lynn, Hovav Shacham ( ipfs )

  • Efficient aggregate signatures based on the BLS signature schema. [2003]

Boneh-Boyen Signature Scheme by Dan Boneh, Xavier Boyen ( ipfs )

  • Produces DSA-length signatures secure without random oracles or hash functions. [2014]

Compact Multi-Signatures for Smaller Blockchains by Dan Boneh, Manu Drijvers, Gregory Neven ( ipfs )

  • The first short accountable-subgroup multi-signature (ASM) scheme. [2018]

Schnorr Signatures in Bitcoin by Gregory Maxwell, Andrew Poelstra, Yannick Seurin, Pieter Wuille ( ipfs )

  • An alternative to ECDSA that would allow for signature aggregation in Bitcoin. [2018]

Parity Substrate by Dmitriy Kashitsyn ( ipfs )

  • Describing a library designed to help users build their own blockchain. [2018]

🌐 Web3 Stack

The Web3 Stack

The Web3 Stack by Kyle Samani, Multicoin Capital

  • This is the most comprehensive illustration of the Web3 stack that we have yet to find. Given how expansive the Web3 ecosystem is, this diagram is almost certainly incomplete.

Consensus Algorithms

Here are the links to all major types of consensus algorithms :

Classical Consensus

The Byzantine Generals Problem by Leslie Lamport, Robert Shostak, Marshall Pease ( ipfs )

  • Describes consensus amongst distributed, distrusting parties. [1982]

The Part-Time Parliament by Leslie Lamport ( ipfs )

  • Describes the Paxos protocol as a solution to the Byzantine Generals Problem. [1989]

Practical Byzantine Fault Tolerance (PBFT) by Miguel Castro, Barbara Liskov ( ipfs )

  • Describes a high-performance Byzantine state machine replication algorithm. [1999]

RAFT by Diego Ongaro, John Ousterhout ( ipfs )

  • Describes a logically-separated alternative to the Paxos protocol. [2014]

Tendermint by Ethan Buchman, Jae Kwon, Zarko Milosevic ( ipfs )

  • Describes a PBFT algorithm that relies on a peer-to-peer gossip protocol. [2014]

Delegated Proof of Stake by Dan Larimer ( ipfs )

  • Describes a classical consensus algorithm where leaders are elected by voting. [2016]

Casper Friendly Finality Gadget by Vitalik Buterin and Virgil Griffith ( ipfs )

  • Describes an overlay algorithm to provide finality to any blockchain. [2017]

Delegated Proof of Stake BFT by Dan Larimer ( ipfs )

  • Describes a BFT extension to the previously described DPoS algorithm. [2018]

Byzantine Agreement by Jing Chen, Sergey Gorbunov, Silvio Micali, Georgios Vlachos ( ipfs )

  • Describes a PBFT algorithm that elects leaders with a Verifiable Random Function. [2018]

Nakamoto Consensus

Bitcoin by Satoshi Nakamoto ( ipfs )

  • Describes a new consensus algorithm using a fork-choice rule. [2008]

Bitcoin-NG by Ittay Eyal, Adem Efe Gencer, Emin Gün Sirer, Robbert van Renesse ( ipfs )

  • Extends the algorithm by allowing leaders to produce microblocks. [2016]

Mimblewimble by Andrew Poelstra ( ipfs )

  • Describes an extension to the Bitcoin whitepaper using Confidential Transactions and cut-through of transactions. [2016]

Ouroboros by Aggelos Kiayias, Alexander Russell, Bernardo David, Roman Oliynykov ( ipfs )

  • Describes a Proof of Stake algorithm that uses a VRF and a fork choice rule. [2017]

Ouroboros Praos by Bernardo David, Peter Gaži, Aggelos Kiayias, and Alexander Russell ( ipfs )

  • Extends the algorithm to be secure vs. an adaptive adversary in semi-synchrony. [2017]

Ouroboros Genesis by Christian Badertscher, Peter Gaži, Aggelos Kiayias, Alexander Russell, Vassilis Zikas ( ipfs )

  • Extends the algorithm to be secure for nodes with dynamic availability. [2018]

Chainweb by Will Martino, Monica Quaintance, Stuart Popejoy ( ipfs )

  • Describes a parallel-chain architecture for massive throughput. [2018]

Threshold Relay by Timo Hanke, Mahnush Movahedi, Dominic Williams ( ipfs )

  • Describes a Proof of Stake algorithm that uses a VRF and a fork choice rule. [2018]

Permissioned Consensus

Ripple by David Schwartz, Noah Youngs, Arthur Britto ( ipfs )

  • Describes a consensus protocol dependent on a trusted Unique Node List. [2014]

HoneyBadgerBFT by Andrew Miller, Yu Xia, Kyle Croman, Elaine Shi, Dawn Song ( ipfs )

  • Describes a leaderless, asynchronous algorithm dependent on a trusted setup. [2016]

Federated Byzantine Agreement by David Mazières ( ipfs )

  • Describes a protocol that achieves local consensus in trusted quorums before achieving consensus in a global, untrusted network . [2016]

Cobalt by Ethan MacBrough ( ipfs )

  • Extends Ripple to separate network governance from transaction approval. [2018]

Leaderless Consensus

Hashgraph by Leeman Baird ( ipfs )

  • Describes a consensus protocol that reduces a blockDAG to a sequential blockchain via virtual voting and gossip about gossip. [2016]

Spectre: Serialization of Proof-of-work Events by Yonatan Sompolinsky, Yoad Lewenberg, Aviv Zohar ( ipfs )

  • Describes a consensus protocol that produces a blockDAG with pairwise ordering. [2016]

Phantom by Yonatan Sompolinsky, Aviv Zohar ( ipfs )

  • Describes a consensus protocol that produces a blockDAG with linear ordering. [2018]

Spacemesh by Tal Moran, Iddo Bentov, Julian Loss ( ipfs )

  • Describes a consensus protocol that combines a blockDAG with PoST. [2018]

Avalanche by Team Rocket ( ipfs )

  • Describes a consensus protocol that uses metastability to agree on valid transactions, but does not provide sequential ordering. [2018]

CBC Casper by Vlad Zamfir, Nate Rush, Aditya Asgaonkar, Georgia Piliouras ( ipfs )

  • Describes a family of consensus protocols that are asynchronously safe and BFT. [2018]

State Machines

Here are the links to all major types of state machines :

Blockchain as a State Machine by Jamsheed Shorish ( ipfs )

  • Defines a blockchain as a hierarchy of state machines. [2017]

Ethereum as a State Machine by Anastasia Mavridou, Aron Laszka ( ipfs )

  • Introduces a Finite State Machine Based Approach to writing smart contracts. [2017]

Interpreters, Runtimes and Virtual Machines

Bitcoin Script ( ipfs )

  • Describes Bitcoin’s scripting system for transactions, including all active and disabled opcodes. [2017]

Ethereum Virtual Machine (EVM)

Ethereum Yellow Paper by Dr. Gavin Wood ( ipfs )

  • Describes the Ethereum Virtual Machine. [2014, updated 2018]

EVM Illustration by atomh33ls ( ipfs )

  • A helpful illustration of the Ethereum Virtual Machine. [2016]

KEVM by Everett Hildenbrandt, Manasvi Saxena, Xiaoran Zhu, Nishant Rodrigues, Philip Daian, Dwight Guth, Grigore Roșu ( ipfs )

  • A fully executable formal semantics of the EVM. [2017]

WebAssembly (WASM)

WebAssembly by Web Assembly Community Group ( ipfs )

  • Specification for a safe, portable, low-level code format designed for efficient execution and compact representation. [2018]

WebAssembly Virtual Machine by Andrew Scheideker ( ipfs )

  • A standalone VM for WebAssembly, including the Intermediate Representation, Parser, and Runtime. [2018]

eWASM ( ipfs )

  • A restricted subset of WebAssembly for use in Ethereum. [2018]

Other Virtual Machines

Kadena Pact by Stuart Popejoy (ipfs)

  • A human-readable, declarative, immutable and Turing-incomplete language for blockchains. [2017]

NEO VM ( ipfs )

  • A description of NEO’s smart contract compiler, execution engine, and interop service. [2017]

IELE and Explanation by Theodoros Kasampalis, Dwight Guth, Brandon Moore, Traian Serbanuta, Virgil Serbanuta, Daniele Filaretti, Grigore Roșu, Ralph Johnson ( ipfs1 , ipfs2 )

  • An LLVM-like language for blockchains that was specified formally, and its implementation, a virtual machine generated from the specification. [2018]

Rholang VM and Illustration by JosDenmark and C.R. Kirkwood-Watts ( ipfs1 , ipfs2 )

  • A virtual machine based on repeatedly applying the rho calculus reduction rule to a key-value store. [2018]

Michelson: the Language of Smart Contracts in Tezos ( ipfs )

  • The complete instruction set, type system and semantics of a stack-based language for blockchains with high level data types and primitives and strict static type checking. [2018]

Layer 2 Scaling

Segregated Witness Proposal by Eric Lombrozo, Johnson Lau, Pieter Wuille ( ipfs )

  • Fixed the problem of transaction malleability in Bitcoin, which enabled the building of trustless, unconfirmed transaction dependency chains, and payment channels. [2015]

State Channel Definition by Jeff Coleman ( ipfs )

  • Defined interactions that could occur on the blockchain, but are instead conducted off-chain in a safe manner. [2015]

TrueBit: A Scalable Verification Solution for Blockchains by Jason Teutsch, Christian Reitwießner ( ipfs )

  • Incentivized verification games that allow for trustless off-chain smart contract execution. [2017]

Arbitrum: Scalable, Private Smart Contracts by Harry Kalodner, Steven Goldfeder, Xiaoqi Chen, S. Matthew Weinberg, Edward W. Felten ( ipfs )

  • An off-chain smart contract execution protocol that only requires one honest miner per contract for trustlessness. [2018]

Lightning Network by Joseph Poon, Thaddeus Dryja ( ipfs )

  • Describes a network of payment channels for Turing-incomplete blockchains that would allow members to send instantaneous, trustless, multi-hop payments. [2016]

Raiden Network ( ipfs )

  • Describes a network of payment channels for Turing-complete blockchains that would allow members to transfer tokens over multiple hops instantaneously and trustlessly. [2016]

Plasma by Joseph Poon, Vitalik Buterin (ipfs)

  • Describes a construction of smart contracts on the main blockchain that use fraud proofs to enforce state transitions on a child blockchain, enabling off-chain scaling. [2017]

Bolt by Matthew Green, Ian Miers ( ipfs )

  • Describes a network of payment channels for private blockchains that would allow for members to send anonymous payments through at-most a single intermediary. [2018]

Making Sense of Ethereum’s Layer 2 Scaling Solutions by Josh Stark ( ipfs )

  • A summary of state channels, Plasma, and Truebit. [2018]

Sharding

Minimal VDF Randomness Beacon by Justin Drake ( ipfs )

  • A discussion around using a Verifiable Delay Function (VDF) as a randomness beacon. [2018]

Ethereum 2.0 Spec - Beacon Chain ( ipfs )

  • The specification for the system chain at the core of Ethereum’s network upgrade that stores and manages the registry of validators. [2019]

Ethereum 2.0 Spec - Sharding ( ipfs )

  • The specification for the data chains in Ethereum’s network upgrade. [2019]

Detailed Overview of Ethereum 2.0 Shard Chains by Alexander Skidanov ( ipfs )

  • An outside analysis of the Ethereum 2.0 specification as a whole. [2018]

Trusted Execution Environments

SGX Review by JP Aumasson, Luis Merino ( ipfs )

  • A blackhat overview of Intel’s TEE, the Software Guard Extensions (SGX). [2016]

SGX Threat Model by Victor Costan, Srinivas Devadas ( ipfs )

  • An in-depth engineering analysis of the SGX. [2016]

Meltdown Vulnerability by Moritz Lipp, Michael Schwarz, Daniel Gruss, Thomas Prescher, Werner Haas, Stegan Mangard, Paul Kocher, Daniel Genkin, Yuval Yarom, Mike Hamburg ( ipfs )

  • Describes an attack on modern processors leveraging speculative execution to break the isolation between a machine’s operating system and its applications. [2017]

Spectre Vulnerability by Paul Kocher, Jann Horn, Anders Fogh, Daniel Genkin, Daniel Gruss, Werner Haas, Mike Hamburg, Moritz Lipp, Stefan Mangard, Thomas Prescher, Michael Schwarz, Yuval Yarom ( ipfs )

  • Describes an attack on modern processors leveraging speculative execution to break the isolation between applications on a machine. [2017]

Introduction to TEEs by GlobalPlatform ( ipfs )

  • A practical overview of Trusted Execution Environments (TEEs). [2018]

Ekiden by Raymond Cheng, Fan Zhang, Jernej Kos, Warren He, Nicholas Hynes, Noah Johnson, Ari Juels, Andrew Miller, Dawn Song ( ipfs )

  • Describes a platform leveraging TEEs for private smart contract execution. [2018]

Foreshadow Vulnerability by Jo Van Bulck, Marina Minkin, Ofir Weisse, Daniel Genkin, Baris Kasikci, Frank Piessens, Mark Silberstein, Thomas F. Wenisch, Yuval Yarom, Raoul Strackx ( ipfs )

  • Describes an attack on modern processors leveraging speculative execution to steal the keys to an SGX. [2018]

Nemesis Vulnerability by Jo Van Bulck, Frank Piessens, Raoul Strackx ( ipfs )

  • Describes an attack on modern processors leveraging speculative execution to steal information from within an SGX without the keys. [2018]

Row Hammer Vulnerability by Yoongu Kim, Ross Daly, Jeremie Kim, Chris Fallin, Ji Hye Lee, Donghyuk Lee, Chris Wilkerson, Konrad Lai, Onur Mutlu ( ipfs )

  • Describes an attack on modern processors that exposed the vulnerability of DRAM chips to disturbance errors. [2018]

Peer-to-peer Communications

Kademlia by Petar Maymounkov, David Mazières ( ipfs )

  • Describes a p2p distributed hash table (DHT) that efficiently allows nodes to identify each other. [2002]

Whisper by Gavin Wood ( ipfs )

  • Describes a p2p protocol for Ethereum dApps to communicate with each other. [2018]

devp2p by Felix Lange ( ipfs )

  • Describes an application layer networking protocol for communication among nodes in a peer-to-peer network. [2018]

libp2p by Juan Benet and David Dias ( ipfs )

  • Describes the networking protocol for IPFS nodes to communicate with each other (ipfs link is a zip file for the repo). [2018]

Tezos p2p ( ipfs )

  • Describes a p2p protocol for Tezos nodes to communicate with each other. [2018]

🏦 Cryptoeconomics

Here are the links to all major concepts in cryptoeconomics :

Nash Equilibrium by Roger Myerson ( ipfs )

  • Describes a key concept in cryptoeconomics within the broader context of economic history. [1999]

On Inflation, Transaction Fees, and Cryptocurrency Monetary Policy by Vitalik Buterin ( ipfs )

  • Describes the design space for how blockchain-based communities can pay for security. [2016]

Bitcoin’s Security Model by Jameson Lopp ( ipfs )

  • Describes how Bitcoin’s community ensures security for its blockchain. [2016]

Cryptocurrency Game Theory by Blockgeeks ( ipfs )

  • Gives an overview of basic concepts in cryptoeconomics. [2017]

Introduction to Cryptoeconomics by Vitalik Buterin ( ipfs )

  • Describes a system that uses cryptography to prove properties about messages that have happened in the past, and economic incentives to encourage desired properties hold in the future. [2017]

Cryptoeconomics is Hard: Part 1 , Part 2 , and Part 3 by Aleksandr Bulkin ( ipfs1 , ipfs2 , ipfs3 )

  • Describes common pitfalls with cryptoeconomic systems and why they occur. [2017]

Empirical Cryptoeconomics by Vitalik Buterin ( ipfs )

  • Proposes empirical tests to measure the effectiveness of different cryptoeconomic theories. [2017]

Manipulation-Resistant Prediction Markets by Nadja Beneš (ipfs)

  • Describes a foray into empirical cryptoeconomics to prove the results of prediction markets can be trusted. [2017]

Behavioral Crypto-Economics by Elad Verbin ( ipfs )

  • Describes how current cryptoeconomic systems underweight the learnings from behavioral economics. [2018]

Schelling Points by Presh Talwalkar ( ipfs )

  • Describes Schelling Points, a key concept in cryptoeconomics. [2008]

Mechanism Design Theory (and slides ) by the Prize Committee of the Royal Swedish Academy of Sciences and Stathis Grigoropoulos, respectively ( ipfs1 , ipfs2 )

  • Provides a coherent framework for analyzing allocation mechanisms with a focus on the problems caused by incentives and private information. [2018]

Tokenomics

Here are the links to all major concepts in tokenomics :

Cryptoasset Valuations by Chris Burniske ( ipfs )

  • Describes a history of different valuation models for cryptoassets. [2017]

Justified Token Value by Indra Adrian Jonklass ( ipfs )

  • Describes a token valuation model based on distributions. [2017]

Network Value to Transactions Ratio by Coinmetrics ( ipfs )

  • Proposes a normalized metric used to compare valuations of cryptocurrencies. [2017]

Token Classification Framework by Thomas Euler ( ipfs )

  • Provides a framework for classifying, and therefore valuing, different types of tokens. [2018]

Quantity Theory of Money for Tokens by Warren Weber ( ipfs )

  • Argues for using the Equation of Exchange to value cryptoassets. [2018]

MV=PQ Isn’t Right for Crypto by Austere Capital ( ipfs )

  • Argues against using the Equation of Exchange to value cryptoassets. [2018]

Bitcoin Market-Value-to-Realized-Value (MVRV) Ratio by Murad Mahmudov, David Puell ( ipfs )

  • Proposes an update to the NVT Ratio as a more effective metric for valuing cryptocurrencies. [2018]

Governance

Governance and Network Effects by Luke Duncan and Aragon ( ipfs )

  • Argues for effective governance of blockchain-based communities as a value-added differentiator. [2017]

Notes on Blockchain Governance by Vitalik Buterin ( ipfs )

  • Provides an overview of on-chain, off-chain, and algorithmic governance for blockchain-based communities. [2017]

Blockchain Governance: Programming our Future by Fred Ehrsam ( ipfs )

  • Describes the opportunities available within the design space of blockchain governance. [2017]

Against On-Chain Governance by Vlad Zamfir ( ipfs )

  • Argues against on-chain governance. [2017]

Why Decentralization Matters by Chris Dixon ( ipfs )

  • Describes how cryptonetworks and blockchain-based communities can outcompete their centralized competition, including a history of how the Internet got to this point. [2018]

Why On-Chain Governance? by Phil Lucsok ( ipfs )

  • Argues for more on-chain governance. [2018]

Against Szabo’s Law, For A New Crypto Legal System by Vlad Zamfir ( ipfs )

  • Proposes the existence of three laws followed by all blockchain-based communities, and argues against the third. [2019]

🐞 Vulnerabilities, Bugs and Hacks

Attack Vectors

$5 Wrench Attack by Randall Munroe ( ipfs )

  • The simplest and cheapest out-of-band attack.

Analysis of Bitcoin Pooled Mining Reward Systems by Meni Rosenfeld ( ipfs )

  • Describe the various scoring systems used to calculate rewards of participants in Bitcoin pooled mining, explain the problems each were designed to solve and analyze their respective advantages and disadvantages. [2011]

Timejacking & Bitcoin by Alex Boverman ( ipfs )

  • Describes how an attacker could deceive a node into accepting an alternate block chain By announcing inaccurate timestamps when connecting it. [2011]

Two Bitcoins at the Price of One? Double-Spending Attacks on Fast Payments in Bitcoin by Ghassan Karame, Elli Androulaki, Srdjan Capkun ( ipfs )

  • Analyzes double spend attacks and proposes a lightweight countermeasure that enables their detection in fast transactions. [2012]

Selfish Mining by Vitalik Buterin ( ipfs )

  • An attack where miners can guarantee themselves multiple blocks in a row. [2013]

Feather-forks: enforcing a blacklist with sub-50% hash power by socrates1024 ( ipfs )

  • Describes an attack where a miner refuses to mine on any chain that includes a transaction it doesn’t like in the most recent several blocks. [2013]

Majority is not Enough: Bitcoin Mining is Vulnerable (e.g. Selfish Mining) by Ittay Eyal, Emin Gün Sirer ( ipfs )

  • Proposes a modification to the Bitcoin protocol that prohibits selfish mining by pools that command less than 1/4 of the resources. [2013]

Economics of Bitcoin Mining, or Bitcoin in the Presence of Adversaries (e.g. Goldfinger) by Joshua A. Kroll, Ian C. Davey, Edward W. Felten ( ipfs )

  • Shows how a motivated adversary might be able to disrupt the Bitcoin system and “crash” the currency. [2013]

Sybil Attack by Zied Trifa, Maher Khemakhem ( ipfs )

  • An attack on networks where users are free to join or leave at any time. [2014]

The Miner’s Dilemma by Ittay Eyal ( ipfs )

  • Describes the unstable balance between mining pools, and the attack vectors that balance presents. [2014]

Long Range Attacks in PoW by Vitalik Buterin ( ipfs )

  • A classic attack vector in Proof of Work. [2014]

Empirical Analysis of Denial-of-Service Attacks in the Bitcoin Ecosystem by Marie Vasek, Micah Thorton, Tyler Moore ( ipfs )

  • Analyzed 142 unique DDoS attacks on 40 Bitcoin services. [2014]

Game-Theoretic Analysis of DDoS Attacks Against Bitcoin Mining Pools by Benjamin Johnson, Aron Laszka, Jens Grossklags, Marie Vasek, Tyler Moore ( ipfs )

  • Determines an expected equilibrium for attacks between mining pools of varying sizes. [2014]

On Subversive Miner Strategies and Block Withholding Attack in Bitcoin Digital Currency by Nicolas T. Courtois, Lear Bahack ( ipfs )

  • Discusses several recent attacks in which dishonest miners obtain a higher reward than their relative contribution to the network. [2014]

An Analysis of Anonymity in Bitcoin Using P2P Network Traffic by Philip Koshy, Diana Koshy, Patrick McDaniel ( ipfs )

  • Developed heuristics for identifying ownership relationships between Bitcoin addresses and IP addresses. [2014]

Deanonymisation of Clients in Bitcoin P2P Network by Alex Biryukov, Dmitry Khovratovich, Ivan Pustogarov ( ipfs )

  • Presents an efficient method to deanonymize Bitcoin users, which allows to link user pseudonyms to the IP addresses where the transactions are generated, with a success rate between 11% and 60%. [2014]

On Stake by Vitalik Buterin ( ipfs )

  • Discusses the strengths and weaknesses of Proof of Stake. [2014]

Censorship Attack by Vitalik Buterin ( ipfs )

  • How to ensure transactions that people want to include on the blockchain get in. [2015]

P+ epsilon Attack by Vitalik Buterin ( ipfs )

  • Describes an attack in which honest users are incentivized to vote to support the attacker, because the attacker takes on the failure risk themselves. [2015]

Eclipse attacks on Bitcoin’s peer-to-peer network by Ethan Heilman, Alison Kendler, Aviv Zohar, Sharon Goldberg ( ipfs )

  • Analyzes an attack in which a full node is isolated from the rest of the network. [2015]

Tampering with the Delivery of Blocks and Transactions in Bitcoin by Arthur Gervais, Hubert Ritzdorf, Ghassan O. Karame, Srdjan Capkun ( ipfs )

  • Shows how the information broadcast limitations on full nodes open up DDOS attack vectors. [2015]

Bribery Attacks on Bitcoin-Style Consensus by Joseph Bonneau ( ipfs )

  • Show how an attacker might purchase mining power in-band with the system itself enforcing the bribe. [2016]

Refund attacks on Bitcoin’s Payment Protocol by Patrick McCorry, Siamak F. Shahandashti, Feng Hao ( ipfs )

  • Presents attack vectors on BIP70, and a revised standard to prevent those attacks. [2016]

Misbehavior in Bitcoin: A Study of Double-Spending and Accountability by Ghassan Karame, Elli Androulaki, Marc Roeschlin, Arthur Gervais, Srdjan Capkun ( ipfs )

  • Provides accountability and privacy definitions for Bitcoin, and investigates analytically and empirically the privacy and accountability provisions in Bitcoin. [2016]

Coordination Problems by Vitalik Buterin ( ipfs )

  • Uses Bitcoin’s 2017 miner/full node disagreement to explain the unique coordination problems inherent in blockchain-based ecosystems. [2017]

Internal PoW Attacker by Vlad Zamfir ( ipfs )

  • Lays out an alternative to the classic “attacker buys 51% of existing hashpower” attack. [2017]

Hijacking Bitcoin: Routing Attacks on Cryptocurrencies by Maria Apostolaki, Aviv Zohar, Laurent Vanbever ( ipfs )

  • Demonstrates how any network attacker can hijack few (<100) BGP prefixes to isolate ∼50% of the mining power—even when considering that mining pools are heavily multi-homed. [2017]

Be Selfish and Avoid Dilemmas: Fork After Withholding (FAW) Attacks on Bitcoin by Yujin Kwon, Dohyun Kim, Yunmok Son, Eugene Vasserman, Yongdae Kim ( ipfs )

  • �Proposes an attack in which the attacker’s reward is always equal to or greater than that for a Block Withholding (BWH) attacker, and it is usable up to four times more o�ften per pool than in a BWH att�ack. [2017]

Nothing at Stake Part 1 by Julian Martinez ( ipfs )

  • Discusses the naive Proof of Stake vulnerability in which every validator builds on every fork that takes place. [2018]

Long Range Attacks in PoS by Abishek Sharma ( ipfs )

  • Discusses how PoS removes the external costs to bitcoin mining, and what that means for the incentive structure and guarantees of having a single blockchain. [2018]

Low-Resource Eclipse Attacks on Ethereum’s Peer-to-Peer Network by Yuval Marcus, Ethan Heilman, Sharon Goldberg ( ipfs )

  • Analyzes an attack in which a full node is isolated from the rest of the network. [2018]

Protocol Failures and Issues

BTC: March 2013 Chain Fork Post-Mortem and Explainer by Gavin Andersen and Vitalik Buterin, respectively ( ipfs1 , ipfs2 )

  • Explains how the switch from BerkeleyDB in bitcoind 0.7 to LevelDB in bitcoind 0.8, combined with an unusually large block, caused an unintentional chain fork. [2013]

Ethereum Solidity Optimizer Bug by Martin Swende ( ipfs )

  • Identifies a bug that caused one method in a smart contract to cease functioning when another (unrelated) method was added to the contract. [2017]

Bitcoin CVE-2018-17144 Full Disclosure and Analysis by Bitcoin Core and Jimmy Song, respectively ( ipfs1 , ipfs2 )

  • Describes a bug that could have allowed for inflationary double-spends in Bitcoin. [2018]

Bitcoin Cash SIGHASH_BUG Incident Report and Analysis by Bitcoin ABC and Cory Fields, respectively ( ipfs1 , ipfs2 )

  • Describes a bug that could have allowed a single transaction to cause a chain fork in Bitcoin Cash. [2018]

Ethereum Cryptokitties Congestion Crisis by Consensys ( ipfs )

  • Provides a narrative account of how the Cryptokitties dapp congested the Ethereum network, and how engineers from several different organizations came together to fix it. [2018]

EOS Blacklist Order by Trustnodes.com ( ipfs )

  • Explains how an EOS block producer failed to comply a blacklist update and allowed a thief to transfer stolen funds to an exchange. [2018]

Successful Hacks and Post-Mortems

Breaking the House by Martin Swende ( ipfs )

  • Describes an attack on a pseudo-random number generator used in a smart contract deployed on the Ethereum mainnet. [2015]

The DAO: pre-hack , post-hack analysis , and thoughts by Emin Gün Sirer, Phil Daian, and Emin Gün Sirer, respectively ( ipfs1 , ipfs2 , ipfs3 )

  • Explains how the DAO smart contracts were vulnerable to attack, how those vulnerabilities were exploited by an attacker, and what that meant for smart contracts on Ethereum. [2016]

King of Ether Post-Mortem by Kieran Elby ( ipfs )

  • Provides an example of a smart contract vulnerable to exploitation due to unexpectedly high gas fees. [2016]

Parity MultiSig #1: post-mortem and deep dive by Parity Technologies and Lorenz Breidenbach , Phil Daian , Ari Juels , and Emin Gün Sirer , respectively ( ipfs1 , ipfs2 )

  • Describes the vulnerabilities in the Parity 1.5 client’s multisig wallet contract that allowed an attacker to take ownership of a victim’s wallet with a single transaction. [2017]

Front-running Bancor by Ivan Bogatyy ( ipfs )

  • Describes an exploit that leveraged a game-theoretic security flaw in the smart contracts

governing the Bancor exchange to allow non-miners to front-run trades. [2017]

Parity MultiSig #2: post-mortem and deep dive by Parity Technologies and Matt Condon, respectively ( ipfs1 , ipfs2 )

  • Explains how 513k ETH was locked in Parity’s wallet smart contracts by a developer that accidentally removed a dependency from the blockchain. [2017]

EOSBet Transfer Hack by EOSBet ( ipfs )

  • Describes a flaw in the EOSBet smart contract that allowed an attacker to place bets without transferring tokens to the contract. [2018]

Predicting Random Numbers in Ethereum Smart Contracts by Arseny Reutov ( ipfs )

  • Identifies four different categories of vulnerable pseudo-random number generators (PRNGs) used in smart contracts deployed on the Ethereum mainnet. [2018]

🔗 External Resources

Whitepaper Database by Bryan Bishop

A16z’s Crypto Canon by Sonal Chokshi, Chris Dixon, Denis Nazarov, Jesse Walden, and Ali Yahya

ZKP.Science by idk

About

Your one-stop shop for all things crypto.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published