\documentclass[dvipsnames,14pt,t]{beamer}
\usepackage{../slides}
\usepackage{../graphics}
\usepackage{../langs}

\usetikzlibrary{shapes}

% beamer stuff 
\renewcommand{\slidecaption}{APP 08, King's College London}
\newcommand{\bl}[1]{\textcolor{blue}{#1}}

\newcommand{\DOWNarrow}[3]{%
\begin{textblock}{0}(#2,#3)%
\onslide<#1>{%
\begin{tikzpicture}%
\node at (0,0) [single arrow, shape border rotate=270, fill=red,text=red]{a};%
\end{tikzpicture}}%
\end{textblock}}
\newcommand{\LEFTarrow}[3]{%
\begin{textblock}{0}(#2,#3)%
\onslide<#1>{%
\begin{tikzpicture}%
\node at (0,0) [single arrow, shape border rotate=180, fill=red,text=red]{a};%
\end{tikzpicture}}%
\end{textblock}}


\begin{document}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{%
  \begin{tabular}{@ {}c@ {}}
  \\
  \LARGE Access Control and \\[-3mm] 
  \LARGE Privacy Policies (8)\\[-6mm] 
  \end{tabular}}\bigskip\bigskip\bigskip

  \normalsize
  \begin{center}
  \begin{tabular}{ll}Ch
  Email:  & christian.urban at kcl.ac.uk\\
  Office: & S1.27 (1st floor Strand Building)\\
  Slides: & KEATS (also homework is there)\\
  \end{tabular}
  \end{center}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Interlock Protocol}

invented by  Ron Rivest and Adi Shamir (198X?)

\begin{center}
\begin{tabular}{ll@{\hspace{2mm}}l}
1. & $A \to B :$ & $K^{pub}_A$\smallskip\\
2. & $B \to A :$ & $K^{pub}_B$\smallskip\\
3. & & $\{A,m\}_{K^{pub}_B} \;\mapsto\; H_1,H_2$\\
   & & $\{B,m'\}_{K^{pub}_A} \;\mapsto\; M_1,M_2$\\
4. & $A \to B :$ & $H_1$\smallskip\\
5. & $B \to A :$ & $\{H_1, M_1\}_{K^{pub}_A}$\smallskip\\
6. & $A \to B :$ & $\{H_2, M_1\}_{K^{pub}_B}$\smallskip\\
7. & $B \to A :$ & $M_2$
\end{tabular}
\end{center}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Car \& Transponder}

\begin{enumerate}
\item $C$ generates a random number $N$
\item $C$ calculates $\{N\}_K \mapsto F,G$
\item $C \to T$: $N, F$
\item $T$ calculates $\{N\}_K \mapsto F',G'$
\item $T$ checks that $F = F'$
\item $T \to C$: $N, G'$
\item $C$ checks that $G = G'$
\end{enumerate}

Does the car authenticate the transponder? Does the
transponder authenticate the car?

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% student prticipation
%\begin{frame}
%\frametitle{Bitcoins}
%
%P2P, 21 Mio, $10^-8$, Mt~Gox, value decreased?, anonymity, 
%Silk Road, verification incentive, puzzle, SHA-256, slow 
%transactions, 
%
%\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Bitcoins from 10,000m}

\begin{itemize}
\item a crypto ``currency'' by Satoshi Nakamoto (likely a pen name)
\item a digital resource designed to be scarce 
  (max 21 Mio bitcoins---deflationary currency) 
\item mined by solving special puzzles involving hashes
\item transaction history (ledger/blockchain) is P2P distributed (12 GB)
\item two ``mining pools'' produce\\ currently more than 50\% 
  of bitcoins 
\item can be stolen and also lost
\item anonymous?\pause
\item surely a ponzi scheme!
\end{itemize}

\begin{textblock}{7}(11.5,10)
\includegraphics[scale=0.21]{../pics/bitcoin_ledgers.png}
\end{textblock}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Bitcoins}

\begin{itemize}
\item you create a public-private key pair
\item you have a `wallet' which can be
\begin{itemize}
\item electronic (on your computer, passwords)
\item cloud-based (passwords)
\item paper-based
\end{itemize}
and contains only the public-private key

\item Bitcoins can be stolen and lost
\item Mt.~Gox: hacked $\Rightarrow$ insolvent
\item no form of dispute resolution (against current
consumer laws)
\end{itemize}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Underlying Ideas}

It establishing trust in a completely 
untrusted environment\medskip

\begin{itemize}
\item public-private key encryption\medskip
\item digital signatures\medskip
\item cryptographic hashing (SHA-256)
\end{itemize}

\begin{center}
If Alice sends you: \bl{$msg, \{msg\}_{K^{priv}_{Alice}}$}
\ldots ?
\end{center}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Lets Start with Infocoins}

\begin{center}
\bl{$\{\text{I, Alice, am giving Bob one infocoin.}\}_{K^{priv}_{Alice}}$}
\end{center}\bigskip

\begin{itemize}
\item no-one else could have created that message
\item Alice cannot deny the ``intend'' of sending Bob money\pause\bigskip
\item forgery possible only after Alice created the string
\item Q: What is money?\\ 
  A: Well a string like above
  (or later messages like that)
\end{itemize}



\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Double Spend}

\begin{center}
\bl{$\{\text{I, Alice, am giving Bob one infocoin.}\}_{K^{priv}_{Alice}}$}
\end{center}

\begin{itemize}
\item Alice could keep sending Bob this message over and over
      again (did she mean to send 10 ICs?)\pause
\item we need to have a serial number
\begin{center}
\bl{$\{\text{I, Alice, am giving Bob infocoin \#1234567.}\}_{K^{priv}_{Alice}}$}
\end{center}\pause\medskip

\item but then we need a trusted source of serial numbers 
  (e.g.~a bank)
\end{itemize}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{No Banks Please}

With banks we could implement:

\begin{itemize}
\item Bob asks the bank whether the infocoin with that serial
      number belongs to Alice and
\item Alice hasn’t already spent this infocoin.\bigskip 
\item If yes, then Bob tells the bank he accepts the infocoin.
\item The bank updates the records to show that the infocoin
      with that serial number is now in Bob’s possession and
      no longer belongs to Alice.
\end{itemize}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Blockchain}

The solution for double spend: 

\begin{itemize}
\item make everybody the bank, everybody has the entire
      transaction history --- will be called
      \alert{blockchain}\medskip
\item Bob checks whether infocoin belongs to Alice and then
      broadcasts the message to anybody else 
\end{itemize}

\begin{center}
\includegraphics[scale=0.21]{../pics/bitcoin_ledgers.png}
\end{center}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Blockchain}

\begin{center}
\includegraphics[scale=0.5]{../pics/bitcoinblockchain0.png}
\end{center}

\begin{itemize}
\item each block is hashed and contains a reference to
the earlier block; ``validates'' potentially more than one
transaction
\end{itemize}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Transaction Graph}

\mbox{}\hspace{3cm}older \hspace{3cm} current

\begin{center}
\includegraphics[scale=0.5]{../pics/blockchain.png}
\end{center}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Double Spend Again}

\begin{bubble}[10cm]\addtolength{\leftmargini}{5mm}
\begin{itemize}
\item I , Alice, am giving Bob one infocoin, with serial
      number 1234567.
\item I, Alice, am giving \alt<2->{\alert{Alice}}{Charlie} 
      one infocoin with number 1234567.
\end{itemize}
\end{bubble}\bigskip

How should other people update their blockchain (public
register)?\pause


\begin{center}
\includegraphics[scale=0.3]{../pics/bitcoindisagreement.png}
\end{center}


Once enough people have broadcast that message, everyone
updates their block chain to show that infocoin 1234567 now
belongs to Bob, and the transaction is complete.

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Creating Agreement}

\begin{bubble}[10cm]
Once \alert{enough} people have broadcast that message, 
everyone updates their block chain to show that infocoin 
1234567 now belongs to Bob, and the transaction is accepted.
\end{bubble}\bigskip\bigskip
\pause

\small
But what if Alice sets up a large number of separate
identities, let’s say a billion, on the Infocoin network. When
Bob asks the network to validate the transaction, Alice’s
puppet identities say ``Yes his transaction is validated'',
while actually the rest network says Alice's transaction 
is OK?
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{!! Proof-of-Work !!}

The idea is counterintuitive and involves a combination of two
ideas:\bigskip

\begin{bubble}[10cm]
\addtolength{\leftmargini}{5mm}
\begin{itemize}

\item to (artificially) make it computationally costly for
      network users to validate transactions, and

\item to reward them for trying to help validate transactions
\end{itemize}
\end{bubble}\pause\bigskip

\small
this is called mining: whoever validates a transaction will be awarded with
50 bitcoins --- this halves every 210,000 transactions or
roughly every 4 years (currently 25 BC); no new bitcoins after 2140 -- then only 
transaction fees
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Solving Puzzles}

Given a string, say \code{"Hello, world!"}, what is the 
\alert{salt} so the hash starts with a long run of 
zeros?\bigskip

\begin{bubble}[10cm]
\footnotesize\code{h("Hello, world!0") =}\\
\;\;\scriptsize\pcode{1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64}\\
\pause
\footnotesize\code{h("Hello, world!1") =}\\ 
\;\;\scriptsize\pcode{e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8}\\
\pause
\ldots\\
\footnotesize\code{h("Hello, world!4250") =}\\ 
\;\;\scriptsize\pcode{0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9}
\end{bubble}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Hardness}

If we want the output hash value to begin with 10 zeroes,
say, then we will need, on average, to try $16^{10} \approx
10^{12}$ different salts before we find a suitable nonce. 

Hardness can be controlled by setting a \alert{target} (maximum
number).

\begin{center}
\includegraphics[scale=0.37]{../pics/blockchainsolving.png}
\end{center}

%\begin{textblock}{7}(7,10)
%10 mins
%\end{textblock}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Order of Transactions}

If we don’t have such an ordering at any given moment 
then it may not be clear who owns which infocoins.

\begin{center}
\includegraphics[scale=0.38]{../pics/bitcoin_unconfirmed.png}
\end{center}

\small
Say, miner David is lucky and finds a suitable salt
to confirm the transactions. Celebration!\pause \hspace{5mm}??

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Forks}

Typically the blockchain will look as follows

\begin{center}
\includegraphics[scale=0.65]{../pics/block_chain1.png}
\end{center}

\pause
But every so often there is a fork

\begin{center}
\includegraphics[scale=0.65]{../pics/block_chain_fork.png}
\end{center}

\small
\ldots{}bugger this is exactly what we are trying to avoid
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]

The tie is broken if another block is solved

\begin{center}
\includegraphics[scale=0.4]{../pics/bitcoin_blockchain_branches.png}
\end{center}

\small
The rule is: if a fork occurs, people on the network keep
track of all forks. But at any given time, miners only work
to extend whichever fork is longest in their copy of the block
chain.

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Double Spending Again}

So if Alice wants to fake it, she needs to produce
a longer chain:

\begin{center}
\includegraphics[scale=0.4]{../pics/bitcoin_blockchain_double_spend.png}
\end{center}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Racing Against the World}

\begin{columns}
\begin{column}{4.5cm}
\includegraphics[scale=0.3]{../pics/bitcoin_doublespend_blockchain_race.png}
\end{column}
\begin{column}{5.5cm}
\includegraphics[scale=0.3]{../pics/bitcoin_transaction_order_race.png}
\end{column}
\end{columns}\bigskip\bigskip\pause

\small
A transaction is ``confirmed'' if:\smallskip

(1) it is part of a block in the longest fork, and (2) at
least 5 blocks follow it in the longest fork. In this case we
say that the transaction has ``6 confirmations''.\bigskip

\footnotesize (might take 1h+\ldots but for creditcards you have 
6 months chargeback)
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Mining Pools}

\begin{bubble}[10cm]
On average, it would take several years for a typical computer
to solve a block, so an individual’s chance of ever solving
one before the rest of the network, which typically takes 10
minutes, is negligibly low.
\end{bubble}\bigskip\pause

\small
Many people join groups called mining pools that collectively
work to solve blocks, and distribute rewards based on work
contributed. These act somewhat like lottery pools among
co-workers, except that some of these pools are quite large,
and comprise more than 20\% of all the computers in the
network.\medskip

\footnotesize
BTC, the largest mining pool, has limited its members to 
not solve more than 6 blocks in a row.

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Bitcoins for Real}

\begin{itemize}
\item you need a public-private key (the hash of the 
public key to determines your bitcoin address) 

\item if you want to receive bitcoins, you publicise 
this address

\item there are $2^{160}$ possibilities\\ 
(no check for duplicates)
\end{itemize}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[c]
\frametitle{A Transaction Msg}
\small
\lstinputlisting[language=Scala,
                 numbersep=3pt, 
                 xleftmargin=-6mm]{msg}

\DOWNarrow{2}{3.5}{1.6}
\LEFTarrow{3}{3.5}{3}
\LEFTarrow{4}{4.7}{4}
\LEFTarrow{4}{5.4}{4.8}
\LEFTarrow{5}{5.4}{5.6}
\LEFTarrow{6}{5}{6.4}
\DOWNarrow{7}{6}{8.2}
\LEFTarrow{8}{5}{9.7}
\DOWNarrow{9}{7}{9.7}
\DOWNarrow{9}{10}{9.7}
\LEFTarrow{10}{9}{12}
\DOWNarrow{11}{12.5}{12}


\begin{textblock}{0}(7,3)%
\small
\onslide<2,4,7,8,9,10,11,12>{
\begin{bubble}[6cm]%
\only<2>{the hash of the msg that follows; kind of serial number}
\only<4>{the transaction has one inout and one output (could be more)}
\only<7>{the hash of the incoming transaction (incoming serial number)}
\only<8>{use the 0th output of the incoming transaction}
\only<9>{the public key and signature of the sender}
\only<10>{use $x$ amount of the incoming money}
\only<11>{public key of the receiver}
\only<12>{you do not need a central authority to issue serial numbers\bigskip\\
there are no ``coins'', just a long series of transactions}
\end{bubble}}
\end{textblock}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{A Block in the Blockchain}

\begin{center}
\includegraphics[scale=0.38]{../pics/bitcoin_unconfirmed.png}
\end{center}

\begin{itemize}
\item each block is hashed and contains a reference to
the earlier block
\item contains the ``salt'' and address of whoever solved the 
puzzle
\end{itemize}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Transaction History}

you can follow back the transaction history until
you reach either

\begin{itemize}
\item the genesis block (a transaction without input of
50 bitcoins), or
\item a coinbase transaction (this is the reward of the
miner who validated a block of transactions in the blockchain)

\end{itemize}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Lost Bitcoins?}

\begin{itemize}
\item somebody needs to be able to generate a key-pair
  for the signature (for this you need the private 
  key)\bigskip

\item somebody spends your bitcoins fraudulently
  (you cannot charge them back)\ldots{} bad luck

\item you can send bitcoins to a ``non-existing'' address
  (Mt.~Gox)
\end{itemize}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Good Points}

An attacker can't:

\begin{itemize}
\item reverse other people's transactions
\item change the number of coins generated per block
\item create coins out of thin air
\item send coins that never belonged to an attacker
\item you cannot meddle with the ``history''
\end{itemize}\bigskip

The system can be scaled to all world transactions. 

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{But I did not Inhale\ldots}

\begin{center}
\includegraphics[scale=0.4]{../pics/bitcointornetwork.png}
\end{center}

\only<1>{
ledger is public ``forever''; everybody can inspect
how money was transferred from which address to
which address; maybe not ideal for money laundering}
\only<2>{
You should use a new pp-pair for \alert{every} transaction;
but few do (merchants). A design flaw(?): combining transactions.}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Anonymity}
\small

``How anonymous is Bitcoin? Many people claim that Bitcoin can
be used anonymously. This claim has led to the formation of
marketplaces such as Silk Road (and various successors), which
specialize in illegal goods. However, the claim that Bitcoin
is anonymous is a \underline{myth}. The block chain is public,
meaning that it’s possible for anyone to see every Bitcoin
transaction ever. Although Bitcoin addresses aren’t
immediately associated to real-world identities, computer
scientists have done a great deal of work figuring out how to
de-anonymize `anonymous' social networks. The block chain is a
marvellous target for these techniques.''

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Bitcoin vs Gov}

Purported absence of potential government interference?
\pause 
Far from it:
  
\begin{itemize}
  \item government could compel ``mayor players'' to blacklist
     bitcoins (exchanges)
  \item coerce developer community (e.g.~Lavabit)
  \item put pressure on mining pools, or be big a miner 
  itself
\end{itemize} 

\begin{center}
\includegraphics[scale=0.04]{../pics/nsautah1.jpg}
\hspace{3mm}
\includegraphics[scale=0.031]{../pics/nsautah2.jpg}
\end{center}

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Take Home Points}


\begin{itemize}
  \item Don't gamble! I am not a first mover in such things.
  \item Cool idea, but I am sure there will be a Bitcoin~2.0.
  \item It still depends on a lot of old-fashioned security 
  (e.g.~keeping private-keys secret)\bigskip

  \item Having now the knowledge how it works, go back
  and listen to what people/media make of it. 
\end{itemize} 

\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 



\end{document}

%%% Local Variables:  
%%% mode: latex
%%% TeX-master: t
%%% End: 

