diff --git a/public/papers/MIT-LCS-TM-394.pdf b/public/papers/MIT-LCS-TM-394.pdf new file mode 100644 index 00000000..c1955bd7 Binary files /dev/null and b/public/papers/MIT-LCS-TM-394.pdf differ diff --git a/src/app/blog/consensus-is-impossible/page.mdx b/src/app/blog/consensus-is-impossible/page.mdx index 19f82f47..991ffd82 100644 --- a/src/app/blog/consensus-is-impossible/page.mdx +++ b/src/app/blog/consensus-is-impossible/page.mdx @@ -28,4 +28,37 @@ export const metadata = { export default (props) => +Our latest video covers a proof paper by Nancy Lynch that shows that 100% certainty of consensus is impossible in a distributed system with even one faulty node. The paper is very comprensive, and we thought picking one to dramatize would be a great way to introduce impossibility proofs! + + + + We're using this post to add details that weren't covered in the video. We'll update this post with more info as comments & questions roll in! + + +## Can I haz paper link? + +[of course!](/papers/LIT-LCS-TM-394.pdf) + +## Do you use this in iroh? + +Indirectly, yes! All iroh protocols run up against these laws of distributed systems "physics". Some examples: +* strictly speaking, [iroh docs](/proto/iroh-docs) isn't a consensus protocol, it's a "sync" protocol. Here even the word sync is a bit of a misnomer, because there is no such thing as asynchronus synchronization, but we digress. Instead the garuntee iroh docs focuses on is that all nodes will _eventually_ have the same data, once we all have the same entries in our namespace, not that they will all agree on the same data at the same time. +* [iroh blobs](/proto/iroh-blobs) is content-addressed (refer by hash) specifically to get around the potential of byzantine faults, assuming you trust the hash you're asking for in the first place. + +## The extra `t` is for buggy nodes + +In the video, one fix to address the fault is to transition from requiring `2t + 1` to `3t + 1`. The detail we _don't_ cover in the video: the extra `t` describes that you're accounting for buggy/malicious nodes as well as down/delayed nodes. The down/delayed nodes would be covered by the `2t` part of the equation. + +## This is not the most interesting proof in the paper! + +That honor goes to the [FLP impossibility proof](https://en.wikipedia.org/wiki/Consensus_(computer_science)#Solvability_results_for_some_agreement_problems), for which the authors won a Dijkstra prize. Nancy Lynch was a co-author on that paper as well, and it's a great read if you're interested in the topic! + +## Join our discord & nerd out + +Come tell us what we missed! We'll update here! + + +
+
+