Cryptocurrency you can hold

I wanted to give cryptocurrency a physical form: something you can hold in your hand that represents value independently of an abstract balance on a phone. The attraction is the feel of real money.

The idea still needs a phone and an app. I am not claiming that a physical token removes those requirements. I am also not entirely sure how to explain the appeal; somehow, having crypto cash feels right to me.

That intuition led to the technical question: how could a physical NFC token be authenticated publicly when its chip uses a symmetric AES secret? The repository explores the proposed system through an implemented circuit experiment.

The problem

The proposed hardware is the NTAG 424 DNA. Its authentication workflow uses a secret AES key and read-specific data. In a conventional symmetric system, checking a message authentication code requires access to the secret.

The project investigates whether circuit-based proofs could help connect that hardware behavior to public verification.

The circuit experiment

The supplied workflow generates a key and valid/invalid test inputs, writes an AES circuit with the key embedded, compiles it with Circom, and runs witness generation. A Python verifier script inspects the output for the two cases.

In schematic form, the experiment checks a relationship of the form

mac=AES⁡k(data).\mathrm{mac}=\operatorname{AES}_{k}(\mathrm{data}).

This describes the circuit test. It is not a complete specification of the NFC chip’s deployed authentication protocol.

What is implemented

The documentation supports circuit compilation and witness generation. It explicitly says that installing the AES key on the NFC chip is not implemented, and that a full ZK-SNARK system requires further setup and proof-generation work.

Witness calculation is not, by itself, a complete public zero-knowledge verification system. The project description’s broader claims about a trustless bearer asset remain proposals.

Open questions

The README discusses key deletion, a public verifier called F_key, minting, and smart-contract backing. This site does not assert that embedding a key in public circuit artifacts makes it unrecoverable. Those security properties need a concrete protocol and analysis beyond the demonstrated workflow.

The useful starting point is the actual experiment: follow the scripts, inspect the circuit, and distinguish its outputs from the proposed monetary system.