Content
@
0 reply
0 recast
0 reaction
Julie B.
@bbjubjub.eth
The Solana ZK token bug wasn't really ZK. They wanted to optimize a check that Y_0 = G and Y_1 = G where G is the generator, so they took a random scalar w and checked that Y_0 + wY_1 = G. This is a common trick, the problem is they took w from the (incomplete) transcript instead of just generating it on the spot 😓
3 replies
0 recast
13 reactions
Julie B.
@bbjubjub.eth
If you don't believe me: here's the (fixed) verifier code where I took this example (there are more places where this is done) https://github.com/anza-xyz/agave/blob/fd63ecda7ae7d32fe4ee0f3c933af8f2d5759ea2/zk-sdk/src/sigma_proofs/grouped_ciphertext_validity/handles_2.rs#L132
1 reply
0 recast
3 reactions
Julie B.
@bbjubjub.eth
erratum I should have said the point at infinity aka G times zero instead of G
1 reply
0 recast
1 reaction
Dorp D. Dorp
@dorpdorp
Oh dear lord, yes they should’ve committed to some adjunct but binding challenge. Where is Mary Maller when you need her, to rain some witty fire and brimstone eh?
0 reply
0 recast
0 reaction