keccak256
hash of content// private
signal input identity_secret;
signal input path_elements[n_levels][1];
signal input identity_path_index[n_levels];
// public
signal input x; // signal_hash
signal input epoch;
signal input rln_identifier;
signal output y;
signal output root;
signal output nullifier;
a_0 = identity_secret
a_1 = poseidonHash([a0, external_nullifier])
y = a_0 + x * a_1
internal_nullifier = poseidonHash([a_1, rln_identifier])
`
{
signal: signal, # full signal
proof: zk_proof,
internal_nullifier: internal_nullifier,
x: x, # signal hash
y: y,
rln_identifier: rln_identifier,
// application specific
root: merkle_proof.root,
external_nullifier: external_nullifier
}
{
[external_nullifier]: {
[internal_nullifier]: {
x_shares: [],
y_shares: []
}
}
}
graph graphname{
g [color=Red, penwidth=3.0]
a [color=Red, penwidth=3.0]
h [color=Red, penwidth=3.0]
d [color=Red, penwidth=3.0]
b [color=Red, penwidth=3.0]
edge [color=Blue, style=dashed]
rankdir=LR;
a -- c;
e -- a;
f -- a;
b -- c;
f -- e;
e -- d;
e -- g;
h -- f;
i -- b;
i -- c;
a -- i;
edge [color=Red, style=solid, penwidth=3.0]
a -- b;
g -- a;
a -- d;
h -- a;
}
a relays messages to a subset of peers
From 30/ADAPTIVE-NODES
Thanks! Questions?