Arquitectura

Velum tiene seis capas. Cada una sabe lo justo para hacer su trabajo y nada más.

Las capas

Capa Ve No ve
App Tus mensajes en claro, tus contactos, tu frase de recuperación Nada de otros usuarios
Sobre Un mensaje cifrado para un dispositivo concreto No sale del teléfono sin trocear
Fragmentos Trozos de igual tamaño, con su huella de recibo Contenido, remitente, tamaño real
Nodos Fragmentos opacos, buzones del día, recibos Quién envía, quién recibe, qué dice
Puerta de entrada Conexiones y tramas JSON que reenvía Contenido; las identidades nunca van en claro
Cadena Pagos, tokens, órdenes, recibos, recompensas Mensajes y quién habla con quién

App

La app genera la frase de recuperación, deriva las claves (identidad, cartera, buzón) y crea una clave de dispositivo que nunca sale del teléfono. Guarda los chats en SQLite cifrada con SQLCipher; la clave vive en el Keychain con WHEN_UNLOCKED_THIS_DEVICE_ONLY, así que no viaja en copias de iCloud.

Cuando envías, la app:

  1. Firma el contenido con la clave de dispositivo.
  2. Lo sella para cada dispositivo de quien recibe y para tus otros dispositivos (así el historial es igual en todos).
  3. Rellena cada sobre a un tamaño fijo y lo parte en 5 fragmentos.
  4. Envía cada fragmento por un nodo distinto, al buzón del día del destinatario.

Sobre

Un sobre es un mensaje cifrado para un dispositivo. Formato:

[1 byte versión = 2][32 B clave efímera X25519][1088 B kemCt ML-KEM-768][24 B nonce][texto cifrado]

Fuera del sobre no hay nada que identifique a quien envía (remitente sellado). Dentro va el contenido firmado por el dispositivo de origen, la identidad de quien envía y la firma que liga ese dispositivo a esa identidad. Detalles en Criptografía.

Fragmentos

Cada sobre se rellena a un cubo (2 KB, 8 KB, 32 KB, 128 KB, 512 KB, 2 MB u 8 MB) y se trocea con Reed–Solomon 3 de 5: bastan tres trozos cualesquiera para rehacerlo. Cada trozo lleva la huella SHA-512 del secreto de su recibo. Detalles en Fragmentos y recibos.

Nodos

Un nodo es un programa que corre en un ordenador de la comunidad. Hace tres trabajos:

  • Abrir puentes. Un puente es una ruta que el nodo abre y mantiene entre emisores y buzones: acepta trozos (es su carrier), los guarda y los entrega cuando el dueño abre el buzón (es su courier).
  • Producir bloques. Los nodos completos se turnan para montar bloques, con un objetivo de 2 segundos por turno; el ritmo real se mide.
  • Descubrir VEL. Cada época el nodo publica una reclamación agregada del trabajo de sus puentes; tras comprobarla por muestreo, descubre su parte del VEL de la época.

Hay nodos completos (ordenador, producen bloques) y nodos ligeros (la app del móvil, solo entregan fragmentos). Para cada trozo, un sorteo público elige 3 candidatos y la app usa el más cercano. Ver Monta un nodo.

Puerta de entrada

La puerta de entrada pública (wss://velum.consultorabim.com/hub) es el punto de encuentro: los nodos se presentan firmando un saludo, las apps mandan peticiones RPC y el explorador recibe los bloques en vivo. La puerta solo reenvía tramas; no tiene ninguna clave que le permita leer nada.

Para resistir bloqueos hay varias puertas en dominios distintos con ECH, los nodos se conectan directamente entre sí (ws://host:7420/ws) y cada nodo anuncia su dirección en la cadena (endpoint). Ver Resistencia a bloqueos.

App ──ws──▶ Puerta /hub?role=client ──▶ Nodo elegido (RPC)     o directo: ws://nodo:7420/ws?role=client
Nodo ──ws──▶ Puerta /hub?role=node  ◀─▶ resto de nodos         y directo entre nodos: ?role=node
Web ──ws──▶ Puerta /hub?role=watch  ◀── bloques y estadísticas en vivo

Cadena

Una cadena de bloques propia, sin dependencias externas. Guarda:

  • Saldos en VEL y en tokens, y el nonce de cada cartera.
  • Altas de nodos, su nivel y sus créditos de entrega.
  • Reclamaciones de trabajo (raíces de Merkle), comprobaciones por muestreo y recompensas.
  • El precio del oráculo de cada época y el saldo de la Reserva de la Red.
  • Alias públicos (name.register).
  • Tokens, bolsas de tokens para nodos, órdenes y operaciones del mercado.
  • Dispositivos atestados (solo el hash de su clave, sin identidad).

Nunca guarda mensajes, contactos, listas de dispositivos ni identidades de chat. Ver Consenso y bloques.

Qué se separa y por qué

Separación Para qué
Clave de identidad ≠ clave de cartera Que nadie pueda unir tus chats con tus pagos.
Clave de dispositivo propia en cada aparato Expulsar un dispositivo sin rehacer la cuenta.
Buzón distinto cada día y por dispositivo Que los nodos no puedan seguir a nadie en el tiempo.
Recibo sin firma ni dirección Que descubrir VEL no delate a quien recibe.