-
Notifications
You must be signed in to change notification settings - Fork 29
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
Conversation
@@ -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/ |
There was a problem hiding this comment.
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.
74a4108
to
4663cec
Compare
40c56e4
to
be68f3b
Compare
be68f3b
to
6d4dec0
Compare
cbf62b8
to
692ab6d
Compare
692ab6d
to
49ec2cf
Compare
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. |
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:
Perhaps quote the video and dig into this aspect of unstoppable code: |
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 |
3df3c2d
to
7270d5b
Compare
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
7270d5b
to
6747ff4
Compare
TODOs and followups:
|
lots more notes and slides content near complete
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. |
There was a problem hiding this 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. 🚀
## 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? |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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
## 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. |
There was a problem hiding this comment.
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.
## 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**_ |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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/"/> |
There was a problem hiding this comment.
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 .
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
059aa4d
to
422199d
Compare
422199d
to
7d5c070
Compare
here is what Joe prepared last time: