Skip to main content

Implementation of Zero Knowledge Proofs for Age Verification on a Mobile Phone

· 40 min read
Ashwin Khan
Application Developer @ Yivi

Where the memory went, where the time goes, and why extra processor cores do not help

Yivi is working towards being a wallet that conforms to the European Age Verification profile, and a recent revision of the profile settled how such a wallet proves someone's age. Annex A §A.8 now says that "where the User's device provides the necessary platform support, the AVI SHALL support the generation of Zero-Knowledge Proofs". The AVI is the Age Verification App Instance, which here means the Yivi app on the user's phone. The clause names exactly one system for doing so: longfellow-libzk-v1, which is Google's Longfellow library. That turns zero-knowledge proofs from something a wallet might offer into something a conformant one has to do wherever the phone supports it, so the question is no longer whether Yivi implements zero-knowledge age proofs, but whether they are affordable on a phone an ordinary person already owns. This report is the measurement that answers that.

Face verification, screen readers and fewer surprises in Yivi app 8.2.0

· 11 min read
Wouter Ensink
Developer @ Yivi

August brought one Yivi app release and one release of the Go library underneath it. App version 8.2.0 was published on 14 August and reached the App Store, Google Play and F-Droid. Version 1.3.0 of irmago, the Go implementation doing the wallet's actual work, was published on 12 August, and app 8.2.0 pins that version.

The post-quantum gap in the EUDI wallet ecosystem

· 31 min read
Dibran Mulder
CTO @ Caesar Groep

The EUDI wallet ecosystem is being built for Level of Assurance "high", which means resistance against attackers with a high attack potential, up to and including state actors. Yet almost every cryptographic mechanism it standardises on today, from the signatures on your credentials to the TLS between its servers, is exactly the kind of asymmetric cryptography that a large quantum computer breaks. This post is about that gap, and about why "we will get to it later" is a harder position to defend for a high-assurance wallet than for almost any other system on the internet.

Yivi 8.0: a foundation built for crypto agility

· 8 min read
Wouter Ensink
Developer @ Yivi

Two months ago we announced end-to-end OpenID4VC support in private beta. With Yivi 8.0 and irmago 1.0 shipping today, those protocols reach production — and the foundation underneath them has finally caught up.

This release is the structural moment Yivi stops being an IRMA wallet that speaks OpenID and becomes a credential-format-agnostic wallet that happens to also speak IRMA. It is the single biggest milestone in our transition toward a crypto-agile EUDI wallet.

📢 Announcing irmago 1.0: irma cli becomes yivi

· 6 min read
Wouter Ensink
Developer @ Yivi

With irmago 1.0 (currently in beta), the command-line tool you've been calling irma is shipped as yivi, and the Go package that issuer and verifier requestor servers import has moved with it. This post is for anyone running irma server, irma session, or the Docker image in production, and for anyone whose service imports github.com/privacybydesign/irmago to construct or sign session requests — what changes, what stays the same, and how to migrate.

Yivi announces end to end OpenID support: private BETA now open

· 5 min read
Dibran Mulder
CTO @ Caesar Groep

After shipping OpenID4VP support last year and migrating all Privacy by Design issuers to SD-JWT VCs earlier this year, today we're closing the loop: Yivi now supports both OpenID4VCI and OpenID4VP. Issuers and verifiers can integrate with Yivi entirely using open standards.

We're opening a private BETA and inviting organizations to be among the first to integrate.

A Yivi user loads in his eduID and discloses it using OpenID4VP using Veramo verifier software.