Hans Moog Profile picture
Jan 20, 2023 20 tweets 4 min read Read on X
I have lately received a number of messages, asking about the security of IOTA's new consensus mechanism in situations like network splits.

Since these questions seem to originate in factually wrong statements of a critic, I want to answer this question publicly.

(1/20)🧵👇
To understand how IOTA handles this type of situation, we first need to understand what a network split is.

It is a situation where the network is split into two (or more) disconnected partitions where each partition can only see their respective set of issued messages.

(2/20)
Most splits are the result of faulty network infrastructure causing temporary interruptions of connectivity.

Redundant hardware and connections have made large-scale network splits increasingly rare but smaller, locally confined partitions are still relatively common.

(3/20)
Another (less common) reason for partitions are eclipse attacks, where an attacker manages to hijack all connections of a victim.

It is clear that disconnected nodes are unable to reach consensus, which raises the question how nodes should behave in such a situation.

(4/20)
A well known theorem that discusses the impact of partitions on distributed systems is the CAP theorem.

Applied to the context of consensus, it states that we have to choose between:

- liveness (partitions make progress but diverge) or
- safety (the network halts).

(5/20)
Protocols that favor liveness, choose a single winning ledger once the partitions merge and provide probabilistic finality.

Protocols that favor safety, provide deterministic finality.

(6/20)
From a user point of view, we obviously would like to have a protocol, that favors safety since we want transactions to be final as fast as possible, without having to be worried about possible rollbacks.

Protocols that favor safety do however have a big problem, ...

(7/20)
... in the open and permissionless setting:

Nodes can detect that actors stop sending statements, but they can not distinguish between partitions and nodes going offline.

This means, that the network would halt if too many nodes disappear, requiring a manual restart.

(8/20)
This challenges a core value proposition of DLTs (their robustness and fault tolerance).

Ideally we want a protocol that never stops but that also never confirms something that doesn't end up being final, which (seemingly) violates the CAP theorem.

(9/20)
This problem is called the "availability-finality-dilemma" and it can be solved surprisingly simple:

Instead of running 1 protocol, we run 2 protocols:

- one that favors liveness
- and one that favors safety (which tries to confirm the "live" ledger state)

(10/20)
These kind of hybrid protocols are called ebb-and-flow protocols (arxiv.org/abs/2009.04987) and there are a handful of projects that use such a "finality gadget" on top of a live ledger (i.e. ETH 2.0, Polkadot and NEAR).

IOTA will be the first DAG that uses these ideas.

(11/20)
In IOTA, a transaction is:

accepted: once it was referenced by 2/3+1 of the online committee (active in the last 10 seconds)

confirmed: once it was accepted and also referenced by 2/3+1 of the average committee weight over the last N epochs.

(12/20)
The parameter N defines a time frame that is equivalent to ETH 2.0s "inactivity leak", which allows the network to automatically recover from extreme situations, like a large amount of nodes going offline (i.e. due to catastrophies, war or governmental intervention).

(13/20)
Since IOTA plans to use social consensus as a protection for long range attacks, we don't need to slash offline nodes.

Instead we simply reduce the threshold that is necessary for confirmations over time, which allows the network to automatically recover.

(14/20)
Similar to BTCs confirmation threshold, nodes can individually choose their N to define how fast they want to recover confirmations.

Exchanges will most probably choose similar parameters as ETH 2.0 (multiple weeks with the option to manually intervene in times of war).

(15/20)
This means, that while acceptations will always continue (even when being eclipsed), confirmations will halt until the partition is either resolved, or the time period for the recovery is reached, which puts the user on the safe side.

It is important to note, that ...

(16/20)
... the ability to see statements of trusted actors adds another layer of protection against eclipse attacks.

I could for example only resume confirmations automatically if I also see at least a minimum amount of activity by trusted actors.

(17/20)
Keeping the network alive doesn't just allows user to i.e. re-stake their funds with online validators to recover confirmations faster but it also provides at least a minimum amount of functionality even in very adverse situations.

(18/20)
TL;DR: If you are eclipsed, then acceptations continue while confirmations will halt.

If N is set to -1 then the confirmation threshold is in respect to the maximum committee weight ever observed, which is equivalent to traditional deterministic finality (which halts).

(19/20)
Since the node optimistically advances the ledger on acceptance, we need to support rollbacks of state (which was merged last week), and which forms the basis for the last missing piece (chain switching), that allows nodes to automatically recover from partitions.

(20/20)

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Hans Moog

Hans Moog Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @hus_qy

Nov 29, 2024
Move is the first virtual machine since the EVM to be adopted by a growing number of independent L1 projects.

What makes it so special and why is it destined to replace the EVM as the de-facto standard for smart contracts in the crypto-space?

Are you ready? Let's dig in!🧵
1. Move is the first VM that leverages "linear logic" (the logic of quantum information theory) to model a "virtual universe of digital assets" that is governed by conservation laws and that enforces that assets can never be duplicated or lost directly on the "language level".
2. In most other VMs, smart contract security relies heavily on developers following best practices.

One slip-up in managing token approvals or re-entrancy guards and user funds are at risk - even years after using a compromised contract and when keeping funds in a cold-wallet.
Read 12 tweets
Aug 4, 2023
So it's finally time for part 2 of the update, in which I will explain how the reactive package allows us to merge metadata and logic to eliminate the problems discussed in the previous thread by getting rid of our 'external propagation logic'.
I will split the thread into several different segments to make it easier to associate the attached pictures with their respective text.

Since we plan to create blocks that act like 'interacting cells', we first need to create a mechanism that allows them to communicate.
For this purpose, we mimic the function of a 'receptor', which is a chemical structure on the membrane of cells that can bind to so-called 'ligands' to release a 'messenger'. Image
Read 25 tweets
Jan 30, 2023
@Plinz I personally think that modeling multiway systems as rewrite systems that operate on a global continuous vector of data is a bit non-intuitive (and also pretty inefficient in code as you have to essentially duplicate the entire vector for each branch that you spawn).

In the ...
@Plinz ... context of Wolframs work, I even think that it leads to questionable conclusions like the proposal to explain the wave function collapse as a Knuth–Bendix completion of the multiway graph, which fails to explain things like Schrödingers Cat where different quantum states ...
@Plinz ... can lead to vastly different macroscopic outcomes.

A slightly different take on causal multiway systems that is also closer to the way we perceive the world is to model them as an evolution of "interacting substates / particles", rather than a continuous sequence of symbols.
Read 15 tweets
Dec 29, 2022
@durerus @Conste11ation @Vrom14286662 Yes, I read their whitepaper but sadly it doesn't really contain a lot of information.

Apart from a lot of references to other papers, it contains only very hand wavy statements. I don't think they name a single concrete algorithm in the entire document.

The graphics they ...
@durerus @Conste11ation @Vrom14286662 ... show in their document are not results of their own work / simulations but are copied from this students master thesis: repository.tudelft.nl/islandora/obje…, which ends with the words: Image
@durerus @Conste11ation @Vrom14286662 It was promised that they would release updated papers and information, that would answer some of the questions I had, but I think this was delayed.

I wouldn't rule out that they work on something legit and I would give them the benefit of the doubt but everything that I ...
Read 8 tweets
Dec 9, 2022
I think it's time for a short update around our progress on coordicide:

A few weeks ago we merged the refactored consensus code base and we have been running it in an internal testnet since then.

After fixing a lot of bugs, the node looks increasingly stable (we also found ...
... the memory leak that we were fighting with for almost 2 weeks - people who closely follow the development process on github will know what I mean).

The only remaining thing for the prototype to be feature complete in a first MVP version (apart from getting rid of ...
... possible remaining bugs) is the chain switching, which allows nodes to automatically recover after i.e. having being eclipsed / in a minority partition.

Me and Andrea started working on this 2 weeks ago but we had to pause and first change the way we manage state to ...
Read 7 tweets
Nov 14, 2022
@DesheShai I would argue that the 50% attack resilience you mentioned is not the result of PoW but the result of how Satoshis voting mechanism does not operate in rounds where you have to "prematurely" finalize decisions. This allows actors to continuously adjust their opinion and ...
@DesheShai ... ultimately converge to all add weight to the same winning outcome.

If you operate in rounds (like all contemporary BFT style consensus mechanisms) and declare a decision to be final once you have reached 67% of the weight (to move on to the next round), then an attacker ...
@DesheShai ... that controls >1/3rd (i.e 34%) could switch the outcome of the voting which leads to the lowered security threshold in each round (waiting for more weight would challenge liveness).

If you do however never finalize decisions and allow actors to converge post-reaching a ...
Read 34 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(