Course Subjects List


#1

The following is a WIP list of subjects which will be covered in the course. Feedback & suggestions welcome :slight_smile:

  • Tools
    • Economics
      • Economic Primitives – Auctions, voting, derivatives
      • Staking – Slashing conditions
      • Token models – Kickstarter, access tokens, dividends
    • Cryptography
      • Cryptographic Primitives – Hash functions & blockchains, sigs (pub/priv)
      • Accumulators – Merkle Trees, sparse merkle trees, RSA accumulators
      • Additional Crypto – Onion hashing, commit reveal
      • Fault Proofs
  • Analysis
    • Synchrony Assumptions – Synchronous, partially synchronous, asynchronous
    • Security Models / Honesty Assumptions – Honest majority, rational majority, bribing attacker, uncoordinated & coordinated choice.
    • Fault attribution – attributable & unattributable faults.
    • Griefing Analysis
    • Block withholding
    • Formal Verification
  • Design Patterns
    • Consensus
      • Proof of Work
      • Proof of Authority
      • Proof of Stake
    • Layer 2 Scaling
      • State Channels
      • Plasma
  • General

Course Overview Document
Contribution guidelines
#2

A great list! This looks like it dives pretty deep. I would personally add

  • Specific interesting things that can be analyzed using multiple tools in the post:
  • Dedicated discussion on data availability maybe? Although it would probably be relevant to most items on that list
  • Sharding, both for its own sake and as a source of interesting designs even if they don’t end up in the final spec eg transaction-order commitment thing, availability trap
  • Economics: I think some ideas from “non-blockchain economics” are worth learning :slight_smile:
    • supply, demand, substitution
    • purchasing power
    • public goods
    • incentive-type stuff: adverse selection, moral hazard
  • Cryptography
    • definition of homomorphic encryption
    • definition of zero knowledge
    • definition of threshold signatures eg comparing BLS vs using a bunch of ECDSA signatures
    • pedersen commitments
    • organizing principles? (eg pedersen commitments as a kind of partially homomorphic commitment scheme, ECDSA as a specific kind of zero knowledge proof)
  • Layer 2
    • truebit (IMO truebit-without-injected-faults is much easier to explain than plasma)
  • Analysis
    • the spore framework from georgios piliouras and vlad (there’s a video on youtube) looks like a really nice framework
  • General
    • mechanism design in dapps (makerdao and augur have lots of interesting little things)
    • seignorage shares?
    • analysis of dpos protocols
  • file storage kind stuff eg proof of space as consensus mechanism, filecoin/storj type stuff, non-outsourceable proof of custody
  • The crash fault / byzantine fault difference from traditional distributed systems
  • Maybe traditional BFT protocols?
  • Rough intuition for actual cost of running programs on a laptop (for all the people out there who think dpos/hashgraph/whatever gets high TPS because they “cut down communication costs”)

#3

Both lists look great! Those seem to cover most of it but here’s a random smattering of possible additions.

  • Tools
    • Economics
      • Schelling points
      • Maybe something on token valuation (i.e. velocity sinks, burning), although that’s such a pseudoscience right now…
    • Cryptography
      • Random beacons
  • Design patterns / case studies
    • Consensus
    • Protocol layer
      • Charging rent for blockchain resources (see gastoken.io)
    • Application layer
      • Domain name registry pricing
    • Layer 2 scaling
      • HTLCs and cross-chain atomic swaps

#4

I think eventually it would be fun to look at some auction designs. Maybe not for this course, or as an extra video for cryptoeconomic fun.


#5

what is the assumed background we are thinking?

all the above stuff is super interesting – if we wanted to assume minimal background it would make sense to hav a section on basic game theory

who are these “actors/agents”?

how do we figure out their behavior?

what is a Nash equilibria?

what is incentive-compatible? (a term you see thrown around w/o definition)

and if we wanted to really push for a rigorous approach we could try and ground all the above topics in mechanism design (which i think we all expect will happen eventually but will be outside the scope of this project for now i would guess)


#6

https://programtheblockchain.com/ has a couple of auction implementations that may interest you, I haven’t had the time to go through them yet though


#7

I would call the entire subject “blockchain mechanics” rather than “crypto-economics”, however, that will not happen, but I contribute my principles:

These are basic principles I propose for crypto-economics: https://youtu.be/2Se97PBrMj4


#8

Love the list. Was also speaking to jinglang about educational resources.

Love the open source approach you are taking.
It would be good to do some basic economic terms definition as well


#9

On the crypto category re:ZKP & homomorphic encryption–you could add multi-party computation too right? If they were to be covered in this course, it feels like I’d want them primarily treated as “this is what these tools can do within cryptoeconomics” as opposed to the actual deep dive into their respective implementations–because that feels like a whole entire course in itself :slight_smile:

Agree re: truebit, along w/ state channles and plasma == merkle computing

Other random potential things:

  • Continuous token models
  • Curation markets
  • mechanics of decentralized exchanges (i.e. atomic swaps)
  • replay attacks

#10

I think it’ll be a good idea to showcase TCRs, especially with the adChain Registry going live very soon!


#11

Is it possible to see any examples of research case studies?


#12

To expand the scope of economics study, a few things that I think are noteworthy in economics that relate to cryptocurrency are the following:

  • spontaneous order as a framework (Hayek)
  • local knowledge problem and why centralization cannot coordinate activity well (Hayek)
  • firm organization (Ronald Coase)
  • public choice theory - incredible intro to incentives at work (Buchanan)

#13

Wow, that pretty much covers it. I would like to suggest two minor items too.

  • Economics
    • Game theory (and how it relates to all this)
    • Emergence theory (how the rules of the systems affect users on each level)

:grin:


#14

Great list and ideas by all!

Related to @ralexstokes question on background reading, it might be helpful to have a list of articles, online courses or video (for context or pre-requisites). Particularly for someone, like myself, who may not have a CS background.

Building on the discussion here, i’ve attached a non-exhaustive list of references:
https://github.com/PaulApivat/cryptoeconomics/blob/master/WIP_subjectlist_supplement.pdf

Happy to further flesh this out if people find this useful.

I love the idea of this being project-based. It’s mentioned that we’ll go from centralized paypal to decentralized bitcoin (implement code). Additionally, if the materials could somehow be tied into specific Ethereum research projects, it might be a good way of cementing the learning (and getting people involved in the research) :slight_smile:

Looking forward!


#15

Hi,

Heard about this from Edcon today. Spoke to you earlier regarding the lack of content at the moment haha.

I personally think that blockchain tokens operate a little differently to how money as a token would operate in a standard economy. Therefore I suggest adding a little bit of a primer on the logic of tokens in economics context.

I think it would also be interesting to talk about inflation, deflation, value/cost of storage and recovery as well as new novel ways of sharing tokens for long term e.g. inheritance, deaths (Shamir Secret, multisigs).


#16

thank you. great contribution.


#17

Concerning POS, I’m curious why initially it’ll cost at least 1,500 ETH to run a full node as a validator but later that’ll drop to 32 ETH after sharding.

I’m not complaining in the slightest, but this intuits that sharding’s lowest primitive for security is so distributed that at roughly 2% (32 ETH / 1,500 ETH) sharded Ethereum is roughly 50x less likely to security perturbations if one node falls offline. I knew Ethereum’s future was bright but didn’t think it was this brilliant :stuck_out_tongue:

Link from Edcon for reference:


#18

Contract theory? Not sure if someone has already suggested this topic