Package

sigmastate

interpreter

Permalink

package interpreter

Visibility
  1. Public
  2. All

Type Members

  1. case class CacheKey(ergoTreeBytes: Seq[Byte], vs: SigmaValidationSettings) extends Product with Serializable

    Permalink

    Represents keys in the cache of precompiled ErgoTrees for repeated evaluation.

    Represents keys in the cache of precompiled ErgoTrees for repeated evaluation. Note, SigmaValidationSettings are part of the key, which is important, because the output of compilation depends on validation settings.

    ergoTreeBytes

    serialized bytes of ErgoTree instance (returned by ErgoTreeSerializer)

    vs

    validation settings which where used for soft-forkable compilation.

  2. abstract class CommitmentHint extends Hint

    Permalink

    A family of hints which are about a correspondence between a public image of a secret image and prover's commitment to randomness ("a" in a sigma protocol).

  3. case class ContextExtension(values: Map[Byte, EvaluatedValue[_ <: SType]]) extends Product with Serializable

    Permalink

    User-defined variables to be put into context.

    User-defined variables to be put into context. Each variable is identified by id: Byte and can be accessed from a script using getVar[T](id) operation. The value of the variable is represented by sigmastate.Values.Constant instance, which contains both data value and SType descriptor. The descriptor is checked against the type T expected in the script operation. If the types don't match, exception is thrown and the box spending (protected by the script) fails.

    values

    internal container of the key-value pairs

  4. case class CostedProverResult(proof: Array[Byte], extension: ContextExtension, cost: Long) extends ProverResult with Product with Serializable

    Permalink
  5. trait Hint extends AnyRef

    Permalink

    A hint for a prover which helps the prover to prove a statement.

    A hint for a prover which helps the prover to prove a statement. For example, if the statement is "pk1 && pk2", and the prover knows only a secret for the public key pk1, the prover fails on proving without a hint. But if the prover knows that pk2 is known to another party, the prover may prove the statement (with an empty proof for "pk2").

  6. case class HintsBag(hints: Seq[Hint]) extends Product with Serializable

    Permalink

    Collection of hints to be used by a prover

    Collection of hints to be used by a prover

    hints

    - hints stored in the bag

  7. trait Interpreter extends ScorexLogging

    Permalink
  8. trait InterpreterContext extends AnyRef

    Permalink

    Base class of the context passed to verifier and prover.

    Base class of the context passed to verifier and prover.

    See also

    sigmastate.interpreter.Interpreter

  9. case class OwnCommitment(image: SigmaBoolean, secretRandomness: BigInteger, commitment: FirstProverMessage, position: NodePosition) extends CommitmentHint with Product with Serializable

    Permalink

    A hint which a commitment to randomness associated with a public image of a secret, as well as randomness itself.

    A hint which a commitment to randomness associated with a public image of a secret, as well as randomness itself. Please note that this randomness should be kept in secret by the prover.

    image

    - image of a secret

    secretRandomness

    - randomness

    commitment

    - commitment to randomness used while proving knowledge of the secret

  10. class PrecompiledScriptProcessor extends AnyRef

    Permalink

    Script processor which holds pre-compiled reducers for the given scripts.

    Script processor which holds pre-compiled reducers for the given scripts. This class is thread-safe.

  11. case class PrecompiledScriptReducer(scriptBytes: Seq[Byte])(implicit IR: IRContext) extends ScriptReducer with Product with Serializable

    Permalink

    This class implements optimized reduction of the given pre-compiled script.

    This class implements optimized reduction of the given pre-compiled script. Pre-compilation of the necessary graphs is performed as part of constructor and the graphs are stored in the given IR instance.

    The code make the following assumptions: 1) the given script doesn't contain both sigmastate.utxo.DeserializeContext and sigmastate.utxo.DeserializeRegister

    The code should correspond to reduceToCrypto method, but some operations may be optimized due to assumptions above.

  12. case class ProcessorStats(cacheStats: CacheStats, predefHits: Seq[Int]) extends Product with Serializable

    Permalink

    Statistics of ScriptProcessor operations.

    Statistics of ScriptProcessor operations.

    cacheStats

    cache statistics such as hits and misses

    predefHits

    one hit counter for each predefined script

  13. trait ProverInterpreter extends Interpreter with ProverUtils with AttributionCore

    Permalink

    Interpreter with enhanced functionality to prove statements.

  14. class ProverResult extends AnyRef

    Permalink

    Proof of correctness of tx spending

  15. trait ProverUtils extends Interpreter

    Permalink
  16. case class RealCommitment(image: SigmaBoolean, commitment: FirstProverMessage, position: NodePosition) extends CommitmentHint with Product with Serializable

    Permalink

    A hint which contains a commitment to randomness associated with a public image of a secret.

    A hint which contains a commitment to randomness associated with a public image of a secret.

    image

    - image of a secret

    commitment

    - commitment to randomness used while proving knowledge of the secret

  17. case class RealSecretProof(image: SigmaBoolean, challenge: Challenge, uncheckedTree: UncheckedTree, position: NodePosition) extends SecretProven with Product with Serializable

    Permalink

    A hint which contains a proof-of-knowledge for a secret associated with its public image "image", with also the mark that the proof is real.

  18. case class ScriptProcessorSettings(predefScripts: Seq[CacheKey], maxCacheSize: Int = 1000, recordCacheStats: Boolean = false, reportingInterval: Int = 100) extends Product with Serializable

    Permalink

    Settings to configure script processor.

    Settings to configure script processor.

    predefScripts

    collection of scripts to ALWAYS pre-compile (each given by ErgoTree bytes)

    maxCacheSize

    maximum number of entries in the cache

    recordCacheStats

    if true, then cache statistics is recorded

    reportingInterval

    number of cache load operations between two reporting events

  19. trait ScriptReducer extends AnyRef

    Permalink

    A reducer which represents precompiled script reduction function.

    A reducer which represents precompiled script reduction function. The function takes script execution context and produces the ReductionResult, which contains both sigma proposition and the approximation of the cost taken by the reduction.

  20. abstract class SecretProven extends Hint

    Permalink

    A hint which is indicating that a secret associated with its public image "image" is already proven.

  21. case class SimulatedCommitment(image: SigmaBoolean, commitment: FirstProverMessage, position: NodePosition) extends CommitmentHint with Product with Serializable

    Permalink

    A hint which contains a commitment to randomness associated with a public image of a secret.

    A hint which contains a commitment to randomness associated with a public image of a secret.

    image

    - image of a secret

    commitment

    - commitment to randomness used while proving knowledge of the secret

  22. case class SimulatedSecretProof(image: SigmaBoolean, challenge: Challenge, uncheckedTree: UncheckedTree, position: NodePosition) extends SecretProven with Product with Serializable

    Permalink

    A hint which contains a proof-of-knowledge for a secret associated with its public image "image", with also the mark that the proof is real.

Value Members

  1. object ContextExtension extends Serializable

    Permalink
  2. object CryptoConstants

    Permalink
  3. object CryptoFunctions

    Permalink
  4. object HintsBag extends Serializable

    Permalink
  5. object Interpreter

    Permalink
  6. object PrecompiledScriptProcessor

    Permalink
  7. object ProverResult

    Permalink
  8. object WhenSoftForkReducer extends ScriptReducer with Product with Serializable

    Permalink

    Used as a fallback reducer when precompilation failed due to soft-fork condition.

Ungrouped