handouts/ho07.tex
changeset 565 d58f8e3e78a5
parent 564 3391a4fc3533
equal deleted inserted replaced
564:3391a4fc3533 565:d58f8e3e78a5
   175 The problem with such messages in a distributed system is that
   175 The problem with such messages in a distributed system is that
   176 what happens if Bob receives 10, say, of these transactions?
   176 what happens if Bob receives 10, say, of these transactions?
   177 Did Alice intend to send him 10 Bitcoins, or did the message
   177 Did Alice intend to send him 10 Bitcoins, or did the message
   178 get duplicated by for example an attacker re-playing a sniffed
   178 get duplicated by for example an attacker re-playing a sniffed
   179 message? What is needed is a kind of serial number for such
   179 message? What is needed is a kind of serial number for such
   180 transactions. This means transaction messages shoul look more like 
   180 transactions. This means transaction messages should look more like 
   181 
   181 
   182 \begin{center}
   182 \begin{center}
   183 $\{\text{I, Alice, am giving Bob Bitcoin \#1234567.}\}_{K^{priv}_{Alice}}$
   183 $\{\text{I, Alice, am giving Bob Bitcoin \#1234567.}\}_{K^{priv}_{Alice}}$
   184 \end{center}
   184 \end{center}
   185 
   185 
   275 
   275 
   276 In Bitcoins you have the ability to both combine incoming
   276 In Bitcoins you have the ability to both combine incoming
   277 transactions, but also to split outgoing transactions to
   277 transactions, but also to split outgoing transactions to
   278 potentially more than one receiver. The latter is also needed.
   278 potentially more than one receiver. The latter is also needed.
   279 Consider again the rightmost transactions in
   279 Consider again the rightmost transactions in
   280 Figure~\ref{txngraph} and suppose Alice is a coffeeshop owner
   280 Figure~\ref{txngraph} and suppose Alice is a coffee shop owner
   281 selling coffees for 1 Bitcoin. Charles received a transaction
   281 selling coffees for 1 Bitcoin. Charles received a transaction
   282 from Zack over 5 Bitcoins, say. How does Charles pay for the
   282 from Zack over 5 Bitcoins, say. How does Charles pay for the
   283 coffee? There is no explicit notion of \emph{change} in the
   283 coffee? There is no explicit notion of \emph{change} in the
   284 Bitcoin system. What Charles has to do instead is to make one
   284 Bitcoin system. What Charles has to do instead is to make one
   285 single transaction with 1 Bitcoin to Alice and with 4 Bitcoins
   285 single transaction with 1 Bitcoin to Alice and with 4 Bitcoins
   620 
   620 
   621 
   621 
   622 
   622 
   623 \subsubsection*{Bitcoins for Real}
   623 \subsubsection*{Bitcoins for Real}
   624 
   624 
   625 Let us now turn to the nitty gritty details. As a participant
   625 Let us now turn to the nitty-gritty details. As a participant
   626 in the Bitcoin network you need to generate and store a
   626 in the Bitcoin network you need to generate and store a
   627 public-private key pair. The public key you need to advertise
   627 public-private key pair. The public key you need to advertise
   628 in order to receive payments (transactions). The private key
   628 in order to receive payments (transactions). The private key
   629 needs to be securely stored. For this there seem to be three
   629 needs to be securely stored. For this there seem to be three
   630 possibilities
   630 possibilities
   640 the private keys and how much security relies on them (recall
   640 the private keys and how much security relies on them (recall
   641 if somebody gets hold of it, your Bitcoins are quickly lost
   641 if somebody gets hold of it, your Bitcoins are quickly lost
   642 forever) I would opt for the third option for anything except
   642 forever) I would opt for the third option for anything except
   643 for trivial amounts of Bitcoins. As we have seen earlier in
   643 for trivial amounts of Bitcoins. As we have seen earlier in
   644 the course, securing a computer system that it can withstand a
   644 the course, securing a computer system that it can withstand a
   645 targeted breakin is still very much an unsolved problem.
   645 targeted break-in is still very much an unsolved problem.
   646 
   646 
   647 An interesting fact with Bitcoin keys is that there is no
   647 An interesting fact with Bitcoin keys is that there is no
   648 check for duplicate addresses. This means when generating a
   648 check for duplicate addresses. This means when generating a
   649 public-private key, you should really start with a carefully
   649 public-private key, you should really start with a carefully
   650 chosen random number such that there is really no chance to
   650 chosen random number such that there is really no chance to
   751 
   751 
   752 One question one often hears is how anonymous is it actually
   752 One question one often hears is how anonymous is it actually
   753 to pay with Bitcoins? Paying with paper money used to be a
   753 to pay with Bitcoins? Paying with paper money used to be a
   754 quite anonymous act (unlike paying with credit cards, for
   754 quite anonymous act (unlike paying with credit cards, for
   755 example). But this has changed nowadays: You cannot come to a
   755 example). But this has changed nowadays: You cannot come to a
   756 bank anymore with a suitcase full of money and try to open a
   756 bank any longer with a suitcase full of money and try to open a
   757 bank account. Strict money laundering and taxation laws mean
   757 bank account. Strict money laundering and taxation laws mean
   758 that not even Swiss banks are prepared to take such money and
   758 that not even Swiss banks are prepared to take such money and
   759 open a bank account. That is why Bitcoins are touted as 
   759 open a bank account. That is why Bitcoins are touted as 
   760 filling this niche again of anonymous payments. 
   760 filling this niche again of anonymous payments. 
   761 
   761 
   828 \item The government could compel ``mayor players'' to blacklist
   828 \item The government could compel ``mayor players'' to blacklist
   829   Bitcoins (for example at Bitcoin exchanges, which are usually
   829   Bitcoins (for example at Bitcoin exchanges, which are usually
   830   located somewhere in the vicinity of the government's reach).  This
   830   located somewhere in the vicinity of the government's reach).  This
   831   would impinge on what is called \emph{fungibility} of Bitcoins and
   831   would impinge on what is called \emph{fungibility} of Bitcoins and
   832   make them much less attractive to baddies. Suddenly their
   832   make them much less attractive to baddies. Suddenly their
   833   ``hard-earned'' Bitcoin money cannot be spent anymore. The attraction
   833   ``hard-earned'' Bitcoin money cannot be spent any more. The attraction
   834   of this option is that this blacklisting can be easily done
   834   of this option is that this blacklisting can be easily done
   835   ``whole-sale'' and therefore be really be an attractive target for
   835   ``whole-sale'' and therefore be really be an attractive target for
   836   governments \& Co.
   836   governments \& Co.
   837 \item The government could attempt to coerce the developer
   837 \item The government could attempt to coerce the developer
   838       community of the Bitcoin tools. While this might be a
   838       community of the Bitcoin tools. While this might be a