> For the complete documentation index, see [llms.txt](https://docs.lacunalabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.lacunalabs.io/lacuna-labs/core-concepts.md).

# Core concepts

*The cryptography, in plain terms — with the depth underneath.*

A handful of ideas make private, verifiable money possible. None of them requires a cryptography background to understand.

## Commitments \[The sealed box]

A commitment is a sealed box: it locks in a value and an owner while revealing neither. Publishing it proves the box exists without exposing its contents. Technically it is a hiding, binding hash of a note the value plus the owner's secrets  so identical inputs always produce the same box, yet the box leaks nothing about them.

## Nullifiers \[Spending without revealing]

When you spend, you publish a one-time tag, a nullifier, that marks a box as used without saying which box it was. The contract records every nullifier and rejects repeats, so double-spending is impossible. Because the tag cannot be linked back to its commitment, this protection costs no privacy.

## The anonymity set — privacy in numbers

Privacy here is collective. Rather than naming your box, a spend proves only that it is one of the boxes in the pool. The set it could plausibly be is your anonymity set — and the larger and busier the pool, the stronger everyone's privacy becomes.

## Zero-knowledge proofs

A zero-knowledge proof lets you prove a statement is true without revealing why — like proving you know a password without typing it. Lacuna uses Groth16, which produces tiny proofs, a few hundred bytes, that are fast and cheap to verify on-chain. That efficiency is what makes private transactions practical at scale.

## Poseidon hashing — privacy on a phone

The hardest part of on-device privacy is performance. Poseidon is a hash function purpose-built for zero-knowledge circuits; it sharply reduces the work a proof requires, which is what lets Lacuna generate proofs on a phone rather than a server.

*Fig. 4 — A private transaction in three moves — and what each one does, and does not, make public.*


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.lacunalabs.io/lacuna-labs/core-concepts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
