chip0

chip0

A zkVM targetting the CHIP-8 instruction set

Created on 19th May 2024

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

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

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion

Builders also viewed

See more projects on Devfolio