blockchain
Infrastructure de preuve

La blockchain chez XDCellar :
ce que l'on ancre, et pourquoi

Ici, la blockchain ne stocke pas vos données. Elle ne porte qu'une preuve : une empreinte vérifiable qui scelle l'information, sans token, sans donnée personnelle on-chain. Voici précisément ce que cela enregistre, ce qu'est le passeport de lot, et les problématiques que cela résout.

1 Le principe : la donnée reste chez vous, la chaîne porte la preuve

L'erreur courante est de croire qu'on « met le vin sur la blockchain ». On n'y met rien de tout cela — ce serait coûteux, public et impossible à corriger.

La donnée déclarée (nutrition, ingrédients, appellation…) reste chez le producteur — servie par l'application, et pour les pièces jointes éventuellement stockée en adressage par contenu (IPFS). Sur la chaîne, on n'inscrit qu'une empreinte de 32 octets, accompagnée d'un horodatage. Le rôle de la chaîne se résume à répondre, de façon infalsifiable, à une seule question : « ce contenu précis existait-il, et a-t-il été engagé, à cette date ? »

Donnée e-label
JSON OIV chez le producteur / IPFS
Empreinte
SHA-256 du JSON canonicalisé (JCS)
Ancrage on-chain
XDC (+ miroir XRPL), horodaté

2 Ce que l'ancrage enregistre exactement

Une seule valeur : l'empreinte cryptographique du document. Rien d'autre.

On calcule d'abord une forme canonique du JSON (JCS, RFC 8785) — mêmes octets quel que soit l'ordre des clés — puis son SHA-256. Le résultat, 0x… sur 32 octets, est l'empreinte. Pour un lot, on inscrit la racine de Merkle de toutes les empreintes du lot.

Ce que cela garantit, concrètement :

  • Intégrité vérifiable — n'importe qui recalcule l'empreinte de l'e-label publié et vérifie qu'elle correspond à celle ancrée. Un seul caractère modifié (une valeur nutritionnelle, un allergène) change entièrement l'empreinte : la falsification est détectée mécaniquement.
  • Preuve d'antériorité — l'horodatage on-chain prouve que la donnée existait sous cette forme à cette date. Décisif en cas de litige ou de contrôle.
  • Vérifiable sans confiance — comme l'empreinte se recalcule par tous, personne n'a besoin de faire confiance au serveur XDCellar.

3 Deux registres, un ancrage ouvert

L'ancrage n'est pas captif : chaque domaine peut sceller sa propre empreinte avec son propre wallet.

Lots

SchemaRegistry

Publie la nomenclature OIV (son empreinte, sa version) et ancre les racines de Merkle des lots. Une racine couvre tout un lot ; chaque e-label du lot reste prouvable individuellement.

Ouvert · par domaine

AnchorRegistry

Registre public où chaque domaine ancre son empreinte avec sa propre adresse : isAnchored(empreinte) renvoie l'horodatage et l'adresse qui a ancré. C'est ce qui rend l'ancrage réellement décentralisé et non dépendant de XDCellar.

Les deux fonctionnent sur XDC Network, avec un miroir sur XRPL (mémo de transaction) — même empreinte, deux chaînes, pour la redondance de la preuve.

4 Le passeport de lot : prouver tout un lot, avec l'identité de l'émetteur

Là où l'e-label prouve une bouteille, le passeport prouve et relie un lot entier.

Le passeport de lot est un Verifiable Credential (VC) W3C 2.0, un document JSON-LD qui contient : la référence de lot, la racine de Merkle du lot, la liste des e-labels qui le composent (identifiant, nom, empreinte), les informations de registre, et — optionnellement — des événements de garde (traçabilité de la chaîne de possession). Il est signé avec la clé Ed25519 de l'émetteur, rattachée à une identité did:web publiée sur le domaine.

Son intérêt tient en trois points :

  • Il agrège — un lot = beaucoup de bouteilles, mais une seule racine et donc un seul ancrage couvre tout le lot.
  • Il se vérifie par des tiers — un labo, un certificateur, un importateur ou un acheteur vérifie la signature et l'émetteur (did:web) de façon autonome, avec des outils standards, sans appeler l'API XDCellar.
  • Il porte la traçabilité — les événements de garde documentent la provenance ; et le passeport a lui-même une empreinte, elle aussi ancrable.

Sans clé de signature configurée, le passeport reste W3C-valide (non signé) et son empreinte reste ancrable — dégradation propre, jamais de blocage.

5 Les problématiques que cela couvre

Chaque brique répond à un problème concret de la filière.

Conformité réglementaireUE 2021/2117 : nutrition, ingrédients, allergènes.
E-label numérique via QR, en 24 langues, sans marketing ni pistage — avec, en plus, une preuve d'ancrage qu'un simple lien producteur ne peut pas offrir.
Intégrité & anti-fraudeMentions déclarées susceptibles d'être altérées.
L'ancrage scelle les mentions ; toute altération est détectable, avec preuve d'antériorité horodatée.
Durabilité du QRInformation accessible toute la vie du produit.
Les pages e-label restent servies même en maintenance, et la preuve survit à la disparition de l'éditeur. Un QR imprimé ne tombe jamais.
Traçabilité de lotDéfauts de traçabilité fréquemment relevés en contrôle.
Le passeport de lot relie vin, lot et preuve, avec événements de garde.
Identité vérifiable de l'émetteur« Émetteur non vérifié » sur les wallets.
Le did:web prouve qui déclare et lève l'avertissement d'émetteur non vérifié.
Souveraineté & interopérabilitéDépendance aux SaaS propriétaires.
Standards ouverts (VC W3C, JCS, nomenclature OIV), token-free, ancrage ouvert par domaine — pas de solution captive.
Gouvernance de filièreStandards à décider collectivement.
NFT de gouvernance + DAO cross-chain (XDC/XRPL), 1 membre = 1 voix.
Confiance & accessibilitéConsommateur, malvoyants, multilingue.
Multilingue (24 langues), lecteur audio, pictogrammes santé, aucun tracking.

6 Lexique

Le vocabulaire technique de cette page, en clair. Pour aller plus loin : le lexique complet →

Empreinte fingerprint

Suite de 32 octets (affichée 0x…) obtenue en hachant le document. Elle change entièrement au moindre changement du contenu : c'est le « sceau » que l'on inscrit sur la chaîne.

SHA-256 hachage

Fonction de hachage cryptographique : transforme n'importe quel contenu en une empreinte de taille fixe, déterministe et pratiquement impossible à falsifier ou à inverser.

Canonicalisation (JCS) RFC 8785

Réécriture normalisée du JSON (ordre des clés, espaces…) pour que le même contenu produise toujours les mêmes octets — condition indispensable à une empreinte reproductible par tous.

Racine de Merkle Merkle root

Empreinte unique qui résume tout un lot d'empreintes, construite en les hachant deux à deux jusqu'à une seule valeur. Un seul ancrage couvre le lot, et chaque élément reste prouvable individuellement.

On-chain & horodatage timestamp

« On-chain » = inscrit dans un registre de blockchain, donc public, permanent et daté. L'horodatage fait foi de l'antériorité de la donnée.

Ancrage anchoring

Action d'inscrire une empreinte dans un registre on-chain pour sceller un contenu et lui donner une preuve d'antériorité vérifiable.

SchemaRegistry contrat XDC

Contrat qui publie la nomenclature OIV (empreinte + version) et ancre les racines de Merkle des lots.

AnchorRegistry contrat XDC

Registre public d'ancrage ouvert : chaque domaine y inscrit son empreinte avec sa propre adresse ; on lit qui a ancré quoi et quand par un simple appel.

Passeport de lot batch passport

Document vérifiable décrivant un lot de vin : référence, racine de Merkle, e-labels du lot, événements de garde. Voir aussi Verifiable Credential.

Verifiable Credential (VC) W3C 2.0

Standard ouvert de document numérique vérifiable (JSON-LD) : on peut contrôler qui l'a émis et que son contenu n'a pas été modifié, sans dépendre de l'émetteur.

did:web identité

Identifiant décentralisé rattaché à un nom de domaine : la clé publique de l'émetteur est publiée sur le site (/.well-known/did.json), ce qui permet de vérifier ses signatures et de prouver « qui déclare ».

Ed25519 signature

Algorithme de signature numérique rapide et sûr, utilisé (cryptosuite eddsa-jcs-2022) pour signer le passeport et en garantir l'authenticité.

IPFS / adressage par contenu CID

IPFS (InterPlanetary File System) : stockage où un fichier est désigné par l'empreinte de son contenu (CID) — l'adresse change si le contenu change, ce qui renforce l'intégrité des pièces jointes.

Cette page explique le fonctionnement de l'infrastructure à titre pédagogique. La donnée reste chez le producteur (ou en stockage adressé par contenu) ; la chaîne ne porte que la preuve, vérifiable par tous et durable.
Proof infrastructure

Blockchain at XDCellar:
what we anchor, and why

Here, the blockchain does not store your data. It only carries a proof: a verifiable fingerprint that seals the information — token-free, with no personal data on-chain. Here is exactly what that records, what the batch passport is, and the problems it solves.

1 The principle: data stays with you, the chain carries the proof

A common mistake is to think you "put the wine on the blockchain". You put none of that there — it would be costly, public and impossible to correct.

The declared data (nutrition, ingredients, appellation…) stays with the producer — served by the app, and for attachments optionally stored via content addressing (IPFS). On the chain, only a 32-byte fingerprint is written, together with a timestamp. The chain's whole job is to answer, tamper-proof, one single question: "did this exact content exist, and was it committed, on this date?"

E-label data
OIV JSON at the producer / IPFS
Fingerprint
SHA-256 of the canonical JSON (JCS)
On-chain anchoring
XDC (+ XRPL mirror), timestamped

2 What anchoring records, exactly

A single value: the cryptographic fingerprint of the document. Nothing else.

We first compute a canonical form of the JSON (JCS, RFC 8785) — the same bytes regardless of key order — then its SHA-256. The result, a 32-byte 0x…, is the fingerprint. For a batch, we record the Merkle root of all the batch fingerprints.

What it guarantees, concretely:

  • Verifiable integrity — anyone recomputes the published e-label's fingerprint and checks it matches the anchored one. A single changed character (a nutrition value, an allergen) completely changes the fingerprint: tampering is detected mechanically.
  • Proof of anteriority — the on-chain timestamp proves the data existed in that form on that date. Decisive in a dispute or an inspection.
  • Trustless verification — since the fingerprint recomputes for everyone, nobody needs to trust the XDCellar server.

3 Two registries, open anchoring

Anchoring is not captive: each estate can seal its own fingerprint with its own wallet.

Batches

SchemaRegistry

Publishes the OIV nomenclature (its fingerprint, its version) and anchors the batch Merkle roots. One root covers a whole batch; each e-label in the batch remains individually provable.

Open · per estate

AnchorRegistry

A public registry where each estate anchors its fingerprint with its own address: isAnchored(fingerprint) returns the timestamp and the address that anchored. This is what makes anchoring truly decentralised and independent of XDCellar.

Both run on XDC Network, with a mirror on XRPL (transaction memo) — same fingerprint, two chains, for proof redundancy.

4 The batch passport: prove a whole batch, with the issuer's identity

Where the e-label proves one bottle, the passport proves and links an entire batch.

The batch passport is a W3C 2.0 Verifiable Credential (VC), a JSON-LD document containing: the batch reference, the batch Merkle root, the list of e-labels in it (id, name, fingerprint), the registry information, and — optionally — custody events (chain-of-custody traceability). It is signed with the issuer's Ed25519 key, tied to a did:web identity published on the domain.

Its value comes down to three points:

  • It aggregates — a batch = many bottles, but a single root, so one anchor covers the whole batch.
  • Third parties verify it — a lab, a certifier, an importer or a buyer verifies the signature and the issuer (did:web) independently, with standard tools, without calling the XDCellar API.
  • It carries traceability — custody events document provenance; and the passport itself has a fingerprint, also anchorable.

With no signing key configured, the passport stays W3C-valid (unsigned) and its fingerprint stays anchorable — graceful degradation, never a blocker.

5 The problems it covers

Each building block answers a concrete industry problem.

Regulatory complianceEU 2021/2117: nutrition, ingredients, allergens.
Digital e-label via QR, in 24 languages, no marketing or tracking — plus an anchoring proof a plain producer link cannot offer.
Integrity & anti-fraudDeclared statements liable to be altered.
Anchoring seals the statements; any alteration is detectable, with a timestamped proof of anteriority.
QR durabilityInformation accessible for the product's whole life.
E-label pages stay served even during maintenance, and the proof survives the vendor disappearing. A printed QR never dies.
Batch traceabilityTraceability defects frequently found in controls.
The batch passport links wine, lot and proof, with custody events.
Verifiable issuer identity"Unverified issuer" on wallets.
The did:web proves who declares and clears the unverified-issuer warning.
Sovereignty & interoperabilityLock-in to proprietary SaaS.
Open standards (W3C VC, JCS, OIV nomenclature), token-free, open per-estate anchoring — no captive solution.
Industry governanceStandards to be decided collectively.
Governance NFTs + cross-chain DAO (XDC/XRPL), one member = one vote.
Trust & accessibilityConsumers, visually impaired, multilingual.
Multilingual (24 languages), audio reader, health pictograms, no tracking.

6 Glossary

The technical vocabulary of this page, in plain words. To go further: the full glossary →

Fingerprint empreinte

A 32-byte string (shown as 0x…) obtained by hashing the document. It changes entirely at the slightest content change: it is the "seal" written on the chain.

SHA-256 hash

A cryptographic hash function: turns any content into a fixed-size fingerprint that is deterministic and practically impossible to forge or reverse.

Canonicalisation (JCS) RFC 8785

A normalised rewrite of the JSON (key order, whitespace…) so the same content always yields the same bytes — a prerequisite for a fingerprint anyone can reproduce.

Merkle root racine de Merkle

A single fingerprint summarising a whole set of fingerprints, built by hashing them pairwise down to one value. One anchor covers the batch, and each item stays individually provable.

On-chain & timestamp horodatage

"On-chain" = written into a blockchain ledger, therefore public, permanent and dated. The timestamp evidences the data's anteriority.

Anchoring ancrage

Writing a fingerprint into an on-chain registry to seal a content and give it verifiable proof of anteriority.

SchemaRegistry XDC contract

The contract that publishes the OIV nomenclature (fingerprint + version) and anchors the batch Merkle roots.

AnchorRegistry XDC contract

A public open-anchoring registry: each estate writes its fingerprint with its own address; you read who anchored what and when with a simple call.

Batch passport passeport de lot

A verifiable document describing a wine batch: reference, Merkle root, batch e-labels, custody events. See also Verifiable Credential.

Verifiable Credential (VC) W3C 2.0

An open standard for a verifiable digital document (JSON-LD): one can check who issued it and that its content is unaltered, without relying on the issuer.

did:web identity

A decentralised identifier bound to a domain name: the issuer's public key is published on the site (/.well-known/did.json), letting anyone verify its signatures and prove "who declares".

Ed25519 signature

A fast, secure digital-signature algorithm used (eddsa-jcs-2022 cryptosuite) to sign the passport and guarantee its authenticity.

IPFS / content addressing CID

IPFS (InterPlanetary File System): storage where a file is referred to by the fingerprint of its content (CID) — the address changes if the content changes, reinforcing attachment integrity.

This page explains how the infrastructure works, for educational purposes. Data stays with the producer (or in content-addressed storage); the chain only carries the proof — verifiable by anyone and durable.