Written:
,
Published:
,
Author: Kimberlee Model,
Tags:SIEVE IR,
outdated,
Over this summer, Team Wizkit developed a concrete proposal for an overhaul of the SIEVE Intermediate Representation.
While our proposal is a fairly radical departure from the original IR, we believe this proposal addresses our concerns about wire memory management and interoperability in the presence of wide differentiation between backend capabilities.
In the upcoming months the SIEVE Program will internally agree upon a final draft for the Phase II IR, but we hope that sharing our IR proposal with the wider community will help others engage with the IR as it continues to evolve.
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.
Written:
,
Published:
,
Author: Kimberlee Model,
Tags:SIEVE IR,
outdated,
During most of 2021, the Wizkit team worked with other SIEVE Performers to develop and implement the SIEVE IR.
Since it was finalized during summer 2021, we continued to push the envelope beyond what was demonstrated during the Phase I Testing Event.
We’ve also been one of the most active voices, within the SIEVE program, critically analyzing this IR.
In this blog post, we put the results of the critique to good use in making design suggestions for the next IR revision.
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.
In our previous post we took a first look at the SIEVE IR, presenting it as impartially as possible.
Today we will take a more "opinionated" or normative look at the IR.
On the one hand, we are very proud of this accomplishment — (to our knowledge) the first widely implemented circuit representation for ZK.
However, we’d also like to acknowledge that the IR has its flaws and highlight where we think there is room for improvement.
Recently the DARPA SIEVE Program released a 1.0.1 version of its primary program-wide deliverable, the SIEVE Intermediate Representation (IR).
As one of the primary developers of the IR, team Wizkit will write a series of posts about the IR, what it got right, what it got wrong, and what we’d like to see in upcoming versions.
But today we will start the series with this post as more of an impartial introduction to the SIEVE IR.
It is our hope that this will ease you into using the SIEVE IR in your own work, and (most importantly) enable you to read further posts in this series.