diff --git a/print.html b/print.html index b2a76dc..c51230a 100644 --- a/print.html +++ b/print.html @@ -166,7 +166,7 @@
flowchart TB
subgraph Generate Secret Key
- random0(Random 32 bytes) --> a_0(Secret key)
+ random0(Random 32 bytes) --> a_0(Secret Key)
random1(Random 32 bytes) --> a_0
end
diff --git a/rln_circuit.html b/rln_circuit.html
index e2a2559..62c7f46 100644
--- a/rln_circuit.html
+++ b/rln_circuit.html
@@ -138,7 +138,7 @@
flowchart TB
subgraph Generate Secret Key
- random0(Random 32 bytes) --> a_0(Secret key)
+ random0(Random 32 bytes) --> a_0(Secret Key)
random1(Random 32 bytes) --> a_0
end
diff --git a/searchindex.js b/searchindex.js
index f8ca5b2..f75ebb8 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Object.assign(window.search, {"doc_urls":["about.html#about","concepts.html#concepts","what_is_rln.html#what-is-rate-limiting-nullifier","uses.html#uses","terminology.html#terminology","under_the_hood.html#under-the-hood","rln_circuit.html#circom-circuit-for-rln","references.html#references","code.html#code","how_to_use.html#usage","theory.html#theory","sss.html#shamirs-secret-sharing-scheme"],"index":{"documentStore":{"docInfo":{"0":{"body":25,"breadcrumbs":0,"title":0},"1":{"body":6,"breadcrumbs":2,"title":1},"10":{"body":0,"breadcrumbs":2,"title":1},"11":{"body":239,"breadcrumbs":8,"title":4},"2":{"body":11,"breadcrumbs":5,"title":3},"3":{"body":0,"breadcrumbs":3,"title":1},"4":{"body":185,"breadcrumbs":3,"title":1},"5":{"body":0,"breadcrumbs":5,"title":2},"6":{"body":107,"breadcrumbs":8,"title":3},"7":{"body":11,"breadcrumbs":3,"title":1},"8":{"body":0,"breadcrumbs":2,"title":1},"9":{"body":0,"breadcrumbs":3,"title":1}},"docs":{"0":{"body":"RLN (Rate-Limiting Nullifier) is part of Privacy & Scaling Explorations (PSE), a multidisciplinary team supported by the Ethereum Foundation. PSE explores new use cases for zero knowledge proofs and other cryptographic primitives. appliedzkp.org","breadcrumbs":"About » About","id":"0","title":"About"},"1":{"body":"This section is a starting point for understanding the concepts of RLN.","breadcrumbs":"Concepts » Concepts","id":"1","title":"Concepts"},"10":{"body":"","breadcrumbs":"Theory » Theory","id":"10","title":"Theory"},"11":{"body":"Shamirs Secret Sharing allows to split the secret to n parts and restore it upon presentation any m parts (m <= n) Sharmir's Secret Sharing wikipedia is a good reference to understand the concept. Reconstruction 1: https://github.com/akinovak/semaphore-lib/blob/5b9bb3210192c8e508eced7ef6579fd56e635ed0/src/rln.ts#L31 retrievePrivateKey(x1: bigint, x2:bigint, y1:bigint, y2:bigint): Buffer | ArrayBuffer { const slope = Fq.div(Fq.sub(y2, y1), Fq.sub(x2, x1)) const privateKey = Fq.sub(y1, Fq.mul(slope, x1)); return bigintConversion.bigintToBuf(Fq.normalize(privateKey)); } Reconstruction 2: https://github.com/akinovak/semaphore-lib/blob/rln_signature_changes/test/index.ts#L250 async function testRlnSlashingSimulation() { RLN.setHasher('poseidon'); const identity = RLN.genIdentity(); const privateKey = identity.keypair.privKey; const leafIndex = 3; const idCommitments: Array = []; for (let i=0; i = []; for (let i=0; i = []; for (let i=0; i = []; for (let i=0; i