chip0

chip0

A zkVM targetting the CHIP-8 instruction set


The problem chip0 solves

This is a POC implementation of the CHIP-8 instruction set using STARKs. It can be a good learning resource to understand how modern zkVMs are implemented. This includes concepts like preprocessing, cross-table lookups, offline memory checking etc. It can also serve as a playground for benchmarking different proving systems.

Challenges I ran into

Turns out, two days are not enough to put together a zkVM from scratch.
I used plonky3 to implement the underlying STARKs for the VM. Plonky3 works on small 32-bit fields, which have performance benefits. Since plonky3 is relatively new, there's not much tooling or resources to refer to, which led to some headaches during debugging. Debugging lookups was especially nasty since they work in extension fields.

Tracks Applied (2)

Power Builder

Chip0 is technically a mini zkCPU

Polygon

Prizes for Finalists, Hackers' Choice & Chewing Glass

Chip0 involved writing low-level STARKs and debugging those was as enjoyable as chewing a mouthful of glass shards

Technologies used

Discussion