Skip to main content

Audit Status

Specter has undergone multiple independent security audits covering smart contracts, ZK circuits, scaling infrastructure, and operational security. This page summarizes audit findings, remediation status, and outstanding mainnet-blocking issues.

Audits are a point-in-time assessment. They identify issues in the codebase as it existed at audit time. Subsequent code changes may introduce new issues or resolve identified ones. This page reflects the current understanding of all findings.

Audit Summary

AuditTotal FindingsCriticalHigh/MajorMediumLow/MinorInformational
Smart Contract65314181614
ZK Circuit1112224
Scaling Contracts2422983
Infrastructure25241072
Total125822393323

Smart Contract Audit

Scope

The smart contract audit covered the core Ghost Protocol contracts deployed on Specter's EVM:

ContractDescription
CommitRevealVaultCore commit/reveal logic — accepts commitments, verifies proofs, processes reveals
NullifierRegistryTracks spent nullifiers to prevent double-spending
CommitmentTreeMerkle tree implementation for commitment storage and root management
NativeAssetHandlerBridges between native Cosmos SDK tokens and EVM-side operations via the ghostmint precompile
AssetGuardControls which assets can enter and exit the privacy system
Policy contractsProgrammable constraints on commit/reveal operations (time locks, amount limits, compliance rules)

Findings Breakdown

SeverityCountDescription
Critical (3)3Issues that could result in loss of funds, broken privacy guarantees, or protocol bypass
Major (14)14Issues that could result in degraded security, incorrect state, or exploitable edge cases
Medium (18)18Issues with limited exploitability but requiring code changes for correctness
Minor (16)16Code quality, gas optimization, and defensive programming improvements
Informational (14)14Best practices, documentation gaps, and stylistic suggestions

Key Finding Categories

  • Access control: Several functions lacked appropriate caller restrictions, potentially allowing unauthorized state modifications.
  • Reentrancy: Token callback patterns required reentrancy guards in specific reveal flows.
  • Integer handling: Edge cases in amount encoding/decoding for the 7-input token commitment variant.
  • Root staleness: Insufficient validation of Merkle root freshness in certain reveal paths.
  • Policy bypass: Specific sequences of operations that could circumvent policy constraints.

ZK Circuit Audit

Scope

The ZK circuit audit covered the Circom circuits that generate and verify zero-knowledge proofs:

CircuitDescription
redemption.circomCore reveal circuit — proves knowledge of commitment preimage and Merkle membership
accessProof.circomPersistent access circuit — proves knowledge without consuming the nullifier
Commitment librariesShared Poseidon hashing and constraint generation code used by both circuits

Findings Breakdown

SeverityCountDescription
Critical (1)1Constraint under-specification that could allow proof forgery
High (2)2Missing range checks and insufficient input validation
Medium (2)2Redundant constraints and optimization opportunities
Low (2)2Documentation and naming clarity
Informational (4)4Circuit design patterns and best practices

Key Finding Categories

  • Under-constrained signals: A circuit signal that was not fully constrained, potentially allowing an adversary to manipulate a proof input without detection.
  • Range checks: Missing bit-length constraints on inputs that should be bounded to specific ranges (e.g., token amounts must fit in 64 bits).
  • Nullifier derivation: Verification that the nullifier derivation path in the circuit matches the on-chain expectation exactly.

Scaling Contracts Audit

Scope

The scaling contracts audit covered the batch processing and session infrastructure designed for high-throughput operations:

ContractDescription
BatchCommitRevealVaultProcesses multiple commits and/or reveals in a single transaction
SessionVaultManages session-based access with time-bounded authentication
RunnerRegistryRegistry for authorized proof generation runners in the scaling infrastructure
ShardedTreeRegistryManages multiple Merkle tree shards for horizontal scaling

Findings Breakdown

SeverityCountDescription
Critical (2)2Issues in batch processing that could corrupt Merkle tree state or allow cross-session attacks
High (2)2Race conditions in concurrent session management
Medium (9)9Gas optimization, event emission completeness, and edge case handling
Low (8)8Code quality and documentation
Informational (3)3Architecture suggestions

Key Finding Categories

  • Batch atomicity: Ensuring that a partially-failed batch does not leave the Merkle tree in an inconsistent state.
  • Session isolation: Preventing one session's proof from being replayed in another session context.
  • Shard consistency: Ensuring cross-shard operations maintain global nullifier uniqueness.
  • Runner authorization: Access control for the runner registry to prevent unauthorized proof submissions.

Infrastructure Audit

Scope

The infrastructure audit covered operational security of the deployed system:

ComponentDescription
Validator nodeCometBFT validator configuration, key management, sentry node architecture
Relayer servicesRoot Updater, Commitment Relayer, Proof Relayer — authentication, rate limiting, input validation
FirewallNetwork configuration, port exposure, ingress/egress rules
TLSCertificate management, cipher suite selection, HSTS configuration

Findings Breakdown

SeverityCountDescription
Critical (2)2Exposed management interfaces and insufficient key protection
High (4)4Missing rate limiting on critical endpoints, weak TLS configurations
Medium (10)10Logging gaps, monitoring coverage, backup procedures
Low (7)7Documentation, operational procedures, and configuration hardening
Informational (2)2Best practices and recommendations

Key Finding Categories

  • Key management: Validator private keys and relayer signing keys required improved storage and rotation procedures.
  • Rate limiting: Several relayer endpoints lacked per-IP and per-wallet rate limiting, enabling potential denial-of-service.
  • Monitoring: Insufficient alerting on anomalous patterns (e.g., rapid nullifier spending, unusual proof generation rates).
  • TLS configuration: Cipher suite and protocol version hardening recommendations.

Mainnet-Blocking Issues

The following issues have been identified as blockers for mainnet launch. All are tracked and remediation is planned:

IssueSource AuditSeverityStatusDescription
Phase 2 Trusted SetupZK CircuitCriticalPlannedThe current circuits use a development-phase trusted setup. A public multi-party computation (MPC) ceremony is required before mainnet to ensure no single party holds the toxic waste.
SessionVault Payment TimingScaling ContractsCriticalIdentifiedA timing vulnerability in session payment processing that could allow a session to be used without completing payment.
Policy Validation BypassSmart ContractCriticalIdentifiedA specific sequence of operations that can circumvent policy enforcement under certain conditions.

Remediation Timeline

Audit Philosophy

Specter treats audits as one input to a broader security strategy, not as a certification of correctness. The complete security approach includes:

  1. External audits — independent expert review (completed, documented above).
  2. Formal verification — mathematical proofs of circuit constraint correctness (research phase).
  3. Fuzz testing — automated property-based testing of contract edge cases (ongoing).
  4. Bug bounty — public reward program for responsibly disclosed vulnerabilities (planned for mainnet).
  5. Incremental deployment — testnet operation with progressive feature activation before mainnet.

No software is bug-free. The goal is to systematically identify, prioritize, and remediate issues before they can be exploited, and to design the system so that individual component failures do not cascade into catastrophic outcomes.