Skip to content

Commit

Permalink
update cip blog post
Browse files Browse the repository at this point in the history
  • Loading branch information
b5 committed Feb 21, 2025
1 parent 8d37500 commit b0c8828
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
Binary file added public/papers/MIT-LCS-TM-394.pdf
Binary file not shown.
33 changes: 33 additions & 0 deletions src/app/blog/consensus-is-impossible/page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,37 @@ export const metadata = {

export default (props) => <BlogPostLayout article={post} {...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!

<iframe width="560" height="315" src="https://www.youtube.com/embed/_VAAC9Rt6H0?si=IWXKlPvoJ2qe6r9R" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

<Note>
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!
</Note>

## 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!

<Button href="/discord">Join Discord</Button>
<br />
<br />
<br />

0 comments on commit b0c8828

Please sign in to comment.