SERO · ESPECIFICACIÓN DE LA DERIVACIÓN DE LLAVES 6 de noviembre de 2026 · Ostermann Laboratories S.à r.l. · Licencia MIT Este documento basta para reconstruir cualquier billetera SERO en cualquier lenguaje, aunque no exista ni SERO, ni este sitio, ni su código. Si tu implementación reproduce las direcciones de vectores.json, deriva exactamente igual que la billetera. Notación: UTF-8(x) son los bytes UTF-8 del texto x. keccak256 es el de Ethereum (no SHA3-256). "|" en un texto es el carácter literal. Toda llave es un escalar secp256k1 de 32 bytes. ──────────────────────────────────────────────────────────────────────────────── 1. DE BYTES A LLAVE (común a todos los niveles) ──────────────────────────────────────────────────────────────────────────────── Dado un bloque de bytes S y una etiqueta L: para ronda = 0, 1, 2, … 1023: candidato = keccak256( S || UTF-8(":" + L + ":" + ronda) ) (ronda en decimal) si 0 < candidato < n (orden de secp256k1), la llave es candidato. Fin. La dirección es la de Ethereum: keccak256 de la clave pública sin comprimir (sin el prefijo 0x04), últimos 20 bytes, con mayúsculas EIP-55. Sirve en BNB Smart Chain. ──────────────────────────────────────────────────────────────────────────────── 2. NIVEL MÁXIMA (12 palabras) ──────────────────────────────────────────────────────────────────────────────── frase = las 12 palabras, unidas por un espacio, en minúsculas (lista BIP-39 en español) semilla = BIP-39 mnemonicToSeed(frase), sin contraseña adicional (64 bytes) llave = sección 1 con S = semilla y L = "SERO_FLASH_MAXIMUM_BSC_EOA_V1" Ojo: no es la ruta m/44'/60'/0'/0/0 de MetaMask. Por eso, importar las 12 palabras en otra billetera da otra dirección. Lo que se importa es la llave privada resultante. ──────────────────────────────────────────────────────────────────────────────── 3. NIVELES ESTÁNDAR Y AVANZADA (libro, rango, identificador y avatar) ──────────────────────────────────────────────────────────────────────────────── 3.1 Lo que escribe la persona, normalizado Cédula: solo los dígitos, como máximo 10. "V-12.345.678" → "12345678" Matrícula: sin tildes (NFD y se quitan las marcas), en mayúsculas, solo A-Z, 0-9 y "-", guiones repetidos se vuelven uno, como máximo 12. " ucv-99 " → "UCV-99" Rango: "m - n": se separa por el primer "-", cada lado conserva solo sus dígitos (hasta 7). Debe cumplirse 0 < m ≤ n. "120 - 135" → m=120, n=135 Libro: número de 1 a 17 (ver la lista al final). Avatar: número de 1 a 17 (ver la lista al final). 3.2 El material { "v": "SERO_FLASH_DERIVATION_V1", "network": "BSC", "curve": "secp256k1", "security": "standard" | "advanced", "identifier": { "type": "cedula" | "matricula", "value": }, "avatar": { "id": }, "secrets": [ { "slot": 1, "book": , "m": , "n": }, { "slot": 2, ... } (solo en Avanzada) ] } JSON canónico: claves ordenadas alfabéticamente en todos los niveles, sin espacios, números enteros sin decimales, textos con escape JSON estándar. 3.3 La sal texto = "SERO_FLASH_CULTURAL_BSC_KDF_V4" | "BSC" | security | "avatar:" + avatar | "id:" + type + ":" + value sal = keccak256(UTF-8(texto)) 3.4 La llave S = Argon2id(contraseña = UTF-8(JSON canónico), sal, memoria = 65536 KiB, iteraciones = 3, paralelismo = 1, longitud = 32) llave = sección 1 con ese S y L = "SERO_FLASH_CULTURAL_BSC_EOA_V4" Los textos "SERO_FLASH_CULTURAL_BSC_KDF_V4" y "SERO_FLASH_CULTURAL_BSC_EOA_V4" son constantes fijas: se escriben tal cual, letra por letra. 3.5 El texto del libro no interviene. Solo su número y las posiciones de las palabras. ──────────────────────────────────────────────────────────────────────────────── LIBROS AVATARES 1 La Biblia 1 Tonina del Orinoco 10 Oso frontino 2 La Ilíada 2 Caimán del Orinoco 11 Tortuga Carey 3 La Odisea 3 Turpial 12 Pereza 4 La Divina Comedia 4 Jaguar 13 Cachicamo 5 Don Quijote de la Mancha 5 Manatí caribeño 14 Oso palmero 6 Tristán e Isolda 6 Iguana 15 Rabipelado 7 Cien años de soledad 7 Guacamaya 16 Colibrí 8 Doña Bárbara 8 Chigüire 17 Mono Araguato 9 Meditaciones 9 Rana tropical 10 Los miserables 11 El conde de Montecristo 12 Guerra y paz 13 La comunidad del anillo 14 Danza de dragones 15 Duna 16 Fundación 17 El catalejo lacado