Overview
This document specifies the cryptographic construction of the Anonymous Voucher - the micro-payment token that gates every ORK operation in the Tide Cybersecurity Fabric. The voucher must simultaneously prove payment authorization to the ORK, prove balance sufficiency to the Payer, hide each actor's identity from non-adjacent parties, bind to a specific action type, and resist replay.
The construction achieves these properties via triple-blinding: three actors apply independent obfuscation layers that intertwine into a verifiable combined signature , allowing the Payer to validate payment without unmasking the transacting entities. The voucher's obfuscated Vendor identity simultaneously serves as the BYOiD authentication tag, fusing settlement and identification into a single protocol round.
Loading diagram...
Notation Reference
| Symbol | Description |
|---|---|
| Generator point on the selected elliptic curve. | |
| Scalar-point multiplication. | |
| Cryptographic SHA256 hash function. | |
| Diffie-Hellman key exchange function. | |
| , | VRK key pair. Vendor's ephemeral payment key (rotates monthly). |
| Vendor's master identity public key. | |
| Triple-obfuscated Vendor identity: . | |
| Payer-facing obfuscated VVK: . | |
| User ID obfuscation tag: . | |
| , | ORK 's private and public key pair. |
| ORK 's per-operation temporary payment key pair. | |
| ORK blinding factor: . | |
| Blinded ORK identity: . | |
| , | SWE's per-operation blinding key pair. |
| , | Vendor's per-voucher-batch nonce key pair. |
| , | Payer swarm deobfuscation key pair. |
| , | Payer node 's signing key pair. |
| PRISM deobfuscation coefficient: . | |
| Vendor's partial voucher signature for ORK . | |
| ORK's voucher counter-signature. | |
| Combined voucher signature: . | |
| , | EdDSA nonce public values (Vendor, ORK). |
| Obfuscated user ID: . | |
| Anonymized user ID (Payer-derived, for MAU licensing). | |
| Vendor destination key (Payer-derived, for ORK→Vendor encryption). | |
| Payer's redemption proof signature. | |
| Sum of ORK blinding factors (monthly redemption deobfuscation). |
Actors
| Actor | Description | Trust Assumption |
|---|---|---|
| User Agent (SWE) | Acquires ORKs, blinds their public keys, requests vouchers from Vendor, orchestrates ORKs. | Verifiable (but untrusted) dealer. Can select routing but cannot manipulate signed vouchers. |
| TideCloak | Holds VRK, generates and signs vouchers, obfuscates own identity. | Knows VVK public, lacks private shards. Cannot identify which ORKs receive vouchers. |
| ORK Nodes | Finalize vouchers (counter-signature), submit to Payer, execute partial operation if validated. | Standard threshold trust. Cannot derive Vendor's identity from voucher. |
| Payer | Validates signatures, enforces balance/licensing, issues RedemptProof, settles monthly. | Scrutinized, Tide-operated. Knows V but cannot derive Y. |
| mimDB | "Mimir" Database - Append-only Fabric synced registry. Stores committed records, Accountable Group Signatures, TWELVE-MAP entries. | Potentially compromised. All records cryptographically verifiable. |
| TWELVE-MAP | Tide Wide Enumerated Ledger of Verifiable Entries - Mapping Authoritative Pointers is the self-verifying directory service on mimDB mapping key identifiers to ORK swarms. | Each entry includes a ZK proof attesting to its authenticity against the master registry. |
Preconditions
Vendor-Side: Facility approval VRK key (, ), master Vendor public key (), , Payer public key ().
ORK-Side: ORK private key (, ), Payment ORKs keys (), user CMK shard (), user ID ().
Payer-Side: Cluster deobfuscation key (, ), node signing key (, ), facility store ID tracking: balance, capacity, VRK validity dates, MAU.
Phase 0: Credit Facility Setup
When: During initial vendor onboarding and each monthly VRK rotation.
The Vendor registers a funded facility with the Payer, linking VRK to VVK without exposing the master VVK identity. For the full credit facility setup construction including the semi-blind signature, see Protocol: Vendor Licensing, Algorithm 1.
The Vendor generates a fresh VRK (, ), derives , signs proofs of possession (, ), and registers a provisional credit facility:
CreateLicense(V, Y_tmp, YProof, vProof). The Payer creates a credit facility indexed by , identified by .During VVK generation, the VVK ORKs produce a semi-blind signature. The Vendor aggregates to derive and updates the facility:
UpdateLicense(V, Y'', YProof, vProof). The Payer verifies and re-indexes by . The Payer holds but cannot recover without .Phase 1: Voucher Allocation (Per-Operation)
When: Every authentication, decryption, or signing request.
Loading diagram...
Step 1.1 - SWE Blinds ORK Identities (Blind 1). The Secure Web Enclave (SWE) generates ephemeral , and computes per- blinding: , . Transmits to the Vendor.
Step 1.2 - Vendor Generates Vouchers (Blind 2). The Vendor executes Algorithm 1, returning .
Step 1.3 - SWE Verifies and Distributes. The SWE recovers the Vendor's public key: and asserts it matches the expected . Routes the per-ORK voucher.
Step 1.4 - ORK Finalizes Voucher (Blind 3). The ORK recomputes (note: ), derives , computes its counter-signature , and forms . The ORK obfuscates the user ID: .
Step 1.5 - ORK Contacts Payer. The ORK queries the decentralized repository for the Payer cluster address via
findPayer(P), receives ClusterPayersList[1..n], and calls ValidateVoucher on one Payer node from that cluster with: .Phase 2: Payer Validation
Loading diagram...
The Payer executes Algorithm 2 (deobfuscation and verification), then:
Licensing check. The Payer derives an anonymized user ID: , which expands to . This value is unique per user per vendor, changes each billing cycle (incorporates rotating ), and is unlinkable to the actual . If the MAU count exceeds the Vendor's licensed limits, the voucher is rejected.
Redemption proof. Upon passing all checks: . The Payer also derives for ORK→Vendor encryption. Returns to the ORK.
Storage. The Payer stores the validation indexed by digest (SubIndex: action, timestamp, key) and updates the balance indexed by venPub. The ORK stores the validation indexed by digest (SubIndex: payerPublic, action) with RedemptProof, voucher fields, and .
Phase 3: BYOiD Integration
The voucher protocol integrates with BYOiD authentication (Protocol: CMK Authentication) to establish the user's secret contextual identity (that is used to calculate the user identity in the context of this specific vendor) at zero additional latency. A user secret contextual identity value is a cross between the Vendor secret key and the user's master secret key: . The triple-obfuscated Vendor identity generated in Phase 1 is the PRISM authentication tag ().
At the ORK:
At the SWE (Algorithm 3): The SWE interpolates the partial responses, multiplies by , and divides by :
The obfuscation factors cancel: simplifies because , yielding - the user's master CMK public key multiplied by the VVK.
Phase 3b: BlindSig Flow (Non-PRISM Operations)
For threshold operations that produce a result for the Vendor (e.g., decryption, signing), the ORK encrypts the output using the Payer-derived .
At the ORK: The ORK derives the symmetric encryption key by removing its own blinding from :
The ORK encrypts: .
At the SWE: The SWE interpolates: , unblinds, and forwards to the Vendor.
At the Vendor: The Vendor independently derives the same key: and decrypts: .
The ORK never learns the Vendor's identity. The Vendor never learns the ORK's identity. Both independently derive the same symmetric key through the Payer's public key .
Phase 4: Monthly Bulk Redemption
ORKs accumulate RedemptProofs and settle in monthly bulk batches.
Step 4.1 - ORK Aggregation. Each ORK aggregates its validated vouchers hierarchically: by Payer cluster, then by action type, then by individual validation. It computes (the sum of all blinding factors for the period). For each aggregated record, it signs the payment instruction with the voucher private key: . It transmits to the relevant Payer cluster.
Step 4.2 - Payer Verification and Settlement. The Payer executes six verification checks:
- Verify all vouchers signed by an approved Payer cluster member.
- Verify no voucher older than 3 months.
- Match each voucher's digest to recorded validations.
- Verify each voucher's payment is assigned to exactly one payment instruction.
- Deobfuscate the ORK identity: .
- Verify: .
The Payer returns
ApprovedDigestList[], DisputedDigestList[], and a payment confirmation report. It processes the incentivisation settlement, syncs the cluster, and culls matched records.Step 4.3 - Dispute Resolution. For disputed vouchers, the ORK resubmits the full chain: . The Payer evaluates: check for duplicates, identify rogue ORK, identify rogue VRK/Vendor, identify rogue Payer. If all checks are exhausted, escalation to a human operator occurs. The Payer sends reports and any excess bill to the Vendor (TideCloak).
Step 4.4 - Purging. The ORK purges paid voucher records. The Payer archives settled ledgers.
Algorithms
Privacy and Threat Analysis
Privacy Properties
| Property | Mechanism |
|---|---|
| Vendor → ORK Unlinkability | Blind 1: SWE applies . Vendor sees , cannot derive without . |
| ORK → Vendor Unlinkability | Blind 2: Vendor obfuscates with . ORK sees , cannot derive . |
| Payer → VVK Isolation | Payer recovers . Without , cannot derive . |
| User ID Anonymization | Blind 3: ORK computes . Payer derives : unique per user per vendor, unlinkable to . |
| Cross-Cycle Unlinkability | incorporates rotating . Changes completely each billing cycle. |
| Post-Generation Immutability | locks voucher parameters. SWE routes but cannot forge (lacks ). |
| Non-Replayability | Unique nonces per voucher. Payer indexes R1 digest, rejects duplicates. |
Known Threats and Mitigations
| Threat Vector | Impact | Mitigation |
|---|---|---|
| Vendor + SWE collusion - map user CMK ID to Vendor user ID | Low | SWE SRI verification and rehoming (Article 7). |
| Vendor + SWE collusion - map users to specific ORK nodes | Low | SWE SRI verification of blinding algorithms. |
| ORK + Payer collusion - trace User → Vendor → ORK → Payer flow | Low | Payer nodes exclusively operated by Tide Foundation. |
| ORK + Payer collusion - unobfuscate Vendor master ID | Low | Requires deep infrastructure-level collusion. |
| Malicious Payer node - approve unfunded operations, accrue debt | High | Payer nodes are permissioned, Tide-operated only. |
| Malicious Payer node - map obfuscated ORK IPs to Vendors | Medium | Payer operation heavily audited. |
| Vendor + User + ORK + Payer collusion - inflate billing to defraud honest ORK | Very High | Requires four-party collusion; mitigated by dispute resolution and forensic logging. |
| Vendor + Payer collusion - map Vendor traffic to ORK nodes | Low | Payer nodes highly scrutinized. |
Layer Traversal
| Layer | How This Protocol Engages It |
|---|---|
| Legitimacy | Payer validates VRK dates and balance. Facility linkage to VVK via semi-blind signature. |
| Authority | VVK signs VRK during onboarding. VRK signs each voucher. |
| Agency | Voucher gates every Agency Layer operation. ORKs execute only after Payer validation. PRISM tag derived from voucher obfuscation. |
| Settlement | Primary layer. Credit Facility management, voucher allocation, real-time validation, monthly redemption. |
Security Properties
| Property | Mechanism | Assumption |
|---|---|---|
| Triple-blinding | Three independent obfuscation layers (ORK identity, Vendor identity, User ID), each peelable only by intended recipient. | DH security, hash collision resistance. |
| Signature binding | Combined binds Vendor and ORK signatures to identical , , and action via joint hash term. | EdDSA unforgeability. |
| Slip-knot deobfuscation | Payer peels one layer () without accessing other blinds. | Payer key security. |
| Non-replayability | Digest-indexed uniqueness at Payer. | Payer database integrity. |
| Balance enforcement | Per-VRK credit tracking. Negative balance → rejection. | Payer database integrity. |
| Licensing enforcement | Anonymized MAU counting per . Exceeded license → rejection. | - |
| PRISM fusion | is simultaneously the PRISM . Zero additional protocol rounds. | - |
| Cross-cycle unlinkability | VRK rotation changes and per billing cycle. | VRK rotation integrity. |
| BlindSig channel | ORK and Vendor independently derive via Payer public key. Neither learns the other's identity. | DH security. |
Call Summary
| Call | Direction | Phase | Purpose |
|---|---|---|---|
CreateLicense | Vendor → Payer | 0 | Register provisional credit facility with VRK. |
UpdateLicense | Vendor → Payer | 0 | Update facility identity to after VVK generation. |
GetVouchers | SWE → Vendor | 1 | Request funded vouchers with blinded ORK keys (BlurPORKi, ActionRequest, BlurerK). |
VoucherResponse | Vendor → SWE | 1 | Return voucherPacks[], QPub, PayerPub, YHat, UDeObf. |
VoucherRequest | SWE → ORK | 1 | Distribute per-ORK VoucherPack with QPub, PayerPublic, BlurerK, YHat. |
findPayer | ORK → mimDB | 1 | Locate Payer cluster for validation. |
ValidateVoucher | ORK → Payer (one from cluster) | 1-2 | Submit voucherFinal + QPub for validation. |
redemptContent, redemptProof, obfgVVK | Payer → ORK | 2 | Return validation data, Payer signature, and . |
prismID_i | ORK → SWE | 3 | Return PRISM partial (authentication flow). |
encBlindMsg_i | ORK → SWE | 3b | Return encrypted result (BlindSig flow). |
redemptionAgg | ORK → Payer | 4 | Monthly bulk settlement request. |
References
- Hall, J. L., Hertzog, Y., et al. (2023). Manifesting Unobtainable Secrets: Threshold Elliptic Curve Key Generation using Nested Shamir Secret Sharing. arXiv:2309.00915. Presented at AustMS 2021.
- Chaum, D. (1983). Blind Signatures for Untraceable Payments. Advances in Cryptology Proceedings of Crypto.
- Tide Developer Documentation: docs.tidecloak.com
Related Protocol Articles:
- Protocol: Vendor Licensing - Sibling protocol covering Stripe integration, VRK rotation, and credit facility creation.
- Protocol: CMK Authentication - BYOiD authentication ceremony consuming the deobfuscation coefficient from this protocol.
- Article 6: Authority in Action - Forseti policy execution, gated by voucher validation.
- Article 9: Threat Model - Collusion scenarios and Payer trust assumptions.