Saltearse al contenido

On-chain vs off-chain

Una objeción frecuente de los compradores técnicos: “si está en una blockchain, mis secretos comerciales se filtran.” Esta página explica por qué eso no es así — y qué es lo que la plataforma efectivamente pone on-chain.

  • On-chain: hashes, checkpoints de custodia, identidad (DIDs).
  • Off-chain: data de negocio, specs, costos, fotos, PII, documentos raw.

Verificabilidad sin exponer contenido. Como Git: el SHA prueba integridad; el diff vive en tu repo.

Cada evento capturado produce un payload JSON canónico. Tracium lo hashea (SHA-256) y escribe el hash al contrato TraceEvents. Lo que queda on-chain es el hash + timestamp + DID del actor.

El payload original — con la foto, el nombre del operador, la geolocalización, el peso del lote — se queda en PostgreSQL + IPFS bajo control de acceso scopeado por tenant.

Cuando una organización transfiere custodia a otra (ej. tier-2 envía a tier-1), el record on-chain captura:

  • DID de origen
  • DID de destino
  • Identificador de lote (TLC)
  • Timestamp
  • Hash del documento de transferencia de custodia

Las condiciones de pricing, términos de contrato, y detalles de shipping se quedan off-chain.

Los DIDs de tenant + organización son públicos. El DID en sí mismo no revela nada sensible — es solo un identificador criptográfico. Igual que una clave pública.

Cada producto / batch / pasaporte tiene un NFT. El campo metadata del NFT es un IPFS CID que apunta al JSON canónico para ese lote. El CID es público; el acceso para fetchear el contenido desde IPFS puede ser gateado (gateway privado) o público (gateway público).

Para pasaportes consumer-facing (Fidenta), la metadata es pública por diseño — eso es la propuesta de valor. Para docs de compliance B2B, la metadata se queda detrás de autenticación.

  • Specs de producto (recetas, fórmulas, materiales, BOMs)
  • Pricing, márgenes, contratos, términos comerciales
  • Parámetros de proceso (curvas de temperatura, settings de molienda, ratios de tintura)
  • Nombres de operadores, identificadores de empleados
  • Info personal de productores chicos (nombre, geolocalización del hogar, familia, etc.)
  • Identidades de auditores (nombres de certificadores, números de sello)
  • Fotos y documentos (en IPFS o MinIO, gateados por tenant)
  • Reportes de lab, documentos de certificación
  • Paperwork de aduanas

Verificabilidad audit-grade:

  • Un auditor puede verificar una cadena de custodia sin ver secretos comerciales. Chequea que el hash on-chain coincida con el documento que le entrega el productor. No se filtra contenido.

Trust multi-actor:

  • Diferentes organizaciones pueden probar que manejaron un lote sin acordar una base de datos compartida. La chain es la fuente de verdad para custodia; cada org mantiene su propia data.

Eficiencia de storage:

  • Storage en blockchain es caro y permanente. Poner una foto de 5MB on-chain está mal; poner su hash SHA-256 de 32 bytes on-chain está bien.

Compliance de privacidad:

  • GDPR + regulaciones similares requieren borrar data on request. Data personal que va on-chain es permanente y no se puede borrar; eso es una violación de GDPR. Data personal va off-chain, donde se puede redactar.

Un flow típico de auditoría:

  1. Auditor pide un Due Diligence Statement para el shipment TLC-2026-A1.
  2. Compliance officer extrae el bundle desde Tracium (off-chain).
  3. El bundle incluye: lista de eventos + IPFS CIDs + hashes de transacciones on-chain.
  4. El auditor independientemente:
    • Hashea el documento → coincide con el hash on-chain ✓
    • Resuelve el IPFS CID → coincide con el documento ✓
    • Verifica los DIDs de actores contra la chain ✓
  5. El auditor firma off. El productor nunca tuvo que exponer data de negocio que el auditor no necesita.

Los 13 smart contracts se dividen:

  • Identidad (7): Tenant, Organization, Person, Permissions, DID resolver, name registry.
  • Process (4): NFT inventory, trace events, process map, custody.
  • Templates (2): factories de templates per-instance.

Source: traceability-protocol. ABIs + addresses surface en la API reference cuando shipee la integración OpenAPI en Phase 3.