SI 486I Spring 2022 / Admin


This is the archived website of SI 486I from the Spring 2022 semester. Feel free to browse around; you may also find more recent offerings at my teaching page.

Midterm study questions

Exam regulations:

  • You have the entire lab time (110 minutes)
  • You can use an individually-prepared study sheet. Just one sheet, both sides. You can use a computer to make it but you have to make it yourself. (Sheets will be collected with the exam.)
  • No other aids or notes will be allowed.
  • Expect some multiple-choice/fill-in questions and some more open ended problems.
  • Anything from Units 1–6 is “fair game”. Thinking about the questions here can help remind you what we learned and guide your studying.

Unit 1: Money as medium of exchange

  1. What is the “double coincidence of wants”? What does it have to do with money?

  2. What are some important characteristics for an asset to be a good medium of exchange?

  3. What does it mean for an economy to be in equilibrium?

  4. Suppose we live in a world with three kinds of people:

    • Delawareans produce beer and want barbecue
    • Marylanders produce horses and want beer
    • Virginians produce barbecue and want horses

    Assume that horses are much more expensive to carry than beer, and beer is much more expensive to carry than barbecue.

    1. In this system, which two kinds of people will never directly trade with each other? (Why not?)

    2. There is one good that will be used only as a medium of exchange. That is, someone will trade for it, even though they don’t actually want to consume it. Which good is used this way, and who is willing to trade for it even through they don’t consume it?

    3. What additional thing could we introduce into this system so that everyone will be willing to trade with everyone else?

Unit 2: Bitcoin overview

  1. Who created Bitcoin, and when?

  2. Thinking of blockchains, what operations need to be fast?

  3. What kind of blockchain actions should be slow, but possible?

  4. What kind(s) of blockchain actions should be infeasible?

  5. A “normal” distributed database works by splitting up some large amount of information across multiple networked servers, so that each server holds part of the database, and they cooperate to be able to look up information for queries.

    In what ways is this the same as a blockchain, and in what ways is it different?

Unit 3: Cryptographic hashing

  1. There are at least two important ways hashing is used for blockchains. What are they?

  2. What are the properties of a good cryptographic hash function?

  3. Which of the following hash functions are no longer considered secure, and why not: Keccak, MD5, SHA1, SHA2, SHA3

  4. In what ways is a hash function similar to performing an encryption? In what ways is it different?

  5. Define a hash function which has good collision resistance but is not hiding. Could this safely be used as the previous block hash for blockchains?

Unit 4: Overlapping Generations and Money is Memory

  1. Suppose that in the OLG economy without money, where people live for two periods - young and old - income of the young is \(\omega^y = 1\) and income of the old is \(\omega^o = 5\). The utility function of a typical household is: \[\log c^y + \log c^o\]

    1. What will be the allocation of consumption when young and when old in the competitive equilibrium?

    2. Is the competitive equilibrium Pareto efficient? If Yes, explain. If No, what allocation makes at least one person better off, without making anyone worse off?

  2. Suppose that in the OLG economy without money, where people live for two periods - young and old - income of the young is \(\omega^y = 8\) and income of the old is \(\omega^o = 0\). The utility function of a typical household is: \[\sqrt{c^y} + \sqrt{c^o}\]

    1. What will be the allocation of consumption when young and when old in the competitive equilibrium?

    2. Is the competitive equilibrium Pareto efficient? If Yes, explain. If No, what allocation makes at least one person better off, without making anyone worse off?

  3. Suppose that in the OLG economy without money, where people live for two periods - young and old - income of the young is \(\omega^y = 5\) and income of the old is \(\omega^o = 1\). The utility function of a typical household is: \[\log c^y + \log c^o\]

    1. Give an example of two different Pareto Efficient allocations.
  4. (Difficult!) Suppose that in the OLG economy with money, where people live for two periods - young and old - income of the young is \(\omega^y = 5\) and income of the old is \(\omega^o = 1\). The utility function of a typical household is: \[\log c^y + \log c^o\] The initial generation that is old in period \(t=1\) is endowed with the amount of money \(m = 6\).

    1. Pick a Pareto Efficient allocation from Question 3, and suppose that allocation is an outcome in a competitive equilibrium with money. What will be the price level?

    2. Suppose that \(m = 8\). In the competitive equilibrium with money from part (a) above, what will be the price level?

  5. In an OLG model, why do households want to keep their consumption constant across periods?

  6. In an OLG model we learned in class, is it possible to shift TOTAL resources between periods?

  7. What does it mean for an allocation to be Pareto Efficient?

  8. Is Pareto Efficiency a useful concept? Why or why not?

  9. If an allocation is Pareto Efficient, does it mean it is “good” or “desirable”?

  10. In an OLG model we learned in class, can you explain under what conditions will a competitive equilibrium without money be Pareto Efficient? Under what conditions will it not be Pareto Efficient?

  11. What does it mean that money is equivalent to memory?

  12. Why an intrinsically worthless asset can serve as a medium of exchange and have a positive value?

  13. Why would you accept something intrinsically useless as a form of payment for a couch you sell on Craigslist?

  14. If Bitcoin is intrinsically useless, does it mean it cannot be used as money? Explain.

Unit 5: Cryptographic puzzles and mining

  1. What two important aspects or rules of the blockchain are used to achieve distributed consensus?

  2. What exactly must a miner do in order to add the next node to the blockchain?

  3. How is it that the time to mine each Bitcoin block is consistently close to 10 minutes, even though the speed of computers (as well as the number of them) mining has increased by orders of magnitude since 2010?

  4. How was “proof of work” supposed to help fight email spam?

  5. In what way(s) is Sudoku not a good example of a cryptographic puzzle?

  6. Here’s another cryptographic puzzle, based on the idea of RSA encryption. I pick two large random prime numbers \(p\) and \(q\), and publish their product \(n=pq\). Now you have to figure out one of the factors of \(n\), either \(p\) or \(q\).

    In what way(s) is this a good cryptographic puzzle, and in what way(s) is it not? Explain.

Unit 6: Digital signatures and transactions

  1. Suppose I create a transaction and send it to all bitcoin miners. But I never see my transaction included in any block that gets mined. What two reasons could there be that my transaction is not being included?

  2. Whose responsibility is it to check the validity of transactions in each block?

  3. What two pieces of information are needed to create a digital signature?

  4. What three pieces of information are needed to verify a digital signature?

  5. Here is a possible digital signature algorithm: Given the message, I compute a cryptographic hash of that message and send this hash as the signature. Because a good hash function is collision-resistant, you know the message can’t be changed without modifying the hash, so it’s secure.

    Why does this not work as a good digital signature algorithm?

  6. Who needs to sign a transaction: the sender, the recipient, the miner, or some combination of them?

  7. What is a UTXO?

  8. Why is it important for transactions to have multiple inputs?

  9. Why is it important for transactions to have multiple outputs?

  10. Why do Bitcoin transactions specify an amount for each output, but don’t specify any amount for the inputs?

  11. Suppose some crypto coin protocol only required signing the transaction inputs, not the outputs. Why would this be bad?