Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • dragoon/komodo
  • a.stevan/komodo
  • c.heme/komodo
3 results
Show changes
This diff is collapsed.
sequenceDiagram
actor prover
actor verifier
Note over prover,verifier: generate public objects required<br/>for proving and verifying
Note left of prover: computes commitments $$\ (c) = \text{com}(\Delta)$$
Note left of prover: computes proof $$\ \pi = \text{prove}(s)$$
prover->>verifier: $$(c) \text{, } \pi$$
Note right of verifier: verify that $$\ (c) \text{, } \pi \text{ and } s\ $$ are consistent
//! Komodo: Cryptographically-proven Erasure Coding
//! Komodo: Cryptographically-proven Erasure Coding.
//!
//! Komodo provides an easy-to-use Rust library and ecosystem that is composed of two main parts:
//! - support for FEC encoding and decoding with the [`fec`] submodule
......@@ -10,16 +10,24 @@
//! > modules marked with an `*`, e.g. [`kzg`]*, are hidden behind a _Cargo_ feature with the same
//! > name
//!
//! Other submodules define several fundamental building blocks to Komodo, but which are not
//! Other submodules define several fundamental building blocks to Komodo, but are not
//! mandatory to explore to understand the protocols.
//!
//! # Example
//! Let's explain with a very simple example how things operate with Komodo.
//! Let's explain with a very simple example how things operate with Komodo. The setup is that a
//! _prover_ wants to show a _verifier_ that a shard of encoded data $s$ has indeed been generated
//! with a linear combination of the $k$ source shards from data $\Delta$.
//!
#![doc = simple_mermaid::mermaid!("lib.mmd")]
//!
//! > **Note**
//! >
//! > the following example uses some syntax of Rust but is NOT valid Rust code and omits a lot of
//! > details for both Rust and Komodo
//! > details for both Rust and Komodo.
//! >
//! > Real complete examples can be found in the
//! > [`examples/`](https://gitlab.isae-supaero.fr/dragoon/komodo/-/tree/main/examples)
//! > directory in the repository.
//!
//! 1. choose an _encoding matrix_ to encode the _input data_
//! ```ignore
......@@ -51,6 +59,8 @@ pub mod aplonk;
mod conversions;
pub mod error;
pub mod fec;
#[cfg(feature = "fri")]
pub mod fri;
#[cfg(feature = "fs")]
pub mod fs;
#[cfg(feature = "kzg")]
......
sequenceDiagram
actor prover
actor verifier
Note over prover,verifier: generate trusted setup<br/>$$\ \text{TS} = ([\tau^i]_1)$$
Note left of prover: $$(P_j) = \text{split}(\Delta)$$
Note left of prover: $$c_j = \text{com}(P_j, \text{TS})$$
prover->>verifier: $$(c_j)$$
Note right of verifier: $$(\lambda_j) = \text{lincomb}(s_\alpha)$$
Note right of verifier: $$P_\alpha = \text{poly}(s_\alpha)$$
Note right of verifier: $$\hat{c} = \sum\limits \lambda_j c_j$$
Note right of verifier: assert $$\ \hat{c} = \text{com}(P_{\alpha}, \text{TS})$$
This diff is collapsed.
This diff is collapsed.