From ca601b09a12798f9382fbdb56a8b65dcd358e82e Mon Sep 17 00:00:00 2001 From: <> Date: Wed, 16 Nov 2022 14:34:48 +0000 Subject: [PATCH] Update documentation --- 404.html | 4 +- categories/index.html | 271 ++++++---- index.html | 4 +- index.xml | 22 +- ....2ce7a40046fbbe53a3373420b3cfaf2b.min.json | 1 + ....159f923c26d1ca958995ee01990098e8.min.json | 1 + linkmap | 54 +- requirements/index.html | 4 +- requirements/overview/index.html | 4 +- .../candidates/carnot/FAQ/index.html | 510 ++++++++++++++++++ .../candidates/carnot/overview/index.html | 477 ++++++++++++++++ .../consensus/candidates/glacier/index.html | 6 +- .../consensus/development/overview/index.html | 4 +- .../development/prototypes/index.html | 4 +- roadmap/consensus/overview/index.html | 14 +- roadmap/consensus/theory/overview/index.html | 4 +- .../consensus/theory/snow-family/index.html | 8 +- roadmap/index.html | 128 ++--- roadmap/index.xml | 22 +- roadmap/virtual-machines/overview/index.html | 4 +- .../distributed-systems-researcher/index.html | 4 +- roles/index.html | 4 +- roles/rust-developer/index.html | 4 +- .../index.html | 4 +- sitemap.xml | 33 +- tags/Carnot/index.html | 303 +++++++++++ tags/Carnot/index.xml | 28 + tags/Carnot/page/1/index.html | 1 + tags/candidate/index.html | 48 +- tags/candidate/index.xml | 18 +- tags/consensus/index.html | 60 ++- tags/consensus/index.xml | 22 +- tags/development/index.html | 4 +- tags/engineering/index.html | 4 +- tags/index.html | 271 ++++++---- tags/index.xml | 27 +- tags/requirements/index.html | 4 +- tags/role/index.html | 4 +- tags/rust/index.html | 4 +- tags/snow/index.html | 283 ++++++++++ tags/snow/index.xml | 19 + tags/snow/page/1/index.html | 1 + tags/theory/index.html | 8 +- tags/virtual-machines/index.html | 4 +- tags/zero-knowledge/index.html | 4 +- 45 files changed, 2213 insertions(+), 499 deletions(-) create mode 100644 indices/contentIndex.2ce7a40046fbbe53a3373420b3cfaf2b.min.json create mode 100644 indices/linkIndex.159f923c26d1ca958995ee01990098e8.min.json create mode 100644 roadmap/consensus/candidates/carnot/FAQ/index.html create mode 100644 roadmap/consensus/candidates/carnot/overview/index.html create mode 100644 tags/Carnot/index.html create mode 100644 tags/Carnot/index.xml create mode 100644 tags/Carnot/page/1/index.html create mode 100644 tags/snow/index.html create mode 100644 tags/snow/index.xml create mode 100644 tags/snow/page/1/index.html diff --git a/404.html b/404.html index 35072d070..b9cb26aaa 100644 --- a/404.html +++ b/404.html @@ -96,13 +96,13 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+ + + + + + +
+ +
+

Logos Technical Roadmap

+
+
+

Search

+ Search IconIcon to open search +
+
+ + + +
+
+ + +
+

Frequently Asked Questions

+

+ Last updated +Nov 16, 2022 + + + +Edit Source + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

# Data Distribution

+

# How much failure rate of erasure code transmission are we expecting. Basically, what are the EC coding parameters that we expect to be sending such that we have some failure rate of transmission? Has that been looked into? - Dmitriy

+
+

Moh: This is a great question and it points to the tension between the failure rate vs overhead. We have briefly looked into this (today me and Marcin @madxor discussed such cases), but we haven’t thoroughly analyzed this. In our case, the rate of failure also depends on committee size. We look into $10^{-3}$ to $10^{-6}$ probability of failure. And in this case, the coding overhead can be somewhere between 200%-500% approximately. This means for a committee size of 500 (while expecting receipt of messages from 251 correct nodes), for a failure rate of $10^{-6}$ a single node has to send > 6Mb of data for a 1Mb of actual data. Though 5x overhead is large, it still prevent us from sending/receiving 500 Mb of data in return for a failure probability of 1 proposal out of 1 million. From the protocol perspective, we can address EC failures in multiple ways: a: Since the root committee only forwards the coded chunks only when they have successfully rebuilt the block. This means the root committee can be contacted to download additional coded chunks to decode the block. b: We allow this failure and let the leader be replaced but since there is proof that the failure is due to the reason that a decoder failed to reconstruct the block, therefore, the leader cannot be punished (if we chose to employ punishment in PoS).

+
+

# How much data should a given block be. Are there limits on this and if so, what are they and what do they depend on? - Dmitriy

+
+

Moh: This question can be answered during simulations and experiments over links of different bandwidths and latencies. We will test the protocol performances with different block sizes. As we know increasing the block size results in increased throughput as well as latency. What is the most appropriate block size can be determined once we observe the tradeoff between throughput vs latency.

+
+

# Signature Propagation

+

# Who sends the signatures up from a given committee? Do that have any leadered power within the committee? - Tanguy

+
+

Moh: Each node in a committee multicasts its vote to all members of the parent committee. Since the size of the vote is small the bit complexity will be low. Introducing a leader within each committee will create a single point of failure within each committee. This is why we avoid maintaining a leader within each committee

+
+

# Network Scale

+

# What is our expected minimum number of nodes within the network? - Dmitriy

+
+

Moh: For a small number of nodes we can have just a single committee. But I am not sure how many nodes will join our network

+
+

# Byzantine Behavior

+

# Can we also consider a flavor that adds attestation/attribution to misbehaving nodes? That will come at a price but there might be a set of use cases which would like to have lower performance with strong attribution. Not saying that it must be part of the initial design, but can be think-through/added later. - Marcin

+
+

Moh: Attestation to misbehaving nodes is part of this protocol. For example, if a node sends an incorrect vote or if a leader proposes an invalid transaction, then this proof will be shared with the network to punish the misbehaving nodes (Though currently this is not part of pseudocode). But it is not possible to reliably prove the attestation of not participation.

+
+
+

Marcin: Great, and definitely, we cannot attest that a node was not participating - I was not suggesting that;). But we can also think about extending the attestation for lazy-participants case (if it’s not already part of the protocol).

+
+
+

Moh: OK, thanks for the clarification 😁 . Of course we can have this feature to forward the proof of participation of successor committees. In the first version of Carnot we had this feature as a sliding window. One could choose the size of the window (in terms of tree levels) for which a node should forward the proof of participation. In the most recent version the size of sliding window is 0. And it is 1 for the root committee. It means root committee members have to forward the proof of participation of their child committee members. Since I was able to prove protocol correctness without forwarding the proofs so we avoid it. But it can be part of the protocol without any significant changes in the protocol

+
+
+

If the proof scheme is efficient ( as the results you presented) in practice and the cost of creating and verifying proofs is not significant then actually adding proofs can be good. But not required.

+
+

# Also, how do you reward online validators / punish offline ones if you can’t prove at the block level that someone attested or not? - Tanguy

+
+

Moh: This is very tricky and so far no one has done it right (to my knowledge). Current reward mechanism for attestation, favours fast nodes.This means if malicious nodes in the network are fast, they can increase their stake in the network faster than the honest nodes and eventually take control of the network. Or in the case of Ethereum a Byzantine leader can include signature of malicious nodes more frequently in the proof of attestation, hence malicious nodes will be rewarded more frequently. Also let me add that I don’t have definite answer to your question currently, but I think by revising the protocol assumptions, incentive mechanism and using a game theoretical approach this problem can be resolved.

+
+
+

An honest node should wait for a specific number of children votes (to make sure everyone is voting on the same proposal) before voting but does not need to provide any cryptographic proof. Though we build a threshold signature from root committee members and it’s children but not from the whole tree. As long as enough number of nodes follow the the protocol we should be fine. I am working on protocol proofs. Also I think bugs should be discovered during development and testing phase. Changing protocol to detect potential bug might not be a good practice.

+
+ + +
+ + +
+ + + + + + +
+ +
+ + +
+ + + diff --git a/roadmap/consensus/candidates/carnot/overview/index.html b/roadmap/consensus/candidates/carnot/overview/index.html new file mode 100644 index 000000000..e96b19388 --- /dev/null +++ b/roadmap/consensus/candidates/carnot/overview/index.html @@ -0,0 +1,477 @@ + + + + + + + + Carnot Overview + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+ + + + + + +
+ +
+

Logos Technical Roadmap

+
+
+

Search

+ Search IconIcon to open search +
+
+ + + +
+
+ + +
+

Carnot Overview

+

+ Last updated +Nov 16, 2022 + + + +Edit Source + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Carnot (formerly LogosBFT) is a Byzantine Fault Tolerant (BFT) + + + + + +consensus candidate for the Nomos Network that utilizes Fountain Codes and a committees tree structure to optimize message propagation in the presence of a large number of nodes, while maintaining high througput and fast finality.

+ +

# Work Streams

+

# Current State of the Art

+

An ongoing survey of the current state of the art around Consensus Mechanisms and their peripheral dependencies is being conducted by Tuanir, and can be found in the following WIP Overleaf document:

+ +

# Committee Tree Overlay

+

The basis of Carnot is dependent upon establishing an committee overlay tree structure for message distribution.

+

An overview video can be found in the following link:

+ +

The details of this are being worked on by Moh and Alexander and can be found in the following overleaf documents:

+ +

A simulation notebook is being worked on by Corey to investigate the properties of various tree overlay structures and estimate their practical performance:

+ +

# Failure Recovery

+

There exists a timeout that triggers an overlay reconfiguration. Currently work is being done to calculate the probabilities of another failure based on a given percentage of byzantine nodes within the network.

+ +

# Random Beacon

+

A random beacon is required to choose a leader and establish a seed for defining the overlay tree. Marcin is working on the various avenues. His previous presentations can be found in the following presentation slides (in chronological order):

+ +

# Erasure Coding (LT Codes / Fountain Codes / Raptor Codes)

+

In order to reduce message complexity during propagation, we are investigating the use of Luby Transform (LT) codes, more specifically + +Fountain Codes, to break up the block to be propagated to validators and recombined by local peers within a committee.

+ + + +
+ + +
+ + + + + + +
+ +
+ + +
+ + + diff --git a/roadmap/consensus/candidates/glacier/index.html b/roadmap/consensus/candidates/glacier/index.html index e1282275b..366157f26 100644 --- a/roadmap/consensus/candidates/glacier/index.html +++ b/roadmap/consensus/candidates/glacier/index.html @@ -96,13 +96,13 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+ + + + + + +
+ +
+

Logos Technical Roadmap

+
+
+

Search

+ Search IconIcon to open search +
+
+ + + +
+
+ + +
+

Tag: Carnot

+ + + + +
+ +
+ +
+ +
+ + + diff --git a/tags/Carnot/index.xml b/tags/Carnot/index.xml new file mode 100644 index 000000000..52226643a --- /dev/null +++ b/tags/Carnot/index.xml @@ -0,0 +1,28 @@ + + + + Carnot on + https://roadmap.logos.co/tags/Carnot/ + Recent content in Carnot on + Hugo -- gohugo.io + en-us + + Carnot Overview + https://roadmap.logos.co/roadmap/consensus/candidates/carnot/overview/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://roadmap.logos.co/roadmap/consensus/candidates/carnot/overview/ + Carnot (formerly LogosBFT) is a Byzantine Fault Tolerant (BFT) consensus candidate for the Nomos Network that utilizes Fountain Codes and a committees tree structure to optimize message propagation in the presence of a large number of nodes, while maintaining high througput and fast finality. + + + + Frequently Asked Questions + https://roadmap.logos.co/roadmap/consensus/candidates/carnot/FAQ/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://roadmap.logos.co/roadmap/consensus/candidates/carnot/FAQ/ + Data Distribution How much failure rate of erasure code transmission are we expecting. Basically, what are the EC coding parameters that we expect to be sending such that we have some failure rate of transmission? + + + + diff --git a/tags/Carnot/page/1/index.html b/tags/Carnot/page/1/index.html new file mode 100644 index 000000000..7f6237e98 --- /dev/null +++ b/tags/Carnot/page/1/index.html @@ -0,0 +1 @@ +https://roadmap.logos.co/tags/Carnot/ \ No newline at end of file diff --git a/tags/candidate/index.html b/tags/candidate/index.html index 6ff727831..7359bcabe 100644 --- a/tags/candidate/index.html +++ b/tags/candidate/index.html @@ -96,13 +96,13 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+ + + + + + +
+ +
+

Logos Technical Roadmap

+
+
+

Search

+ Search IconIcon to open search +
+
+ + + +
+
+ + +
+

Tag: snow

+ + + + +
+ +
+ +
+ +
+ + + diff --git a/tags/snow/index.xml b/tags/snow/index.xml new file mode 100644 index 000000000..c1f43a42f --- /dev/null +++ b/tags/snow/index.xml @@ -0,0 +1,19 @@ + + + + snow on + https://roadmap.logos.co/tags/snow/ + Recent content in snow on + Hugo -- gohugo.io + en-us + + Theoretical Analysis of the Snow Family of Consensus Protocols + https://roadmap.logos.co/roadmap/consensus/theory/snow-family/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://roadmap.logos.co/roadmap/consensus/theory/snow-family/ + In order to evaluate the properties of the Avalanche family of consensus protocols more rigorously than the original whitepapers, we work to create an analytical framework to explore and better understand the theoretical boundaries of the underlying protocols, and under what parameterization they will break vs a set of adversarial strategies + + + + diff --git a/tags/snow/page/1/index.html b/tags/snow/page/1/index.html new file mode 100644 index 000000000..83673d2e4 --- /dev/null +++ b/tags/snow/page/1/index.html @@ -0,0 +1 @@ +https://roadmap.logos.co/tags/snow/ \ No newline at end of file diff --git a/tags/theory/index.html b/tags/theory/index.html index c126b0811..1d43b5a14 100644 --- a/tags/theory/index.html +++ b/tags/theory/index.html @@ -96,13 +96,13 @@