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.
Qué puedes verificar
Nuestro validador te permite probar tanto la existencia de archivos como la propiedad de certificados.
Probar existencia
Sube archivos para verificar que coinciden con la huella digital del certificado registrada en la blockchain de Bitcoin.
Probar propiedad
Introduce tus claves privadas para probar criptográficamente que eres propietario del certificado.
Generar firmas
Crea firmas criptográficas para probar la propiedad ante terceros como tribunales o inversores.
Compartir prueba
Exporta datos de verificación que cualquiera puede validar independientemente.
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.
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:
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
Tus archivos se hashean individualmente usando SHA-256, luego se combinan en una única huella de proyecto.
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).
La Clave de Datos, la Clave del Propietario y la Clave Bernstein se combinan en una dirección Bitcoin MultiSig 3-de-3.
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.
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.pdfTambié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:
- Ordena todos los hashes individuales de archivos alfabéticamente
- Concaténalos en una sola cadena
- 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 base58Guarda 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.rbSigue 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.
Felicidades—has demostrado de forma independiente la existencia e integridad de la información incluida en tu proyecto, sin depender de ningún tercero.