1. Same secret, either side
This is the smallest version of the trick. The secret scalar can sit inside the G1 input or the G2 input, and the target result stays the same.
e(37P, Q) = 143e(P, 37Q) = 143Pairing check passes
Hidden product left37 * 1 mod 101 = 37
Hidden product right1 * 37 mod 101 = 37
What matchedsame exponent in GT
2. Different points, same product
The pairing is not checking whether the visible points are identical. It is checking whether their hidden scalar products match modulo the group order.
e(12P, 9Q) = 482e(3P, 36Q) = 482Pairing check passes
Left product12 * 9 mod 101 = 7
Right product3 * 36 mod 101 = 7
Target outputsame GT element
3. BLS signature as one hidden product
A valid BLS signature hides sk * H(message). The public key hides sk. Pairing verification proves those two uses of sk agree.
e(signature, Q) = e(28P, Q) = 369e(H(m), pk) = e(44P, 19Q) = 369signature accepted
Public key19Q
Valid signature44 * 19 mod 101 = 28P
Checked signature28P
4. Aggregation is product reuse
When two signers sign the same message, their signatures add in G1 and their public keys add in G2. The pairing still sees the same total hidden product.
e(sigA + sigB, Q) = e(81P, Q) = 559e(H(m), pkA + pkB) = e(22P, 45Q) = 559aggregate accepted
sigA22 * 14 mod 101 = 5P
sigB22 * 31 mod 101 = 76P
pkA + pkB14Q + 31Q = 45Q
5. KZG opening means no remainder
For a correct opening, f(tau) - y equals q(tau) * (tau - z). A wrong y leaves a remainder, and the pairing equality breaks.
e((f(tau) - y)P, Q) = e(96P, Q) = 346e(q(tau)P, (tau - z)Q) = e(8P, 12Q) = 346opening accepted
q(tau)8
tau - z12
Claim error0
Expected scalar96