-
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
Refractor of the skeleton and introduction of new instructions #47
Open
hdvanegasm
wants to merge
15
commits into
load-store_instructions
Choose a base branch
from
memory-correction
base: load-store_instructions
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
In this commit, I deleted the Instruction struct making the old Opcode struct to be the one in charge of all of the Instruction functionality. Now, Instruction is an enum and we can implement all the functionalities as implementing it for an enum.
…nd ark-serialize. Also added an import in arithmetic.rs
Inclusion of updates in arkworks-rs/algebra
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
General idea
Given that the current idea of StoffelMPC is to support just the HoneyBadgerMPC protocol, this PR aims to change the skeleton of the library in order to reduce the complexity and to add functionalities specific to the HoneyBadgerMPC protocol. Also, I changed the skeleton, so that the components of the VM resemble something that is more traditional according to other MPC VMs like SCALE-MAMBA and MP-SDPZ.
Changelog
November 17, 2023
ArithmeticCore
toStoffelVM
according to SCALE-MAMBA specification (Section 5.1). In such framework, there is no private memory for each thread.Public
,Secret
, andVmType
, from theMPCProtocol
trait and added the typeDomain
, which is the underlying domain of computation of the protocol.into_vm_type
from the traitMPCProtocol
.November 20, 2023
Share
struct to hold the share that each party has.Number
toMpcType
that will be the trait that groups all the types held by the VM. In particularShare<T>
and the field of the curve BLS12_381 implement theMpcType
trait.MpcTypes
. The rationale behind this is that the memory will hold typesShare<T>
(for the secret values) andField
types (for the clear values).ark
dependencies.November 22, 2023
MemoryAddr
as a new type for indexing memory positions.processor
field fromInstruction
struct. Now Instruction does not have a generic.code
has been removed fromStoffelVM
struct and it was replaced byprograms: Vec<Program>
. Remmeber that we need an Schedule to manage all the programs that are being executed.Schedule
struct to manage the prgrams. However, according to SCALE-MAMBA, the programs vector are inside theSchedule
struct.Memory
to represent the global memory, and the different arrays for each data type areMemoryArrays
aiming for a better modularity during the execution.December 1, 2023
From December 4, 2023 to December 7, 2023
num-bigint
crate to perform the arithmetic betweenBigIntegers
given that this crate supports way more arithmetic operations than the library fromark-ff
. I added two functionsfrom_domain_to_bigint<T>()
andfrom_domain_to_bigint<T>()
to perform this task. We should consider if this is enough or if it needs a better level of abstraction.December 11, 2023 to December 15, 2023.
BigInteger
arkworks-rs/algebra#713