mirror of
https://github.com/seigler/presentation-blockchains
synced 2025-07-26 17:16:11 +00:00
467 lines
18 KiB
HTML
467 lines
18 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Tech Talk: Blockchain</title>
|
|
<link rel="stylesheet" href="styles/main.css" charset="utf-8">
|
|
<link rel="stylesheet" href="styles/blockchain.css" charset="utf-8">
|
|
</head>
|
|
<body class="is-loading">
|
|
<nav>
|
|
<label for="commandField">Command:</label>
|
|
<input list="commands" type="text" id="commandField" autocomplete="off" pattern="[0-9]+|[spc]">
|
|
<ul class="help">
|
|
<li>
|
|
<strong>#</strong> - jump to a slide item
|
|
</li>
|
|
<li>
|
|
<strong>s</strong> - toggle projector simulation
|
|
</li>
|
|
<li>
|
|
<strong>p</strong> - toggle presenter mode
|
|
</li>
|
|
<li>
|
|
<strong>c</strong> - clone window
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
<main>
|
|
|
|
<section class="row title-page">
|
|
<div class="col">
|
|
<img src="styles/blocks.jpg" alt="" class="cover">
|
|
<h1 style="font-weight: 900; background-color: black; color: white; display: inline-block; align-self: flex-end;">Block</h1>
|
|
</div>
|
|
<div class="col">
|
|
<img src="styles/chains.jpg" alt="" class="cover">
|
|
<h1 style="font-weight: 900; background-color: white; color: black; display: inline-block; align-self: flex-start;">Chain</h1>
|
|
</div>
|
|
<div class="notes">Blockchain is this hot new buzzword.
|
|
We have to start with the big one, Bitcoin.</div>
|
|
</section>
|
|
|
|
<section>
|
|
<img src="styles/bitcoin.svg" style="height: 50vmin; width: 50vmin; margin: auto;" alt="">
|
|
<div class="notes">Bitcoin was started in late 2008. Open-sourced January 2009.
|
|
Creator pseudonym Satoshi Nakamoto.
|
|
First <em>decentralized</em> virtual currency.</div>
|
|
</section>
|
|
|
|
<section>
|
|
<img src="styles/cat-money.jpg" alt="" class="cover">
|
|
<div class="cover" style="background-color: rgba(0, 0, 0, 0.6)">
|
|
<h1 style="background-color: #0A0;" class="highlighted">What is money?</h1>
|
|
<!--
|
|
<li>
|
|
<ul janus-timeline janus-future="down">Durable</ul>
|
|
<ul janus-timeline janus-future="down">Portable</ul>
|
|
<ul janus-timeline janus-future="down">Fungible</ul>
|
|
<ul janus-timeline janus-future="down">Divisible</ul>
|
|
<ul janus-timeline janus-future="down">Scarce</ul>
|
|
<ul janus-timeline janus-future="down">Acceptable</ul>
|
|
</li>
|
|
-->
|
|
<!--
|
|
<table class="yesnomaybe" style="font-size: 6vh; border-width: 1.5em 1em 0 0; margin: auto;">
|
|
<thead>
|
|
<tr>
|
|
<th></th>
|
|
<th><div>Durable</div></th>
|
|
<th><div>Portable</div></th>
|
|
<th><div>Divisible</div></th>
|
|
<th><div>Fungible</div></th>
|
|
<th><div>Scarce</div></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<th>Medium of<br>Exchange</th><td class="yes"></td><td class="yes"></td><td></td><td class="yes"></td><td></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Unit of<br>Account</th><td></td><td></td><td class="yes"></td><td class="yes"></td><td></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Store of<br>Value</th><td></td><td></td><td></td><td class="yes"></td><td class="yes"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
-->
|
|
</div>
|
|
<div class="notes">
|
|
Medium of exchange: portable, durable, fungible
|
|
Unit of account: divisible, fungible
|
|
Store of value: durable, scarce, fungible
|
|
|
|
One more property: acceptable
|
|
|
|
Next: things we've used as money</div>
|
|
</section>
|
|
|
|
<section>
|
|
<img src="styles/seashells.jpg" alt="" class="cover">
|
|
<div class="cover" style="background-image: linear-gradient(to left, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0))"></div>
|
|
<table class="yesnomaybe">
|
|
<tbody>
|
|
<tr>
|
|
<th>Durable</th><td class="maybe"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Portable</th><td class="yes"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Divisible</th><td class="maybe"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Fungible</th><td class="no"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Scarce</th><td class="no"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Acceptable</th><td class="maybe"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="notes">Shells
|
|
Used on most continents.
|
|
Still a legal currency in Papua New Guinea alongside their paper money.</div>
|
|
</section>
|
|
|
|
<section>
|
|
<img src="styles/Yap_Stone_Money.jpg" alt="" class="cover">
|
|
<div class="cover" style="background-image: linear-gradient(to left, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0))"></div>
|
|
<table class="yesnomaybe">
|
|
<tbody>
|
|
<tr>
|
|
<th>Durable</th><td class="yes"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Portable</th><td class="no"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Divisible</th><td class="no"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Fungible</th><td class="no"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Scarce</th><td class="yes"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Acceptable</th><td class="no"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<div class="notes">Stone money
|
|
Made in Micronesia and Guam
|
|
Transported to the island of <em>Yap</em> as currency.
|
|
Value from the story of how hard it was to transport.
|
|
Ownership transferred by oral history, stones not moved.</div>
|
|
</section>
|
|
|
|
<section>
|
|
<img src="styles/gold.jpg" alt="" class="cover">
|
|
<div class="cover" style="background-image: linear-gradient(to left, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0))"></div>
|
|
<table class="yesnomaybe">
|
|
<tbody>
|
|
<tr>
|
|
<th>Durable</th><td class="yes"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Portable</th><td class="yes"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Divisible</th><td class="yes"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Fungible</th><td class="yes"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Scarce</th><td class="yes"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Acceptable</th><td class="maybe"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="notes">
|
|
Precious metals, gold and silver.
|
|
Pretty popular.
|
|
Still used today.</div>
|
|
</section>
|
|
|
|
<section>
|
|
<img src="styles/dollars.jpg" alt="" class="cover">
|
|
<div class="cover" style="background-image: linear-gradient(to left, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0))"></div>
|
|
<table class="yesnomaybe">
|
|
<tbody>
|
|
<tr>
|
|
<th>Durable</th><td class="yes"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Portable</th><td class="yes"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Divisible</th><td class="yes"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Fungible</th><td class="maybe"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Scarce</th><td class="no"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Acceptable</th><td class="yes"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="notes">Cash
|
|
Used to represent gold and silver, after World War 2 pretty much everybody decided to switch to unbacked "floating money" so they could fuel government expenses with inflation.</div>
|
|
</section>
|
|
|
|
<section>
|
|
<h1>How could we make<br><em>digital</em> currency?</h1>
|
|
<div class="cover" janus-timeline janus-future="down" janus-past="down">
|
|
<img src="styles/heath.png" alt="" style="position: absolute; height: 60vh; bottom: -5vh; right: 0; transform: rotate(-30deg)">
|
|
</div>
|
|
<div janus-timeline></div>
|
|
<div class="notes">Digital items can be duplicated; how can I send you something the way I do in the physical world? The Yapanese people had the right idea: use a ledger.</div>
|
|
</section>
|
|
|
|
<section>
|
|
<table>
|
|
<tbody style="text-align: right;">
|
|
<tr>
|
|
<th>Joshua</th>
|
|
<td>25</td>
|
|
<td><div janus-timeline janus-future="right" style="color: #F00;"> - 15</div></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Tim</th>
|
|
<td>57</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Dave</th>
|
|
<td>9</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Jack</th>
|
|
<td>12</td>
|
|
<td><div janus-timeline janus-future="right" style="color: #090;"> + 15</div></td>
|
|
</tr>
|
|
<tr>
|
|
<th>George</th>
|
|
<td>40</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="notes">A ledger keeps track each person's money.
|
|
To send money, reduce my account and increase their account.
|
|
Like Paypal.
|
|
|
|
BUT - requires trust</div>
|
|
</section>
|
|
|
|
<section>
|
|
<img src="styles/padlock.jpg" alt="" class="cover">
|
|
<h1 style="color: #f7931a; font-weight: 900; text-shadow: 0 0 2em black; -webkit-text-stroke: 0.025em white">Cryptography</h1>
|
|
<div class="notes">We can use public and private keys to control balances in an anonymous ledger.</div>
|
|
</section>
|
|
|
|
<section>
|
|
<table>
|
|
<tbody style="text-align: right; font-size: 0.8rem">
|
|
<tr>
|
|
<th><code>1D4FA353C82B4</code></th>
|
|
<td>11.5</td>
|
|
<td><div janus-timeline janus-future="right" style="color: #F00;"> - 11</div></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>37563EA8932FB</code></th>
|
|
<td>6.0</td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>D163512ECD12E</code></th>
|
|
<td>9.0</td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>D15F73E98432A</code></th>
|
|
<td>13.5</td>
|
|
<td><div janus-timeline janus-future="right" style="color: #F00;"> - 4</div></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>333BCBA13A54C</code></th>
|
|
<td>9.7</td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>8DCFD9B98C72B</code></th>
|
|
<td>57.0</td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>8DBDA78D8BEF2</code></th>
|
|
<td>1.1</td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>C5F83ED13497A</code></th>
|
|
<td>6.0</td>
|
|
<td><div janus-timeline janus-future="right" style="color: #090;"> + 15</div></td>
|
|
</tr>
|
|
<tr>
|
|
<th><code>92A1E683111A2</code></th>
|
|
<td>30.2</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="notes">Then instead of sending a payment from "Joshua" to "Jack", it's a payment from "private keys A and B" to "public key C".</div>
|
|
</section>
|
|
|
|
<section>
|
|
<div class="cover" style="overflow: hidden;">
|
|
<img src="styles/headstone.svg" style="height: 60vh; margin: 0.5em auto 0" alt="">
|
|
<img src="styles/grass-back.svg" style="position: absolute; z-index: -1; width: 100%; top: 60vh">
|
|
<img src="styles/grass-front.svg" style="position: absolute; width: 100%; top: 66vh">
|
|
</div>
|
|
<div class="notes">There's a company that actually did this, called DigiCash. they maintained a ledger with cryptographically controlled balances. Consumers weren't concerned enough about security or privacy and they ran out of money.
|
|
|
|
Money that depends on a centralized provider can be fragile since there's a single point of failure.</div>
|
|
</section>
|
|
|
|
<section>
|
|
<h1>How to decentralize?</h1>
|
|
<div janus-timeline class="cover" style="z-index: 1;">
|
|
<img src="styles/oprah-giveaway.jpg" alt="" class="cover">
|
|
<h2>You get a ledger! You get a ledger!</h2>
|
|
<h1>YOU ALL GET A LEDGER!!</h1>
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<h1>Double Spending</h1>
|
|
<div class="notes">Real world, double spending is easy.
|
|
Two checks
|
|
First deposit "wins"
|
|
All about timing</div>
|
|
</section>
|
|
|
|
<section style="text-shadow: 0 0 2em black;">
|
|
<img src="styles/byzantine-fresca.jpg" alt="" class="cover">
|
|
<h2>the</h2>
|
|
<h1><em>Byzantine Generals’</em></h1>
|
|
<h2>problem</h2>
|
|
<div class="notes">The Byzantine army is divided into groups, each group led by a general. But some of the generals are traitors. How can the loyal generals share one plan of attack, even in the presence of a small group of traitors?
|
|
|
|
This kind of "antifragile" consensus they are looking for is called "Byzantine consensus".</div>
|
|
</section>
|
|
|
|
<section>
|
|
<img class="cover" src="styles/hashbrowns.jpg" alt="hashbrowns">
|
|
<h1 style="color: black">Hashes</h1>
|
|
<div class="notes">Hashing is a <strong>one-way</strong> transformation of some arbitrary data into some random-seeming but bounded output.
|
|
We can get Byzantine consensus with creative use of hashes.</div>
|
|
</section>
|
|
|
|
<section>
|
|
<img src="styles/envelopes.jpg" alt="" class="cover">
|
|
<h1 style="padding-top: 3em; text-shadow: 0 0 2em black">Proof of Work</h1>
|
|
<div class="notes">In 1997 this guy Adam Back came up with <em>HashCash</em>. The idea is that an email client would brute-force a certain amount of zeros as the output to a cryptographic hashing algorithm.</div>
|
|
</section>
|
|
|
|
<section class="hashpointers">
|
|
<img src="styles/hashpointers-linked-list.svg" alt="" class="contain" style="object-position: 70% 50%">
|
|
<img janus-timeline janus-future="big" src="styles/hashpointers-hashes.svg" alt="" class="contain" style="object-position: 70% 50%">
|
|
<h1 janus-timeline janus-future="left">Hash Pointers</h1>
|
|
<img janus-timeline janus-future="left" src="styles/hashpointers-new-entry.svg" alt="" class="contain" style="object-position: 70% 50%">
|
|
<div class="notes">Good data structure for a log is a linked list. Blocks with lists of transactions, and each one points to the previous block. But we want this log to be tamper-proof.
|
|
Hash pointers can make it so that changes earlier in the chain affect every item after that.</div>
|
|
</section>
|
|
|
|
<section>
|
|
|
|
</section>
|
|
|
|
<section>
|
|
<h1>Applications</h1>
|
|
</section>
|
|
|
|
<section>
|
|
<h1>Money</h1>
|
|
<table class="yesnomaybe" style="margin: 0.5em auto 0; border: none">
|
|
<tbody>
|
|
<tr>
|
|
<th>Durable</th><td class="yes"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Portable</th><td class="yes"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Divisible</th><td class="yes"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Fungible</th><td class="maybe"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Scarce</th><td class="yes"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Acceptable</th><td class="maybe"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="notes"></div>
|
|
</section>
|
|
|
|
<section>
|
|
<h1>Identity</h1>
|
|
<div class="notes">
|
|
payment information
|
|
usernames
|
|
DNS
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<h1>Proof of Existence</h1>
|
|
<div class="notes">
|
|
embedding a hash in the blockchain demonstrates an item's existence at point in the past
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<h1>Digital Assets</h1>
|
|
</section>
|
|
|
|
<section>
|
|
<h1>Smart Contracts</h1>
|
|
<div class="notes">
|
|
DAO
|
|
Ethereum/RootStock
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<h1>Further reading:</h1>
|
|
<ul>
|
|
<li><a href="http://money.visualcapitalist.com/infographic-the-properties-of-money/">Infographic: The Properties of Money</a></li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section class="credits">
|
|
<h1>Credits</h1>
|
|
<ul style="font-size: 0.5rem">
|
|
<li><a href="https://www.flickr.com/photos/stevendepolo/5644838033/"><img src="styles/blocks.jpg" alt="" class="thumbnail">Steven Depolo, Flickr</a></li>
|
|
<li><a href="https://commons.wikimedia.org/w/index.php?curid=161923"><img src="styles/Yap_Stone_Money.jpg" alt="" class="thumbnail">Eric Guinther, English Wikipedia</a></li>
|
|
<li><a href="https://www.flickr.com/photos/ishtaure-dawn/14297543026"><img src="styles/seashells.jpg" alt="" class="thumbnail">Ishataure Dawn, Flickr</a></li>
|
|
<!-- <li><a href="https://www.flickr.com/photos/68751915@N05/6710868859"><img src="styles/giftcards.jpg" alt="" class="thumbnail">401(K) 2010, Flickr</a></li>-->
|
|
<li><a href="https://www.flickr.com/photos/imtfi/5875765289"><img src="styles/money-transaction.jpg" alt="" class="thumbnail">Institute for Money, Technology and Financial Inclusion, Flickr</a></li>
|
|
<!-- <li><a href="https://commons.wikimedia.org/wiki/File:The_Velveteen_Rabbit_pg_37.jpg"><img src="styles/make-it-real.png" alt="" class="thumbnail">Velveteen Rabbit, Margery Williams 1922</a></li>-->
|
|
<li><a href="https://www.flickr.com/photos/ammichaels/7159593410"><img src="styles/hashbrowns.jpg" alt="" class="thumbnail">cheeseslave, Flickr</a></li>
|
|
<li>Emoji art supplied by <a href="http://emojione.com/">EmojiOne</a></li>
|
|
</ul>
|
|
</section>
|
|
|
|
</main>
|
|
<script type="text/javascript" src="libs/openjs-shortcut/shortcut.js"></script>
|
|
<script type="text/javascript" src="scripts/app.js"></script>
|
|
</body>
|
|
</html>
|