@waku/rln 0.0.11 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/rln.js ADDED
@@ -0,0 +1,154 @@
1
+ import init, * as zerokitRLN from "@waku/zerokit-rln-wasm";
2
+ import { writeUIntLE } from "./byte_utils.js";
3
+ import { dateToEpoch, epochIntToBytes } from "./epoch.js";
4
+ import verificationKey from "./resources/verification_key.js";
5
+ import * as wc from "./witness_calculator.js";
6
+ /**
7
+ * Concatenate Uint8Arrays
8
+ * @param input
9
+ * @returns concatenation of all Uint8Array received as input
10
+ */
11
+ function concatenate(...input) {
12
+ let totalLength = 0;
13
+ for (const arr of input) {
14
+ totalLength += arr.length;
15
+ }
16
+ const result = new Uint8Array(totalLength);
17
+ let offset = 0;
18
+ for (const arr of input) {
19
+ result.set(arr, offset);
20
+ offset += arr.length;
21
+ }
22
+ return result;
23
+ }
24
+ const stringEncoder = new TextEncoder();
25
+ const DEPTH = 20;
26
+ async function loadWitnessCalculator() {
27
+ const url = new URL("./resources/rln.wasm", import.meta.url);
28
+ const response = await fetch(url);
29
+ return await wc.builder(new Uint8Array(await response.arrayBuffer()), false);
30
+ }
31
+ async function loadZkey() {
32
+ const url = new URL("./resources/rln_final.zkey", import.meta.url);
33
+ const response = await fetch(url);
34
+ return new Uint8Array(await response.arrayBuffer());
35
+ }
36
+ /**
37
+ * Create an instance of RLN
38
+ * @returns RLNInstance
39
+ */
40
+ export async function create() {
41
+ await init();
42
+ zerokitRLN.init_panic_hook();
43
+ const witnessCalculator = await loadWitnessCalculator();
44
+ const zkey = await loadZkey();
45
+ const vkey = stringEncoder.encode(JSON.stringify(verificationKey));
46
+ const zkRLN = zerokitRLN.newRLN(DEPTH, zkey, vkey);
47
+ return new RLNInstance(zkRLN, witnessCalculator);
48
+ }
49
+ export class MembershipKey {
50
+ constructor(IDKey, IDCommitment) {
51
+ this.IDKey = IDKey;
52
+ this.IDCommitment = IDCommitment;
53
+ }
54
+ static fromBytes(memKeys) {
55
+ const idKey = memKeys.subarray(0, 32);
56
+ const idCommitment = memKeys.subarray(32);
57
+ return new MembershipKey(idKey, idCommitment);
58
+ }
59
+ }
60
+ const proofOffset = 128;
61
+ const rootOffset = proofOffset + 32;
62
+ const epochOffset = rootOffset + 32;
63
+ const shareXOffset = epochOffset + 32;
64
+ const shareYOffset = shareXOffset + 32;
65
+ const nullifierOffset = shareYOffset + 32;
66
+ const rlnIdentifierOffset = nullifierOffset + 32;
67
+ export class Proof {
68
+ constructor(proofBytes) {
69
+ if (proofBytes.length < rlnIdentifierOffset)
70
+ throw "invalid proof";
71
+ // parse the proof as proof<128> | share_y<32> | nullifier<32> | root<32> | epoch<32> | share_x<32> | rln_identifier<32>
72
+ this.proof = proofBytes.subarray(0, proofOffset);
73
+ this.merkleRoot = proofBytes.subarray(proofOffset, rootOffset);
74
+ this.epoch = proofBytes.subarray(rootOffset, epochOffset);
75
+ this.shareX = proofBytes.subarray(epochOffset, shareXOffset);
76
+ this.shareY = proofBytes.subarray(shareXOffset, shareYOffset);
77
+ this.nullifier = proofBytes.subarray(shareYOffset, nullifierOffset);
78
+ this.rlnIdentifier = proofBytes.subarray(nullifierOffset, rlnIdentifierOffset);
79
+ }
80
+ }
81
+ export function proofToBytes(p) {
82
+ return concatenate(p.proof, p.merkleRoot, p.epoch, p.shareX, p.shareY, p.nullifier, p.rlnIdentifier);
83
+ }
84
+ export class RLNInstance {
85
+ constructor(zkRLN, witnessCalculator) {
86
+ this.zkRLN = zkRLN;
87
+ this.witnessCalculator = witnessCalculator;
88
+ }
89
+ generateMembershipKey() {
90
+ const memKeys = zerokitRLN.generateMembershipKey(this.zkRLN);
91
+ return MembershipKey.fromBytes(memKeys);
92
+ }
93
+ insertMember(idCommitment) {
94
+ zerokitRLN.insertMember(this.zkRLN, idCommitment);
95
+ }
96
+ getMerkleRoot() {
97
+ return zerokitRLN.getRoot(this.zkRLN);
98
+ }
99
+ serializeMessage(uint8Msg, memIndex, epoch, idKey) {
100
+ // calculate message length
101
+ const msgLen = writeUIntLE(new Uint8Array(8), uint8Msg.length, 0, 8);
102
+ // Converting index to LE bytes
103
+ const memIndexBytes = writeUIntLE(new Uint8Array(8), memIndex, 0, 8);
104
+ // [ id_key<32> | id_index<8> | epoch<32> | signal_len<8> | signal<var> ]
105
+ return concatenate(idKey, memIndexBytes, epoch, msgLen, uint8Msg);
106
+ }
107
+ async generateRLNProof(msg, index, epoch, idKey) {
108
+ if (epoch == undefined) {
109
+ epoch = epochIntToBytes(dateToEpoch(new Date()));
110
+ }
111
+ else if (epoch instanceof Date) {
112
+ epoch = epochIntToBytes(dateToEpoch(epoch));
113
+ }
114
+ if (epoch.length != 32)
115
+ throw "invalid epoch";
116
+ if (idKey.length != 32)
117
+ throw "invalid id key";
118
+ if (index < 0)
119
+ throw "index must be >= 0";
120
+ const serialized_msg = this.serializeMessage(msg, index, epoch, idKey);
121
+ const rlnWitness = zerokitRLN.getSerializedRLNWitness(this.zkRLN, serialized_msg);
122
+ const inputs = zerokitRLN.RLNWitnessToJson(this.zkRLN, rlnWitness);
123
+ const calculatedWitness = await this.witnessCalculator.calculateWitness(inputs, false); // no sanity check being used in zerokit
124
+ const proofBytes = zerokitRLN.generate_rln_proof_with_witness(this.zkRLN, calculatedWitness, rlnWitness);
125
+ return new Proof(proofBytes);
126
+ }
127
+ verifyRLNProof(proof, msg) {
128
+ let pBytes;
129
+ if (proof instanceof Uint8Array) {
130
+ pBytes = proof;
131
+ }
132
+ else {
133
+ pBytes = proofToBytes(proof);
134
+ }
135
+ // calculate message length
136
+ const msgLen = writeUIntLE(new Uint8Array(8), msg.length, 0, 8);
137
+ return zerokitRLN.verifyRLNProof(this.zkRLN, concatenate(pBytes, msgLen, msg));
138
+ }
139
+ verifyWithRoots(proof, msg) {
140
+ let pBytes;
141
+ if (proof instanceof Uint8Array) {
142
+ pBytes = proof;
143
+ }
144
+ else {
145
+ pBytes = proofToBytes(proof);
146
+ }
147
+ // calculate message length
148
+ const msgLen = writeUIntLE(new Uint8Array(8), msg.length, 0, 8);
149
+ // obtain root
150
+ const root = zerokitRLN.getRoot(this.zkRLN);
151
+ return zerokitRLN.verifyWithRoots(this.zkRLN, concatenate(pBytes, msgLen, msg), root);
152
+ }
153
+ }
154
+ //# sourceMappingURL=rln.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rln.js","sourceRoot":"","sources":["../src/rln.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export function builder(code: any, options: any): Promise<WitnessCalculator>;
2
+ declare class WitnessCalculator {
3
+ constructor(instance: any, sanityCheck: any);
4
+ instance: any;
5
+ version: any;
6
+ n32: any;
7
+ prime: bigint;
8
+ witnessSize: any;
9
+ sanityCheck: any;
10
+ circom_version(): any;
11
+ _doCalculateWitness(input: any, sanityCheck: any): Promise<void>;
12
+ calculateWitness(input: any, sanityCheck: any): Promise<bigint[]>;
13
+ calculateBinWitness(input: any, sanityCheck: any): Promise<Uint8Array>;
14
+ calculateWTNSBin(input: any, sanityCheck: any): Promise<Uint8Array>;
15
+ }
16
+ export {};
@@ -0,0 +1,291 @@
1
+ // File generated with https://github.com/iden3/circom
2
+ // following the instructions from:
3
+ // https://github.com/vacp2p/zerokit/tree/master/rln#compiling-circuits
4
+ export async function builder(code, options) {
5
+ options = options || {};
6
+ let wasmModule;
7
+ try {
8
+ wasmModule = await WebAssembly.compile(code);
9
+ }
10
+ catch (err) {
11
+ console.log(err);
12
+ console.log("\nTry to run circom --c in order to generate c++ code instead\n");
13
+ throw new Error(err);
14
+ }
15
+ let wc;
16
+ let errStr = "";
17
+ let msgStr = "";
18
+ const instance = await WebAssembly.instantiate(wasmModule, {
19
+ runtime: {
20
+ exceptionHandler: function (code) {
21
+ let err;
22
+ if (code == 1) {
23
+ err = "Signal not found.\n";
24
+ }
25
+ else if (code == 2) {
26
+ err = "Too many signals set.\n";
27
+ }
28
+ else if (code == 3) {
29
+ err = "Signal already set.\n";
30
+ }
31
+ else if (code == 4) {
32
+ err = "Assert Failed.\n";
33
+ }
34
+ else if (code == 5) {
35
+ err = "Not enough memory.\n";
36
+ }
37
+ else if (code == 6) {
38
+ err = "Input signal array access exceeds the size.\n";
39
+ }
40
+ else {
41
+ err = "Unknown error.\n";
42
+ }
43
+ throw new Error(err + errStr);
44
+ },
45
+ printErrorMessage: function () {
46
+ errStr += getMessage() + "\n";
47
+ // console.error(getMessage());
48
+ },
49
+ writeBufferMessage: function () {
50
+ const msg = getMessage();
51
+ // Any calls to `log()` will always end with a `\n`, so that's when we print and reset
52
+ if (msg === "\n") {
53
+ console.log(msgStr);
54
+ msgStr = "";
55
+ }
56
+ else {
57
+ // If we've buffered other content, put a space in between the items
58
+ if (msgStr !== "") {
59
+ msgStr += " ";
60
+ }
61
+ // Then append the message to the message we are creating
62
+ msgStr += msg;
63
+ }
64
+ },
65
+ showSharedRWMemory: function () {
66
+ printSharedRWMemory();
67
+ }
68
+ }
69
+ });
70
+ const sanityCheck = options;
71
+ // options &&
72
+ // (
73
+ // options.sanityCheck ||
74
+ // options.logGetSignal ||
75
+ // options.logSetSignal ||
76
+ // options.logStartComponent ||
77
+ // options.logFinishComponent
78
+ // );
79
+ wc = new WitnessCalculator(instance, sanityCheck);
80
+ return wc;
81
+ function getMessage() {
82
+ var message = "";
83
+ var c = instance.exports.getMessageChar();
84
+ while (c != 0) {
85
+ message += String.fromCharCode(c);
86
+ c = instance.exports.getMessageChar();
87
+ }
88
+ return message;
89
+ }
90
+ function printSharedRWMemory() {
91
+ const shared_rw_memory_size = instance.exports.getFieldNumLen32();
92
+ const arr = new Uint32Array(shared_rw_memory_size);
93
+ for (let j = 0; j < shared_rw_memory_size; j++) {
94
+ arr[shared_rw_memory_size - 1 - j] = instance.exports.readSharedRWMemory(j);
95
+ }
96
+ // If we've buffered other content, put a space in between the items
97
+ if (msgStr !== "") {
98
+ msgStr += " ";
99
+ }
100
+ // Then append the value to the message we are creating
101
+ msgStr += (fromArray32(arr).toString());
102
+ }
103
+ }
104
+ ;
105
+ class WitnessCalculator {
106
+ constructor(instance, sanityCheck) {
107
+ this.instance = instance;
108
+ this.version = this.instance.exports.getVersion();
109
+ this.n32 = this.instance.exports.getFieldNumLen32();
110
+ this.instance.exports.getRawPrime();
111
+ const arr = new Uint32Array(this.n32);
112
+ for (let i = 0; i < this.n32; i++) {
113
+ arr[this.n32 - 1 - i] = this.instance.exports.readSharedRWMemory(i);
114
+ }
115
+ this.prime = fromArray32(arr);
116
+ this.witnessSize = this.instance.exports.getWitnessSize();
117
+ this.sanityCheck = sanityCheck;
118
+ }
119
+ circom_version() {
120
+ return this.instance.exports.getVersion();
121
+ }
122
+ async _doCalculateWitness(input, sanityCheck) {
123
+ //input is assumed to be a map from signals to arrays of bigints
124
+ this.instance.exports.init((this.sanityCheck || sanityCheck) ? 1 : 0);
125
+ const keys = Object.keys(input);
126
+ var input_counter = 0;
127
+ keys.forEach((k) => {
128
+ const h = fnvHash(k);
129
+ const hMSB = parseInt(h.slice(0, 8), 16);
130
+ const hLSB = parseInt(h.slice(8, 16), 16);
131
+ const fArr = flatArray(input[k]);
132
+ let signalSize = this.instance.exports.getInputSignalSize(hMSB, hLSB);
133
+ if (signalSize < 0) {
134
+ throw new Error(`Signal ${k} not found\n`);
135
+ }
136
+ if (fArr.length < signalSize) {
137
+ throw new Error(`Not enough values for input signal ${k}\n`);
138
+ }
139
+ if (fArr.length > signalSize) {
140
+ throw new Error(`Too many values for input signal ${k}\n`);
141
+ }
142
+ for (let i = 0; i < fArr.length; i++) {
143
+ const arrFr = toArray32(BigInt(fArr[i]) % this.prime, this.n32);
144
+ for (let j = 0; j < this.n32; j++) {
145
+ this.instance.exports.writeSharedRWMemory(j, arrFr[this.n32 - 1 - j]);
146
+ }
147
+ try {
148
+ this.instance.exports.setInputSignal(hMSB, hLSB, i);
149
+ input_counter++;
150
+ }
151
+ catch (err) {
152
+ // console.log(`After adding signal ${i} of ${k}`)
153
+ throw new Error(err);
154
+ }
155
+ }
156
+ });
157
+ if (input_counter < this.instance.exports.getInputSize()) {
158
+ throw new Error(`Not all inputs have been set. Only ${input_counter} out of ${this.instance.exports.getInputSize()}`);
159
+ }
160
+ }
161
+ async calculateWitness(input, sanityCheck) {
162
+ const w = [];
163
+ await this._doCalculateWitness(input, sanityCheck);
164
+ for (let i = 0; i < this.witnessSize; i++) {
165
+ this.instance.exports.getWitness(i);
166
+ const arr = new Uint32Array(this.n32);
167
+ for (let j = 0; j < this.n32; j++) {
168
+ arr[this.n32 - 1 - j] = this.instance.exports.readSharedRWMemory(j);
169
+ }
170
+ w.push(fromArray32(arr));
171
+ }
172
+ return w;
173
+ }
174
+ async calculateBinWitness(input, sanityCheck) {
175
+ const buff32 = new Uint32Array(this.witnessSize * this.n32);
176
+ const buff = new Uint8Array(buff32.buffer);
177
+ await this._doCalculateWitness(input, sanityCheck);
178
+ for (let i = 0; i < this.witnessSize; i++) {
179
+ this.instance.exports.getWitness(i);
180
+ const pos = i * this.n32;
181
+ for (let j = 0; j < this.n32; j++) {
182
+ buff32[pos + j] = this.instance.exports.readSharedRWMemory(j);
183
+ }
184
+ }
185
+ return buff;
186
+ }
187
+ async calculateWTNSBin(input, sanityCheck) {
188
+ const buff32 = new Uint32Array(this.witnessSize * this.n32 + this.n32 + 11);
189
+ const buff = new Uint8Array(buff32.buffer);
190
+ await this._doCalculateWitness(input, sanityCheck);
191
+ //"wtns"
192
+ buff[0] = "w".charCodeAt(0);
193
+ buff[1] = "t".charCodeAt(0);
194
+ buff[2] = "n".charCodeAt(0);
195
+ buff[3] = "s".charCodeAt(0);
196
+ //version 2
197
+ buff32[1] = 2;
198
+ //number of sections: 2
199
+ buff32[2] = 2;
200
+ //id section 1
201
+ buff32[3] = 1;
202
+ const n8 = this.n32 * 4;
203
+ //id section 1 length in 64bytes
204
+ const idSection1length = 8 + n8;
205
+ const idSection1lengthHex = idSection1length.toString(16);
206
+ buff32[4] = parseInt(idSection1lengthHex.slice(0, 8), 16);
207
+ buff32[5] = parseInt(idSection1lengthHex.slice(8, 16), 16);
208
+ //this.n32
209
+ buff32[6] = n8;
210
+ //prime number
211
+ this.instance.exports.getRawPrime();
212
+ var pos = 7;
213
+ for (let j = 0; j < this.n32; j++) {
214
+ buff32[pos + j] = this.instance.exports.readSharedRWMemory(j);
215
+ }
216
+ pos += this.n32;
217
+ // witness size
218
+ buff32[pos] = this.witnessSize;
219
+ pos++;
220
+ //id section 2
221
+ buff32[pos] = 2;
222
+ pos++;
223
+ // section 2 length
224
+ const idSection2length = n8 * this.witnessSize;
225
+ const idSection2lengthHex = idSection2length.toString(16);
226
+ buff32[pos] = parseInt(idSection2lengthHex.slice(0, 8), 16);
227
+ buff32[pos + 1] = parseInt(idSection2lengthHex.slice(8, 16), 16);
228
+ pos += 2;
229
+ for (let i = 0; i < this.witnessSize; i++) {
230
+ this.instance.exports.getWitness(i);
231
+ for (let j = 0; j < this.n32; j++) {
232
+ buff32[pos + j] = this.instance.exports.readSharedRWMemory(j);
233
+ }
234
+ pos += this.n32;
235
+ }
236
+ return buff;
237
+ }
238
+ }
239
+ function toArray32(rem, size) {
240
+ const res = []; //new Uint32Array(size); //has no unshift
241
+ const radix = BigInt(0x100000000);
242
+ while (rem) {
243
+ res.unshift(Number(rem % radix));
244
+ rem = rem / radix;
245
+ }
246
+ if (size) {
247
+ var i = size - res.length;
248
+ while (i > 0) {
249
+ res.unshift(0);
250
+ i--;
251
+ }
252
+ }
253
+ return res;
254
+ }
255
+ function fromArray32(arr) {
256
+ var res = BigInt(0);
257
+ const radix = BigInt(0x100000000);
258
+ for (let i = 0; i < arr.length; i++) {
259
+ res = res * radix + BigInt(arr[i]);
260
+ }
261
+ return res;
262
+ }
263
+ function flatArray(a) {
264
+ var res = [];
265
+ fillArray(res, a);
266
+ return res;
267
+ function fillArray(res, a) {
268
+ if (Array.isArray(a)) {
269
+ for (let i = 0; i < a.length; i++) {
270
+ fillArray(res, a[i]);
271
+ }
272
+ }
273
+ else {
274
+ res.push(a);
275
+ }
276
+ }
277
+ }
278
+ function fnvHash(str) {
279
+ const uint64_max = BigInt(2) ** BigInt(64);
280
+ let hash = BigInt("0xCBF29CE484222325");
281
+ for (var i = 0; i < str.length; i++) {
282
+ hash ^= BigInt(str[i].charCodeAt());
283
+ hash *= BigInt(0x100000001B3);
284
+ hash %= uint64_max;
285
+ }
286
+ let shash = hash.toString(16);
287
+ let n = 16 - shash.length;
288
+ shash = '0'.repeat(n).concat(shash);
289
+ return shash;
290
+ }
291
+ //# sourceMappingURL=witness_calculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"witness_calculator.js","sourceRoot":"","sources":["../src/witness_calculator.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@waku/rln",
3
- "version": "0.0.11",
3
+ "version": "0.0.12",
4
4
  "description": "Rate Limit Nullifier for js-waku",
5
5
  "types": "./dist/index.d.ts",
6
6
  "module": "./dist/index.js",