Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Selectors #2543

Closed
marcbeunardeau88 opened this issue Sep 9, 2024 · 2 comments
Closed

Add Selectors #2543

marcbeunardeau88 opened this issue Sep 9, 2024 · 2 comments
Assignees

Comments

@marcbeunardeau88
Copy link
Contributor

The current desgin of the o1vm is one circuit per MIPS instructions.
We want to change that and get one big circuit which does all the instruction depending on which selector is activated.

We need to add ‘selectors’ for (see kimchi and/or the original zkVM prototype, the plonk paper for the concept), and multiplex the instructions using those. The original zkVM is probably the best guide for this, this is how it originally worked.

@Fizzixnerd Fizzixnerd self-assigned this Sep 9, 2024
@Fizzixnerd
Copy link
Contributor

CC @dannywillems @marcbeunardeau88

I was wondering: do we want one giant selector q_MIPS which serves as essentially the opcode for MIPS, or several smaller selectors q_leftshift and friends that are in the range {0, 1}.

Or, is the selector something more clever than what I'm initially thinking of? For example, it might be possible to construct Z such that

Z(g^i, x) = MIPS_instruction(i)(x)

By using the same trick in Section 5 of PlonK.

@Fizzixnerd
Copy link
Contributor

Closed in #2671

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants