Skip to content

Repository files navigation

Verifiable Commitment Registry

Verifiable Commitment Registry

Verifiable Commitment Registry (VCR) is an open-source reference implementation for enforcing negative-result publication commitments through Ed25519 signatures, authenticated encryption, Shamir Secret Sharing, deadline-based liveness checks, append-only audit hashes, and federated registry witnesses.

VCR targets a narrow research-integrity failure mode: a study can be pre-registered, produce a null, negative, inconclusive, or commercially inconvenient result, and then quietly disappear. VCR turns prolonged post-collection silence into a public, auditable release path.

Status

This repository is now an MIT-licensed open-source reference implementation. It includes:

  • Ed25519 signing and verification for commitment, extension, and witness records
  • AES-256-GCM authenticated encryption for release payloads
  • Shamir Secret Sharing for threshold release-key recovery
  • witness-set independence and quorum checks
  • a local HTTP witness/registry node for integration tests and pilots
  • JSON schemas and examples validated by jsonschema
  • deterministic state-machine and audit-hash-chain tests

This code is suitable for protocol review, pilots, interoperability tests, and open-source collaboration. It is not represented as independently audited production cryptography.

Quick Start

python -m pip install -e ".[dev]"
python -m unittest discover -s tests
python -m vcr_registry.cli validate-examples
python -m vcr_registry.cli simulate examples/scenario_negative_result.json

Generate an Ed25519 key pair:

python -m vcr_registry.cli keygen

Start a local registry node:

python -m vcr_registry.cli serve --host 127.0.0.1 --port 8080

Core Flow

  1. A researcher hashes a protocol and signs a commitment record with Ed25519.
  2. The release payload is encrypted with AES-256-GCM.
  3. The payload decryption key is split across independent witnesses with Shamir Secret Sharing.
  4. Federated witnesses validate signatures, log events, and track deadlines.
  5. If no fulfillment proof or valid extension appears before the deadline, the registry moves to TRIGGERED.
  6. A valid witness quorum reconstructs the release key and publishes the release record.

Repository Map

.
|-- assets/                         # Repository visual identity
|-- docs/                           # Architecture, API, crypto, federation notes
|   |-- adr/                        # Architecture decision records
|-- examples/                       # Schema-valid signed example records
|-- schemas/                        # JSON Schema contracts
|-- src/vcr_registry/               # Reference implementation
|   |-- crypto.py                   # Ed25519 helpers
|   |-- payloads.py                 # AES-GCM + threshold payload packages
|   |-- shamir.py                   # Shamir Secret Sharing
|   |-- witness.py                  # witness identity, quorum and attestations
|   |-- server.py                   # local HTTP registry node
|-- tests/                          # Unit and schema validation tests
|-- LICENSE.md                      # MIT License
|-- pyproject.toml                  # Python package metadata

State Machine

stateDiagram-v2
    [*] --> ACTIVE: commitment accepted
    ACTIVE --> ACTIVE: signed extension
    ACTIVE --> FULFILLED: publication proof accepted
    ACTIVE --> TRIGGERED: deadline elapsed without proof
    TRIGGERED --> RELEASED: threshold reconstruction completed
    TRIGGERED --> DISPUTED: governance hold accepted
    DISPUTED --> RELEASED: dispute rejected or expired
    FULFILLED --> [*]
    RELEASED --> [*]
Loading

Design Principles

  • No single operator trust. Witnesses are checked for independent operators and jurisdictional diversity.
  • Real signatures, explicit domains. Ed25519 signatures bind canonical JSON plus VCR domain separators.
  • Threshold release. A release key is reconstructed only from enough Shamir shares.
  • Public delay, not forced speed. Extensions are allowed, signed, and visible.
  • Minimum disclosure. Public commitments reveal protocol hashes and encrypted payload metadata, not raw result data.
  • Auditable limits. VCR proves a lifecycle and release transcript; it does not prove that collected data is honest without external provenance.

License

This project is open source under the MIT License.

Official Repository

github.com/Ciprian-LocalPulse/verifiable-commitment-registry

About

Cryptographic commitment registry for negative-result publication and research integrity.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages