Video thumbnail

UsagiVerify

UsagiVerify makes your personal information verifiable as NFT.

Project Description

UsagiVerify utilizes ZKP to issue NFTs based on information from the government-managed "My Portal" system, including vaccine certificates, medical expense information, and health checkup records. This provides a new form of digital certification that balances transparency and privacy. For example, the following NFTs can be issued:

Vaccine History NFT

Records of vaccinations such as COVID-19 are recorded on the blockchain as NFTs. This creates verifiable certificates that can be validated on-chain while maintaining privacy, eliminating the need for traditional in-person verification.

Medical Expense NFT

Medical expense information is divided into tiers and issued as NFTs. These can be verified through medical expense deduction smart contracts, creating a system where users can receive incentives such as JPYC (Japanese Yen-pegged cryptocurrency) as tax refunds.

Health NFT

Health examination information is divided into tiers and issued as NFTs. Similar to income information, this creates a system where healthier individuals can receive more benefits.

Background

Current situation

Currently, there are very few mechanisms to link strictly KYC-verified personal data from public information infrastructure to on-chain accounts. While there are systems to generate SmartWallets from My Number cards, there are no mechanisms to issue NFTs based on personal data (reflecting real-world life).

Problem

MynaPortal doesn't have the feature that can securely link important personal information from public information infrastructure to on-chain accounts while maintaining privacy.

MynaPortal has Self Information Retrieval APIs and Medical Insurance Information Retrieval APIs that can access basic personal information, health examination results, vaccination records, and income information associated with individual IDs. The available information is abundant and can enable online KYC verification.

However, the usage of these APIs is strictly regulated by guidelines, limiting their potential applications. Because this information is highly sensitive, it's difficult to expand its usage without properly implementing privacy technologies such as data anonymization. If this data could be brought into the blockchain world while maintaining privacy of income information and health examination results, many trustworthy digital assets with reliable sources could be circulated on-chain. There are methods to bring data from off-chain to on-chain, such as oracles and ZKTLS, but each has the following challenges:

Oracle challenges:

Complete dependence on providers like Chainlink, with no guarantee of data privacy

ZKTLS challenges:

It is heavily under development, requires dedicated browser extensions, and lacks versatility.

We have developed a method to solve these issues and implemented it as an MVP.

Proposed Method

Capabilities

Using ZKP (Zero-Knowledge Proofs), we can verify information obtained from public information infrastructure without transmitting the actual information on-chain, and mint NFTs as credentials. Additionally, by using TLS and ZK technologies, we've enabled API processing similar to ZKTLS. This allows for more flexible data transfer from off-chain to on-chain while maintaining privacy. Implementation

Log in to the public information infrastructure and retrieve information. Generate ZK proofs based on the information obtained in step 1. Verify the ZK proofs generated in step 2, and issue NFTs if the proof data is valid.

How it's Made

Frontend:

A user interface for authentication, NFT issuance, and management. Users can authenticate with public data platforms, retrieve information, generate ZK proofs, and issue or verify NFTs. Built with Next.js and TypeScript.

Backend:

Implements a mock version of Japan's MynaPortal, enabling users to retrieve health and income data. The backend also handles ZK proof generation and verification, as well as API functions for executing smart contract operations. Developed using Hono.

The backend provides the following API functionalities:

Obtain an access token

Retrieve personal data from the Manpoko. The data is secured with the access token

Verify ZK Proofs and mint NFTs

Manpoko:

Mock of MynaPortal resource server. It implements simplified protocol similar to TLS. Backend make a request to Manpoko, and verifies the Message Authentication Code.

ZK Circuit:

Utilizes Zero-Knowledge Proofs (ZKPs) to create verifiable on-chain data while keeping personal information private. Implemented using Succinct's ZK functionality.

Smart Contract:

Implements NFT issuance, management, and verification logic based on ERC-6268. Once a ZK verification is successfully completed, a credential NFT is minted. Built using Hardhat and OpenZeppelin.

Notes for this project:

We used EIP-6268. I wrote this specification. And we used the reference implementation of this EIP by ourselves.

We used SPRM technology. This was the work of ETHTokyo 2024. UsagiVerify is a application of SPRM, to enhance the privacy additional to ZKP. https://app.akindo.io/communities/3dB0ReGz3iQqK8De/products/kzj1QmLrgcOJ9vMk?tab=overview

background image mobile

Join the mailing list

Get the latest news and updates