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.

Final exam study questions

Exam regulations:

  • You can use two individually-prepared study sheets. Two sheets, both sides of both sheets. 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.
  • The exam is cumulative from the entire semester. Thinking about the questions here can help remind you what we learned and guide your studying, but please don’t take this list of questions as exhaustive!

Units 1-6

See midterm study questions and of course your midterm exam itself.

Unit 7: Bitcoin in the real world

  1. What are the main problems or drawbacks to using Bitcoin?

  2. Which of these problems with Bitcoin are specific to Bitcoin itself, or common to all cryptocurrencies, or common to all currencies in general? (And why?)

  3. What is ASIC-based mining and what kind of problems are related to that in particular?

  4. Why is so much Bitcoin mining done in Kazakhstan today?

  5. How it it possible to track stolen Bitcoin? What measures can criminals take to hide or disguise the source of their transactions?

Unit 8: Alternative consensus mechanisms

  1. What is good about Proof of Work that makes it so effective in practice?

  2. What is bad about Proof of Work?

  3. What is ASIC-resistant PoW and what popular blockchain network(s) use this?

  4. How does Proof of Stake work in principle? How do potential miners “stake” their coins and what determines who gets to actually mine/validate the next block?

  5. What popular blockchain network(s) use (or plan to use) proof of stake?

  6. In PoS, how do we ensure that the selected miner doesn’t add invalid transactions to the block?

  7. Explain the “nothing at stake” problem. Why didn’t this exist in PoW-based blockchains? What can be done to avoid this issue?

Unit 9: Ethereum and smart contracts

  1. In what ways do Ethereum blocks differ from Bitcoin blocks? Why were those changes made?

  2. Who created Ethereum and when? How does this history contrast with that of Bitcoin?

  3. What are the two types of accounts on the Ethereum network? Both kinds of accounts have an address, which is basically a public key. For each type, who holds the private key for that account?

  4. What is the Ethereum Virtual Machine (EVM)? How does this make Ethereum fundamentally different than earlier cryptocurrencies such as Bitcoin?

  5. Explain the concept of gas in Ethereum. How are gas fees determined and what makes some transactions more or less expensive than others?

  6. Be able to understand and possibly fix or modify a sample smart contract written in Vyper, similar to the examples we looked at in class and labs. In particular:

    • What does the __init__() method do?
    • What is the difference between a @external or @internal method?
    • What about a @payable method - who pays, and who gets the payment?
    • What does it mean for a method to be marked as @view and why do these get executed right away instead of having to wait for the next block to be mined?
    • When a smart contract calls send(), who is sending money and who is receiving it?
    • What are the meaning of msg.value, msg.sender, and block.timestamp?
    • Why doesn’t Vyper allow regular Python lists or unbounded for loops?
  7. In lab, I made a UBI smart contract to give you some free money. Why did you need to have money first before you could get free money from the UBI smart contract?

  8. What is an NFT and how are they implemented with smart contracts?

Unit 10: Stablecoins and contract enforcement

  1. Why are contracts important and whose job is it to enforce them?

  2. What does it mean to have a high or low cost of contract enforcement? What does it mean for businesses if the cost is higher or lower in a given society?

  3. What is the goal and purpose of a stablecoin?

  4. What is the difference between a currency-backed or algorithmic stablecoin? How does each kind work and what are the challenges associated with each one?

Unit 11: Projects

  1. Recall some details from some of the alternative cryptocurrencies that you learned about from Project 1.

  2. Recall some details from some of the smart contract ideas you learned about from Project 2.