Verificación

Valida tu certificado

Confirma independientemente la autenticidad de cualquier certificado blockchain de Bernstein. Sin necesidad de confiar en el servidor.

Verificación Zero-Trust

Nuestro validador está diseñado para que nunca tengas que confiar en nosotros. Todo ocurre en tu navegador.

100% del lado del cliente

Tus archivos nunca salen de tu dispositivo. Todo el hashing y verificación ocurre localmente en tu navegador.

Prueba blockchain

Los certificados se verifican contra la blockchain inmutable de Bitcoin—sin necesidad de confiar en el servidor.

Funciona sin conexión

Para máxima seguridad, puedes desconectarte de internet antes de subir archivos sensibles.

Verificación abierta

Cualquiera puede verificar certificados independientemente usando herramientas criptográficas estándar.

Capacidades

Qué puedes verificar

Nuestro validador te permite probar tanto la existencia de archivos como la propiedad de certificados.

01

Probar existencia

Sube archivos para verificar que coinciden con la huella digital del certificado registrada en la blockchain de Bitcoin.

02

Probar propiedad

Introduce tus claves privadas para probar criptográficamente que eres propietario del certificado.

03

Generar firmas

Crea firmas criptográficas para probar la propiedad ante terceros como tribunales o inversores.

04

Compartir prueba

Exporta datos de verificación que cualquiera puede validar independientemente.

Técnico

Cómo funciona la verificación

Nuestros certificados usan técnicas criptográficas estándar que cualquiera puede verificar.

Hashing SHA-256

Los archivos se hashean usando el mismo algoritmo que Bitcoin. La huella digital es un identificador único para tus archivos exactos.

Anclaje Bitcoin

La huella digital se incrusta en una transacción de Bitcoin, creando un sello de tiempo inmutable en el libro mayor más seguro del mundo.

Sellos de tiempo cualificados

Sellos de tiempo adicionales de autoridades gubernamentales de la UE y China proporcionan reconocimiento legal.

Coincidencia de huella digital

Sube tus archivos originales. Si la huella digital calculada coincide con el registro de la blockchain, se prueba la existencia.

Protocolo

El protocolo de registro de Bernstein

Entender cómo Bernstein crea certificados blockchain a partir de tus archivos.

Bernstein te ayuda a crear pruebas verificables de existencia y propiedad para cualquier activo digital. Cuando subes archivos a un proyecto, Bernstein genera una huella criptográfica y la registra en la blockchain de Bitcoin.

Cada proyecto puede contener múltiples archivos y evolucionar con el tiempo. Cada versión que certificas crea un nuevo registro en blockchain, construyendo un historial completo de tu propiedad intelectual.

Cada certificado Bernstein corresponde a una transacción Bitcoin con tres propiedades clave:

  • Pública — visible para cualquiera en la red Bitcoin
  • Con marca temporal — anclada a un bloque específico con fecha y hora precisas
  • Inmutable — no puede ser alterada ni eliminada una vez confirmada

Tres claves criptográficas

Clave del propietario

Derivada de tu cuenta. Demuestra quién posee el certificado. La clave pública correspondiente está impresa en tu certificado PDF.

Clave de datos

Derivada del hash SHA-256 de los archivos de tu proyecto. Demuestra qué archivos están cubiertos por el certificado.

Clave Bernstein

La clave de plataforma de Bernstein, que cofirma la transacción. La clave pública correspondiente está impresa en tu certificado PDF.

Pasos del registro

01

Tus archivos se hashean individualmente usando SHA-256, luego se combinan en una única huella de proyecto.

02

La huella del proyecto se convierte en una clave privada de Bitcoin, de la cual se deriva una clave pública (la Clave de Datos).

03

La Clave de Datos, la Clave del Propietario y la Clave Bernstein se combinan en una dirección Bitcoin MultiSig 3-de-3.

04

Se crea una transacción Bitcoin enviando fondos a esta dirección MultiSig, registrando permanentemente el certificado en la blockchain.

La dirección Bitcoin resultante codifica las tres claves — demostrando quién poseía qué, y cuándo. Cualquier persona con los archivos originales y las claves públicas puede reconstruir independientemente la dirección y verificarla en la blockchain.

Avanzado

Verificación manual

Ni siquiera necesitas nuestras herramientas. Estos son los pasos para validar de forma independiente un certificado Bernstein contra la blockchain de Bitcoin usando software criptográfico estándar de código abierto.

Lo que necesitas antes de comenzar
  • Todos los archivos del proyecto y el archivo de portada del proyecto (descargable desde la aplicación Bernstein)
  • El Transaction ID, que se muestra en el certificado PDF de Bernstein
  • La Owner Public Key y la Bernstein Public Key, que también se encuentran en el certificado PDF
  • Conocimientos básicos para operar una terminal de computadora

Calcula el hash SHA-256 de cada archivo individual incluido en el proyecto. Hay muchas utilidades de software que puedes usar. En Linux o macOS, ejecuta el siguiente comando en tu terminal:

Comando de terminal:

shasum -a 256 yourfile.pdf

También puedes usar servicios en línea como SHA256 Online Checksum.

SHA-256 es un algoritmo estándar—siempre producirá el mismo resultado independientemente de la herramienta que uses.

No olvides generar también el hash del archivo de portada del proyecto. Este es un archivo de texto que contiene el título y la descripción del proyecto, que puedes descargar desde la aplicación Bernstein.

Combina los hashes en una sola huella digital del proyecto:
  1. Ordena todos los hashes individuales de archivos alfabéticamente
  2. Concaténalos en una sola cadena
  3. Calcula el hash SHA-256 de la cadena concatenada

El resultado es la huella digital de tu proyecto. Puedes verificarla contra la huella digital que se muestra en la aplicación Bernstein dentro de tu proyecto.

Para usar el hash del proyecto como una clave de Bitcoin, necesitas convertirlo de formato HEX a WIF (Wallet Import Format). Proporcionamos un script de Python para esta conversión.

Primero, instala el paquete de Python requerido:

pip install base58

Guarda el siguiente script de Python como hex2wif.py:

import sys, hashlib, base58

def hex_to_wif(hex_key):
    extended = "80" + hex_key + "01"
    first_sha = hashlib.sha256(bytes.fromhex(extended)).digest()
    second_sha = hashlib.sha256(first_sha).digest()
    checksum = second_sha[:4].hex()
    return base58.b58encode(bytes.fromhex(extended + checksum)).decode()

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: python hex2wif.py <your-project-hash-hex>")
        sys.exit(1)
    print(hex_to_wif(sys.argv[1]))

Luego ejecuta el script con el hash de tu proyecto:

python hex2wif.py <your-project-hash-hex>

El script generará la clave correspondiente en formato WIF. Puedes verificar el resultado en la aplicación Bernstein haciendo clic en el icono de llave junto al certificado blockchain en tu proyecto.

En este paso, necesitas derivar la clave pública comprimida a partir de la clave privada WIF obtenida en el Paso 2. Esta es una operación criptográfica estándar de Bitcoin.

Puedes usar esta herramienta en línea: Bitcoin Key Compression Tool

Pega la clave WIF del Paso 2 y la herramienta generará la clave pública comprimida asociada. Esta es la Data Public Key—una de las tres claves que componen la dirección del certificado.

Ahora que has derivado la Data Public Key a partir de tus archivos, combínala con la Owner Public Key y la Bernstein Public Key (ambas se encuentran en el certificado PDF) para construir la dirección Bitcoin MultiSig 3-de-3.

Guarda y ejecuta el siguiente script de Ruby:

require 'digest'
require 'base58'
require 'bech32'

def decode_hex(hex)
  [hex].pack('H*')
end

def sha256(data)
  Digest::SHA256.digest(data)
end

def hash160(data)
  Digest::RipeMD160.digest(sha256(data))
end

def p2sh_multisig(keys)
  script = "\x53" # OP_3
  keys.sort.each { |k| script += [k.length / 2].pack('C') + decode_hex(k) }
  script += "\x53\xae" # OP_3 OP_CHECKMULTISIG
  h = hash160(script)
  version = "\x05"
  payload = version + h
  checksum = sha256(sha256(payload))[0..3]
  Base58.binary_to_base58(payload + checksum, :bitcoin)
end

def p2wsh_multisig(keys)
  script = "\x53"
  keys.sort.each { |k| script += [k.length / 2].pack('C') + decode_hex(k) }
  script += "\x53\xae"
  witness_hash = sha256(script)
  Bech32::SegwitAddr.new(hrp: 'bc', ver: 0,
    bytes: witness_hash.unpack('C*')).addr
end

puts "Select protocol version:"
puts "1 - Protocol 1 (P2SH)"
puts "2 - Protocol 2 (P2WSH SegWit)"
version = gets.chomp.to_i

keys = []
%w[Data Owner Bernstein].each do |name|
  print "Enter #{name} Public Key: "
  keys << gets.chomp
end

address = version == 1 ? p2sh_multisig(keys) : p2wsh_multisig(keys)
puts "\nBitcoin Address: #{address}"

Ejecuta el script desde tu terminal:

ruby multisig.rb

Sigue las instrucciones: selecciona tu versión de protocolo, luego introduce las tres claves públicas una tras otra. El script generará la dirección Bitcoin.

El Protocolo 1 (legacy) genera una dirección P2SH. El Protocolo 2 (actual) genera una dirección SegWit P2WSH. Consulta tu certificado para determinar qué versión de protocolo aplica.

Finalmente, busca el Transaction ID de tu certificado PDF en cualquier explorador de blockchain.

Recomendamos Blockstream.info orBlockchair.com.

Encuentra la dirección en la lista de salidas de la transacción y compárala con la dirección que calculaste en el Paso 4.

Si las direcciones coinciden, la verificación es exitosa!

Felicidades—has demostrado de forma independiente la existencia e integridad de la información incluida en tu proyecto, sin depender de ningún tercero.

¿Listo para verificar?

Introduce el ID de tu certificado para validar independientemente su autenticidad.