Lecture 11: Bitcoin

What is Bitcoin?


Designing Bitcoin: Identity


(True/False) In Bitcoin each user has a symmetric key associated with their identity.




Designing Bitcoin: Transactions



In Bitcoin, how do we make sure a user can only spend money they have?




Designing Bitcoin: Blockchain



(True/False) If instead of hashing the entire previous block in our blockchain, we just hashed part of it, this would still be secure since an attacker can’t break collision resistance.




Designing Bitcoin: Motivating Consensus


Consider a version of the protocol we’ve seen thus far, which requires two individuals working together to add a block to the hashchain. Assume there is only a single adversary, Mallory, in the network - can she double-spend via a fork?




Bitcoin Review


Proof of Work


(True/False) In Bitcoin Proof-of-Work, if the hash function isn’t one-way then an attacker can always win by bruteforcing a valid pre-image.




Proof of Work Example


Proof of Work Security


In Bitcoin, Proof-of-Work (PoW) requires miners to find some random number n such that Hash(block || n) has a certain number of zeroes in it. What would happen if instead, miners had to find Hash(n) for which this held?




Consensus & Mining


(True/False) Even if the network eventually switches to an alternate, longer chain, a miner will still receive a mining award




Mining pools


Why might having large mining pools be worrysome?




Anonymity and Conclusions


If someone bought something from you over Bitcoin, how could you track their future transactions?


Note: We won’t have time to cover certificate transparency, but for those interested see here