Why
Two projects, opposite architectures, and the same premise underneath: an account or a file path is a poor long-term identity.
ERC-7812 is the standardisation attempt. Provable identity is fragmented — Privado ID, EAS, Rarimo each carry their own registry — and the proposal is to collapse that into one singleton on-chain registry where any protocol can store and prove statements by zero-knowledge proof without publishing the underlying data. Vitalik is a co-author. The Rationale section on why a singleton is the part to read, because the argument for one shared registry over many is the whole design decision and everything else follows from it. This card sits between dsrv-portal, which asks who vouches for a credential, and erc-8141, which asks what the protocol absorbs — the middle question is where the statement lives.
Docbank is the clearest example of the opposite bet, and it is worth running rather than reading about. Agents that file, retrieve and revise documents need a system of record, not a sync folder — and a file path makes a poor identity once things get moved and renamed. Docbank's answer: the catalogue stays on your machine, a document keeps its identity through moves, every version is named by a verifiable SHA-256 digest, and stale automation hits an explicit revision conflict instead of silently overwriting. That last property is the one that matters for agent-facing archives, because a silent overwrite by an agent working from stale state is exactly the failure that has no signal at run time.
Holding them in one card makes the shared conclusion visible. Both refuse to let the location be the identity — one replaces it with a registry entry provable by ZK, the other with a node ID and a content digest. The difference is where the authoritative record lives and who can be made to answer for it, and that is the same question priced-by-the-wrong-thing reaches from tokenised equity and build-rent-or-own-the-rail reaches from bank ledgers. The ledger is always the easy half.
How it works
Same premise, opposite architectures
| ERC-7812 | Docbank | |
|---|---|---|
| What it refuses | One registry per identity protocol | A file path as identity |
| Identity is | A registry entry, provable by ZK | A stable node ID surviving moves and renames |
| Version identity | The statement, unpublished | Immutable, SHA-256-addressed |
| Where the record lives | On-chain, singleton | Your machine |
| Who can vouch | Any protocol writing to it | You — the daemon owns the vault |
| Failure it designs against | Fragmentation across registries | Silent overwrite by stale automation |
What to read in the standard
The Rationale, and specifically why a singleton. The argument that one shared registry beats many is the design decision; storage layout, proof format and interface all follow from it. The reference implementation (rarimo/evidence-registry) is where to check whether the argument survives contact with code.
What Docbank does that a sync folder does not
| Property | How |
|---|---|
| One authenticated daemon owns a vault | CLI, web app, TUI, scripts and external agents all speak the same loopback-authenticated HTTP/OpenAPI contract |
| In-process option | Go programs embed an independently rooted vault via go.kenn.io/docbank, skipping the daemon |
| Stale writes conflict, not overwrite | Writes carry revision preconditions |
| Deletion is staged deliberately | Trash → permanent delete → GC → pack reclamation are separate decisions, with revision-bound restore in between |
| Blobs without ceding the catalogue | Loose or packed, optionally in fenced filesystem or S3-compatible stores — Docbank verifies but does not encrypt them |
| Recovery is provable rather than assumed | Incremental snapshot repositories verified end-to-end before a restore is published; restore is topology-independent |
| Supply-chain check | Installers refuse any archive whose digest does not match the release SHA256SUMS |
Apache-2.0, Go 1.26+ with CGO and Node 24+ to build from source. Sibling project to msgvault, which does the same for messages.
The shared conclusion
Neither lets the location be the identity, and both make the record verifiable by something other than trust in a provider. The registry does it by publishing a proof and withholding the data; the vault does it by publishing nothing and keeping a digest. Which one is right depends entirely on who has to be convinced — a counterparty who was never in the room, or you in five years.
Where it lands in Jayverse
- Personas: give each persona a stable ID, not a filename or off-chain path. Metadata should keep identity across renames/moves; version each persona's metadata by content digest so an update is provably the same persona, not a new one.
- Number: address each distributed reading by a content digest, and make stale writes conflict instead of silently overwriting. A reading's filename should not be its identity; a revision-conflict on stale automation is safer than a silent overwrite of an indicator.
- Auditor: record which model — on-chain-provable registry or off-chain digest-addressed record — each Jayverse identity artifact follows, and who is accountable for it. Persona metadata and Number readings don't need the same answer, but each needs a stated one.
Key expressions
| Expression | 뜻 · 쓰이는 자리 |
|---|---|
| collapse into | (여러 개를) 하나로 통합하다 · 분산된 시스템을 단일 체계로 압축할 때. "collapse that into one singleton on-chain registry" |
| system of record | 공식 기록 시스템, 최종 신뢰 원본 · 신뢰할 단일 데이터 출처를 가리킬 때. "need a system of record, not a sync folder" |
| hit a conflict | 충돌이 발생하다 · 오래된 자동화가 최신 상태와 어긋나 오류로 처리될 때. "stale automation hits an explicit revision conflict" |
| silently overwrite | 경고 없이 덮어쓰다 · 아무 신호 없이 기존 데이터가 사라질 때. "instead of silently overwriting" |
| no signal at run time | 실행 시점에 아무 신호가 없다 · 문제가 생겨도 그 순간엔 감지되지 않을 때. "has no signal at run time" |
| survive contact with | 실전(구현)에 부딪혀도 유효하다 · 이론이 실제 코드에서도 성립하는지 볼 때. "survives contact with code" |
| cede | (통제권을) 넘겨주다, 양도하다 · 전체를 내주지 않고 일부만 내줄 때. "without ceding the catalogue" |
| topology-independent | 구조(배치)에 좌우되지 않는 · 시스템이 특정 배치와 무관하게 작동할 때. "restore is topology-independent" |
| never in the room | 그 자리에 없었던, 직접 관여하지 않은 · 검증해야 할 낯선 제3자를 가리킬 때. "a counterparty who was never in the room" |
| ERC-7812 | 이더리움 표준 제안 번호 7812 · 여러 프로토콜이 공유하는 단일 온체인 신원 증명 레지스트리 제안, Vitalik이 공동 저자. "ERC-7812 proposes one on-chain registry where any protocol can store" |
| EAS | 이더리움 어테스테이션 서비스(Ethereum Attestation Service) · 온체인 증명 등록 프로토콜, 신원 레지스트리가 파편화된 예시 중 하나. "Privado ID, EAS, Rarimo each carry their own registry" |
| Rarimo | 신원 증명 레지스트리 프로젝트 · ERC-7812의 참조 구현체(rarimo/evidence-registry)를 제공. "The reference implementation (rarimo/evidence-registry) is where to check" |
| CGO | Go 언어의 C 상호운용 빌드 모드(cgo) · Docbank를 소스에서 빌드할 때 필요한 요구사항. "Go 1.26+ with CGO and Node 24+ to build" |