idea164-bexproof-verifiable.../bexproof/zkp.py

22 lines
697 B
Python

"""ZKP prototype for BeXProof.
This is a lightweight stand-in for a real ZKP back-end. It produces a compact
certificate-like proof deterministically derived from the log entry and policy.
"""
from __future__ import annotations
import json
import hashlib
from .policy import Policy
def generate_proof(log_entry: dict, policy: Policy) -> dict:
# Produce a deterministic, compact proof representation (string hash)
seed = {
"log": log_entry,
"policy_version": policy.version,
"policy_rules": policy.rules,
}
blob = json.dumps(seed, sort_keys=True).encode("utf-8")
proof_hash = hashlib.sha256(blob).hexdigest()
return {"proof": f"zkp-{proof_hash}"}