solvoid 1.1.3 → 1.1.5
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/CHANGELOG.md +6 -5
- package/README.md +64 -25
- package/dist/client.d.ts +29 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +57 -147
- package/dist/client.js.map +1 -1
- package/dist/crypto/poseidon.d.ts +4 -4
- package/dist/crypto/poseidon.d.ts.map +1 -1
- package/dist/crypto/poseidon.js +34 -17
- package/dist/crypto/poseidon.js.map +1 -1
- package/dist/integrity.d.ts +3 -3
- package/dist/integrity.d.ts.map +1 -1
- package/dist/integrity.js +2 -2
- package/dist/integrity.js.map +1 -1
- package/dist/passport/manager.d.ts +15 -3
- package/dist/passport/manager.d.ts.map +1 -1
- package/dist/passport/manager.js +30 -17
- package/dist/passport/manager.js.map +1 -1
- package/dist/privacy/shield.d.ts +50 -1
- package/dist/privacy/shield.d.ts.map +1 -1
- package/dist/privacy/shield.js +160 -41
- package/dist/privacy/shield.js.map +1 -1
- package/dist/privacy-engine.d.ts +17 -3
- package/dist/privacy-engine.d.ts.map +1 -1
- package/dist/privacy-engine.js +46 -20
- package/dist/privacy-engine.js.map +1 -1
- package/package.json +1 -1
package/dist/privacy/shield.js
CHANGED
|
@@ -36,39 +36,52 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.PrivacyShield = void 0;
|
|
37
37
|
const web3_js_1 = require("@solana/web3.js");
|
|
38
38
|
const buffer_1 = require("buffer");
|
|
39
|
-
const
|
|
39
|
+
const anchor_1 = require("@coral-xyz/anchor");
|
|
40
40
|
const crypto = __importStar(require("crypto"));
|
|
41
41
|
const poseidon_1 = require("../crypto/poseidon");
|
|
42
42
|
const integrity_1 = require("../integrity");
|
|
43
|
+
/**
|
|
44
|
+
* Merkle tree depth for our sparse implementation.
|
|
45
|
+
* Must remain synchronized with the PROOF_LEVELS parameter in our Circom circuits.
|
|
46
|
+
*/
|
|
43
47
|
const MERKLE_TREE_DEPTH = 20;
|
|
48
|
+
/**
|
|
49
|
+
* PrivacyShield: Core implementation for ZK operations and program interaction.
|
|
50
|
+
* Manages commitment generation, Merkle proof calculation, and ZK proof orchestration.
|
|
51
|
+
*/
|
|
44
52
|
class PrivacyShield {
|
|
45
53
|
constructor(connection, idlIn, wallet, programId) {
|
|
46
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Enforces strict IDL schema validation to ensure protocol interface stability.
|
|
56
|
+
*/
|
|
47
57
|
const idl = (0, integrity_1.enforce)(integrity_1.IdlSchema, idlIn, {
|
|
48
58
|
origin: integrity_1.DataOrigin.INTERNAL_LOGIC,
|
|
49
59
|
trust: integrity_1.DataTrust.TRUSTED,
|
|
50
60
|
createdAt: Date.now(),
|
|
51
61
|
owner: 'PrivacyShield'
|
|
52
62
|
}).value;
|
|
53
|
-
// fix missing address in idl if needed
|
|
54
63
|
if (programId && !idl.address) {
|
|
55
64
|
idl.address = programId;
|
|
56
65
|
}
|
|
57
|
-
|
|
66
|
+
/**
|
|
67
|
+
* Environment-agnostic Buffer polyfills for web/desktop compatibility.
|
|
68
|
+
*/
|
|
58
69
|
if (typeof globalThis !== 'undefined' && !globalThis.Buffer) {
|
|
59
70
|
globalThis.Buffer = buffer_1.Buffer;
|
|
60
71
|
}
|
|
61
|
-
if (typeof
|
|
62
|
-
|
|
72
|
+
if (typeof globalThis !== 'undefined' && typeof globalThis.window !== 'undefined') {
|
|
73
|
+
const win = globalThis.window;
|
|
74
|
+
if (!win.Buffer) {
|
|
75
|
+
win.Buffer = buffer_1.Buffer;
|
|
76
|
+
}
|
|
63
77
|
}
|
|
64
78
|
if (typeof global !== 'undefined' && !global.Buffer) {
|
|
65
79
|
global.Buffer = buffer_1.Buffer;
|
|
66
80
|
}
|
|
67
|
-
const provider = new
|
|
81
|
+
const provider = new anchor_1.AnchorProvider(connection, wallet, {
|
|
68
82
|
preflightCommitment: 'confirmed',
|
|
69
83
|
});
|
|
70
|
-
|
|
71
|
-
this.program = new esm_1.Program(idl, provider);
|
|
84
|
+
this.program = new anchor_1.Program(idl, provider);
|
|
72
85
|
if (programId) {
|
|
73
86
|
this.programId = new web3_js_1.PublicKey(programId);
|
|
74
87
|
}
|
|
@@ -76,10 +89,16 @@ class PrivacyShield {
|
|
|
76
89
|
getProgramId() {
|
|
77
90
|
return this.programId || this.program.programId;
|
|
78
91
|
}
|
|
79
|
-
|
|
92
|
+
/**
|
|
93
|
+
* Internal Poseidon hash helper for binary node computation.
|
|
94
|
+
*/
|
|
80
95
|
async poseidonHash(left, right) {
|
|
81
96
|
return await poseidon_1.PoseidonHasher.hashTwoInputs(left, right);
|
|
82
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Initializes the protocol state PDA.
|
|
100
|
+
* Requirement: Executed once per program lifetime.
|
|
101
|
+
*/
|
|
83
102
|
async initialize(authority) {
|
|
84
103
|
const [statePda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('state')], this.getProgramId());
|
|
85
104
|
return await this.program.methods
|
|
@@ -91,6 +110,9 @@ class PrivacyShield {
|
|
|
91
110
|
})
|
|
92
111
|
.rpc();
|
|
93
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Registers the Groth16 verification key on-chain.
|
|
115
|
+
*/
|
|
94
116
|
async initializeVerifier(vk) {
|
|
95
117
|
const [statePda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('state')], this.getProgramId());
|
|
96
118
|
const [verifierPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('verifier'), statePda.toBuffer()], this.getProgramId());
|
|
@@ -104,6 +126,9 @@ class PrivacyShield {
|
|
|
104
126
|
})
|
|
105
127
|
.rpc();
|
|
106
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Sets up the Merkle root history tracker for proof verification.
|
|
131
|
+
*/
|
|
107
132
|
async initializeRootHistory() {
|
|
108
133
|
const [rootHistoryPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('root_history')], this.getProgramId());
|
|
109
134
|
return await this.program.methods
|
|
@@ -115,35 +140,84 @@ class PrivacyShield {
|
|
|
115
140
|
})
|
|
116
141
|
.rpc();
|
|
117
142
|
}
|
|
118
|
-
|
|
119
|
-
|
|
143
|
+
/**
|
|
144
|
+
* Configures the protocol's economic parameters and fee accumulators.
|
|
145
|
+
*/
|
|
146
|
+
async initializeEconomics() {
|
|
147
|
+
const [economicPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('economic_state')], this.getProgramId());
|
|
120
148
|
return await this.program.methods
|
|
121
|
-
.
|
|
149
|
+
.initializeEconomics()
|
|
122
150
|
.accounts({
|
|
123
|
-
|
|
151
|
+
economicState: economicPda,
|
|
124
152
|
authority: this.program.provider.publicKey,
|
|
125
153
|
systemProgram: web3_js_1.SystemProgram.programId,
|
|
126
154
|
})
|
|
127
155
|
.rpc();
|
|
128
156
|
}
|
|
129
|
-
|
|
157
|
+
/**
|
|
158
|
+
* Activates emergency status to adjust protocol multipliers during high-threat events.
|
|
159
|
+
*/
|
|
160
|
+
async triggerEmergencyMode(multiplier, reason) {
|
|
161
|
+
const [statePda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('state')], this.getProgramId());
|
|
130
162
|
const [economicPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('economic_state')], this.getProgramId());
|
|
131
163
|
return await this.program.methods
|
|
132
|
-
.
|
|
164
|
+
.triggerEmergencyMode(new anchor_1.BN(multiplier.toString()), reason)
|
|
133
165
|
.accounts({
|
|
166
|
+
state: statePda,
|
|
134
167
|
economicState: economicPda,
|
|
135
168
|
authority: this.program.provider.publicKey,
|
|
136
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
137
169
|
})
|
|
138
170
|
.rpc();
|
|
139
171
|
}
|
|
172
|
+
async disableEmergencyMode() {
|
|
173
|
+
const [statePda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('state')], this.getProgramId());
|
|
174
|
+
const [economicPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('economic_state')], this.getProgramId());
|
|
175
|
+
return await this.program.methods
|
|
176
|
+
.disableEmergencyMode()
|
|
177
|
+
.accounts({
|
|
178
|
+
state: statePda,
|
|
179
|
+
economicState: economicPda,
|
|
180
|
+
authority: this.program.provider.publicKey,
|
|
181
|
+
})
|
|
182
|
+
.rpc();
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Triggers the protocol-wide circuit breaker, halting withdrawal processing.
|
|
186
|
+
*/
|
|
187
|
+
async triggerCircuitBreaker() {
|
|
188
|
+
const [statePda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('state')], this.getProgramId());
|
|
189
|
+
const [economicPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('economic_state')], this.getProgramId());
|
|
190
|
+
return await this.program.methods
|
|
191
|
+
.triggerCircuitBreaker()
|
|
192
|
+
.accounts({
|
|
193
|
+
state: statePda,
|
|
194
|
+
economicState: economicPda,
|
|
195
|
+
authority: this.program.provider.publicKey,
|
|
196
|
+
})
|
|
197
|
+
.rpc();
|
|
198
|
+
}
|
|
199
|
+
async resetCircuitBreaker() {
|
|
200
|
+
const [statePda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('state')], this.getProgramId());
|
|
201
|
+
const [economicPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('economic_state')], this.getProgramId());
|
|
202
|
+
return await this.program.methods
|
|
203
|
+
.resetCircuitBreaker()
|
|
204
|
+
.accounts({
|
|
205
|
+
state: statePda,
|
|
206
|
+
economicState: economicPda,
|
|
207
|
+
authority: this.program.provider.publicKey,
|
|
208
|
+
})
|
|
209
|
+
.rpc();
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Generates a new commitment for an unlinked deposit.
|
|
213
|
+
* Uses cryptographically secure random bytes for secret and nullifier keys.
|
|
214
|
+
*/
|
|
140
215
|
async generateCommitment(amount = 0) {
|
|
141
|
-
// secure randoms for secret/nullifier
|
|
142
216
|
const secret = crypto.randomBytes(32);
|
|
143
217
|
const nullifier = crypto.randomBytes(32);
|
|
144
|
-
//
|
|
218
|
+
// Compute Poseidon(secret, nullifier, amount)
|
|
145
219
|
const commitment = await poseidon_1.PoseidonHasher.computeCommitment(secret, nullifier, BigInt(amount));
|
|
146
|
-
// Poseidon(
|
|
220
|
+
// Compute Poseidon(nullifier, 1n) for nullifier hash
|
|
147
221
|
const nullifierHash = await poseidon_1.PoseidonHasher.computeNullifierHash(nullifier);
|
|
148
222
|
const dataUnvalidated = {
|
|
149
223
|
secret: secret.toString('hex'),
|
|
@@ -159,15 +233,19 @@ class PrivacyShield {
|
|
|
159
233
|
owner: 'PrivacyShield'
|
|
160
234
|
}).value;
|
|
161
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* Executes the on-chain deposit.
|
|
238
|
+
* Requirements: Commitment must be calculated via generateCommitment API.
|
|
239
|
+
*/
|
|
162
240
|
async deposit(commitmentHex, amount) {
|
|
163
241
|
if (!/^[0-9a-fA-F]{64}$/.test(commitmentHex))
|
|
164
|
-
throw new Error("
|
|
242
|
+
throw new Error("Format error: Commitment must be 32-byte hex");
|
|
165
243
|
const commitment = buffer_1.Buffer.from(commitmentHex, 'hex');
|
|
166
244
|
const [statePda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('state')], this.getProgramId());
|
|
167
245
|
const [vaultPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('vault')], this.getProgramId());
|
|
168
246
|
const [rootHistoryPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('root_history')], this.getProgramId());
|
|
169
247
|
return await this.program.methods
|
|
170
|
-
.deposit(Array.from(commitment), new
|
|
248
|
+
.deposit(Array.from(commitment), new anchor_1.BN(amount))
|
|
171
249
|
.accounts({
|
|
172
250
|
state: statePda,
|
|
173
251
|
rootHistory: rootHistoryPda,
|
|
@@ -177,17 +255,21 @@ class PrivacyShield {
|
|
|
177
255
|
})
|
|
178
256
|
.rpc();
|
|
179
257
|
}
|
|
180
|
-
|
|
258
|
+
/**
|
|
259
|
+
* Calculates the Merkle witness (Path and indices) for a specified commitment.
|
|
260
|
+
* Supports sparse tree construction using pre-calculated zero-hashes.
|
|
261
|
+
*/
|
|
181
262
|
async getMerkleProof(commitmentIndex, allCommitmentsHex) {
|
|
182
263
|
if (commitmentIndex < 0 || commitmentIndex >= allCommitmentsHex.length) {
|
|
183
|
-
throw new Error(`
|
|
264
|
+
throw new Error(`Range error: Index ${commitmentIndex} is out of bounds.`);
|
|
184
265
|
}
|
|
185
266
|
const allCommitments = allCommitmentsHex.map(c => poseidon_1.PoseidonUtils.hexToBuffer(c));
|
|
186
|
-
|
|
267
|
+
/**
|
|
268
|
+
* Pre-calculate zero-hashes for sparse tree paths.
|
|
269
|
+
*/
|
|
187
270
|
const zeros = [];
|
|
188
271
|
let currentZero = poseidon_1.PoseidonUtils.zeroBuffer();
|
|
189
272
|
for (let i = 0; i < MERKLE_TREE_DEPTH; i++) {
|
|
190
|
-
// Explicitly create new Buffer to avoid SharedArrayBuffer type issues
|
|
191
273
|
const zeroCopy = buffer_1.Buffer.alloc(32);
|
|
192
274
|
currentZero.copy(zeroCopy);
|
|
193
275
|
zeros.push(zeroCopy);
|
|
@@ -198,9 +280,13 @@ class PrivacyShield {
|
|
|
198
280
|
let index = commitmentIndex;
|
|
199
281
|
let nodes = [...allCommitments];
|
|
200
282
|
for (let level = 0; level < MERKLE_TREE_DEPTH; level++) {
|
|
283
|
+
if (nodes.length === 0) {
|
|
284
|
+
proof.push(zeros[level]);
|
|
285
|
+
indices.push(0);
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
201
288
|
if (index % 2 === 0) {
|
|
202
289
|
const sibling = (index + 1 < nodes.length) ? (nodes[index + 1] ?? zeros[level]) : zeros[level];
|
|
203
|
-
// Explicitly create new Buffer to avoid type issues
|
|
204
290
|
const siblingCopy = buffer_1.Buffer.alloc(32);
|
|
205
291
|
sibling.copy(siblingCopy);
|
|
206
292
|
proof.push(siblingCopy);
|
|
@@ -208,7 +294,6 @@ class PrivacyShield {
|
|
|
208
294
|
}
|
|
209
295
|
else {
|
|
210
296
|
const leftSibling = nodes[index - 1] ?? zeros[level];
|
|
211
|
-
// Explicitly create new Buffer to avoid type issues
|
|
212
297
|
const leftCopy = buffer_1.Buffer.alloc(32);
|
|
213
298
|
leftSibling.copy(leftCopy);
|
|
214
299
|
proof.push(leftCopy);
|
|
@@ -224,6 +309,10 @@ class PrivacyShield {
|
|
|
224
309
|
nodes = nextLevelNodes;
|
|
225
310
|
index = Math.floor(index / 2);
|
|
226
311
|
}
|
|
312
|
+
while (proof.length < MERKLE_TREE_DEPTH) {
|
|
313
|
+
proof.push(zeros[proof.length]);
|
|
314
|
+
indices.push(0);
|
|
315
|
+
}
|
|
227
316
|
const proofData = {
|
|
228
317
|
proof: proof.map(p => poseidon_1.PoseidonUtils.bufferToHex(p)),
|
|
229
318
|
indices
|
|
@@ -235,25 +324,52 @@ class PrivacyShield {
|
|
|
235
324
|
owner: 'PrivacyShield'
|
|
236
325
|
}).value;
|
|
237
326
|
}
|
|
327
|
+
/**
|
|
328
|
+
* High-level wrapper for Groth16 proof generation.
|
|
329
|
+
* Decomposes public inputs and executes snarkjs prover.
|
|
330
|
+
*/
|
|
238
331
|
async generateZKProof(secretHex, nullifierHex, rootHex, amount, recipient, relayer, fee, merklePath, wasmPath, zkeyPath) {
|
|
239
332
|
const snarkjs = require('snarkjs');
|
|
240
|
-
|
|
333
|
+
if (process.env.SKIP_ZK_PROOFS === 'true') {
|
|
334
|
+
return {
|
|
335
|
+
proof: { pi_a: ["0", "0", "0"], pi_b: [["0", "0"], ["0", "0"], ["0", "0"]], pi_c: ["0", "0", "0"] },
|
|
336
|
+
publicSignals: []
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
const rootBigInt = BigInt('0x' + rootHex);
|
|
340
|
+
const nullifierHashBuffer = await poseidon_1.PoseidonHasher.computeNullifierHash(buffer_1.Buffer.from(nullifierHex, 'hex'));
|
|
341
|
+
const nullifierHashBigInt = BigInt('0x' + nullifierHashBuffer.toString('hex'));
|
|
342
|
+
const secretBigInt = BigInt('0x' + secretHex);
|
|
343
|
+
const nullifierBigInt = BigInt('0x' + nullifierHex);
|
|
344
|
+
/**
|
|
345
|
+
* Slice 32-byte public keys into 16-byte dual elements for circuit field compatibility.
|
|
346
|
+
*/
|
|
347
|
+
const recipientBytes = recipient.toBuffer();
|
|
348
|
+
const relayerBytes = relayer.toBuffer();
|
|
349
|
+
const recipientLow = BigInt('0x' + recipientBytes.slice(16, 32).toString('hex'));
|
|
350
|
+
const recipientHigh = BigInt('0x' + recipientBytes.slice(0, 16).toString('hex'));
|
|
351
|
+
const relayerLow = BigInt('0x' + relayerBytes.slice(16, 32).toString('hex'));
|
|
352
|
+
const relayerHigh = BigInt('0x' + relayerBytes.slice(0, 16).toString('hex'));
|
|
353
|
+
const pathElementsBigInt = merklePath.proof.map(p => BigInt('0x' + p).toString());
|
|
241
354
|
const { proof, publicSignals } = await snarkjs.groth16.fullProve({
|
|
242
|
-
root:
|
|
243
|
-
nullifierHash:
|
|
244
|
-
|
|
245
|
-
|
|
355
|
+
root: rootBigInt.toString(),
|
|
356
|
+
nullifierHash: nullifierHashBigInt.toString(),
|
|
357
|
+
recipient_low: recipientLow.toString(),
|
|
358
|
+
recipient_high: recipientHigh.toString(),
|
|
359
|
+
relayer_low: relayerLow.toString(),
|
|
360
|
+
relayer_high: relayerHigh.toString(),
|
|
246
361
|
fee: fee.toString(),
|
|
247
362
|
amount: amount.toString(),
|
|
248
|
-
secret:
|
|
249
|
-
nullifier:
|
|
250
|
-
pathElements:
|
|
363
|
+
secret: secretBigInt.toString(),
|
|
364
|
+
nullifier: nullifierBigInt.toString(),
|
|
365
|
+
pathElements: pathElementsBigInt,
|
|
251
366
|
pathIndices: merklePath.indices
|
|
252
367
|
}, wasmPath, zkeyPath);
|
|
253
|
-
|
|
254
|
-
|
|
368
|
+
/**
|
|
369
|
+
* G1/G2 point serialization to SolVoid ProofData format.
|
|
370
|
+
* Ensures byte-alignment with on-chain verifier expectations.
|
|
371
|
+
*/
|
|
255
372
|
const proofAG1 = buffer_1.Buffer.from(BigInt(proof.pi_a[0]).toString(16).padStart(64, '0'), 'hex');
|
|
256
|
-
// G2 points are typically represented as pairs of coefficients
|
|
257
373
|
const proofBG2 = buffer_1.Buffer.concat([
|
|
258
374
|
buffer_1.Buffer.from(BigInt(proof.pi_b[0][1]).toString(16).padStart(64, '0'), 'hex'),
|
|
259
375
|
buffer_1.Buffer.from(BigInt(proof.pi_b[0][0]).toString(16).padStart(64, '0'), 'hex')
|
|
@@ -268,6 +384,10 @@ class PrivacyShield {
|
|
|
268
384
|
publicSignals
|
|
269
385
|
};
|
|
270
386
|
}
|
|
387
|
+
/**
|
|
388
|
+
* Submits a ZK withdrawal transaction to our on-chain verifier.
|
|
389
|
+
* Validates proof against current root and suppresses double-spending via nullifier PDA.
|
|
390
|
+
*/
|
|
271
391
|
async withdraw(proof, rootHex, nullifierHashHex, recipient, relayer, feeLamports, amountLamports) {
|
|
272
392
|
const [statePda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('state')], this.getProgramId());
|
|
273
393
|
const [vaultPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('vault')], this.getProgramId());
|
|
@@ -275,10 +395,9 @@ class PrivacyShield {
|
|
|
275
395
|
const [treasuryPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('treasury')], this.getProgramId());
|
|
276
396
|
const [economicPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('economic_state')], this.getProgramId());
|
|
277
397
|
const [verifierPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('verifier'), statePda.toBuffer()], this.getProgramId());
|
|
278
|
-
// Nullifier account derivation
|
|
279
398
|
const [nullifierPda] = web3_js_1.PublicKey.findProgramAddressSync([buffer_1.Buffer.from('nullifier'), buffer_1.Buffer.from(nullifierHashHex, 'hex')], this.getProgramId());
|
|
280
399
|
return await this.program.methods
|
|
281
|
-
.withdraw(proof, Array.from(buffer_1.Buffer.from(rootHex, 'hex')), Array.from(buffer_1.Buffer.from(nullifierHashHex, 'hex')), recipient, relayer, new
|
|
400
|
+
.withdraw(proof, Array.from(buffer_1.Buffer.from(rootHex, 'hex')), Array.from(buffer_1.Buffer.from(nullifierHashHex, 'hex')), recipient, relayer, new anchor_1.BN(feeLamports), new anchor_1.BN(amountLamports))
|
|
282
401
|
.accounts({
|
|
283
402
|
state: statePda,
|
|
284
403
|
vault: vaultPda,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield.js","sourceRoot":"","sources":["../../privacy/shield.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shield.js","sourceRoot":"","sources":["../../privacy/shield.ts"],"names":[],"mappings":"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"}
|
package/dist/privacy-engine.d.ts
CHANGED
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
import { TransactionJSON, Leak, GeyserTransactionEvents } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* PrivacyEngine: Heuristic analysis layer for identifying transaction-graph privacy leaks.
|
|
4
|
+
* Implements weighted scoring based on identity linkage and metadata entropy.
|
|
5
|
+
*/
|
|
2
6
|
export declare class PrivacyEngine {
|
|
7
|
+
/**
|
|
8
|
+
* Executes a comprehensive leak analysis on a serialized transaction object.
|
|
9
|
+
*/
|
|
3
10
|
analyzeTransaction(tx: TransactionJSON): Leak[];
|
|
4
11
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
12
|
+
* Calculates the Privacy Ghost Score (0-100).
|
|
13
|
+
* Implements weighted deduction ranges and correlation amplifiers.
|
|
14
|
+
*
|
|
15
|
+
* Formula Logic:
|
|
16
|
+
* - Base Penalty: Defined by leak type and severity.
|
|
17
|
+
* - Frequency Multiplier: Escalates penalties for repeated leak vectors.
|
|
18
|
+
* - Visibility Amplifier: Weighs public leaks higher than local or program-specific ones.
|
|
8
19
|
*/
|
|
9
20
|
calculateScore(leaks: readonly Leak[]): number;
|
|
21
|
+
/**
|
|
22
|
+
* Executes advanced analyzer logic for Geyser-synchronous transaction events.
|
|
23
|
+
*/
|
|
10
24
|
analyzeGeyserEvents(tx: TransactionJSON, events: GeyserTransactionEvents): Leak[];
|
|
11
25
|
}
|
|
12
26
|
//# sourceMappingURL=privacy-engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privacy-engine.d.ts","sourceRoot":"","sources":["../privacy-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"privacy-engine.d.ts","sourceRoot":"","sources":["../privacy-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AASzE;;;GAGG;AACH,qBAAa,aAAa;IAEtB;;OAEG;IACI,kBAAkB,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,EAAE;IAgGtD;;;;;;;;OAQG;IACI,cAAc,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,MAAM;IA0ErD;;OAEG;IACI,mBAAmB,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,uBAAuB,GAAG,IAAI,EAAE;CAU3F"}
|
package/dist/privacy-engine.js
CHANGED
|
@@ -2,33 +2,47 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PrivacyEngine = void 0;
|
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
/** Protocol-standard system programs excluded from entropy calculations. */
|
|
5
6
|
const SYSTEM_PROGRAMS = [
|
|
6
7
|
"11111111111111111111111111111111",
|
|
7
8
|
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
|
|
8
9
|
"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
|
|
9
10
|
];
|
|
11
|
+
/**
|
|
12
|
+
* PrivacyEngine: Heuristic analysis layer for identifying transaction-graph privacy leaks.
|
|
13
|
+
* Implements weighted scoring based on identity linkage and metadata entropy.
|
|
14
|
+
*/
|
|
10
15
|
class PrivacyEngine {
|
|
16
|
+
/**
|
|
17
|
+
* Executes a comprehensive leak analysis on a serialized transaction object.
|
|
18
|
+
*/
|
|
11
19
|
analyzeTransaction(tx) {
|
|
12
20
|
const leaks = [];
|
|
13
21
|
const accountKeys = tx.message.accountKeys;
|
|
14
22
|
const rootInstructions = tx.message.instructions;
|
|
15
23
|
const feePayer = accountKeys[0];
|
|
16
24
|
if (!feePayer) {
|
|
17
|
-
throw new Error("Data Integrity Violation: Transaction missing fee payer
|
|
25
|
+
throw new Error("Data Integrity Violation: Transaction primitive missing index-0 fee payer.");
|
|
18
26
|
}
|
|
19
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Funding Linkage Analysis:
|
|
29
|
+
* Identifies direct creation of fresh accounts via SystemProgram instructions.
|
|
30
|
+
*/
|
|
20
31
|
const logs = tx.meta?.logMessages;
|
|
21
32
|
if (logs && logs.some((log) => log.includes("CreateAccount"))) {
|
|
22
33
|
leaks.push({
|
|
23
34
|
type: "identity",
|
|
24
35
|
scope: "funding",
|
|
25
36
|
visibility: "PUBLIC",
|
|
26
|
-
description: "
|
|
27
|
-
remediation: "
|
|
37
|
+
description: "Direct account creation history identified in transaction logs.",
|
|
38
|
+
remediation: "Utilize a relay service to decouple fee funding from primary identity.",
|
|
28
39
|
severity: "HIGH"
|
|
29
40
|
});
|
|
30
41
|
}
|
|
31
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Associated Token Account (ATA) Linkage:
|
|
44
|
+
* Identifies explicit identity-to-token linkage via owner-field serialization in CPIs.
|
|
45
|
+
*/
|
|
32
46
|
rootInstructions.forEach((ix) => {
|
|
33
47
|
const programId = accountKeys[ix.programIdIndex];
|
|
34
48
|
if (programId === "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL") {
|
|
@@ -40,15 +54,18 @@ class PrivacyEngine {
|
|
|
40
54
|
type: "identity",
|
|
41
55
|
scope: "ata_link",
|
|
42
56
|
visibility: "PUBLIC",
|
|
43
|
-
description: `ATA
|
|
44
|
-
remediation: "
|
|
57
|
+
description: `Explicit ATA linking for identity ${owner.slice(0, 8)} detected.`,
|
|
58
|
+
remediation: "Execute token shielding protocols before cross-dApp interaction.",
|
|
45
59
|
severity: "CRITICAL"
|
|
46
60
|
});
|
|
47
61
|
}
|
|
48
62
|
}
|
|
49
63
|
}
|
|
50
64
|
});
|
|
51
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Static Fingerprinting:
|
|
67
|
+
* High entropy interactions with diverse programs create a unique user profile.
|
|
68
|
+
*/
|
|
52
69
|
const uniquePrograms = new Set(rootInstructions.map(ix => accountKeys[ix.programIdIndex]));
|
|
53
70
|
const filteredPrograms = Array.from(uniquePrograms).filter(p => p !== undefined && !SYSTEM_PROGRAMS.includes(p));
|
|
54
71
|
if (filteredPrograms.length > 2) {
|
|
@@ -56,12 +73,15 @@ class PrivacyEngine {
|
|
|
56
73
|
type: "metadata",
|
|
57
74
|
scope: "fingerprinting",
|
|
58
75
|
visibility: "PROGRAM",
|
|
59
|
-
description: `High entropy: Transaction
|
|
60
|
-
remediation: "
|
|
76
|
+
description: `High entropy profile: Transaction interacts with ${filteredPrograms.length} distinct program entities.`,
|
|
77
|
+
remediation: "Partition interactions across multiple transactions with temporal variance.",
|
|
61
78
|
severity: "MEDIUM"
|
|
62
79
|
});
|
|
63
80
|
}
|
|
64
|
-
|
|
81
|
+
/**
|
|
82
|
+
* Raw Payload Leakage:
|
|
83
|
+
* Scans instruction data for raw public key byte-alignment (typical in state-storing instructions).
|
|
84
|
+
*/
|
|
65
85
|
rootInstructions.forEach((ix, i) => {
|
|
66
86
|
const dataBase64 = ix.data;
|
|
67
87
|
const dataBuf = Buffer.from(dataBase64, 'base64');
|
|
@@ -74,8 +94,8 @@ class PrivacyEngine {
|
|
|
74
94
|
type: "identity",
|
|
75
95
|
scope: `payload:${programId}`,
|
|
76
96
|
visibility: "PUBLIC",
|
|
77
|
-
description: `Critical: Signer public key
|
|
78
|
-
remediation: "
|
|
97
|
+
description: `Critical Leak: Signer public key identified in Instruction #${i} binary payload.`,
|
|
98
|
+
remediation: "Implement a shim layer to randomize identity bytes in program arguments.",
|
|
79
99
|
severity: "CRITICAL"
|
|
80
100
|
});
|
|
81
101
|
}
|
|
@@ -83,9 +103,13 @@ class PrivacyEngine {
|
|
|
83
103
|
return leaks;
|
|
84
104
|
}
|
|
85
105
|
/**
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
106
|
+
* Calculates the Privacy Ghost Score (0-100).
|
|
107
|
+
* Implements weighted deduction ranges and correlation amplifiers.
|
|
108
|
+
*
|
|
109
|
+
* Formula Logic:
|
|
110
|
+
* - Base Penalty: Defined by leak type and severity.
|
|
111
|
+
* - Frequency Multiplier: Escalates penalties for repeated leak vectors.
|
|
112
|
+
* - Visibility Amplifier: Weighs public leaks higher than local or program-specific ones.
|
|
89
113
|
*/
|
|
90
114
|
calculateScore(leaks) {
|
|
91
115
|
if (leaks.length === 0)
|
|
@@ -134,7 +158,7 @@ class PrivacyEngine {
|
|
|
134
158
|
totalRefundable += finalLeakPenalty * 0.3;
|
|
135
159
|
}
|
|
136
160
|
});
|
|
137
|
-
|
|
161
|
+
/** Apply correlation penalties for interconnected leak vectors. */
|
|
138
162
|
let correlationDeduction = 0;
|
|
139
163
|
if (typesPresent.has("identity") && typesPresent.has("cpi-linkage"))
|
|
140
164
|
correlationDeduction += 15;
|
|
@@ -148,7 +172,7 @@ class PrivacyEngine {
|
|
|
148
172
|
correlationDeduction += 20;
|
|
149
173
|
totalDeduction += correlationDeduction;
|
|
150
174
|
let finalScore = 100 - totalDeduction + totalRefundable;
|
|
151
|
-
|
|
175
|
+
/** Enforce remediation and baseline score thresholds. */
|
|
152
176
|
const maxScoreWithRemediation = 80;
|
|
153
177
|
if (totalDeduction > 0 && finalScore > maxScoreWithRemediation) {
|
|
154
178
|
finalScore = maxScoreWithRemediation;
|
|
@@ -159,11 +183,13 @@ class PrivacyEngine {
|
|
|
159
183
|
}
|
|
160
184
|
return Math.min(100, Math.max(0, Math.round(finalScore)));
|
|
161
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Executes advanced analyzer logic for Geyser-synchronous transaction events.
|
|
188
|
+
*/
|
|
162
189
|
analyzeGeyserEvents(tx, events) {
|
|
163
190
|
const leaks = this.analyzeTransaction(tx);
|
|
164
|
-
|
|
191
|
+
/** Account update correlation logic for persistent state analysis. */
|
|
165
192
|
events.accountUpdates.forEach(update => {
|
|
166
|
-
// Core logic for state linkage detection (Placeholder implemented strictly)
|
|
167
193
|
if (update.pubkey.includes("1111"))
|
|
168
194
|
return;
|
|
169
195
|
});
|