mirror of
https://github.com/luxfi/chains.git
synced 2026-09-24 00:26:00 +00:00
Stages the ThresholdVM engineering record under chains/thresholdvm/: Docs (engineering record, 502 LOC): - DESIGN.md, LLM.md, README.md - docs/ARCHITECTURE.md, docs/F_CHAIN_INTEGRATION.md, docs/M_CHAIN_INTEGRATION.md Source scaffolding (1289 LOC): - cert/ — QuasarCertLane registration + subject binding (M/F shared) - types/ — ceremony, participant, proof, share substrate types - protocol/ — package surfaces for cggmp21, frost, corona_general, tfhe_keygen - runtime/ — F-chain and M-chain adapters All Go files carry the Lux license header. Nothing here is generated or fixture data; this is the signed-off design surface for the ThresholdVM library used by M-chain and F-chain.
31 lines
1.1 KiB
Go
31 lines
1.1 KiB
Go
// Copyright (C) 2019-2025, Lux Industries Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package types
|
|
|
|
// Proof is the verification artifact emitted at ceremony Finalize. It
|
|
// is consumed by Quasar 3.0's cert pipeline (LP-020) and bound into
|
|
// certificate_subject (LP-134).
|
|
//
|
|
// The substrate defines the envelope; the per-protocol payload (the
|
|
// actual signature, group public key, FHE key, etc.) is opaque bytes
|
|
// indexed by Lane. Verifiers in cert/lane.go decode it.
|
|
type Proof struct {
|
|
CeremonyID CeremonyID
|
|
Kind CeremonyKind
|
|
Lane CertLane
|
|
// Payload is the protocol-specific final artifact: a signature
|
|
// for sign-oriented ceremonies, a TFHE evaluation key for keygen
|
|
// ceremonies, etc.
|
|
Payload []byte
|
|
// Aggregate is the aggregate signature over the participant
|
|
// commitments (used when the chain itself attests to the
|
|
// ceremony before forwarding to Quasar).
|
|
Aggregate [64]byte
|
|
}
|
|
|
|
// Empty reports whether p is the zero value.
|
|
func (p Proof) Empty() bool {
|
|
return p.Kind == KindUnknown && len(p.Payload) == 0
|
|
}
|