Status: pre-launch. This evidence reflects implemented code and deployed infrastructure. Provii is not yet serving end-user production traffic, so production operational metrics and audit history are not yet available.
Privacy Architecture Evidence
Control Family: Privacy Controls (UC-001 through UC-043) Generated: 2026-02-14 Status: Architecture Analysis
Executive Summary
This document provides evidence for Maelstrom AI’s privacy controls through architecture analysis and data flow documentation. Maelstrom AI’s zero knowledge architecture is its primary privacy mechanism. The system is designed so that it does not collect PII, rather than relying on policy to protect it after collection.
Key Privacy Claim: Maelstrom AI-operated verification services never collect, process, or store names, addresses, contact information, identity documents, biometric data, or any other personally identifiable information (PII). During credential issuance, the date of birth is transmitted once to the provii-issuer for server-side Pedersen commitment computation and immediately discarded (never stored or logged). During verification, no PII is transmitted. only zero knowledge proofs.
Evidence Structure
This document provides evidence for 38 privacy controls across:
- Data Minimization (UC-001)
- Purpose Limitation (UC-002)
- Transparency (UC-003)
- Privacy Notices (UC-004)
- User Rights (UC-005)
- Privacy by Design & Default (UC-006)
- Data Protection Impact Assessment (UC-007)
- Privacy Governance (UC-008)
- Consent Management (UC-009)
- Cross-Border Transfers (UC-010)
- Automated Decision-Making (UC-011)
- [UC-012 through UC-043 - see Unified Control Matrix]
UC-001: Data Minimization
Control Requirement: Collect and process only the minimum data necessary for the intended purpose.
Evidence: What PII is Collected (Almost None)
Server-Side Processing (Maelstrom AI-Operated Services):
COLLECTED PII: None
NOT COLLECTED:
❌ Names
❌ Email addresses
❌ Physical addresses
❌ Phone numbers
❌ Dates of birth (DOB transmitted once during issuance for Pedersen commitment, immediately discarded)
❌ Identity document numbers
❌ Biometric data
❌ Government-issued IDs
❌ Social security numbers
❌ Any traditional PII
What IS Collected (Server-Side):
- IP Addresses - Retained 90 days for anti-abuse only; critical security event logs are retained for up to 365 days
- Hashed with SHA-256 in logs for privacy
- Not linked to user identity
- Not shared with third parties
- Credential Nullifiers - One-way cryptographic hashes
- Prevent credential reuse/replay
- Cannot be reversed to reveal DOB
- Not personally identifiable
- Challenge IDs - Random UUIDs
- Single-use verification session identifiers
- No link to user identity
- Expire after use
Client-Side Processing:
- Date of Birth (DOB) - Transmitted once to provii-issuer during issuance for server-side Pedersen commitment computation; DOB immediately discarded after commitment. Never transmitted during verification.
- Credential private keys - Never leave device
- Proof generation happens on-device
Evidence Locations
Architecture Documentation:
src/content/docs/trust/security/information-security-policy.mdx(Lines 102-109) - “Zero knowledge First” principle
Data Retention Policy:
src/content/docs/trust/security/data-retention.md- IP addresses: 90 days (critical security event logs: up to 365 days)
- Challenge records: 5-minute active TTL
- No PII retention (because none collected)
Code Evidence:
provii-verifier/src/security/log_sanitizer.rs- Lines 101-111: IP address hashing (
hash_ip) for privacy - Lines 1-18: GDPR compliance comments
- Shows implementation of data minimization in logging
Conclusion: ✅ PASS - Maelstrom AI is designed to collect the minimum data required for age verification. By design, the system is architected so that it does not collect PII that it does not need.
UC-002: Purpose Limitation
Control Requirement: Use data only for the stated purpose; don’t repurpose without consent.
Evidence: Data Usage Limited to Age Verification
Purpose Statement: All data collected is used exclusively for:
- Performing cryptographic verification of age proofs
- Anti-abuse protection (rate limiting, replay prevention)
- System diagnostics and security monitoring
What Data is NOT Used For: ❌ Marketing or advertising ❌ User profiling or analytics ❌ Third-party data sharing ❌ Cross-site tracking ❌ Behavioural analysis ❌ Identity resolution
Evidence: Unlinkability by Design
Random IDs Per Verification:
- Each verification uses a fresh random challenge ID (UUID v4)
- No cross-site tracking possible
- No persistent user identifiers
Nullifiers for Replay Prevention:
// From provii-verifier/src/routes/verify.rs (Line 349)
let cred_nullifier = body.proof.public.cred_nullifier.0;
- Nullifiers are one-way hashes derived from credentials
- Prevent credential replay attacks
- Cannot be used to track users across sites (different nullifier per verification context)
Evidence Locations:
src/content/docs/concepts/trust-model.md- Unlinkability guaranteesprovii-verifier/src/routes/verify.rs(Lines 349-399) - Nullifier processing
Conclusion: ✅ PASS - Data is used strictly for stated purpose. Architecture prevents repurposing through unlinkability.
UC-003: Transparency
Control Requirement: Be clear and open about data processing practices.
Evidence: Radical Transparency
Public Documentation:
- Open Source Code - All core components are open source:
- provii-verifier (backend)
- provii-issuer (credential issuance)
- Provii mobile wallet (client) repository under the MaelstromAI GitHub enterprise
- provii-crypto (cryptographic library)
- Published ISMS - Entire Information Security Management System is public:
- Security policies
- Risk assessments
- Control implementations
- Compliance documentation
- Architecture Documentation - Complete system design published at:
https://docs.provii.app/overview/architecture- Data flow diagrams
- Privacy guarantees
- Cryptographic specifications
Quote from Information Security Policy:
“We make our security practices public because:
- We have nothing to hide (no PII to protect through obscurity)
- Open scrutiny improves security
- It builds trust through verifiability”
Evidence Locations:
src/content/docs/trust/security/information-security-policy.mdx(Lines 111-121) - Radical Transparency principle- Complete ISMS published at
/trust - Open source repositories at GitHub
Conclusion: ✅ PASS - Complete transparency. Architecture, code, and policies are publicly auditable.
UC-004: Privacy Notices
Control Requirement: Provide clear privacy notices to users.
Evidence: Privacy Information Available
Where Privacy Information is Documented:
- Data Retention Policy:
src/content/docs/trust/security/data-retention.md
- What data is collected
- How long it’s retained
- Why it’s collected
- Information Security Policy:
src/content/docs/trust/security/information-security-policy.mdx
- Zero knowledge first principle
- What PII is NOT collected
- Privacy by design approach
- How the system works
- Data flows
- Privacy guarantees
Key Notice Points:
- No PII collected by Maelstrom AI servers
- DOB transmitted once during issuance for Pedersen commitment computation, then immediately discarded
- IP addresses hashed and retained 90 days; critical security event logs are retained for up to 365 days
- Zero knowledge proofs reveal only age threshold (not DOB)
Evidence Locations:
- Published documentation at
docs.provii.app - Wallet UI (in-app privacy information)
- API documentation for integrators
Conclusion: ✅ PASS - privacy information publicly available. Zero knowledge architecture simplifies notice requirements (by design, the system is not intended to collect PII).
UC-005: User Rights (Access, Deletion, Portability)
Control Requirement: Enable users to exercise privacy rights (GDPR Articles 15-20).
Evidence: User Rights Implementation
Right to Access (Article 15):
- Status. Not applicable - no personal data held by Maelstrom AI servers
- User-Held Data. All credentials stored in wallet under user control
- Implementation. Users can export wallet data locally (JSON)
Right to Deletion (Article 17 - “Right to be Forgotten”):
- Status. Automatic - no PII to delete
- IP Addresses. Auto-deleted after 90 days; critical security event logs are retained for up to 365 days
- Challenge Records. 5-minute active TTL
- Wallet Data. User can delete wallet app (deletes all local credentials)
Right to Portability (Article 20):
- Status. Full portability - credentials are standard JSON
- Implementation. Wallet can export credentials
- No vendor lock-in. Cryptographic credentials are portable
Right to Rectification (Article 16):
- Status. Not applicable - Maelstrom AI doesn’t store personal data to rectify
- Implementation. Users update DOB in wallet; new credentials auto-generated
Right to Restrict Processing (Article 18):
- Status. Not applicable - minimal processing occurs
- Implementation. Users control when to generate and submit proofs
Evidence Locations:
- User rights enabled by architecture (no server-side PII)
Conclusion: ✅ PASS - Zero knowledge architecture makes most GDPR rights moot (no personal data held). Users have full control over wallet-held credentials.
UC-006: Privacy by Design & Default
Control Requirement: Implement Privacy by Design (7 foundational principles).
Evidence: Privacy by Design Implementation
The 7 Principles Applied to the Provii Platform:
1. Proactive not Reactive; Preventative not Remedial
- ✅ Evidence: Architecture prevents PII collection rather than protecting it after collection
- Quote. “If we don’t collect it, we can’t lose it.” (Information Security Policy)
- Implementation. Zero knowledge proofs are designed so that DOB is not revealed during verification
2. Privacy as the Default Setting
- ✅ Evidence: System reveals minimum information by default
- Implementation. Proofs reveal only binary age threshold (over/under), not actual age or DOB
- No opt-in required. Privacy is automatic, not configurable
3. Privacy Embedded into Design
- ✅ Evidence: Privacy built into cryptographic protocol, not added later
- Implementation. Groth16 zero knowledge proofs prevent information leakage
- Code.
provii-cryptolibrary enforces privacy at protocol level
4. Full Functionality. Positive-Sum, not Zero-Sum
- ✅ Evidence: Privacy doesn’t compromise functionality
- Implementation. Verifiers get cryptographic proof of age without seeing DOB
- Win-win. User privacy + verifier confidence
5. End-to-End Security. Full Lifecycle Protection
- ✅ Evidence: Security throughout entire flow
- Implementation:
- Issuance: DOB processed ephemerally for Pedersen commitment, immediately discarded; nullifiers prevent issuer tracking of subsequent verifications
- Storage: Credentials encrypted in wallet
- Verification: ZK proofs prevent verifier tracking
- Deletion: Auto-expiry of server-side records
6. Visibility and Transparency. Keep it Open
- ✅ Evidence: Complete transparency (see UC-003)
- Implementation. Open source code, published ISMS, public documentation
7. Respect for User Privacy. Keep it User-Centric
- ✅ Evidence: User controls all credential operations
- Implementation.
- Wallet-based credential storage
- User initiates proof generation
- No central database of credentials
Evidence Locations:
src/content/docs/trust/security/information-security-policy.mdx(Lines 25-28, 99-109) - Privacy by Design principlesrc/content/docs/concepts/trust-model.md- Privacy guarantees
Conclusion: ✅ PASS - All 7 Privacy by Design principles implemented. Privacy by design is embedded in the Provii platform’s core architecture.
UC-007: Data Protection Impact Assessment (DPIA)
Control Requirement: Conduct DPIA for high-risk processing (GDPR Article 35).
Evidence: DPIA Status
Assessment: DPIA not strictly required because:
- No PII processing: Server-side operations don’t involve personal data
- No high-risk processing: No profiling, automated decision-making affecting legal rights, or large-scale sensitive data processing
- Privacy-enhancing technology: System reduces privacy risk rather than increasing it
Risk Assessment Conducted:
- Location.
src/content/docs/trust/security/risk-register.mdx - Scope. Privacy risks from IP logging, credential tracking, issuer correlation
- Mitigations. IP hashing, nullifiers, RedJubjub issuer signatures
Evidence Locations:
- DPIA - Consolidated Data Protection Impact Assessment (completed February 2026)
src/content/docs/trust/security/risk-register.mdx- Risk assessmentsrc/content/docs/trust/security/risk-methodology.mdx- Risk methodology
Conclusion: ✅ IMPLEMENTED - Formal DPIA completed February 2026. Covers all processing activities including issuance, verification, and operational data. See DPIA.
UC-008: Privacy Governance
Control Requirement: Establish privacy governance structure with accountability.
Evidence: Privacy Roles and Responsibilities
Governance Structure:
ISMS Owner:
- Overall accountability for privacy program
- Approval of privacy policies
- Resource allocation for privacy initiatives
Privacy Officer:
- Implementation of privacy controls
- Privacy-by-design reviews
- Privacy incident response
Developers:
- Privacy-preserving code practices
- Privacy testing integration
- Privacy policy compliance
Evidence Locations:
src/content/docs/trust/security/information-security-policy.mdx(Lines 148-177) - Roles and Responsibilitiessrc/content/docs/trust/security/roles-responsibilities.md- Detailed role matrix
Privacy Policies:
- Information Security Policy (includes privacy principles)
- Data Retention Policy
- Acceptable Use Policy
- Incident Response Policy
Review Process:
- Annual policy review
- Risk assessments conducted annually
- Management review of ISMS effectiveness
Conclusion: ✅ PASS - Clear governance structure with defined roles. Privacy integrated into ISMS.
UC-009: Consent Management
Control Requirement: Obtain and manage user consent for data processing.
Evidence: Consent Not Required (Legitimate Interest)
Legal Basis for Processing (GDPR Article 6):
- IP Address Logging: Legitimate interest in security and fraud prevention
- Minimal data retained (90 days, hashed; critical security event logs: up to 365 days)
- Necessary for service operation
- Balancing test: Security interest outweighs minimal privacy impact
- Challenge Records: Necessary for contract performance
- Required to provide age verification service
- Short retention (5-minute active TTL)
- No PII involved
No Consent Required Because:
- No “special category” data processed (GDPR Article 9)
- No profiling or automated decision-making affecting rights
- Processing is minimally invasive
- Clear legitimate interest exists
Where Consent IS Obtained:
- Wallet Installation. User consents to app permissions
- Proof Generation. User explicitly initiates verification
- Issuer Credential Request. User chooses to obtain credential
Evidence: Privacy-first architecture minimizes consent requirements. Where consent is needed (wallet operations), it’s obtained through explicit user action.
Conclusion: ✅ PASS - Consent framework appropriate for processing activities. Zero-PII architecture substantially reduces consent requirements.
UC-010: Cross-Border Data Transfers
Control Requirement: Ensure lawful cross-border data transfers (GDPR Chapter V).
Evidence: Minimal Cross-Border Transfer Concerns
Data Transfer Analysis:
What Gets Transferred Internationally:
- Zero knowledge Proofs - Cryptographic data (not personal data)
- Challenge IDs - Random UUIDs (not personal data)
- Credential Nullifiers - One-way hashes (not personal data)
- IP Addresses - Hashed, minimal retention
Where Data May Travel:
- Cloudflare Edge Network. Globally distributed (300+ locations)
- GitHub Actions. Build infrastructure (various regions)
- Data at rest. Cloudflare KV (configurable regions)
GDPR Compliance Mechanisms:
- Standard Contractual Clauses: Cloudflare provides SCCs
- Data Minimization: No PII transferred = reduced risk
- Adequacy Decisions: Some Cloudflare regions in adequate jurisdictions
Australian Privacy Act Compliance:
- Cross-border disclosure rules (APP 8) not applicable (no personal information disclosed)
- Maelstrom AI can operate globally without privacy barriers
Evidence Locations:
src/content/docs/trust/security/supplier-management.md- Cloudflare vendor assessment- Cloudflare SCC documentation (external)
Conclusion: ✅ PASS - Zero-PII architecture substantially reduces cross-border transfer concerns. Minimal data transferred is not personal data.
UC-011: Automated Decision-Making
Control Requirement: Provide safeguards for automated decision-making with legal effects (GDPR Article 22).
Evidence: No Automated Decision-Making with Legal Effect
Analysis: Maelstrom AI does NOT engage in automated decision-making as defined by GDPR Article 22 because:
- No Profiling: System doesn’t build user profiles or predict behaviour
- No Legal Effects: Age verification results don’t have legal or similarly significant effects
- Human Oversight Available: Verifiers can implement manual review if desired
- User Control: Users choose when to generate and submit proofs
What IS Automated:
- Cryptographic proof verification (mathematical, deterministic)
- Challenge generation (random, not decision-making)
- Replay detection (security, not profiling)
What IS NOT Automated:
- Identity verification (out of scope)
- Credit decisions (out of scope)
- Employment decisions (out of scope)
- Legal judgments (out of scope)
Evidence: Age verification is a simple binary check (over/under threshold), not a consequential automated decision requiring Article 22 protections.
Conclusion: ✅ PASS - Article 22 not applicable. System doesn’t make automated decisions with legal or similarly significant effects.
Data Flow Evidence
1. Issuance Flow (User → Issuer → Credential → Wallet)
┌─────────────────────────────────────────────────────────────────┐
│ ISSUANCE FLOW - What Data Goes Where │
└─────────────────────────────────────────────────────────────────┘
1. USER DEVICE (Wallet)
├─ INPUT: Date of Birth (DOB)
├─ PROCESSING: Sends DOB to issuer API for Pedersen commitment
│ └─ DOB transmitted once, processed ephemerally
├─ DURING VERIFICATION: DOB never transmitted
└─ SENDS TO ISSUER: DOB + randomness bits
2. ISSUER SERVICE
├─ RECEIVES: DOB transiently for Pedersen commitment computation
├─ PROCESSING: Computes Pedersen commitment, signs with RedJubjub key
├─ DISCARDS: DOB immediately after commitment (never stored or logged)
└─ SENDS TO USER: Signed credential
3. USER DEVICE (Wallet)
├─ RECEIVES: Signed credential
├─ STORES: Credential locally (encrypted)
└─ RESULT: User has ZK credential proving DOB without revealing it
┌─────────────────────────────────────────────────────────────────┐
│ PRIVACY PROPERTIES │
├─────────────────────────────────────────────────────────────────┤
│ ✅ Issuer sees DOB ephemerally, discards immediately │
│ ✅ Issuer cannot track user later (nullifiers) │
│ ✅ DOB never transmitted during verification │
│ ✅ No PII stored on Maelstrom AI servers │
└─────────────────────────────────────────────────────────────────┘
Evidence Locations:
provii-issuer/- Issuer implementation (computes Pedersen commitments server-side)
2. Verification Flow (Challenge → Proof → Verification)
┌─────────────────────────────────────────────────────────────────┐
│ VERIFICATION FLOW - What Data Goes Where │
└─────────────────────────────────────────────────────────────────┘
1. VERIFIER REQUEST
├─ SENDS: Origin, age threshold (e.g., "18+")
└─ RECEIVES: Random challenge ID, RP challenge nonce
2. USER DEVICE (Wallet)
├─ INPUT: Credential, challenge, age threshold
├─ PROCESSING: Generate zero knowledge proof
│ ├─ Proves: "My DOB makes me over threshold"
│ ├─ Reveals: NOTHING about actual DOB
│ └─ Includes: Nullifier (prevents replay)
├─ NEVER TRANSMITTED: DOB, credential private key
└─ SENDS: Zero-knowledge proof + nullifier
3. VERIFIER API
├─ RECEIVES: ZK proof, nullifier, challenge response
├─ PROCESSING:
│ ├─ Verifies cryptographic proof (Groth16)
│ ├─ Checks nullifier not previously used
│ ├─ Validates challenge matches
│ └─ Confirms issuer signature valid
├─ LEARNS: User is over threshold (binary yes/no only)
├─ DOES NOT LEARN: Actual age, DOB, identity
└─ RESULT: "VERIFIED" or "FAILED"
4. DATA RETAINED (Server-Side)
├─ Challenge record: 5-minute active TTL (then auto-deleted)
├─ IP address: 90 days, hashed (for anti-abuse); critical security events: up to 365 days
└─ Nullifier: Checked against ban list (no personal data)
┌─────────────────────────────────────────────────────────────────┐
│ PRIVACY PROPERTIES │
├─────────────────────────────────────────────────────────────────┤
│ ✅ Verifier cannot see DOB │
│ ✅ Verifier cannot track user across sites (random IDs) │
│ ✅ Zero-knowledge proof reveals only age threshold result │
│ ✅ No PII processed by Maelstrom AI servers │
│ ✅ Unlinkability: Each verification is independent │
└─────────────────────────────────────────────────────────────────┘
Evidence Locations:
provii-verifier/src/routes/verify.rs- Verification implementation- Lines 71-755: Complete verification flow
- Line 100-104: Challenge ID redaction for privacy
- Lines 349-399: Nullifier processing (privacy-preserving)
What’s NOT Collected (Critical Privacy Evidence)
Traditional PII - NONE Collected
This is just as important as what IS collected. Maelstrom AI’s architecture is designed so that the following items are not collected:
NOT COLLECTED (by architectural design):
├─ Personal Identifiers
│ ❌ Full name
│ ❌ Email address
│ ❌ Phone number
│ ❌ Physical address
│ ❌ Postal code
│ ❌ Social security number
│
├─ Identity Documents
│ ❌ Passport numbers
│ ❌ Driver's license numbers
│ ❌ Government-issued ID numbers
│ ❌ Document scans/photos
│
├─ Biometric Data
│ ❌ Facial recognition data
│ ❌ Fingerprints
│ ❌ Iris scans
│ ❌ Voice prints
│
├─ Sensitive Attributes
│ ❌ Date of birth (processed ephemerally during issuance, never stored; not transmitted during verification)
│ ❌ Actual age (only threshold revealed)
│ ❌ Birthplace
│ ❌ Nationality
│ ❌ Race/ethnicity
│ ❌ Gender
│ ❌ Religion
│
├─ Financial Data
│ ❌ Credit card numbers
│ ❌ Bank account details
│ ❌ Payment information
│
├─ Behavioral Data
│ ❌ Browsing history
│ ❌ Search queries
│ ❌ Location history
│ ❌ App usage patterns
│ ❌ Social connections
│
└─ Device Identifiers (No Tracking)
❌ Persistent device IDs
❌ Advertising IDs
❌ Cross-site tracking cookies
❌ Browser fingerprints
Why This Matters: Traditional privacy controls focus on “how we protect PII.” Maelstrom AI’s approach is to design the architecture so that PII is not collected in the first place. This is a substantially stronger privacy posture than policy-based controls.
Evidence:
- Information Security Policy states: “Maelstrom AI-operated services never collect, process, or store [PII]”
- Architecture documentation shows client-side DOB processing
- Code review shows no PII storage mechanisms
Privacy Policy Locations
Primary Privacy Documentation
- Information Security Policy
- Path:
src/content/docs/trust/security/information-security-policy.mdx - Sections:
- Lines 102-109: “Zero knowledge First” (what’s NOT collected)
- Lines 111-121: “Radical Transparency”
- Lines 25-28: “Privacy by Design” philosophy
- Data Retention Policy
- Path:
src/content/docs/trust/security/data-retention.md - Covers:
- IP address retention (90 days; critical security event logs: up to 365 days)
- Challenge record retention (5-minute active TTL)
- No PII retention schedule (none collected)
- Architecture Documentation
- Covers:
- Data flow diagrams
- Privacy guarantees
- Zero knowledge protocol
- Trust Model
- Path:
src/content/docs/concepts/trust-model.md - Covers:
- Unlinkability guarantees
- Issuer blindness
- Verifier limitations
- Log Sanitization Implementation
- Path:
provii-verifier/src/security/log_sanitizer.rs - Lines 1-18: GDPR compliance documentation
- Lines 101-111: IP hashing (
hash_ip. data minimization) - Lines 23-50: PKCE verifier redaction
- Lines 52-79: Challenge ID redaction
Cross-References to Existing ISMS Docs
Security Controls Implementing Privacy
- Access Control
- Policy:
src/content/docs/trust/security/access-control.md - Privacy Impact: Protects operational secrets, not PII (no PII to protect)
- Cryptography Policy
- Policy:
src/content/docs/trust/security/cryptography-policy.md - Privacy Impact: Zero knowledge proofs are core privacy mechanism
- Incident Response
- Policy:
src/content/docs/trust/security/incident-response.mdx - Privacy Impact: Breach risk is substantially reduced (no PII collected by design)
- Business Continuity
- Policy:
src/content/docs/trust/security/business-continuity.mdx - Privacy Impact: No PII backup/recovery needed
- Risk Management
- Methodology:
src/content/docs/trust/security/risk-methodology.mdx - Register:
src/content/docs/trust/security/risk-register.mdx - Privacy Risks Assessed:
- IP address correlation
- Credential tracking
- Issuer deanonymization
- Supplier Management
- Policy:
src/content/docs/trust/security/supplier-management.md - Privacy Impact: Cloudflare processes no PII (only ZK proofs)
Privacy Architecture: Comparison with Traditional Systems
Why Maelstrom AI’s Privacy Architecture Matters
Traditional Age Verification:
Traditional System:
├─ Collects: Full name, DOB, ID document, address
├─ Stores: PII in central database
├─ Risks: Data breach exposes all user PII
├─ Compliance: Heavy GDPR/Privacy Act obligations
└─ User Trust: Must trust verifier with sensitive data
Provii’s Zero knowledge Approach:
Provii System:
├─ Collects: Nothing (ZK proof only)
├─ Stores: No PII (by architectural design)
├─ Risks: Breach reveals no PII (none to breach)
├─ Compliance: Minimal obligations (no PII processing)
└─ User Trust: Cryptographic verification, not policy promise
Operational Benefits of Privacy Architecture
- Reduced Compliance Burden
- No GDPR data subject access requests (no data to access)
- No data breach notification requirements (no PII to breach)
- No data retention schedule for PII (none collected)
- Lower Risk Profile
- No honeypot of PII for attackers
- No regulatory fines for PII mishandling
- No reputational damage from PII leaks
- User Trust
- Mathematical proof of privacy (not policy)
- No “trust us” required
- Open source verification
- Regulatory Alignment
- Zero knowledge design aligns with privacy-by-design regulatory expectations
- Privacy-first approach in age verification
- Architecture supports regulatory obligations (privacy by design)
Gaps and Recommendations
Current Gaps
- DPIA Documentation (UC-007)
- Gap. No formal Data Protection Impact Assessment documented
- Recommendation. Create lightweight privacy impact analysis documenting:
- Data flows (issuance, verification)
- Privacy risks identified (IP logging, correlation)
- Architectural mitigations (hashing, nullifiers)
- User controls (wallet-based)
- Effort. Low (2-4 hours)
- Priority. Medium (strengthens compliance posture)
- Privacy Notice in Wallet UI
- Gap. In-wallet privacy notice not documented
- Recommendation. Ensure wallet displays:
- “Your date of birth is sent once during setup, used to create your credential, then immediately deleted”
- “During age checks, only a cryptographic proof is sent — your date of birth is never transmitted”
- “Only binary age threshold (over/under) is revealed”
- Effort. Low (UI text update)
- Priority. Medium (user transparency)
- Consent Flow Documentation
- Gap. User consent flows not formally documented
- Recommendation. Document:
- Wallet installation consent
- Proof generation consent (explicit user action)
- Issuer credential request consent
- Effort. Low (1-2 hours)
- Priority. Low (already implemented, needs documentation)
Control Strengths
- Zero knowledge Architecture - Privacy designed into the core protocol
- Privacy by Design - All 7 principles implemented
- Radical Transparency - Open source + published ISMS
- Data Minimization - Architecture designed to avoid collecting PII (by design, not policy)
- Unlinkability - Random IDs reduce cross-site tracking risk
Conclusion
Privacy Controls Summary
| Control | Status | Evidence Quality | Notes |
|---|---|---|---|
| UC-001: Data Minimization | ✅ PASS | Strong | Architectural design |
| UC-002: Purpose Limitation | ✅ PASS | Strong | Unlinkability prevents repurposing |
| UC-003: Transparency | ✅ PASS | Strong | Open source + published ISMS |
| UC-004: Privacy Notices | ✅ PASS | Good | Documentation available |
| UC-005: User Rights | ✅ PASS | Strong | Zero-PII architecture makes rights moot |
| UC-006: Privacy by Design | ✅ PASS | Excellent | All 7 principles implemented |
| UC-007: DPIA | ⚠️ PARTIAL | Medium | Recommended to document |
| UC-008: Privacy Governance | ✅ PASS | Good | Clear roles and policies |
| UC-009: Consent Management | ✅ PASS | Good | Minimal consent needed |
| UC-010: Cross-Border Transfers | ✅ PASS | Strong | No PII transferred |
| UC-011: Automated Decisions | ✅ PASS | Strong | Not applicable |
Overall Assessment: STRONG PASS
Maelstrom AI’s zero knowledge architecture provides strong architectural privacy properties superior to policy-based controls. The system is designed so that it does not collect PII, which substantially reduces privacy compliance obligations.
Key Characteristics
- Architecture over policy: Designed so PII is not collected rather than protected after the fact
- Privacy through cryptography: Zero knowledge enables privacy properties not achievable with traditional systems
- Compliance simplification: No PII = minimal compliance burden
- Radical transparency: Open source + published ISMS builds trust
Evidence Strength
Excellent Evidence:
- Zero knowledge architecture documentation
- Open source code implementing privacy controls
- Data flow diagrams showing no PII collection
- Log sanitization code (IP hashing, redaction)
- Published ISMS policies
Good Evidence:
- Data retention policies
- Privacy governance structure
- User control mechanisms (wallet-based)
Areas for Improvement:
- Formal DPIA documentation (recommended)
- In-wallet privacy notice documentation
- Consent flow documentation
Evidence Artifacts
Code References
provii-verifier/src/security/log_sanitizer.rs- GDPR compliance, IP hashingprovii-verifier/src/routes/verify.rs- Verification flow, nullifier processingprovii-verifier/src/routes/challenge.rs- Challenge generation
Documentation References
src/content/docs/concepts/trust-model.md- Privacy guaranteessrc/content/docs/trust/security/information-security-policy.mdx- Privacy principlessrc/content/docs/trust/security/data-retention.md- Data retentionsrc/content/docs/trust/security/risk-register.mdx- Privacy risks
Policy References
- Information Security Policy (v1.0, 2026-02-14)
- Data Retention Policy
- Cryptography Policy
- Risk Assessment Methodology
Document Information
| Field | Value |
|---|---|
| Version | 1.0 |
| Generated | 2026-02-14 |
| Author | Maelstrom AI |
| Evidence Type | Architecture and Data Flow Analysis |
| Next Review | After DPIA documentation (recommended) |
| Classification | Public |