-
Notifications
You must be signed in to change notification settings - Fork 4
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
Skeleton VM for StoffelMPC #22
Conversation
… the MPCType trait
…rcuits, added common.rs for instructions common to both GC and Arithmetic circuits
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some things:
- Figure out how instructions can manipulate memory.
- How will vm pc interact with processor pc?
vm/src/state.rs
Outdated
pub(crate) struct Register<T: MPCType>(Vec<T>); | ||
|
||
#[derive(Clone, Debug, Default)] | ||
pub(crate) struct StackRegister<T: MPCType>(Vec<T>); | ||
|
||
#[derive(Clone, Debug)] | ||
pub(crate) struct Memory<T: MPCType, const N: usize>([T; N]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, so normally pub
is more open than pub(crate)
.
If there is a pub
-"path" to some function/struct/enum you can use it in other modules, and even in other crates. The pub(crate)
restricts it to just this crate and it is then not usable in other crates.
Co-authored-by: th4s <[email protected]>
- Now able to create a stoffelVM instance - Added some README example
and added once crate
I started filling out some basics of what behaviors the MPC VM for Stoffel should have. Since there is very little documentation on how the VMs of SCALE-MAMBA and MP-SPDZ behave, we will need to both grok how those operate and then make suitable software engineering decisions on how we will implement them. This PR is mainly for defining the high-level behavior so that we can focus on deeper behaviors as we start to understand how MPC VMs work.
I have opened several issues in which we can discuss implementation details and how they might change due to the needs of MPC, namely #21.