diff --git a/src/images/rln-circuit.png b/src/images/rln-circuit.png new file mode 100644 index 0000000..5f64f0d Binary files /dev/null and b/src/images/rln-circuit.png differ diff --git a/src/mermaid.md b/src/mermaid.md new file mode 100644 index 0000000..e6a9975 --- /dev/null +++ b/src/mermaid.md @@ -0,0 +1,43 @@ +```mermaid +flowchart TB + + subgraph Generate Secret Key + random0(Random 32 bytes) --> a_0(Secret Key) + random1(Random 32 bytes) --> a_0 + end + + subgraph RLN + + subgraph Identity Commitment + a_0 --> h0(Poseidon Hash) + h0 --> q(Identity Commitment) + end + + subgraph Calculate Internal Nullifier + a_0 --> h1(Poseidon Hash) + epoch(Epoch) --> h1 + h1 --> a_1 + rln_identifier(RLN Identifier) --> h2(Poseidon Hash) + a_1 --> h2 + h2 --> nullifier(RLN Internal Nullifier) + end + + subgraph Merkle Tree + q --> merkle_tree_inclusion_proof(Merkle Tree Inclusion Proof) + merkle_tree_inclusion_proof --> root(ZKP of Merkle Tree Root) + end + + subgraph Shamirs Secret Scheme + a_0 --> plus(+) + a_1 --> multiply(*) + x(Hashed Messaage) --> multiply + multiply --> plus + plus --> share_y + end + + nullifier --> proof(ZKP) + root --> proof + share_y --> proof + end + +``` diff --git a/src/protocol_spec.md b/src/protocol_spec.md index e19726d..fd4e1f0 100644 --- a/src/protocol_spec.md +++ b/src/protocol_spec.md @@ -51,46 +51,4 @@ To learn more, check out the [specification](https://hackmd.io/7GR5Vi28Rz2EpEmLK # Diagram -```mermaid -flowchart TB - - subgraph Generate Secret Key - random0(Random 32 bytes) --> a_0(Secret Key) - random1(Random 32 bytes) --> a_0 - end - - subgraph RLN - - subgraph Identity Commitment - a_0 --> h0(Poseidon Hash) - h0 --> q(Identity Commitment) - end - - subgraph Calculate Internal Nullifier - a_0 --> h1(Poseidon Hash) - epoch(Epoch) --> h1 - h1 --> a_1 - rln_identifier(RLN Identifier) --> h2(Poseidon Hash) - a_1 --> h2 - h2 --> nullifier(RLN Internal Nullifier) - end - - subgraph Merkle Tree - q --> merkle_tree_inclusion_proof(Merkle Tree Inclusion Proof) - merkle_tree_inclusion_proof --> root(ZKP of Merkle Tree Root) - end - - subgraph Shamirs Secret Scheme - a_0 --> plus(+) - a_1 --> multiply(*) - x(Hashed Messaage) --> multiply - multiply --> plus - plus --> share_y - end - - nullifier --> proof(ZKP) - root --> proof - share_y --> proof - end - -``` +![alt text](./images/rln-circuit.png) \ No newline at end of file