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?
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
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