verdict

package
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 11, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package verdict serves a live, public-facing rendering of a KonaReef Type-C proof: it fetches a konareef-bundle/v2, runs the REAL verifier (verify.VerifyV2Production + the Rust `verify` subprocess), decodes the disclosed evidence, and serves a single self-contained page that shows the six verification checks resolving to a verdict.

evidence.go maps a decoded bundle + verdict into the Evidence JSON the page consumes. Every field is derived from the real bundle bytes and the real verifier output — nothing is synthesised.

server.go — the verdict demo HTTP server. It serves one embedded page and a single JSON endpoint that fetches a bundle, runs the REAL verifier, and returns the decoded evidence + verdict. It is an INDEPENDENT verifier (typically run on the presenter's laptop): it trusts reef-core only to hand over the 18 KB bundle bytes, and re-derives the verdict itself.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ChainLink struct {
	Type string `json:"type"`
	Hash string `json:"hash"`
	Ts   string `json:"ts"`
}

ChainLink is one custody-chain entry.

type Commitments

type Commitments struct {
	TRoot string `json:"t_root"`
	RIn   string `json:"r_in"`
	ROut  string `json:"r_out"`
}

Commitments are the bound public inputs surfaced for display.

type Evidence

type Evidence struct {
	OK          bool            `json:"ok"`
	Verdict     *verify.Verdict `json:"verdict"`
	Divergences []string        `json:"divergences"`
	Meta        Meta            `json:"meta"`
	Pod         PodInfo         `json:"pod"`
	Publisher   PublisherInfo   `json:"publisher"`
	Execution   Execution       `json:"execution"`
	Proof       ProofInfo       `json:"proof"`
	Commitments Commitments     `json:"commitments"`
	Chain       []ChainLink     `json:"chain"`
}

Evidence is the JSON payload the verdict page renders. It pairs the real verifier verdict with the bundle's disclosed fields.

func BuildEvidence

func BuildEvidence(b *verify.BundleV2, r *verify.ResultV2, proofHash, sourceLabel string) Evidence

BuildEvidence maps a decoded bundle + verifier result into the page's Evidence JSON. proofHash/sourceLabel are display-only provenance.

type Execution

type Execution struct {
	P     string     `json:"p"`
	R     string     `json:"r"`
	Tools []ToolCall `json:"tools"`
}

Execution is the disclosed step trace: input commitment P, response R, and the tool-log records.

type Meta

type Meta struct {
	ProofHash   string `json:"proof_hash"`
	Version     string `json:"version"`
	SourceLabel string `json:"source_label"`
}

Meta identifies which proof this verdict is for and where it came from.

type PodInfo

type PodInfo struct {
	Name       string `json:"name"`
	Version    string `json:"version"`
	Circuit    string `json:"circuit"`
	Disclosure string `json:"disclosure"`
	PodHash    string `json:"pod_hash"`
}

PodInfo is the identity of the pod that produced the proof.

type ProofInfo

type ProofInfo struct {
	Scheme        string `json:"scheme"`
	SnarkBytes    int    `json:"snark_bytes"`
	Z0Bytes       int    `json:"z0_bytes"`
	ManifestBytes int    `json:"manifest_bytes"`
	VkeyHash      string `json:"vkey_hash"`
}

ProofInfo describes the Spartan proof artifact.

type PublisherInfo

type PublisherInfo struct {
	ID        string `json:"id"`
	Pubkey    string `json:"pubkey"`
	Signature string `json:"signature"`
	Curve     string `json:"curve"`
}

PublisherInfo is the publisher-binding evidence.

type Server

type Server struct {
	// ReefcoreURL is the base URL bundles are fetched from
	// (e.g. http://reefcore-demo.tail6bed98.ts.net:4000).
	ReefcoreURL string
	// DefaultHash is the proof hash used when a request omits ?hash=.
	DefaultHash string
	// Durable threads the verify --durable knob through unchanged.
	Durable bool
}

Server renders live verdicts for konareef-bundle/v2 proofs.

func (*Server) Routes

func (s *Server) Routes() *http.ServeMux

Routes returns the server's HTTP handler.

type ToolCall

type ToolCall struct {
	Name       string `json:"name"`
	IDDigest   string `json:"id_digest"`
	ArgsHash   string `json:"args_hash"`
	ResultHash string `json:"result_hash"`
	TsUs       uint64 `json:"ts_us"`
	Sats       uint64 `json:"sats"`
}

ToolCall is one 113-byte tool-log record, decoded. Name is resolved from the manifest's declared tools when SHA-256(name) matches the committed digest.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL