Proof for exponent range check is being used in some important cryptographic primitives as a critical component. For examply, multiparty delay encryption makes use of it as a way to prove a private key is well-constructed without revealing any information.
Due to being able to describe an ordering statement within the context of field and groups, the most efficient way to achieve this is via general purpose proving machinaries such as SNARKs. For this hackathon, we tried multiple different proving systems with unique approaches to efficiently implement an exponent range proof check. One of the most important application of our construction is can be used in a mempool privacy scheme for elimination of censorship and toxic MEV from Ethereum.
Every proving system that we used had it's own challanges and for each we came up with a dedicated solution.
Risc0: We had very little issues risc0
Novanet: Any inputs other than u64 did not work, we had to hardcode these into the circuit
Plonky3: Even though playing with AIR enables us with to have so much flexibility, using it as it is is not possible. This is because lots of basic building blocks are yet not added to the library such as big-num or basic comparison circuits. We developed a new circuit to way around all of those issues.
Tracks Applied (8)
Polygon
NovaNet
NovaNet
NovaNet
zkVerify
RISC Zero
RISC Zero
Discussion