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