#[repr(usize)]pub enum ChallengeId {
Show 63 variants
CompressProgramDigestIndeterminate = 0,
StandardInputIndeterminate = 1,
StandardOutputIndeterminate = 2,
InstructionLookupIndeterminate = 3,
HashInputIndeterminate = 4,
HashDigestIndeterminate = 5,
SpongeIndeterminate = 6,
OpStackIndeterminate = 7,
RamIndeterminate = 8,
JumpStackIndeterminate = 9,
U32Indeterminate = 10,
ClockJumpDifferenceLookupIndeterminate = 11,
RamTableBezoutRelationIndeterminate = 12,
ProgramAddressWeight = 13,
ProgramInstructionWeight = 14,
ProgramNextInstructionWeight = 15,
OpStackClkWeight = 16,
OpStackIb1Weight = 17,
OpStackPointerWeight = 18,
OpStackFirstUnderflowElementWeight = 19,
RamClkWeight = 20,
RamPointerWeight = 21,
RamValueWeight = 22,
RamInstructionTypeWeight = 23,
JumpStackClkWeight = 24,
JumpStackCiWeight = 25,
JumpStackJspWeight = 26,
JumpStackJsoWeight = 27,
JumpStackJsdWeight = 28,
ProgramAttestationPrepareChunkIndeterminate = 29,
ProgramAttestationSendChunkIndeterminate = 30,
HashCIWeight = 31,
StackWeight0 = 32,
StackWeight1 = 33,
StackWeight2 = 34,
StackWeight3 = 35,
StackWeight4 = 36,
StackWeight5 = 37,
StackWeight6 = 38,
StackWeight7 = 39,
StackWeight8 = 40,
StackWeight9 = 41,
StackWeight10 = 42,
StackWeight11 = 43,
StackWeight12 = 44,
StackWeight13 = 45,
StackWeight14 = 46,
StackWeight15 = 47,
HashCascadeLookupIndeterminate = 48,
HashCascadeLookInWeight = 49,
HashCascadeLookOutWeight = 50,
CascadeLookupIndeterminate = 51,
LookupTableInputWeight = 52,
LookupTableOutputWeight = 53,
LookupTablePublicIndeterminate = 54,
U32LhsWeight = 55,
U32RhsWeight = 56,
U32CiWeight = 57,
U32ResultWeight = 58,
StandardInputTerminal = 59,
StandardOutputTerminal = 60,
LookupTablePublicTerminal = 61,
CompressedProgramDigest = 62,
}
Expand description
A ChallengeId
is a unique, symbolic identifier for a challenge used in
Triton VM.
Since almost all challenges relate to the Processor Table in some form, the
words “Processor Table” are usually omitted from the ChallengeId
’s name.
Variants§
CompressProgramDigestIndeterminate = 0
The indeterminate for the Evaluation Argument compressing the program digest
into a single extension field element, i.e.,
CompressedProgramDigest
.
Relates to program attestation.
StandardInputIndeterminate = 1
The indeterminate for the Evaluation Argument with standard input.
StandardOutputIndeterminate = 2
The indeterminate for the Evaluation Argument with standard output.
InstructionLookupIndeterminate = 3
The indeterminate for the instruction Lookup Argument between the Processor Table and the Program Table guaranteeing that the instructions and their arguments are copied correctly.
HashInputIndeterminate = 4
HashDigestIndeterminate = 5
SpongeIndeterminate = 6
OpStackIndeterminate = 7
RamIndeterminate = 8
JumpStackIndeterminate = 9
U32Indeterminate = 10
ClockJumpDifferenceLookupIndeterminate = 11
The indeterminate for the Lookup Argument between the Processor Table and all memory-like tables, i.e., the OpStack Table, the Ram Table, and the JumpStack Table, guaranteeing that all clock jump differences are directed forward.
RamTableBezoutRelationIndeterminate = 12
The indeterminate for the Contiguity Argument within the Ram Table.
ProgramAddressWeight = 13
A weight for linearly combining multiple elements. Applies to
Address
in the Program TableIP
in the Processor Table
ProgramInstructionWeight = 14
A weight for linearly combining multiple elements. Applies to
Instruction
in the Program TableCI
in the Processor Table
ProgramNextInstructionWeight = 15
A weight for linearly combining multiple elements. Applies to
Instruction
in the next row in the Program TableNIA
in the Processor Table
OpStackClkWeight = 16
OpStackIb1Weight = 17
OpStackPointerWeight = 18
OpStackFirstUnderflowElementWeight = 19
RamClkWeight = 20
RamPointerWeight = 21
RamValueWeight = 22
RamInstructionTypeWeight = 23
JumpStackClkWeight = 24
JumpStackCiWeight = 25
JumpStackJspWeight = 26
JumpStackJsoWeight = 27
JumpStackJsdWeight = 28
ProgramAttestationPrepareChunkIndeterminate = 29
The indeterminate for compressing a RATE
-sized chunk of instructions into a
single extension field element.
Relates to program attestation.
Used by the evaluation argument PrepareChunkEvalArg
and in the Hash Table.
ProgramAttestationSendChunkIndeterminate = 30
The indeterminate for the bus over which the RATE
-sized chunks of instructions
are sent. Relates to program attestation.
Used by the evaluation arguments SendChunkEvalArg
and
ReceiveChunkEvalArg
. See also:
ProgramAttestationPrepareChunkIndeterminate
.
HashCIWeight = 31
StackWeight0 = 32
StackWeight1 = 33
StackWeight2 = 34
StackWeight3 = 35
StackWeight4 = 36
StackWeight5 = 37
StackWeight6 = 38
StackWeight7 = 39
StackWeight8 = 40
StackWeight9 = 41
StackWeight10 = 42
StackWeight11 = 43
StackWeight12 = 44
StackWeight13 = 45
StackWeight14 = 46
StackWeight15 = 47
HashCascadeLookupIndeterminate = 48
The indeterminate for the Lookup Argument between the Hash Table and the Cascade Table.
HashCascadeLookInWeight = 49
A weight for linearly combining multiple elements. Applies to
*LkIn
in the Hash Table, and2^16·LookInHi + LookInLo
in the Cascade Table.
HashCascadeLookOutWeight = 50
A weight for linearly combining multiple elements. Applies to
*LkOut
in the Hash Table, and2^16·LookOutHi + LookOutLo
in the Cascade Table.
CascadeLookupIndeterminate = 51
The indeterminate for the Lookup Argument between the Cascade Table and the Lookup Table.
LookupTableInputWeight = 52
A weight for linearly combining multiple elements. Applies to
LkIn*
in the Cascade Table, andLookIn
in the Lookup Table.
LookupTableOutputWeight = 53
A weight for linearly combining multiple elements. Applies to
LkOut*
in the Cascade Table, andLookOut
in the Lookup Table.
LookupTablePublicIndeterminate = 54
The indeterminate for the public Evaluation Argument establishing correctness of the Lookup Table.
U32LhsWeight = 55
U32RhsWeight = 56
U32CiWeight = 57
U32ResultWeight = 58
StandardInputTerminal = 59
The terminal for the EvaluationArgument
with standard input.
Makes use of challenge
StandardInputIndeterminate
.
StandardOutputTerminal = 60
The terminal for the EvaluationArgument
with standard output.
Makes use of challenge
StandardOutputIndeterminate
.
LookupTablePublicTerminal = 61
The terminal for the EvaluationArgument
establishing correctness of the
Lookup Table.
Makes use of challenge
LookupTablePublicIndeterminate
.
CompressedProgramDigest = 62
The digest of the program to be executed, compressed into a single extension field element.
The compression happens using an EvaluationArgument
under challenge
CompressProgramDigestIndeterminate
.
Relates to program attestation.
Implementations§
Source§impl ChallengeId
impl ChallengeId
Trait Implementations§
Source§impl<'arbitrary> Arbitrary<'arbitrary> for ChallengeId
impl<'arbitrary> Arbitrary<'arbitrary> for ChallengeId
Source§fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
Self
from the given unstructured data. Read moreSource§fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
Self
from the entirety of the given
unstructured data. Read moreSource§fn size_hint(depth: usize) -> (usize, Option<usize>)
fn size_hint(depth: usize) -> (usize, Option<usize>)
Unstructured
this type
needs to construct itself. Read moreSource§fn try_size_hint(
depth: usize,
) -> Result<(usize, Option<usize>), MaxRecursionReached>
fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>
Unstructured
this type
needs to construct itself. Read moreSource§impl Clone for ChallengeId
impl Clone for ChallengeId
Source§fn clone(&self) -> ChallengeId
fn clone(&self) -> ChallengeId
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ChallengeId
impl Debug for ChallengeId
Source§impl Display for ChallengeId
impl Display for ChallengeId
Source§impl From<ChallengeId> for usize
impl From<ChallengeId> for usize
Source§fn from(id: ChallengeId) -> Self
fn from(id: ChallengeId) -> Self
Source§impl Hash for ChallengeId
impl Hash for ChallengeId
Source§impl IntoEnumIterator for ChallengeId
impl IntoEnumIterator for ChallengeId
type Iterator = ChallengeIdIter
fn iter() -> ChallengeIdIter ⓘ
Source§impl PartialEq for ChallengeId
impl PartialEq for ChallengeId
impl Copy for ChallengeId
impl Eq for ChallengeId
impl StructuralPartialEq for ChallengeId
Auto Trait Implementations§
impl Freeze for ChallengeId
impl RefUnwindSafe for ChallengeId
impl Send for ChallengeId
impl Sync for ChallengeId
impl Unpin for ChallengeId
impl UnwindSafe for ChallengeId
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more