Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mod3 - Unstoppable Application #402

Merged
merged 21 commits into from
Jan 17, 2023
Merged

Mod3 - Unstoppable Application #402

merged 21 commits into from
Jan 17, 2023

Conversation

nuke-web3
Copy link

@nuke-web3 nuke-web3 commented Dec 12, 2022

@nuke-web3 nuke-web3 self-assigned this Dec 12, 2022
@@ -351,6 +348,38 @@ A measure of the value that block authors can extract based on their knowledge o
- Backrunning
- Sandwiching

> https://www.mev.wiki/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great website!

They have a similar list of attacks with explanations too. Exercise idea. We have a live chain running and the presenter screen shares while sending some extractable transactions. Students are challenged to extract the mev. They could write scripts.

@nuke-web3 nuke-web3 force-pushed the ds/unstoppable-apps branch from be68f3b to 6d4dec0 Compare January 12, 2023 23:15
@nuke-web3 nuke-web3 force-pushed the ds/unstoppable-apps branch from cbf62b8 to 692ab6d Compare January 14, 2023 06:45
@nuke-web3 nuke-web3 force-pushed the ds/unstoppable-apps branch from 692ab6d to 49ec2cf Compare January 14, 2023 07:06
@nuke-web3
Copy link
Author

nuke-web3 commented Jan 15, 2023

antifragile img not to go into but illustrate complexity: https://en.wikipedia.org/wiki/Nassim_Nicholas_Taleb#/media/File:Genealogy_map_of_topics_treated_by_Nassim_Taleb.jpg

https://www.youtube.com/watch?v=S3REdLZ8Xis reference talk by book author.

example: irrational actors can be represented in a very simple model as a completely random act, or opposite act of what a rational actor would do. If you "fuzz" you system you may discover fragility to irrational actions that could undermine your system. Perhaps it's far easier and more likely than it at first appears to experience a black swan event.

@nuke-web3
Copy link
Author

nuke-web3 commented Jan 15, 2023

Alt to andreaus video as source of in class discussions, Shawn kindly suggested:

Here are some topics which I think touch on the same thing, but perhaps approach it in a more professional way:

  • A discussion on upgradable vs immutable applications. The pros and cons, especially in the context of societal pressures.
  • A discussion on "code is law" vs intentionality. Should people who exploit a program on the blockchain be expected to return funds? Is it okay to take their funds back by force (on-chain usually)?
  • A discussion on "root" governance (i.e. 51% vote on anything by all token holders). Does it make sense for this simple majority to have full access to pretty much "do whatever"? What does that mean for the 49%?
  • A discussion on building systems which take into account irrational actors. What can practically be done? Are their actions fruitful, and what would it take to identify and undo those actions?
  • A discussion on on-chain vs off-chain governance. Are there objective disadvantages / advantages to either side?
  • A discussion on the power triangle between node operators, developers, and token holders. Are these parties equal? How should they be represented in governance and decision making processes?

Perhaps quote the video and dig into this aspect of unstoppable code:
"It seizes power from dominate forms of power: governments, corporations, states, associations, cultures, religions. It seizes power, from these big things and gives it to little people. And sooner or later, the people who are losing their undeserved, absusively applied power will start to fight back. And at that point, we will start to find out how unstoppable our code is"

@nuke-web3
Copy link
Author

another slide with https://xkcd.com/2347/ to bring up issues with system models not including bad actors on deps. Nit just software, perhaps also on legal or regulatory dependencies to be free from thoee pressures that may render an dapp stoppadle

@nuke-web3 nuke-web3 force-pushed the ds/unstoppable-apps branch 5 times, most recently from 3df3c2d to 7270d5b Compare January 16, 2023 08:56
Comment on lines 163 to 165
Also an observation and clarification: dApps canonically refer to smart contract applications. These exist _within the context_ of consensus systems that themselves inherit properties of unstoppability from.
The academy (to date) is almost exclusively focused on _consensus system engineering_ - we reason about blockchains themselves, and "dApp"s use these as platforms to operate in.
Smart contracts module _may_ include detains on unstoppable dapps design considerations.
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cmichi @athei what do you plan on covering for this topic, generally?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about FRAME? It is basically a language to write DApps. Just without allowing untrusted code.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could mention that, yes I agree. But FRAME is more general and expansible than contracts pallet within it, yes? As this is before we even have touched substrate, I think we should not get too deep in the weeds

@nuke-web3 nuke-web3 force-pushed the ds/unstoppable-apps branch from 7270d5b to 6747ff4 Compare January 16, 2023 11:07
@nuke-web3
Copy link
Author

nuke-web3 commented Jan 17, 2023

TODOs and followups:

  • Bring back:
    • equivocation slides if not covered before, or place somewhere else?
    • People over Platforms slides?
    • Polkadot Pause slide?
    • Validator power slides?

lots more notes and slides
 content near complete
@nuke-web3 nuke-web3 requested a review from athei January 17, 2023 05:58
@nuke-web3
Copy link
Author

nuke-web3 commented Jan 17, 2023

Need to add link to https://www.mevwatch.info/ in slide on ofac. Perhaps embed as iframe

Also mention explictky that social systems are importsnt factor. Thus example of shaming censorship and another of monero "run your own node" culture helps ebfore things the protocol cannot (sometimes good sometimes bad depending on point of view and who benefits)

Complexity slide graphic from atrifragile in above comment

Final thoughts detail on observable behavior trumps theory! Complex systems are not intuitive and may show your assumptions and models are wrong! Examples in things like MeV and Babe fallback dominance etc.

Copy link
Contributor

@JoshOrndorff JoshOrndorff left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good to me. Left a bunch of comments. Nothing critical. Do with them as you like. 🚀

syllabus/3-Blockchain/9-Unstoppable_Applications_slides.md Outdated Show resolved Hide resolved
Comment on lines 378 to 386
## Proof of...<br>Nothing at Stake

Forks are "free" to vote in favor of.... vote on them all!

(if you are not eventually slashed!)

<br>

> What might it cost to successfully attack?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was a problem with early naive implementations of PoS. I totally support talking about it especially as an example how what initially seems like a good idea might have critical flaws that need to be addressed or the idea needs to be discarded. But try to make it clear that modern PoS schemes avoid this specific problem by having the security deposit and slashing for equivocation.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, i will bring that back in after these slides as a fix. But i also think mentioning this is still perhaps an incomplete fix for all of this class of thing: long range attacks and weak subjectivity can still potentially cause the same behavior in a much harder to orchestra way, with bad actors having already have their stake released.


---v

## _Embedded_ PoS Economic Security
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DQ: What does embedded mean here?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I want to explain this in terms of global consensus or universal consensus. This conceptually is the same idea of multilocations in xcm.

Contracts that reason about some part of consensus themselves in some way, but thinking that is bad term now... As they are not tasked with consensus activuties.

Perhaps vest to remove. Let me see if i can explain it irl and come up with a correct way of saying it.


## Complexity

TODO
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a reminder this still exists

Comment on lines +557 to +562
## Flashbots 😈

- **Flashbots Auction**: a marketplace for transaction ordering including the Flashbots Relay and MEV-Geth.
- **MEV-Boost**: an out-of-protocol implementation of proposer-builder separation (PBS) for proof-of-stake Ethereum.
- **Flashbots Protect**: an rpc endpoint that anyone can use for protection from frontrunning and failed transactions.
- **Flashbots Data**: tools and dashboards to improve the transparency of MEV activity on Ethereum and the Flashbots Auction.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some students will have never heard of this stuff. Even Andrew hadn't heard of it, so make sure to explain what it is clearly first before getting into the nuance of whether it is good, bad, both, or neither.

Also, my subjective opinion is that this is a lot of text, so maybe make each bullet appear individually. Up to you though.

Comment on lines 661 to 665
## Light Clients, Bridges, Relays

Light clients only store block headers and consensus-critical information.
<img style="width: 1200px; margin-left: -150px" src="../../assets/img/3-Blockchain/3.4-light-clients.png"/>

- Allow users to query full nodes from RPC providers,
- but take advantage of hash-based data structure to _verify_ the information coming from the provider.
- Low storage and bandwidth requirements (use in a browser extension or mobile device).
_Note the single peer reliance <br> for **embedded light clients in bridges**_
Copy link
Contributor

@JoshOrndorff JoshOrndorff Jan 17, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI, this will be covered in my lesson about light clients and bridges which comes right before yours. I still totally support you talking about it again and in your own voice. Just letting you know.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ty!
I will remove it, i don't need to duplicate content


## Censorship
<img rounded style="width: 500px; margin-right: -5em" src="../../assets/img/3-Blockchain/3.4-xkcd-dependency.png" alt="https://xkcd.com/2347/"/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I vaguely remember reading that his is not a hypothetical, but that Randall had a specific package in mind that is being maintained by that one dev in Nebraska. If you have time to look into it, showing the actual project page might make this more powerful and is also just a fun fact. Sorry I can't remember what it was .

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how about https://github.com/Polkadot-js as an example and call out for better or worse Jaco is this core part of the Polkadot infrastructure stack.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also a good motivator of why the academy exists: we need more builders in our industry as there are quite likely many more solo champions and single impls of core infra deps that exist in web3.

we (the students and leaders of academy) can help change that.

@nuke-web3 nuke-web3 force-pushed the ds/unstoppable-apps branch from 059aa4d to 422199d Compare January 17, 2023 17:17
@nuke-web3 nuke-web3 force-pushed the ds/unstoppable-apps branch from 422199d to 7d5c070 Compare January 17, 2023 17:19
@nuke-web3 nuke-web3 merged commit cd1eb3f into main Jan 17, 2023
@nuke-web3 nuke-web3 deleted the ds/unstoppable-apps branch January 17, 2023 18:02
kianenigma pushed a commit that referenced this pull request Jul 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants