LongfellowZkSystem

Abstract base class for Longfellow-based ZK systems implementing ZkSystem.

Provides core logic for proof generation and verification using native Longfellow libraries. Circuit files are expected to be name with the format: <version>_<numAttributes>_<circuitHash>.

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
open override val name: String
Link copied to clipboard
open override val systemSpecs: List<ZkSystemSpec>

Functions

Link copied to clipboard
fun addCircuit(circuitFilename: String, circuitBytes: ByteString): Boolean

Longfellow encodes a version number, the number of attributes, and the circuit hash in the filename with the circuit data so in addition to circuitBytes, pass this information in circuitFilename encoded in the following way: <version>_<numAttributes>_<circuitHash>. circuitFilename should be only the name of the file, and must not include any path separators.

Link copied to clipboard
open override fun generateProof(zkSystemSpec: ZkSystemSpec, encodedDocument: ByteString, encodedSessionTranscript: ByteString, timestamp: Instant): ZkDocument
Link copied to clipboard
open override fun getMatchingSystemSpec(zkSystemSpecs: List<ZkSystemSpec>, mdocRequest: MdocRequest): ZkSystemSpec?

Finds the best matching ZkSystemSpec from a given list based on the number of signed attributes.

Link copied to clipboard
open override fun verifyProof(zkDocument: ZkDocument, zkSystemSpec: ZkSystemSpec, encodedSessionTranscript: ByteString)