└── README.md /README.md: -------------------------------------------------------------------------------- 1 |
2 |

Blockchain Reading List

3 |

by Charles Iliya Krempeaux

4 |
5 | 6 | This is a list of readings (and watchings) on **blockchain** related topics. 7 | 8 | 9 | ## Preamble 10 | 11 | The word _"blockchain"_ (or _"block chain"_) started off as a more or less narrowly defined technical term. 12 | 13 | It (_"blockchain"_) later became a buzzword that represented anything related to BitCoin, alt-coins (ex: LiteCoin, Ethereum, etc), cryptocurrencies, etc. 14 | 15 | And now that the word _"blockchain"_ is on the verge of becoming a _household name_, 16 | it seems like it is starting to include what some others used to call _"P2P"_, and are now calling _"distributed computing"_. 17 | 18 | (In some usages of the label _"blockchain"_, neither _blocks_ or _hash lists_ seemed to be necessary for that thing to be called a _"blockchain"_.) 19 | 20 | This seems to somewhat mirror how previously the usage of the word _"P2P"_ seemed to broaden and also include what others are calling _"distributed computing"_. 21 | 22 | (Although this time around, cryptography and various concepts of "money" seems to have prominence.) 23 | 24 | Regardless, this document focuses on a more traditional definition of _"blockchain"_. 25 | 26 | But also includes some topics that the author of this document feels that, while not strictly about blockchains, 27 | will help provide readers with a deep(er) technical background that can be useful when working with or creating blockchain based technologies. 28 | 29 | 30 | ## Audience 31 | 32 | This document is targeted at technical people, who are looking to gain a deep understand of the concepts behind blockchain based technologies. 33 | 34 | 35 | ## Topics 36 | * [Abstract Algebra](#abstract-algebra) 37 | * [Behavioral Science](#behavioral-science) 38 | * [BitCoin](#bitcoin) 39 | * [Bit Gold](#bit-gold) 40 | * [B-Money](#b-money) 41 | * [Colored Coins](#colored-coins) 42 | * [Consensus](#consensus) 43 | * [Content Addressing](#content-addressing) 44 | * [Cryptocurrency](#cryptocurrency) 45 | * [Cryptography](#cryptography) 46 | * [Distributed Computing](#distributed-computing) 47 | * [Distributed Hash Tables](#distributed-hash-tables) 48 | * [eCash](#ecash) 49 | * [Error Detection and Correction](#error-detection-and-correction) 50 | * [Ethereum](#ethereum) 51 | * [Handicap Principle](#handicap-principle) 52 | * [Hashcash](#hashcash) 53 | * [Hash Lists](#hash-lists) 54 | * [History (Cypherpunk)](#history-cypherpunk) 55 | * [History (Open Source)](#history-open-source) 56 | * [Identity](#identity) 57 | * [Mastercoin](#mastercoin) 58 | * [Money](#money) 59 | * [Onion Routing](#onion-routing) 60 | * [Paxos](#paxos) 61 | * [Peer-to-Peer Networks](#peer-to-peer-networks) 62 | * [Privacy](#privacy) 63 | * [Proof-of-Stake](#proof-of-stake) 64 | * [Proof-of-Work](#proof-of-work) 65 | * [Raft](#raft) 66 | * [Rai](#rai) 67 | * [Randomness](#randomness) 68 | * [Selfish Mining Attack](#selfish-mining-attack) 69 | * [Smart Contracts](#smart-contracts) 70 | * [Solidity](#solidity) 71 | * [Sybil Attack](#sybil-attack) 72 | * [Tamper Detection](#tamper-detection) 73 | * [Trust Networks](#trust-networks) 74 | * [Worse Is Better](#worse-is-better) 75 | * [Zero-Knowledge Proof Protocol](#zero-knowledge-proof-protocol) 76 | 77 | 78 | ## Abstract Algebra 79 | 80 | * [Abstract Algebra (Socratica)](https://www.youtube.com/playlist?list=PLi01XoE8jYoi3SgnnGorR_XOW3IcK-TP6), 81 | by Liliana de Castro, Michael Harrison, Hatch Harrison 82 | 83 | 84 | ## Behavioral Science 85 | 86 | * [Please, not another bias! An evolutionary take on behavioural economics](https://jasoncollins.blog/2015/07/30/please-not-another-bias-an-evolutionary-take-on-behavioural-economics/), 87 | by Jason Collins 88 | 89 | * [The Hidden Agenda of the Political Mind](https://www.goodreads.com/book/show/21981657-the-hidden-agenda-of-the-political-mind), 90 | by Jason Weeden, Robert Kurzban 91 | 92 | * [Hierarchy in the Forest](https://www.goodreads.com/book/show/2131522.Hierarchy_in_the_Forest), 93 | by Christopher Boehm 94 | 95 | * [The Biology of Moral Systems](https://www.goodreads.com/book/show/1446851.The_Biology_of_Moral_Systems), 96 | by Richard D. Alexander 97 | 98 | * See also: [Handicap Principle](#handicap-principle) 99 | 100 | 101 | ## BitCoin 102 | 103 | * [Bitcoin: A Peer-to-Peer Electronic Cash System](https://bitcoin.org/bitcoin.pdf), 104 | by Satoshi Nakamoto 105 | 106 | * [Annotated: "Bitcoin: A Peer-to-Peer Electronic Cash System"](https://genius.com/2698706), 107 | by Satoshi Nakamoto, Balaji Srinivasan, Et al. 108 | 109 | * [How the Bitcoin protocol actually works](http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-actually-works/), 110 | by Michael Nielsen 111 | 112 | * [But how does bitcoin actually work?](https://youtu.be/bBC-nXj3Ng4), 113 | by Grant Sanderson 114 | 115 | * [Ever wonder how Bitcoin (and other cryptocurrencies) actually work?](https://youtu.be/bBC-nXj3Ng4), 116 | by Grant Sanderson 117 | 118 | * [Mastering Bitcoin](https://github.com/bitcoinbook/bitcoinbook), 119 | by Andreas M. Antonopoulos 120 | 121 | * [Why Is It Taking 20 Minutes to Mine This Bitcoin Block?](http://r6.ca/blog/20180225T160548Z.html), 122 | by Russell O’Connor 123 | 124 | * [OP_RETURN and the Future of Bitcoin](https://bitzuma.com/posts/op-return-and-the-future-of-bitcoin/), 125 | by Rich Apodaca 126 | 127 | * [Explanation of what an OP_RETURN transaction looks like](https://bitcoin.stackexchange.com/questions/29554/explanation-of-what-an-op-return-transaction-looks-like) 128 | 129 | * [Hidden surprises in the Bitcoin blockchain and how they are stored: Nelson Mandela, Wikileaks, photos, and Python software](http://www.righto.com/2014/02/ascii-bernanke-wikileaks-photographs.html), 130 | by Ken Shirriff 131 | 132 | 133 | ## Bit Gold 134 | 135 | * [Bit gold](https://unenumerated.blogspot.com/2005/12/bit-gold.html), 136 | by Nick Szabo 137 | 138 | 139 | ## B-Money 140 | 141 | * [b-money, an anonymous, distributed electronic cash system](http://weidai.com/bmoney.txt), 142 | by Wei Dai 143 | 144 | * [B-money - Bitcoin Wiki](https://en.bitcoin.it/wiki/B-money) 145 | 146 | 147 | ## Colored Coins 148 | 149 | * [Colored Coins - Bitcoin Wiki](https://en.bitcoin.it/wiki/Colored_Coins) 150 | 151 | * [Colored Coins - Wikipedia](https://en.wikipedia.org/wiki/Colored_coin) 152 | 153 | * [Coloring Scheme](https://github.com/Colored-Coins/Colored-Coins-Protocol-Specification/wiki/Coloring%20Scheme) 154 | 155 | 156 | ## Consensus 157 | 158 | * See also: [BitCoin](#bitcoin), [Paxos](#paxos), [Raft](#raft) 159 | 160 | 161 | ## Content Addressing 162 | 163 | * [Magnet URI Project](http://magnet-uri.sourceforge.net/) 164 | 165 | * [MAGNET v0.1 (Draft Tech Overview/Spec)](http://magnet-uri.sourceforge.net/magnet-draft-overview.txt), 166 | by Gordon Mohr 167 | 168 | * [Magnet URI scheme (Wikipedia)](https://en.wikipedia.org/wiki/Magnet_URI_scheme), 169 | 170 | * [A URN Namespace For Identifiers Based on Cryptographic Hashes](https://tools.ietf.org/html/draft-thiemann-hash-urn-01) 171 | by Peter Thiemann 172 | 173 | * [IETF RFC 6920: Naming Things with Hashes](https://tools.ietf.org/search/rfc6920) 174 | 175 | * [Trusty URIs: Verifiable, Immutable, and Permanent Digital Artifacts for Linked Data](https://arxiv.org/abs/1401.5775), 176 | by Tobias Kuhn, Michel Dumontier 177 | 178 | * [BIP 122](https://github.com/bitcoin/bips/blob/master/bip-0122.mediawiki) 179 | 180 | * [HTTP Extensions for a Content-Addressable Web](http://lists.w3.org/Archives/Public/www-talk/2001NovDec/0090.html) 181 | 182 | * [IETF RFC 2397: The "data" URL scheme](https://tools.ietf.org/html/rfc2397) 183 | 184 | * [Hash URI Specification](https://github.com/hash-uri/hash-uri) 185 | 186 | * [HTTP Want-Digest](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Want-Digest) 187 | 188 | * [HTTP Digest](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Digest) 189 | 190 | * [Cache Digests for HTTP/2](https://httpwg.org/http-extensions/cache-digest.html) 191 | * [HTTP/2 push is tougher than I thought](https://jakearchibald.com/2017/h2-push-tougher-than-i-thought/) 192 | 193 | * See also: [Distributed Hash Tables](#distributed-hash-tables) 194 | 195 | 196 | ## Cryptocurrency 197 | 198 | * See also: [BitCoin](#bitcoin), [Bit Gold](#bit-gold), [B-Money](#b-money), [eCash](#ecash), [Ethereum](#ethereum), 199 | 200 | 201 | ## Cryptography 202 | 203 | * [Everything you need to know about cryptography in 1 hour](https://youtu.be/jzY3m5Kv7Y8), 204 | by Colin Percival 205 | 206 | * [$5 wrench attack](https://xkcd.com/538/), 207 | by Randall Munroe 208 | 209 | * [Communication Theory of Secrecy Systems](http://netlab.cs.ucla.edu/wiki/files/shannon1949.pdf), 210 | by Claude Elwood Shannon 211 | 212 | * [New Directions in Cryptography](http://wwwknoll.in.tum.de/pub/Main/TeachingSs2006EinfuehrungInformatik2/diffie.pdf), 213 | by Whitfield Diffie, Martin E. Hellman 214 | 215 | * [A Method for Obtaining Digital Signatures and Public-Key Cryptosystems](https://people.csail.mit.edu/rivest/Rsapaper.pdf), 216 | by Ronald Linn Rivest, Adi Shamir, Leonard Adleman 217 | 218 | * [How RSA Works With Examples](http://doctrina.org/How-RSA-Works-With-Examples.html), 219 | by Barry Steyn 220 | 221 | * [Why RSA Works: Three Fundamental Questions Answered](http://doctrina.org/Why-RSA-Works-Three-Fundamental-Questions-Answered.html), 222 | by Barry Steyn 223 | 224 | * [Cryptographic Hash VS MAC: What You Need To Know](http://doctrina.org/Cryptographic-Hash-Vs-MAC:What-You-Need-To-Know.html), 225 | by Barry Steyn 226 | 227 | * [End to End Encryption (E2EE) (Computerphile)](https://youtu.be/jkV1KEJGKRA), 228 | by Mike Pound 229 | 230 | * [Secret Key Exchange (Diffie-Hellman) (Computerphile)](https://youtu.be/NmM9HA2MQGI), 231 | by Mike Pound 232 | 233 | * See also: [Onion Routing](#onion-routing), [Randomness](#randomness), [Zero-Knowledge Proof Protocol](#zero-knowledge-proof-protocol) 234 | 235 | 236 | ## Distributed Computing 237 | 238 | * [Introduction to Distributed System Design](http://www.hpcs.cs.tsukuba.ac.jp/~tatebe/lecture/h23/dsys/dsd-tutorial.html) 239 | 240 | * [Perspectives on the CAP Theorem](http://groups.csail.mit.edu/tds/papers/Gilbert/Brewer2.pdf), 241 | by Seth Gilbert, Nancy A. Lynch 242 | 243 | * [The Log: What every software engineer should know about real-time data's unifying abstraction](https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying), 244 | by Jay Kreps 245 | 246 | * [Notes on Distributed Systems for Young Bloods](https://www.somethingsimilar.com/2013/01/14/notes-on-distributed-systems-for-young-bloods/), 247 | by Jeff Hodges 248 | 249 | * [Immutability Changes Everything (video)](https://vimeo.com/52831373), 250 | by Pat Helland 251 | 252 | * [Immutability Changes Everything (paper)](http://cidrdb.org/cidr2015/Papers/CIDR15_Paper16.pdf), 253 | by Pat Helland 254 | 255 | * [Kafka: a Distributed Messaging System for Log Processing](http://notes.stephenholiday.com/Kafka.pdf), 256 | by Jay Kreps, Neha Narkhede, Jun Rao 257 | 258 | * [Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications](https://pdos.csail.mit.edu/papers/chord:sigcomm01/chord_sigcomm.pdf), 259 | by Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan 260 | 261 | * [Dynamo: Amazon’s Highly Available Key-value Store ](http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf), 262 | by Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall, Werner Vogels 263 | 264 | * [MapReduce: Simplified Data Processing on Large Clusters](https://research.google.com/archive/mapreduce.html), 265 | by Jeffrey Dean, Sanjay Ghemawat 266 | 267 | * [The Chubby Lock Service for Loosely-Coupled Distributed Systems](https://research.google.com/archive/chubby.html), 268 | by Mike Burrows 269 | 270 | * [So, you want to trace your distributed system? Key design insights from years of practical experience](http://www.pdl.cmu.edu/PDL-FTP/SelfStar/CMU-PDL-14-102.pdf) 271 | by Raja R. Sambasivan, Rodrigo Fonseca, Ilari Shafer, Gregory R. Ganger 272 | 273 | * [Dapper, a Large-Scale Distributed Systems Tracing Infrastructure](https://research.google.com/pubs/pub36356.html), 274 | by Benjamin H. Sigelman, Luiz André Barroso, Mike Burrows, Pat Stephenson, Manoj Plakal, Donald Beaver, Saul Jaspan, Chandan Shanbhag 275 | 276 | * [Queues Don't Fix Overload](https://ferd.ca/queues-don-t-fix-overload.html), 277 | by Fred Hebert 278 | 279 | * See also: [Consensus](#consensus), [Peer-to-Peer Networks](#peer-to-peer-networks) 280 | 281 | 282 | ## Distributed Hash Tables 283 | 284 | * [Kademlia: A Peer-to-peer Information System Based on the XOR Metric](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf), 285 | by Petar Maymounkov, David Mazières 286 | 287 | 288 | ## eCash 289 | 290 | * [Blind signatures for untraceable payments](http://sceweb.sce.uhcl.edu/yang/teaching/csci5234WebSecurityFall2011/Chaum-blind-signatures.PDF), 291 | by David Chaum 292 | 293 | * [eCash Bitcoin wiki](https://en.bitcoinwiki.org/wiki/Ecash) 294 | 295 | * [An introduction to ecash](https://web.archive.org/web/19971009044558/http://digicash.com/publish/ecash_intro/ecash_intro.html) 296 | 297 | 298 | ## Error Detection and Correction 299 | 300 | * [Information Theory & Coding (Computerphile)](https://www.youtube.com/playlist?list=PLzH6n4zXuckpKAj1_88VS-8Z6yn9zX_P6), 301 | by David Brailsford 302 | 303 | * [Multiple Dimension Error Correction (Computerphile)](https://youtu.be/1_X-7BgHbE0), 304 | by David Brailsford 305 | 306 | * [The Perfect Code (Computerphile)](https://youtu.be/WPoQfKQlOjg), 307 | by David Brailsford 308 | 309 | * [EXTRA BITS: More on Perfect Codes (Computerphile)](https://youtu.be/i4zC67Yf5Iw), 310 | by David Brailsford 311 | 312 | 313 | ## Ethereum 314 | 315 | * [Ethereum in 25 Minutes](https://www.youtube.com/watch?v=66SaEDzlmP4&t=22s), 316 | by Vitalik Buterin 317 | 318 | * [Ethereum White Paper](https://github.com/ethereum/wiki/wiki/White-Paper) 319 | 320 | * [Ethereum Yellow Paper](https://github.com/ethereum/yellowpaper), 321 | by Gav Would, et al 322 | 323 | * [Ethereum Beige Paper: Rewrite of the Yellowpaper in non-Yellowpaper syntax](https://github.com/chronaeon/beigepaper/), 324 | by Micah Dameron 325 | 326 | * [Mastering Ethereum](https://github.com/ethereumbook/ethereumbook), 327 | by Andreas M. Antonopoulos, Gavin Wood 328 | 329 | * See also: [Solidity](#solidity) 330 | 331 | 332 | ## Handicap Principle 333 | 334 | * [The Handicap Principle: A Missing Piece of Darwin's Puzzle](http://www.goodreads.com/book/show/885547.The_Handicap_Principle), 335 | by Amotz Zahavi, Avishag Zahavi 336 | 337 | 338 | ## Hashcash 339 | 340 | * [Hashcash - A Denial of Service Counter-Measure](http://www.hashcash.org/papers/hashcash.pdf), 341 | by Adam Back 342 | 343 | 344 | ## Hash Lists 345 | 346 | * [How to Time-Stamp a Digital Document](https://link.springer.com/chapter/10.1007/3-540-38424-3_32), 347 | by Stuart Haber, W. Scott Stornetta 348 | 349 | 350 | ## History (Cypherpunk) 351 | 352 | * [A Cypherpunk's Manifesto](https://www.activism.net/cypherpunk/manifesto.html), 353 | by Eric Hughes 354 | 355 | * [The Crypto Anarchist Manifesto](https://www.activism.net/cypherpunk/crypto-anarchy.html), 356 | by Timothy C. May 357 | 358 | * [Cyphernomicon](https://www.cypherpunks.to/faq/cyphernomicron/cyphernomicon.html), 359 | by Timothy C. May 360 | 361 | * [This Machine Kills Secrets](https://www.goodreads.com/book/show/13586738-this-machine-kills-secrets), 362 | by Andy Greenberg 363 | 364 | * [Crypto](https://www.goodreads.com/book/show/984428.Crypto), 365 | by Steven Levy 366 | 367 | 368 | ## History (Open Source) 369 | 370 | * [The Cathedral and the Bazaar ](http://www.catb.org/esr/writings/cathedral-bazaar/cathedral-bazaar/), 371 | by Eric Steven Raymond 372 | 373 | * [Homesteading the Noosphere](http://www.catb.org/esr/writings/homesteading/homesteading/), 374 | by Eric Steven Raymond 375 | 376 | * [The Wikipedia Revolution](https://www.goodreads.com/book/show/4606921-the-wikipedia-revolution), 377 | by Andrew Lih 378 | 379 | 380 | ## Identity 381 | 382 | * [Identity Crisis: How Identification Is Overused and Misunderstood](https://www.goodreads.com/book/show/171237.Identity_Crisis), 383 | by Jim Harper 384 | 385 | * [Secrets and Lies: Digital Security in a Networked World](https://www.goodreads.com/book/show/304482.Secrets_and_Lies), 386 | by Bruce Schneier 387 | 388 | * [Secure Electronic Commerce: Building the Infrastructure for Digital Signatures and Encryption](https://www.goodreads.com/book/show/1174424.Secure_Electronic_Commerce), 389 | by Warwick Ford, Michael S. Baum 390 | 391 | * [Understanding Windows CardSpace: An Introduction to the Concepts and Challenges of Digital Identities ](https://www.goodreads.com/book/show/22380161-understanding-windows-cardspace), 392 | by Vittorio Bertocci, Garrett Serack, Caleb Baker 393 | 394 | * [7 Laws of Identity](https://web.archive.org/web/20090824224507/https://www.identityblog.com/?p=1065) 395 | by Kim Camerons, 396 | 397 | * [Getting Started with OAuth 2.0](https://www.goodreads.com/book/show/13228633-getting-started-with-oauth-2-0), 398 | by Ryan Boyd 399 | 400 | * [Digital Identity](https://www.goodreads.com/book/show/155374.Digital_Identity), 401 | by Phillip J. Windley 402 | 403 | * [Identity Management: A Primer](https://www.goodreads.com/book/show/7273193-identity-management), 404 | by Graham Williamson, David Yip, Ilan Sharoni, Kent Spaulding 405 | 406 | 407 | ## Mastercoin 408 | 409 | * [Mastercoin: A Second-Generation Protocol on the Bitcoin Blockchain](https://bitcoinmagazine.com/articles/mastercoin-a-second-generation-protocol-on-the-bitcoin-blockchain-1383603310/), 410 | by Vitalik Buterin 411 | 412 | * [MasterCoin Complete Specification Version 1.0](https://www.scribd.com/document/157454619/MasterCoin-Specification), 413 | by J.R. Willett 414 | 415 | 416 | ## Money 417 | 418 | * [Shelling Out: The Origins of Money](http://nakamotoinstitute.org/shelling-out/), 419 | by Nick Szabo 420 | 421 | * [The Ascent of Money: A Financial History of The World (Documentary)](https://youtu.be/fsrtB5lp60s), 422 | by Niall Ferguson 423 | 424 | * See also: [BitCoin](#bitcoin), [Bit Gold](#bit-gold), [B-Money](#b-money), [eCash](#ecash), [Ethereum](#ethereum), [Rai](#rai) 425 | 426 | 427 | ## Onion Routing 428 | 429 | * [Onion Routing (Computerphile)](https://youtu.be/QRYzre4bf7I), 430 | by Mike Pound 431 | 432 | * [EXTRA BITS: Onion Routing (Computerphile)](https://youtu.be/6eWkdyRNfqY), 433 | by Mike Pound 434 | 435 | * [Tor: The Second-Generation Onion Router](https://www.usenix.org/conference/13th-usenix-security-symposium/tor-second-generation-onion-router), 436 | by Roger Dingledine, Nick Mathewson, Paul Syverson 437 | 438 | * [Circuit Fingerprinting Attacks: Passive Deanonymization of Tor Hidden Services](https://people.csail.mit.edu/devadas/pubs/circuit_finger.pdf), 439 | by Albert Kwon, Mashael AlSabah, David Lazar, Marc Dacier, Srinivas Devadas 440 | 441 | * [Garlic Routing](https://geti2p.net/en/docs/how/garlic-routing) 442 | 443 | 444 | ## Paxos 445 | 446 | * [Neat Algorithms - Paxos](http://harry.me/blog/2014/12/27/neat-algorithms-paxos/), 447 | by Harry Brundage 448 | 449 | * [The Paxos Algorithm](https://youtu.be/d7nAGI_NZPk), 450 | by Luis Quesada Torres 451 | 452 | * [The Part-Time Parliament](https://www.microsoft.com/en-us/research/uploads/prod/2016/12/The-Part-Time-Parliament.pdf), 453 | by Leslie Lamport 454 | 455 | 456 | ## Peer-to-Peer Networks 457 | 458 | * [Understanding Churn in Peer-to-Peer Networks](http://www.barsoom.org/papers/imc-2006-churn.pdf), 459 | by Daniel Stutzbach, Reza Rejaie 460 | 461 | * See also: [BitCoin](#bitcoin), [Bit Gold](#bit-gold), [Distributed Hash Tables](#distributed-hash-tables) 462 | 463 | 464 | ## Privacy 465 | 466 | * [An Overview of Blockchain Privacy Mechanisms](https://steemit.com/zcoin/@zcoinofficial/an-overview-of-blockchain-privacy-mechanisms-and-how-zerocoin-in-zcoin-usdxzc-not-zcash-stacks-up), 467 | 468 | * See also: [Cryptography](#cryptography), [Zero-Knowledge Proof Protocol](#zero-knowledge-proof-protocol) 469 | 470 | 471 | ## Proof-of-Stake 472 | 473 | * [On Stake and Consensus](https://download.wpsoftware.net/bitcoin/pos.pdf), 474 | by Andrew Poelstra 475 | 476 | * [Cryptocurrencies without Proof of Work](https://arxiv.org/abs/1406.5694), 477 | by Iddo Bentov, Ariel Gabizon, Alex Mizrahi 478 | 479 | 480 | ## Proof-of-Work 481 | 482 | * See also: [Handicap Principle](#handicap-principle), [Hashcash](#hashcash), [Selfish Mining Attack](#selfish-mining-attack) 483 | 484 | 485 | ## Raft 486 | 487 | * [The Raft Consensus Algorithm](https://raft.github.io/), 488 | by Diego Ongaro, Et al. 489 | 490 | * [Raft: Understandable Distributed Consensus](http://thesecretlivesofdata.com/raft/), 491 | by Ben Johnson 492 | 493 | * [In Search of an Understandable Consensus Algorithm (Extended Version)](https://raft.github.io/raft.pdf), 494 | by Diego Ongaro, John Ousterhout 495 | 496 | * [Tangaroa: a Byzantine Fault Tolerant Raft](http://www.scs.stanford.edu/14au-cs244b/labs/projects/copeland_zhong.pdf), 497 | by Christopher Copeland, Hongxia Zhong 498 | 499 | 500 | ## Rai 501 | 502 | * [Island Money](https://www.clevelandfed.org/en/newsroom-and-events/publications/economic-commentary/economic-commentary-archives/2004-economic-commentaries/ec-20040201-island-money.aspx), 503 | by Michael F. Bryan 504 | 505 | * [The Rai Stones are huge stone wheels used as currency on the island of Yap](http://www.thevintagenews.com/2017/10/25/the-rai-stones-are-huge-stone-wheels-used-as-currency-on-the-island-of-yap/), 506 | by Boban Docevski 507 | 508 | 509 | ## Randomness 510 | 511 | * [Uniform Non-Random Random Numbers](https://web.archive.org/web/20120107125139/http://changelog.ca/quote/2011/10/29/uniform_non-random_random_numbers), 512 | by Timothy Masters 513 | 514 | * [TIFU by using Math.random()](https://medium.com/@betable/tifu-by-using-math-random-f1c308c4fd9d), 515 | by Mike Malone 516 | 517 | * [The Lava Lamps That Help Keep The Internet Secure](https://youtu.be/1cUUfMeOijg), 518 | by Tom Scott 519 | 520 | * [How can I securely generate a random number in my smart contract?](https://ethereum.stackexchange.com/questions/191/how-can-i-securely-generate-a-random-number-in-my-smart-contract) 521 | 522 | 523 | ## Selfish Mining Attack 524 | 525 | * [Majority is not Enough: Bitcoin Mining is Vulnerable](https://www.cs.cornell.edu/~ie53/publications/btcProcFC.pdf), 526 | by Ittay Eyal and Emin G ̈un Sirer 527 | 528 | * See also: [Proof-of-Work](#proof-of-work) 529 | 530 | 531 | ## Smart Contracts 532 | 533 | * [The Idea of Smart Contracts](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html), 534 | by Nick Szabo 535 | 536 | * See also: [B-Money](#b-money), [Solidity](#solidity) 537 | 538 | 539 | ## Solidity 540 | 541 | * [What's Solidity](https://www.youtube.com/watch?v=v_hU0jPtLto&list=PL16WqdAj66SCOdL6XIFbke-XQg2GW_Avg) 542 | 543 | * [Solidity Bytecode and Opcode Basics](https://medium.com/@blockchain101/solidity-bytecode-and-opcode-basics-672e9b1a88c2), by Bernard Peh 544 | 545 | * [CryptoZombies](https://cryptozombies.io/) 546 | 547 | * [Solidity by Example](https://solidity-by-example.org/) 548 | 549 | 550 | ## Sybil Attack 551 | 552 | * [The Sybil Attack](http://research.microsoft.com/pubs/74220/IPTPS2002.pdf), 553 | by John R. Douceur 554 | 555 | 556 | ## Tamper Detection 557 | 558 | * [The Playdough Protocols](http://nakamotoinstitute.org/the-playdough-protocols/), 559 | by Nick Szabo 560 | 561 | * See also: [Hash Lists](#hash-lists) 562 | 563 | 564 | ## Trust Networks 565 | 566 | * [Advogato's Trust Metric](https://web.archive.org/web/20121025175345/http://www.advogato.org:80/trust-metric.html), 567 | by Raph Levien 568 | 569 | * [Attack Resistant Trust Metrics](http://www.levien.com/thesis/compact.pdf), 570 | by Raph Levien 571 | 572 | * [Advogato Has Failed](https://web.archive.org/web/20170628190710/http://www.advogato.org/article/928.html), 573 | by Bryan Taylor 574 | 575 | * [Lessons from Advogato](https://youtu.be/9KgqtU25dBI), 576 | by Raph Levien 577 | 578 | * [Eigenmorality](https://www.scottaaronson.com/blog/?p=1820), 579 | by Scott Aaronson 580 | 581 | * [Kuro5hin User Sponsorship and Managed Growth](https://web.archive.org/web/20041101000000*/http://www.kuro5hin.org/story/2004/3/24/0502/96199), 582 | by "Rusty" Lawrence Calvin Foster 583 | 584 | * See also: [Sybil Attack](#sybil-attack) 585 | 586 | 587 | ## Worse Is Better 588 | 589 | * [The Rise of “Worse is Better”](https://www.jwz.org/doc/worse-is-better.html), 590 | by Richard P. Gabriel 591 | 592 | * [Worse Is Better](http://dreamsongs.com/WorseIsBetter.html), 593 | by Richard P. Gabriel 594 | 595 | * [“RethinkDB: why we failed” (Worse Is Better: RethinkDB vs MongoDB)](http://www.defmacro.org/2017/01/18/why-rethinkdb-failed.html), 596 | by Slava Akhmechet 597 | 598 | * [Lisp: Good News, Bad News, How to Win Big](http://dreamsongs.com/WIB.html), 599 | by Richard P. Gabriel 600 | 601 | * [Worse Is Better (WikiWikiWeb)](http://wiki.c2.com/?WorseIsBetter) 602 | 603 | 604 | ## Zero-Knowledge Proof Protocol 605 | 606 | * [Zero Knowledge Proofs (Computerphile)](https://youtu.be/HUs1bH85X9I), 607 | by Alberto Sonnino 608 | 609 | * [Zero Knowledge Proofs](https://youtu.be/0Sy6nb72gCk), 610 | by Scott Twombly 611 | 612 | * [Introduction to zkSNARKs](https://youtu.be/jr95o_k_SwI), 613 | by Christian Reitwiessner 614 | 615 | * [Bulletproofs: Short Proofs for Confidential Transactions and More](https://eprint.iacr.org/2017/1066.pdf), 616 | by Benedikt Bünz, Jonathan Bootle, Dan Boneh, Andrew Poelstra, Pieter Wuille, Greg Maxwell 617 | 618 | *** 619 | 620 | **Blockchain Reading List** created, and maintained by [Charles Iliya Krempeaux](http://reiver.link/). 621 | 622 | Canonical URL: https://github.com/reiver/blockchain-reading-list 623 | 624 | --------------------------------------------------------------------------------