|
1 \documentclass[dvipsnames,14pt,t]{beamer} |
|
2 \usepackage{../slides} |
|
3 \usepackage{../graphics} |
|
4 \usepackage{../langs} |
|
5 |
|
6 \usetikzlibrary{shapes} |
|
7 |
|
8 % beamer stuff |
|
9 \renewcommand{\slidecaption}{APP 08, King's College London} |
|
10 \newcommand{\bl}[1]{\textcolor{blue}{#1}} |
|
11 |
|
12 \newcommand{\DOWNarrow}[3]{% |
|
13 \begin{textblock}{0}(#2,#3)% |
|
14 \onslide<#1>{% |
|
15 \begin{tikzpicture}% |
|
16 \node at (0,0) [single arrow, shape border rotate=270, fill=red,text=red]{a};% |
|
17 \end{tikzpicture}}% |
|
18 \end{textblock}} |
|
19 \newcommand{\LEFTarrow}[3]{% |
|
20 \begin{textblock}{0}(#2,#3)% |
|
21 \onslide<#1>{% |
|
22 \begin{tikzpicture}% |
|
23 \node at (0,0) [single arrow, shape border rotate=180, fill=red,text=red]{a};% |
|
24 \end{tikzpicture}}% |
|
25 \end{textblock}} |
|
26 |
|
27 |
|
28 \begin{document} |
|
29 |
|
30 |
|
31 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
32 \begin{frame}[t] |
|
33 \frametitle{% |
|
34 \begin{tabular}{@ {}c@ {}} |
|
35 \\ |
|
36 \LARGE Access Control and \\[-3mm] |
|
37 \LARGE Privacy Policies (8)\\[-6mm] |
|
38 \end{tabular}}\bigskip\bigskip\bigskip |
|
39 |
|
40 \normalsize |
|
41 \begin{center} |
|
42 \begin{tabular}{ll}Ch |
|
43 Email: & christian.urban at kcl.ac.uk\\ |
|
44 Office: & S1.27 (1st floor Strand Building)\\ |
|
45 Slides: & KEATS (also homework is there)\\ |
|
46 \end{tabular} |
|
47 \end{center} |
|
48 |
|
49 \end{frame} |
|
50 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
51 |
|
52 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
53 % student prticipation |
|
54 \begin{frame} |
|
55 \frametitle{Bitcoins} |
|
56 |
|
57 \begin{center} |
|
58 \Huge\bf ? |
|
59 \end{center} |
|
60 |
|
61 \end{frame} |
|
62 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
63 |
|
64 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
65 \begin{frame}[t] |
|
66 \frametitle{Bitcoins from 10,000m} |
|
67 |
|
68 \begin{itemize} |
|
69 \item a crypto ``currency'' by Satoshi Nakamoto (likely a pen name) |
|
70 \item a digital resource designed to be scarce |
|
71 (max 21 Mio bitcoins---deflationary currency) |
|
72 \item mined by solving special puzzles involving hashes |
|
73 \item transaction history (ledger/blockchain) is P2P distributed (12 GB) |
|
74 \item two ``mining pools'' produce\\ currently more than 50\% |
|
75 of bitcoins |
|
76 \item can be stolen and also lost |
|
77 \item anoynmous?\pause |
|
78 \item a ponzi scheme |
|
79 \end{itemize} |
|
80 |
|
81 \begin{textblock}{7}(11.5,10) |
|
82 \includegraphics[scale=0.21]{../pics/bitcoin_ledgers.png} |
|
83 \end{textblock} |
|
84 |
|
85 \end{frame} |
|
86 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
87 |
|
88 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
89 \begin{frame}[t] |
|
90 \frametitle{Bitcoins} |
|
91 |
|
92 \begin{itemize} |
|
93 \item you create a public-private key pair |
|
94 \item you have a wallet which can be |
|
95 \begin{itemize} |
|
96 \item electronic (on you computer, passwords) |
|
97 \item cloud-based (passwords) |
|
98 \item paper-based |
|
99 \end{itemize} |
|
100 |
|
101 \item Mt.~Gox: hacked $\Rightarrow$ insolvent |
|
102 \item no form of dispute resolution |
|
103 \end{itemize} |
|
104 |
|
105 \end{frame} |
|
106 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
107 |
|
108 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
109 \begin{frame} |
|
110 \frametitle{Underlying Ideas} |
|
111 |
|
112 Establishing trust in a completely |
|
113 untrusted environment\medskip |
|
114 |
|
115 \begin{itemize} |
|
116 \item public-private key encryption\medskip |
|
117 \item digital signatures\medskip |
|
118 \item cryptographic hashing (SHA-256) |
|
119 \end{itemize} |
|
120 |
|
121 \begin{center} |
|
122 If Alice sends you: \bl{$msg, \{msg\}_{K^{priv}_{Alice}}$} |
|
123 \ldots |
|
124 \end{center} |
|
125 |
|
126 \end{frame} |
|
127 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
128 |
|
129 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
130 \begin{frame}[t] |
|
131 \frametitle{Lets Start with Infocoins} |
|
132 |
|
133 \begin{center} |
|
134 \bl{$\{\text{I, Alice, am giving Bob one infocoin.}\}_{K^{priv}_{Alice}}$} |
|
135 \end{center}\bigskip |
|
136 |
|
137 \begin{itemize} |
|
138 \item no-one else could have created that message |
|
139 \item Alice cannot deny the ``intend''\pause\bigskip |
|
140 \item forgery possible only after Alice created the string |
|
141 \item Q: What is money? --- A: Well string above |
|
142 (or later messages like that) |
|
143 \end{itemize} |
|
144 |
|
145 |
|
146 |
|
147 \end{frame} |
|
148 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
149 |
|
150 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
151 \begin{frame}[t] |
|
152 \frametitle{Double Spend} |
|
153 |
|
154 \begin{center} |
|
155 \bl{$\{\text{I, Alice, am giving Bob one infocoin.}\}_{K^{priv}_{Alice}}$} |
|
156 \end{center} |
|
157 |
|
158 \begin{itemize} |
|
159 \item Alice could keep sending Bob this message over and over |
|
160 again\pause |
|
161 \item we need to have a serial number |
|
162 \begin{center} |
|
163 \bl{$\{\text{I, Alice, am giving Bob infocoin \#1234567.}\}_{K^{priv}_{Alice}}$} |
|
164 \end{center}\pause\medskip |
|
165 |
|
166 \item but then we need a trusted source of serial numbers (e.g.~bank) |
|
167 \end{itemize} |
|
168 |
|
169 \end{frame} |
|
170 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
171 |
|
172 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
173 \begin{frame}[t] |
|
174 \frametitle{No Banks Please} |
|
175 |
|
176 With banks we could implement: |
|
177 |
|
178 \begin{itemize} |
|
179 \item Bob asks the bank whether the infocoin with that serial |
|
180 number belongs to Alice and |
|
181 \item Alice hasn’t already spent this infocoin. |
|
182 \item If yes, then Bob tells the bank he accept the infocoin |
|
183 \item the bank updates the records to show that the infocoin |
|
184 with that serial number is now in Bob’s possession and |
|
185 no longer belongs to Alice\bigskip\pause |
|
186 \end{itemize} |
|
187 |
|
188 \end{frame} |
|
189 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
190 |
|
191 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
192 \begin{frame}[t] |
|
193 \frametitle{Blockchain} |
|
194 |
|
195 The solution for double spend: |
|
196 |
|
197 \begin{itemize} |
|
198 \item make everybody the bank, everybody has the entire |
|
199 transaction history --- will be called |
|
200 \alert{blockchain}\medskip |
|
201 \item Bob checks whether infocoin belongs to Alice and then |
|
202 broadcasts the message to anybody else |
|
203 \end{itemize} |
|
204 |
|
205 \begin{center} |
|
206 \includegraphics[scale=0.21]{../pics/bitcoin_ledgers.png} |
|
207 \end{center} |
|
208 |
|
209 \end{frame} |
|
210 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
211 |
|
212 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
213 \begin{frame}[t] |
|
214 \frametitle{Blockchain} |
|
215 |
|
216 \begin{center} |
|
217 \includegraphics[scale=0.5]{../pics/bitcoinblockchain0.png} |
|
218 \end{center} |
|
219 |
|
220 \end{frame} |
|
221 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
222 |
|
223 |
|
224 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
225 \begin{frame}[t] |
|
226 \frametitle{Transaction Graph} |
|
227 |
|
228 \mbox{}\hspace{3cm}older \hspace{3cm} current |
|
229 |
|
230 \begin{center} |
|
231 \includegraphics[scale=0.5]{../pics/blockchain.png} |
|
232 \end{center} |
|
233 |
|
234 \end{frame} |
|
235 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
236 |
|
237 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
238 \begin{frame}[t] |
|
239 \frametitle{Double Spend Again} |
|
240 |
|
241 \begin{bubble}[10cm]\addtolength{\leftmargini}{5mm} |
|
242 \begin{itemize} |
|
243 \item I , Alice, am giving Bob one infocoin, with serial |
|
244 number 1234567. |
|
245 \item I, Alice, am giving \alt<2->{\alert{Alice}}{Charlie} |
|
246 one infocoin. |
|
247 \end{itemize} |
|
248 \end{bubble}\bigskip |
|
249 |
|
250 How should other people update their blockchain (public |
|
251 register)?\pause |
|
252 |
|
253 |
|
254 \begin{center} |
|
255 \includegraphics[scale=0.3]{../pics/bitcoindisagreement.png} |
|
256 \end{center} |
|
257 |
|
258 |
|
259 Once enough people have broadcast that message, everyone |
|
260 updates their block chain to show that infocoin 1234567 now |
|
261 belongs to Bob, and the transaction is complete. |
|
262 |
|
263 \end{frame} |
|
264 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
265 |
|
266 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
267 \begin{frame}[t] |
|
268 \frametitle{Creating Agreement} |
|
269 |
|
270 \begin{bubble}[10cm] |
|
271 Once \alert{enough} people have broadcast that message, |
|
272 everyone updates their block chain to show that infocoin |
|
273 1234567 now belongs to Bob, and the transaction is accepted. |
|
274 \end{bubble}\bigskip\bigskip |
|
275 \pause |
|
276 |
|
277 \small |
|
278 But what if Alice sets up a large number of separate |
|
279 identities, let’s say a billion, on the Infocoin network. When |
|
280 Bob asks the network to validate the transaction, Alice’s |
|
281 puppet identities say ``Yes his transaction is validated'', |
|
282 while actually the rest network says Alice's transaction |
|
283 is OK? |
|
284 \end{frame} |
|
285 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
286 |
|
287 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
288 \begin{frame}[t] |
|
289 \frametitle{Proof-Of-Work} |
|
290 |
|
291 The idea is counterintuitive and involves a combination of two |
|
292 ideas:\bigskip |
|
293 |
|
294 \begin{bubble}[10cm] |
|
295 \addtolength{\leftmargini}{5mm} |
|
296 \begin{itemize} |
|
297 |
|
298 \item to (artificially) make it computationally costly for |
|
299 network users to validate transactions, and |
|
300 |
|
301 \item to reward them for trying to help validate transactions |
|
302 \end{itemize} |
|
303 \end{bubble}\pause\bigskip |
|
304 |
|
305 \small |
|
306 this is called mining: whoever validates a transaction will be awarded with |
|
307 50 bitcoins --- this halves every 210,000 transactions or |
|
308 roughly every 4 years; no new bitcoins after 2140 -- then only |
|
309 transaction fees |
|
310 \end{frame} |
|
311 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
312 |
|
313 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
314 \begin{frame}[t] |
|
315 \frametitle{Solving Puzzles} |
|
316 |
|
317 Given a string, say \code{"Hello, world!"}, what is the |
|
318 \alert{salt} that the hash starts with a long run of |
|
319 zeros?\bigskip |
|
320 |
|
321 \begin{bubble}[10cm] |
|
322 \begin{tabular}{l} |
|
323 \footnotesize\code{h("Hello, world!0") =}\\ |
|
324 \;\;\scriptsize\code{1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64}\\ |
|
325 \pause |
|
326 \footnotesize\code{h("Hello, world!1") =}\\ |
|
327 \;\;\scriptsize\code{e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8}\\ |
|
328 \pause |
|
329 \ldots\\ |
|
330 \footnotesize\code{h("Hello, world!4250") =}\\ |
|
331 \;\;\scriptsize\code{0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9} |
|
332 \end{tabular} |
|
333 \end{bubble} |
|
334 |
|
335 \end{frame} |
|
336 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
337 |
|
338 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
339 \begin{frame}[t] |
|
340 \frametitle{Hardness} |
|
341 |
|
342 If we want the output hash value to begin with 10 zeroes, |
|
343 say, then we will need, on average, to try $16^{10} \approx |
|
344 10^{12}$ different salts before we find a suitable nonce. |
|
345 |
|
346 Hardness can be controlled by setting a \alert{target} (maximum |
|
347 number). |
|
348 |
|
349 \begin{center} |
|
350 \includegraphics[scale=0.37]{../pics/blockchainsolving.png} |
|
351 \end{center} |
|
352 |
|
353 \begin{textblock}{7}(7,10) |
|
354 10 mins |
|
355 \end{textblock} |
|
356 |
|
357 \end{frame} |
|
358 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
359 |
|
360 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
361 \begin{frame}[t] |
|
362 \frametitle{Order of Transactions} |
|
363 |
|
364 If we don’t have such an ordering then at any given moment it |
|
365 may not be clear who owns which infocoins. |
|
366 |
|
367 \begin{center} |
|
368 \includegraphics[scale=0.38]{../pics/bitcoin_unconfirmed.png} |
|
369 \end{center} |
|
370 |
|
371 \small |
|
372 Say, miner David is lucky and finds a suitable salt |
|
373 to confirm the transactions. Celebration!\pause \hspace{5mm}?? |
|
374 |
|
375 \end{frame} |
|
376 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
377 |
|
378 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
379 \begin{frame}[t] |
|
380 \frametitle{Forks} |
|
381 |
|
382 Typically the blockchain will look as follows |
|
383 |
|
384 \begin{center} |
|
385 \includegraphics[scale=0.65]{../pics/block_chain1.png} |
|
386 \end{center} |
|
387 |
|
388 \pause |
|
389 But every so often there is a fork |
|
390 |
|
391 \begin{center} |
|
392 \includegraphics[scale=0.65]{../pics/block_chain_fork.png} |
|
393 \end{center} |
|
394 |
|
395 \small |
|
396 \ldots{}bugger this is exactly what we are trying to avoid |
|
397 \end{frame} |
|
398 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
399 |
|
400 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
401 \begin{frame}[t] |
|
402 |
|
403 The tie is broken if another block is solved |
|
404 |
|
405 \begin{center} |
|
406 \includegraphics[scale=0.4]{../pics/bitcoin_blockchain_branches.png} |
|
407 \end{center} |
|
408 |
|
409 \small |
|
410 The rule is this: if a fork occurs, people on the network keep |
|
411 track of all forks. But at any given time, miners only work |
|
412 to extend whichever fork is longest in their copy of the block |
|
413 chain. |
|
414 |
|
415 \end{frame} |
|
416 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
417 |
|
418 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
419 \begin{frame}[t] |
|
420 \frametitle{Double Spending Again} |
|
421 |
|
422 So if Alice wants to fake it she needs to produce |
|
423 a longer chain: |
|
424 |
|
425 \begin{center} |
|
426 \includegraphics[scale=0.4]{../pics/bitcoin_blockchain_double_spend.png} |
|
427 \end{center} |
|
428 |
|
429 \end{frame} |
|
430 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
431 |
|
432 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
433 \begin{frame} |
|
434 \frametitle{Racing Agianst the World} |
|
435 |
|
436 \begin{columns} |
|
437 \begin{column}{4.5cm} |
|
438 \includegraphics[scale=0.3]{../pics/bitcoin_doublespend_blockchain_race.png} |
|
439 \end{column} |
|
440 \begin{column}{5.5cm} |
|
441 \includegraphics[scale=0.3]{../pics/bitcoin_transaction_order_race.png} |
|
442 \end{column} |
|
443 \end{columns}\bigskip\bigskip\pause |
|
444 |
|
445 \small |
|
446 A transaction is ``confirmed'' if:\smallskip |
|
447 |
|
448 (1) it is part of a block in the longest fork, and (2) at |
|
449 least 5 blocks follow it in the longest fork. In this case we |
|
450 say that the transaction has ``6 confirmations''.\bigskip |
|
451 |
|
452 \footnotesize (might take 1h+\ldots but for creditcards you have |
|
453 6 months chargeback) |
|
454 \end{frame} |
|
455 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
456 |
|
457 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
458 \begin{frame}[t] |
|
459 \frametitle{Mining Pools} |
|
460 |
|
461 \begin{bubble}[10cm] |
|
462 On average, it would take several years for a typical computer |
|
463 to solve a block, so an individual’s chance of ever solving |
|
464 one before the rest of the network, which typically takes 10 |
|
465 minutes, is very low. |
|
466 \end{bubble}\bigskip\pause |
|
467 |
|
468 \small |
|
469 Many people join groups called mining pools that collectively |
|
470 work to solve blocks, and distribute rewards based on work |
|
471 contributed. These act somewhat like lottery pools among |
|
472 co-workers, except that some of these pools are quite large, |
|
473 and comprise more than 20\% of all the computers in the |
|
474 network.\medskip |
|
475 |
|
476 \footnotesize |
|
477 BTC, the largest mining pool, has limited its members to |
|
478 not solve more than 6 blocks in a row. |
|
479 |
|
480 \end{frame} |
|
481 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
482 |
|
483 |
|
484 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
485 \begin{frame}[t] |
|
486 \frametitle{Bitcoins for Real} |
|
487 |
|
488 \begin{itemize} |
|
489 \item you need a public-private key (the hash of the |
|
490 public key to determines your bitcoin address) |
|
491 |
|
492 \item if you want to receive bitcoins, you publicise |
|
493 this address |
|
494 |
|
495 \item there are $2^{160}$ possibilities\\ |
|
496 (no check for duplicates) |
|
497 \end{itemize} |
|
498 |
|
499 \end{frame} |
|
500 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
501 |
|
502 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
503 \begin{frame}[c] |
|
504 \frametitle{A Transaction Msg} |
|
505 \small |
|
506 \lstinputlisting[language=Scala, |
|
507 numbersep=3pt, |
|
508 xleftmargin=-6mm]{msg} |
|
509 |
|
510 \DOWNarrow{2}{3.5}{1.6} |
|
511 \LEFTarrow{3}{3.5}{3} |
|
512 \LEFTarrow{4}{4.7}{4} |
|
513 \LEFTarrow{4}{5.4}{4.8} |
|
514 \LEFTarrow{5}{5.4}{5.6} |
|
515 \LEFTarrow{6}{5}{6.4} |
|
516 \DOWNarrow{7}{6}{8.2} |
|
517 \LEFTarrow{8}{5}{9.7} |
|
518 \DOWNarrow{9}{7}{9.7} |
|
519 \DOWNarrow{9}{10}{9.7} |
|
520 \LEFTarrow{10}{9}{12} |
|
521 \DOWNarrow{11}{12.5}{12} |
|
522 |
|
523 |
|
524 \begin{textblock}{0}(7,3)% |
|
525 \small |
|
526 \onslide<2,4,7,8,9,10,11,12>{ |
|
527 \begin{bubble}[6cm]% |
|
528 \only<2>{the hash of the msg that follows; kind of serial number} |
|
529 \only<4>{the transaction has one inout and one output (could be more)} |
|
530 \only<7>{the hash of the incoming transaction (incoming serial number)} |
|
531 \only<8>{use the 0th output of the incoming transaction} |
|
532 \only<9>{the public key and signature of the sender} |
|
533 \only<10>{use $x$ amount of the incoming money} |
|
534 \only<11>{public key of the receiver} |
|
535 \only<12>{you do not need a central authority to issue serial numbers\bigskip\\ |
|
536 there are no ``coins'', just a long series of transactions} |
|
537 \end{bubble}} |
|
538 \end{textblock} |
|
539 |
|
540 \end{frame} |
|
541 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
542 |
|
543 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
544 \begin{frame} |
|
545 \frametitle{Transaction History} |
|
546 |
|
547 you can follow back the transaction history until |
|
548 you reach either |
|
549 |
|
550 \begin{itemize} |
|
551 \item the genesis block (a transaction without input of |
|
552 50 bitcoins) |
|
553 \item coinbase transaction (this is the reward of the |
|
554 miner who validated a block of transactions in the blockchain) |
|
555 |
|
556 \end{itemize} |
|
557 |
|
558 \end{frame} |
|
559 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
560 |
|
561 |
|
562 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
563 \begin{frame}[t] |
|
564 \frametitle{Lost Bitcoins?} |
|
565 |
|
566 \begin{itemize} |
|
567 \item somebody needs to be able to generate a key-pair |
|
568 for the signature (for this you need the private |
|
569 key)\bigskip |
|
570 |
|
571 \item somebody spends your bitcoins fraudulently |
|
572 (you cannot charge them back)\ldots{} bad luck |
|
573 |
|
574 \item you can send bitcoins to a ``non-existing'' address |
|
575 (Mt.~Gox) |
|
576 \end{itemize} |
|
577 |
|
578 \end{frame} |
|
579 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
580 |
|
581 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
582 \begin{frame}[t] |
|
583 \frametitle{Good Points} |
|
584 |
|
585 An attacker can't: |
|
586 |
|
587 \begin{itemize} |
|
588 \item reverse other people's transactions |
|
589 \item change the number of coins generated per block |
|
590 \item create coins out of thin air |
|
591 \item send coins that never belonged to an attacker |
|
592 \end{itemize}\bigskip |
|
593 |
|
594 The system can be scaled to all world transactions. |
|
595 |
|
596 \end{frame} |
|
597 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
598 |
|
599 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
600 \begin{frame}[t] |
|
601 \frametitle{But I did not Inhale} |
|
602 |
|
603 \begin{center} |
|
604 \includegraphics[scale=0.04]{../pics/bitcointornetwork.png} |
|
605 \end{center} |
|
606 |
|
607 \end{frame} |
|
608 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
609 |
|
610 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
611 \begin{frame}[t] |
|
612 \frametitle{Anonymity} |
|
613 |
|
614 Bitcoins may not be ideal for money laundering because all |
|
615 transactions are public.[218] Authorities have expressed |
|
616 concerns, however. |
|
617 |
|
618 How anonymous is Bitcoin? Many people claim that Bitcoin can be used |
|
619 anonymously. This claim has led to the formation of marketplaces such |
|
620 as Silk Road (and various successors), which specialize in illegal |
|
621 goods. However, the claim that Bitcoin is anonymous is a myth. The |
|
622 block chain is public, meaning that it’s possible for anyone to see |
|
623 every Bitcoin transaction ever. Although Bitcoin addresses aren’t |
|
624 immediately associated to real-world identities, computer scientists |
|
625 have done a great deal of work figuring out how to de-anonymize |
|
626 “anonymous” social networks. The block chain is a marvellous target |
|
627 for these techniques. |
|
628 |
|
629 \end{frame} |
|
630 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
631 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
632 \begin{frame}[t] |
|
633 \frametitle{Bitcoin vs Gov} |
|
634 |
|
635 Purported absence of potential government interference? |
|
636 \pause |
|
637 Far from it: |
|
638 |
|
639 \begin{itemize} |
|
640 \item government could compel ``mayor players'' to blacklist |
|
641 bitcoins (exchanges) |
|
642 \item coerce developer community (e.g.~Lavabit) |
|
643 \item put pressure on mining pools, or be big a miner |
|
644 itself |
|
645 \end{itemize} |
|
646 |
|
647 \begin{center} |
|
648 \includegraphics[scale=0.04]{../pics/nsautah1.jpg} |
|
649 \hspace{3mm} |
|
650 \includegraphics[scale=0.031]{../pics/nsautah2.jpg} |
|
651 \end{center} |
|
652 |
|
653 \end{frame} |
|
654 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
655 |
|
656 |
|
657 |
|
658 |
|
659 \end{document} |
|
660 |
|
661 %%% Local Variables: |
|
662 %%% mode: latex |
|
663 %%% TeX-master: t |
|
664 %%% End: |
|
665 |