PSDP — for the EUDI Wallet ecosystem (SPRIND)

PSDP for the EUDI Wallet ecosystem — privacy-preserving and formally verified. Maps to the SPRIND Funke EUDI thesis (unlinkability, selective disclosure, device/key binding, high assurance). Interop & security EVIDENCE — NOT eIDAS/EUDI accreditation or SPRIND endorsement.
EUDI Wallet Sandbox — PID holder, RP Registrar, registered purpose and revocation

Portable organizational trust (proposed sandbox)

Runs a fixed vLEI-backed relying-party onboarding scenario: dual proof of possession binds a local PID wallet key to a controlled OOR role key; a local registrar issues signed reference access/registration artifacts; the wallet enforces the registered DCQL claim and purpose.

Boundary: Unsolicited reference scenario, not a GLEIF/SPRIND partnership. The real GLEIF Legal-Entity fixture is a separate evidence lane; the runnable OOR, PID, wallet and registrar are synthetic local fixtures. NOT production KYC, eIDAS conformity or official WRPAC/WRPRC conformance.

▶ run this demo

ARF unlinkability/untraceability; the privacy frontier Funke rewarded

Unlinkable age verification (real ZK)

Proves 'over 18' with a real Groth16/BN254 zero-knowledge proof — the verifier learns the predicate, not identity, and presentations are unlinkable across relying parties.

Boundary: Real ZK on the public route, but classical (Groth16/BN254), single-party trusted setup — reference-grade, not a ceremony.

▶ run this demo

PID issuance + presentation over OID4VCI/OID4VP — Funke stage-1 deliverable

EUDI wallet PID round-trip

Issues and presents an EUDI-shaped credential over the standard OID4VCI/OID4VP + SD-JWT VC / mdoc rails, verified against real wallet clients.

Boundary: Interop evidence against standard wallets/clients — NOT a Member-State-notified PID provider.

▶ run this demo

ARF selective disclosure / data minimization

Selective / structured disclosure

Reveals only the requested attributes from a credential, blinding the rest via salted-hash commitments (SD-JWT-style).

Boundary: Real selective disclosure (salted-hash); the ZK predicate path is separate (the age route above).

▶ run this demo

High-assurance (HAIP) — the EUDI security profile; device/key attestation

FAPI 2.0 + HAIP high-assurance profile

Defense-in-depth: a stolen token fails at the FAPI 2.0 layer (sender-constrained tokens); a rogue client fails at the HAIP layer (attestation chains to a trusted wallet-provider root).

Boundary: Enforcing modes opt-in per endpoint; the wallet-provider root is a configured STAND-IN, NOT EU/eIDAS-accredited.

▶ run this demo

Rigor differentiator — provable security on top of the privacy stack

Formal verification evidence

Tamarin-discharged protocol theorems (symbolic model) backing the privacy/authenticity properties — the 'provable' layer few wallet teams bring.

Boundary: Symbolic (Dolev-Yao) model with stated out-of-band assumptions — provable-security evidence, not a runtime guarantee of the deployed binary.

▶ run this demo

How to engage SPRIND (the EUDI Funke round ended; this is a Sandbox use case, not a competition entry): (1) EUDI Wallet Sandbox as a relying-party/issuer — partner@eudi.sprind.org; (2) open project form — projects@sprind.org, which weights PoC/demonstrator evidence (these live demos + the Tamarin proofs). Caveat: the funded Funke track required open-sourcing deliverables, which conflicts with the BUSL moat — the moat-safe route is Sandbox integration, not the funded competition track.