Human-Verifiable Cryptographic Commitment System
A pure cryptographic tool for creating memorable, visual, and auditory patterns that any system can use for identity verification, peer trust, content fingerprinting, and computation proofs.
BingoCube is a standalone cryptographic tool that generates human-recognizable patterns from seeds. It provides:
- π Cryptographic Security: BLAKE3-based commitment with progressive reveal
- ποΈ Visual Patterns: Color grids humans can recognize and verify
- π΅ Audio Patterns: Sonification for accessibility and multi-modal verification
- π Progressive Trust: Reveal 20% β 50% β 100% based on trust level
- π Zero Dependencies: Pure Rust core with optional adapters
Key Innovation: Two-board cross-binding algorithm creates visual patterns with provable security properties, enabling progressive trust revelation without weakening cryptographic guarantees.
use bingocube_core::{BingoCube, Config};
// Generate from seed
let cube = BingoCube::from_seed(b"alice_identity", Config::default());
// Get full color grid (100% reveal)
let grid = cube.color_grid();
// Get partial reveal for progressive trust
let subcube_30 = cube.subcube(0.3)?; // 30% reveal
let subcube_50 = cube.subcube(0.5)?; // 50% reveal
// Verify subcube
assert!(cube.verify_subcube(&subcube_30, 0.3));use bingocube_adapters::{VisualRenderer, AudioRenderer};
// Visual rendering (requires egui feature)
let visual = VisualRenderer::new()
.with_reveal(0.5)
.render(&cube)?;
// Audio sonification
let audio = AudioRenderer::new(&cube)
.generate_soundscape(0.5)?;Pure cryptographic implementation with zero dependencies (beyond blake3, serde, thiserror).
[dependencies]
bingocube-core = "0.1"Features:
- Seed-based BingoCube generation
- Progressive reveal (subcube extraction)
- Verification and commitment
- Serialization/deserialization
Size: ~600 lines, no optional features
Optional visualization and sonification adapters.
[dependencies]
bingocube-adapters = { version = "0.1", features = ["visual", "audio"] }Features:
visual: egui-based renderingaudio: Audio sonificationanimation: Progressive reveal animationall: All features
Size: ~800 lines
Interactive demonstrations (not a library).
cargo run --example interactiveEvolutionary reservoir computing via board populations β the nautilus shell.
[dependencies]
bingocube-nautilus = "0.1"Provides population-based evolution (selection, crossover, mutation), drift monitoring, brain prediction engine, and response surface readout. 31 tests, 5 examples.
// User registers
let identity_cube = BingoCube::from_seed(&biometric_hash, Config::default());
let public_proof = identity_cube.subcube(0.3)?;
// User verifies later (progressive trust)
let claimed_cube = BingoCube::from_seed(&fresh_biometric_hash, Config::default());
if claimed_cube.subcube(0.3)? == public_proof {
println!("Identity verified at 30% confidence");
}Innovation: Biometric used as entropy source, never stored. See whitePaper/BingoCube-Biometric-Identity.md.
// Alice creates trust stamp for Bob
let trust_stamp = BingoCube::from_seed(
&format!("alice-trusts-bob-{}", timestamp),
Config::default()
);
// Bob shows stamp to Carol (visual verification)
let visual_proof = trust_stamp.subcube(0.5)?;
// Carol can visually inspect the pattern// Generate visual hash for file
let file_hash = blake3::hash(&file_contents);
let visual_fingerprint = BingoCube::from_seed(file_hash.as_bytes(), Config::default());
// Display in UI (instead of hex string)
let grid = visual_fingerprint.color_grid();
// Users can recognize files by their color pattern// Computation node generates proof
let computation_id = "job-12345";
let result_hash = blake3::hash(&computation_result);
let proof_cube = BingoCube::from_seed(
&format!("{}-{}", computation_id, result_hash),
Config::default()
);
// Progressive reveal shows computation progress
for progress in [0.2, 0.4, 0.6, 0.8, 1.0] {
let partial_proof = proof_cube.subcube(progress)?;
// Render visual progress indicator
}Cannot recover boards from color grid (one-way function).
Different boards β different grids (birthday bound: 2^(-LΒ²) for random boards).
Color grid commits to both boards simultaneously.
Revealing subset doesn't leak unrevealed cells (progressive reveal is cryptographically safe).
P(forge at x) β (K/U)^(m(x))
Example (L=8, K=256, U=100):
- x=0.2: P β 2^-20 (1 in million)
- x=0.5: P β 2^-50 (1 in quadrillion)
See: whitePaper/BingoCube-Mathematical-Foundation.md for formal proofs.
Config {
grid_size: 5, // 5Γ5 grid
palette_size: 16, // 16 colors
universe_size: 100, // 0-99 numbers
}
// Forgery (x=0.5): ~2^-50Config {
grid_size: 8, // 8Γ8 grid
palette_size: 64, // 64 colors
universe_size: 512, // 0-511 numbers
}
// Forgery (x=0.5): ~2^-192Config {
grid_size: 12, // 12Γ12 grid
palette_size: 256, // 256 colors
universe_size: 1000, // 0-999 numbers
}
// Forgery (x=0.5): ~2^-576-
BingoCube-Overview.md (~25 pages)
- Core concepts and motivation
- Mathematical overview
- Use cases across ecosystem
-
BingoCube-Mathematical-Foundation.md (~20 pages)
- Formal definitions and proofs
- Security analysis
- Attack resistance
-
BingoCube-Ecosystem-Examples.md (~30 pages)
- Primal integration patterns
- Cross-primal workflows
- Code examples
-
BingoCube-Biometric-Identity.md (~70 pages) β
- Biometric-seeded identity architecture
- Homeless services use case
- Medical data sovereignty
- Zero-knowledge protocols
cargo doc --open --no-depsbingoCube/
βββ core/ # Pure crypto core (~600 lines, 15 tests)
β βββ src/lib.rs
βββ adapters/ # Optional visualization (feature-gated)
β βββ src/
β βββ visual.rs # egui rendering
β βββ audio.rs # Sonification
β βββ animation.rs # Progressive reveal
βββ nautilus/ # Evolutionary reservoir computing
β βββ src/
β β βββ shell.rs # Population lifecycle
β β βββ snapshot.rs # Shell snapshots
β β βββ evolve.rs # Evolution helpers
β β βββ evolution.rs # Selection/crossover/mutation
β β βββ brain.rs # Prediction engine
β β βββ constraints.rs # Drift monitoring
β β βββ population.rs # Board populations
β β βββ response.rs # Response surfaces
β β βββ readout.rs # Output layer
β βββ examples/ # 5 examples (QCD, rehearsal, lifecycle, ...)
βββ demos/ # Interactive egui demos
β βββ src/interactive.rs
βββ whitePaper/ # Comprehensive docs
βββ CHANGELOG.md
βββ CONTEXT.md
βββ deny.toml
# Core only
cargo build -p bingocube-core
# With adapters
cargo build -p bingocube-adapters --features all
# Everything
cargo build --all# Core tests
cargo test -p bingocube-core
# All tests
cargo test --allcargo run -p bingocube-demosBingoCube is used by the ecoPrimals ecosystem:
| Primal | Use Case |
|---|---|
| BearDog | Identity verification with progressive trust |
| Songbird | P2P trust stamps and visual peer recognition |
| NestGate | Content fingerprints and visual git commits |
| ToadStool | Computation proofs and progress visualization |
| petalTongue | Multi-modal rendering (visual, audio, animation) |
We welcome contributions! Areas of interest:
- Security audits - Verify cryptographic claims
- Performance - Optimize hot paths
- New adapters - Terminal UI, web canvas, etc.
- Use cases - Document novel applications
- Formal verification - Coq/Lean proofs
- Core must remain dependency-minimal
- All features must be optional (feature-gated)
- Maintain test coverage (workspace: 73 tests, ~83% line coverage)
- Document security properties
AGPL-3.0-or-later
BingoCube is free and open-source software. You may:
- β Use under AGPL-3.0-or-later terms (network use triggers source disclosure obligation). See LICENSE for details.
- β Modify and distribute
- β Use commercially
Requirements:
- π Include license and copyright notice
- π State changes made
- π Disclose source for network use (AGPL provision)
See LICENSE for full terms.
- Repository: https://github.com/ecoPrimals/bingoCube
- Documentation: whitePaper/README.md
- Examples: demos/src/
- Crates.io: Coming soon
BingoCube builds on:
- Bingo game structure: Classic American bingo
- QR code inspiration: Dense visual encoding
- BLAKE3: Fast cryptographic hashing
- ecoPrimals philosophy: Sovereignty, dignity, distributed trust
Special thanks to the ecoPrimals community for vision and feedback.
- β Workspace tests: 73 tests, 83.4% line coverage (tarpaulin)
- β Edition 2024, clippy pedantic + nursery clean
- β License AGPL-3.0-or-later
- β Core implementation (~600 lines)
- β Visual adapters (~800 lines)
- β Whitepaper collection (~180 pages)
- β Interactive demo
- π‘ Crates.io publication (pending)
- π‘ Primal integrations (in progress)
Version: 0.1.1
Status: Production-ready for early adopters
"Cryptography should be human-readable. Trust should be visual. Security should be progressive."
β BingoCube Philosophy