Open Protocol
The Open Protocol is a variant of Ghost Protocol for public data commitments. Unlike the standard protocol where reveals are private (unlinkable), Open Protocol reveals are public — the data is exposed during reveal. This is useful when you want the integrity guarantees of a Merkle tree commitment without the privacy layer.
When to use Open Protocol
| Use case | Standard Ghost Protocol | Open Protocol |
|---|---|---|
| Private token transfers | Yes | No |
| Public data provenance | No | Yes |
| Verifiable credentials | Sometimes | Yes |
| Persistent key storage | No | Yes |
| Sealed-then-revealed data | Yes (private reveal) | Yes (public reveal) |
Contracts
| Contract | Address | Purpose |
|---|---|---|
| OpenGhostVault | 0x45B022fEB169AF906CaBa8086c977AA7b15faAf1 | Commit and reveal orchestrator |
| OpenGhostReveal | 0x70BD6eE41507139285e868a46399104305dF1833 | Reveal mechanism |
| OpenCommitmentTree | 0xE2b33dB178d6201EDd854ED9163B30dcfECC0c48 | Merkle tree for open commitments |
| OpenNullifierRegistry | 0xC1c32f5697d5cfD74c35D1Fd4CF05E1F6d2A90b2 | Spent nullifier tracking |
| OpenGhostKeyVault | 0x4943959c05e028884C1CDd9878c762D785332A67 | Key management |
| PersistentKeyVault (v2) | 0x683B3ff7795D508Ff1e088a08981580e19af7496 | Persistent key storage |
Architecture
The Open Protocol uses separate contracts and a separate Merkle tree from the standard Ghost Protocol. This means:
- Open commitments don't mix with private commitments
- The anonymity set is separate
- A dedicated root updater service maintains the Open Protocol tree
Next steps
- OpenGhostVault — committing and revealing public data
- Key Vault — persistent key storage
- Use Cases — when to choose open vs private