By now, you’ve read up on the SIEVE IR, you’re interested in ZK, and you’re ready to try it out the IR, but you’re not sure where to start.
For a ZK frontend, the IR opens up a world of backends, while for a backend it enables a wide variety of users to leverage your backend.
Well, here’s where to start: Team Wizkit has open sourced WizToolKit a collection of tools and libraries for working with the IR and EMP-IR a ZK Backend which uses the IR.
In this installation about the SIEVE IR, we’re going to talk about speeding up a proof system without changing the underlying zero-knowledge mathemagic.
When we time a ZK backend using the IR we inadvertently time two distinct components — the backend itself and the time it takes to ingest a circuit.
The first component, the backend, is fairly well understood and many groups are working on optimizing this — faster math and less communication.
The second component is the topic of today’s post; it’s the time spent reading a gate and loading its operands before it can be processed in ZK.