author | Christian Urban <christian dot urban at kcl dot ac dot uk> |
Thu, 20 Nov 2014 14:48:11 +0000 | |
changeset 319 | e6afcdabd3ea |
parent 318 | f376d16470e0 |
child 320 | bd5775cc8a45 |
permissions | -rw-r--r-- |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
1 |
\documentclass{article} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
2 |
\usepackage{../style} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
3 |
\usepackage{../graphics} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
4 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
5 |
\begin{document} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
6 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
7 |
\section*{Handout 7 (Bitcoins)} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
8 |
|
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
9 |
In my opinion Bitcoins are an elaborate Ponzi |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
10 |
scheme\footnote{\url{http://en.wikipedia.org/wiki/Ponzi_scheme}}---still |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
11 |
the ideas behind them are really beautiful and not too |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
12 |
difficult to understand. Since many colourful claims about |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
13 |
Bitcoins float around in the mainstream media, it will be |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
14 |
instructive to re-examine such claims from a more technically |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
15 |
informed vantage point. For example, it is often claimed that |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
16 |
Bitcoins are anonymous and free from any potential government |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
17 |
meddling. It turns out that the first claim ignores a lot of |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
18 |
research in de-anonymising social networks, and the second |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
19 |
underestimates the persuasive means a government has at their |
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
20 |
disposal. |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
21 |
|
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
22 |
There are a lot of articles, blogposts and so on available |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
23 |
about Bitcoins. Below I will follow closely the very readable |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
24 |
explanations from |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
25 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
26 |
\begin{center} |
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
27 |
\url{http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-actually-works/} \;\;and\smallskip\\ |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
28 |
\url{http://www.imponderablethings.com/2013/07/how-bitcoin-works-under-hood.html} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
29 |
\end{center} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
30 |
|
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
31 |
\noindent |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
32 |
The latter also contains a link to a nice youtube video. |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
33 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
34 |
Let us start with the question who invented Bitcoins? You |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
35 |
could not make up the answer, but we actually do not know who |
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
36 |
the inventor is. All we know is that the first paper |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
37 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
38 |
\begin{center} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
39 |
\url{https://bitcoin.org/bitcoin.pdf} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
40 |
\end{center} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
41 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
42 |
\noindent is signed by Satoshi Nakamoto, which however is |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
43 |
likely only a pen name. There is a lot of speculation who |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
44 |
could be the inventor, or inventors, but we simply do not |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
45 |
know. This part of Bitcoins is definitely anonymous. The first |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
46 |
Bitcoin transaction was made in January 2009. The rules in |
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
47 |
Bitcoin are set up so that there will ever only be 21 Million |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
48 |
Bitcoins with the maximum reached around the year 2140. |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
49 |
Contrast this with traditional fiat currencies where money can |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
50 |
be printed almost at will. The smallest unit of a Bitcoin is |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
51 |
called a Satoshi which is the $10^{-8}$th part of a Bitcoin. |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
52 |
Remember a Penny is the $10^{-2}$th part of a Pound. |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
53 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
54 |
The two main cryptographic building blocks of Bitcoins are |
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
55 |
cryptographic hashing (SHA-256) and public-private keys using |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
56 |
the elliptic-curve encryption scheme for digital signatures. |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
57 |
Hashes are used to generate `fingerprints' of data that ensure |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
58 |
integrity. Public-private keys are used for signatures. For |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
59 |
example sending a message, say $msg$, together with the |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
60 |
encrypted version |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
61 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
62 |
\[ |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
63 |
msg, \{msg\}_{K^{priv}} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
64 |
\] |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
65 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
66 |
\noindent allows everybody with access to the public key to |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
67 |
verify the message came from the person who knew the private |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
68 |
key. Signatures are used in Bitcoins for verifying the |
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
69 |
addresses where the Bitcoins are sent from. Addresses in |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
70 |
Bitcoins are essentially the public keys. There are $2^{160}$ |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
71 |
possible addresses, which is such a vast amount that there is |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
72 |
not even a check for duplicates, or already used addresses. If |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
73 |
you start with a random number to generate a public-private |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
74 |
key pair it is very unlikely that you step on somebody else's |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
75 |
shoes. Compare this with email-addresses you ever wanted to |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
76 |
register with, say, Googlemail, but which were always already |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
77 |
taken. |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
78 |
|
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
79 |
One main difference between Bitcoins and, say, traditional |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
80 |
banking is that you do not have a place that records the |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
81 |
balance on your account. Traditional banking involves a |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
82 |
central ledger which specifies the current balance in each |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
83 |
account, for example |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
84 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
85 |
\begin{center} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
86 |
\begin{tabular}{l|r} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
87 |
account & balance\\\hline |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
88 |
Alice & \pounds{10.01}\\ |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
89 |
Bob & \pounds{4.99}\\ |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
90 |
Charlie & -\pounds{1.23}\\ |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
91 |
Eve & \pounds{0.00} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
92 |
\end{tabular} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
93 |
\end{center} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
94 |
|
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
95 |
\noindent Bitcoins work differently in that there is no such |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
96 |
central ledger, but instead a public record of all |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
97 |
transactions ever made. This means spending money corresponds |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
98 |
to sending messages of the (rough) form |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
99 |
|
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
100 |
\begin{equation} |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
101 |
\{\text{I, Alice, am giving Bob one Bitcoin.}\}_{K^{priv}_{Alice}} |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
102 |
\end{equation} |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
103 |
|
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
104 |
\noindent These are the transactions that are the only data |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
105 |
that is ever stored (we will come to the precise details later |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
106 |
on). The transactions are encrypted with Alice's private key |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
107 |
such that everybody, including Bob, can use Alice's public key |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
108 |
$K^{pub}_{Alice}$ for verifying that this message came really |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
109 |
from Alice, or more precisely from the person who knows |
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
110 |
$K^{priv}_{Alice}$. |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
111 |
|
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
112 |
The problem with such messages in a distributed system is what |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
113 |
happens if Bob receives 10, say, of these transactions. Did |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
114 |
Alice intend to send him 10 Bitcoins, or did the message get |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
115 |
duplicated by for example an attacker re-playing a sniffed |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
116 |
message? What is needed is a kind of serial number for such |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
117 |
transactions. This means transaction messages look more like |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
118 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
119 |
\begin{center} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
120 |
$\{\text{I, Alice, am giving Bob Bitcoin \#1234567.}\}_{K^{priv}_{Alice}}$ |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
121 |
\end{center} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
122 |
|
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
123 |
\noindent There are two difficulties, however, that need to be |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
124 |
solved. One is who is assigning serial numbers to Bitcoins and |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
125 |
also how can Bob verify that Alice actually owns this Bitcoin |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
126 |
to pay him? In a system with a bank as trusted third-party, |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
127 |
Bob could do the following: |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
128 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
129 |
\begin{itemize} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
130 |
\item Bob asks the bank whether the Bitcoin with that serial |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
131 |
number belongs to Alice and Alice hasn’t already spent |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
132 |
this Bitcoin. |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
133 |
\item If yes, then Bob tells the bank he accepts this Bitcoin. |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
134 |
The bank updates the records to show that the Bitcoin |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
135 |
with that serial number is now in Bob’s possession and |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
136 |
no longer belongs to Alice. |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
137 |
\end{itemize} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
138 |
|
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
139 |
\noindent But for this banks would need to be trusted and |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
140 |
would also be an easy target for any government interference, |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
141 |
for example. Think of the early days of music sharing where |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
142 |
the company Napster was the single point of ``failure'' which |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
143 |
was taken offline by law enforcement. |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
144 |
|
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
145 |
Bitcoin solves the problem of not wanting to rely on a bank by |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
146 |
making everybody the ``bank''. Everybody who cares can have |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
147 |
the entire transactions history starting with the first |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
148 |
transaction made in January 2009. This history of transactions |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
149 |
is called \emph{blockchain}. Bob, for example, can use his |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
150 |
copy of the blockchain for determining whether Alice owned the |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
151 |
Bitcoin and if yes transmits the message to every other |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
152 |
participant on the Bitcoin network. The blockchain looks |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
153 |
roughly like a very long chain of individual blocks |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
154 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
155 |
\begin{center} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
156 |
\includegraphics[scale=0.4]{../pics/bitcoinblockchain0.png} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
157 |
\end{center} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
158 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
159 |
\noindent Each block contains a list of individual |
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
160 |
transactions, called txn in the picture above, and also a |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
161 |
reference to the previous block, called prev. The data in a |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
162 |
block (txn's and prev) is hashed so that the reference and |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
163 |
transactions in them cannot be tampered with. This hash is the |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
164 |
unique serial number of each block. Since this |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
165 |
previous-block-reference is also part of the hash, the whole |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
166 |
chain is robust against tampering. I let you think why this is |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
167 |
the case. \ldots{}But does it eliminate all possibilities of |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
168 |
fraud? |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
169 |
|
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
170 |
We can check the consistency of the blockchain by checking the |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
171 |
entire block\-chain whether the references and hashes are |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
172 |
correctly recorded. I have not tried it myself, but it is said |
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
173 |
that with the current amount of data (appr.~12GB) it takes |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
174 |
roughly a day to check the consistency of the blockchain on a |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
175 |
``normal'' computer. Fortunately this ``extended'' consistency |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
176 |
check usually only needs to be done once. |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
177 |
|
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
178 |
Recall I wrote earlier that Bitcoins do not maintain a ledger |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
179 |
listing all the current balances in each account. Instead they |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
180 |
record only transactions. Therefore it is possible to extract |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
181 |
from the blockchain a transaction graph that looks like the |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
182 |
picture shown in Figure~\ref{txngraph}. Take for example the |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
183 |
rightmost lower transaction from Charles to Emily. This |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
184 |
transaction has as receiver the address of Emily and as the |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
185 |
sender the address of Charles. In this way no Bitcoins can |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
186 |
appear out of thin air (we will discuss later how Bitcoins are |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
187 |
actually generated). If Charles did not have a transaction of |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
188 |
at least the amount he wants to give Emily to his name |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
189 |
(i.e.~send to an address with his public-private key) then |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
190 |
there is no way he can make a payment to Emily. Equally, if |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
191 |
now Emily wants to pay for a coffee, say, with the Bitcoin she |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
192 |
received from Charles she can only make a transaction to |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
193 |
forward the message she received. The only slight complication |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
194 |
with is that incoming transactions can be combined in a |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
195 |
transaction and ``outgoing'' Bitcoins can be split. For |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
196 |
example in the leftmost upper transactions in |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
197 |
Figure~\ref{txngraph} Fred makes a payment to Alice. But this |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
198 |
payment (or transaction) combines the Bitcoins that were send |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
199 |
by Jane to Fred and also by Juan to Fred. This allows you to |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
200 |
``consolidate'' your funds: if there was always only a way to |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
201 |
split transactions, then the amounts would get smaller and |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
202 |
smaller. But it is also important to be able to split the |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
203 |
money from one or more incoming transaction to more than one |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
204 |
receiver. Consider again the rightmost transactions in |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
205 |
Figure~\ref{txngraph} and suppose Alice is a coffeeshop owner |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
206 |
selling coffees for 1 Bitcoin. Charles received a transaction |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
207 |
from Zack over 5 Bitcoins. How does he pay for the coffee? |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
208 |
There is no real notion of change in the Bitcoin system. What |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
209 |
Charles has to do instead is to make one single transaction |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
210 |
with 1 Bitcoin to Alice and with 4 Bitcoins going back to |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
211 |
himself. Which Charles can then use to give to Emily. |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
212 |
|
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
213 |
\begin{figure}[t] |
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
214 |
\begin{center} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
215 |
\includegraphics[scale=0.4]{../pics/blockchain.png} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
216 |
\end{center} |
319
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
217 |
\caption{Transaction graph that is implicitly recorded in the |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
218 |
public blockchain.\label{txngraph}} |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
219 |
\end{figure} |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
220 |
|
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
221 |
Let us make another example. Let us assume Emily received 4 |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
222 |
Bitcoins from Charles and independently has another |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
223 |
transaction (not shown in the picture) that sends 6 Bitcoins |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
224 |
to her. If she now wants to buy a coffee from Alice for 1 |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
225 |
Bitcoin she has two possibilities. She could just forward the |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
226 |
transaction from Charles over 4 Bitcoins to Alice splitted in |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
227 |
such a way that Alice receives 1 Bitcoin and Emily sends the |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
228 |
remaining 3 Bitcoins `back' to herself. In this case she would |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
229 |
now be in the ``posession'' of two unspend Bitcoin |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
230 |
transactions, one over 3 Bitcoins and the independent one over |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
231 |
6 Bitcoins. Or, Emily could combine both transactions (one |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
232 |
over 4 Bitcoins from Charles and the independent one over 6 |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
233 |
Bitcoins) and then split this amount with 1 Bitcoin going to |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
234 |
Alice and 9 Bitcoins going back to herself. |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
235 |
|
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
236 |
I let you have time to let this concept of transactions sink |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
237 |
in\ldots{}in the words of a famous 60ies Band: ``All you need |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
238 |
is transactions''. There is no need for a central ledger and |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
239 |
no need for an account balance from traditional banking. The |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
240 |
closest what Bitcoin has to offer for a notion of a balance in |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
241 |
a bank account are the unspend transaction that a person (that |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
242 |
is public-private key address) received. That means |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
243 |
transactions that can still be forwarded. |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
244 |
|
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
245 |
Also consider the fact that whatever transaction is recorded |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
246 |
in the blockchain is what will set the ``historical record''. |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
247 |
If a transaction says 1 Bitcoin from address $A$ to address |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
248 |
$B$, then this is what will be recorded. This is also how |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
249 |
Bitcoins can actually get lost: if you forget your private key |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
250 |
and you had just a message forwarded to you address of the |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
251 |
public key, then bad luck: you will never be able to forward |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
252 |
this message again, because you will not be able to form a |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
253 |
valid message that sends this to somebody else (we will see |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
254 |
the details of this later). But this is also a way how you can |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
255 |
get robbed of your Bitcoins. An attacker might get hold of |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
256 |
your private key and then quickly forward the Bitcoins in your |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
257 |
name to an address the attacker controls. You have never again |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
258 |
access to these Bitcoins, because for the Bitcoin system they |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
259 |
are assumed to be spend. And remember with Bitcoins you cannot |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
260 |
appeal to any higher authority. Once it is gone, it is gone. |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
261 |
This is different with traditional banking where at least you |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
262 |
can try to harass the bank to rollback the transaction. |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
263 |
|
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
264 |
|
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
265 |
This brings us to back to problem of double spend. Say Bob is |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
266 |
a merchant. How can he make sure that Alice does not cheat. |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
267 |
She could for example send a transaction to Bob. But also to |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
268 |
Charlie, or even herself. If Bob is also in the coffee |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
269 |
business, he would potentially be cheated out of his money. |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
270 |
The problem is how should people update their blockchain? |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
271 |
You might end up with a picture like this |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
272 |
|
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
273 |
\begin{center} |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
274 |
\includegraphics[scale=0.3]{../pics/bitcoindisagreement.png} |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
275 |
\end{center} |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
276 |
|
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
277 |
\noindent Alice convinced some part of the ``world'' that she |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
278 |
is still owner of the bitcoin and some other part of the |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
279 |
``world'' thinks its Bob's. How should such a disagreement be |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
280 |
resolved? This is actually the main hurdle where Bitcoin |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
281 |
really innovated. The answer is that Bob needs to convince |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
282 |
``enough'' people on the network that the transaction from |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
283 |
Alice to him is legit. But what means enough in a distributed |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
284 |
system? If Alice sets up network of a billion puppy identidies |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
285 |
and whenever Bob tries to ask whether Alice is the rightful |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
286 |
owner of the Bitcoin and Alice just send a transaction to him, |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
287 |
the puppy network of identities just says yes. Bob would then |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
288 |
give the coffee to Alice, but then for everybody else the |
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
289 |
|
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
290 |
|
e6afcdabd3ea
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
318
diff
changeset
|
291 |
|
318
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
292 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
293 |
\end{document} |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
294 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
295 |
bit coin |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
296 |
https://bitcoin.org/bitcoin.pdf |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
297 |
https://bitcoin.org/bitcoin.pdf |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
298 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
299 |
A fistful of bitcoins |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
300 |
http://cseweb.ucsd.edu/~smeiklejohn/files/imc13.pdf |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
301 |
http://cseweb.ucsd.edu/~smeiklejohn/files/imc13.pdf |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
302 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
303 |
Ross Anderson & Co (no dispute resolution; co-ercion) |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
304 |
http://www.cl.cam.ac.uk/~sjm217/papers/fc14evidence.pdf |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
305 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
306 |
http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-actually-works/ |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
307 |
http://www.imponderablethings.com/2013/07/how-bitcoin-works-under-hood.html |
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
308 |
|
f376d16470e0
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff
changeset
|
309 |
http://randomwalker.info/bitcoin/ |