Verifica

Valida il tuo certificato

Conferma indipendentemente l'autenticità di qualsiasi certificato blockchain Bernstein. Nessuna fiducia nel server richiesta.

Verifica Zero-Trust

Il nostro validatore è progettato per non richiedere fiducia in noi. Tutto avviene nel tuo browser.

100% lato client

I tuoi file non lasciano mai il tuo dispositivo. Tutto l'hashing e la verifica avvengono localmente nel tuo browser.

Prova blockchain

I certificati vengono verificati contro la blockchain Bitcoin immutabile, senza necessità di fidarsi del server.

Funziona offline

Per la massima sicurezza, puoi disconnetterti da internet prima di caricare file sensibili.

Verifica aperta

Chiunque può verificare i certificati indipendentemente utilizzando strumenti crittografici standard.

Funzionalità

Cosa puoi verificare

Il nostro validatore ti permette di dimostrare sia l'esistenza dei file che la proprietà dei certificati.

01

Dimostra l'esistenza

Carica i file per verificare che corrispondano all'impronta del certificato registrata sulla blockchain Bitcoin.

02

Dimostra la proprietà

Inserisci le tue chiavi private per dimostrare crittograficamente che possiedi il certificato.

03

Genera firme

Crea firme crittografiche per dimostrare la proprietà a terze parti come tribunali o investitori.

04

Condividi la prova

Esporta i dati di verifica che chiunque può validare indipendentemente.

Tecnico

Come funziona la verifica

I nostri certificati utilizzano tecniche crittografiche standard verificabili da chiunque.

Hashing SHA-256

I file vengono hashati utilizzando lo stesso algoritmo di Bitcoin. L'impronta è un identificatore unico per i tuoi file esatti.

Ancoraggio Bitcoin

L'impronta viene incorporata in una transazione Bitcoin, creando un timestamp immutabile sul registro più sicuro al mondo.

Timestamp qualificati

Timestamp aggiuntivi da autorità governative UE e Cina forniscono riconoscimento legale.

Corrispondenza dell'impronta

Carica i tuoi file originali. Se l'impronta calcolata corrisponde al record blockchain, l'esistenza è dimostrata.

Protocollo

Il Protocollo di Registrazione Bernstein

Capire come Bernstein crea certificati blockchain dai tuoi file.

Bernstein ti aiuta a creare prove verificabili di esistenza e proprietà per qualsiasi risorsa digitale. Quando carichi file in un progetto, Bernstein genera un'impronta crittografica e la registra sulla blockchain Bitcoin.

Ogni progetto può contenere più file ed evolversi nel tempo. Ogni versione che certifichi crea un nuovo record blockchain, costruendo uno storico completo della tua proprietà intellettuale.

Ogni certificato Bernstein corrisponde a una transazione Bitcoin con tre proprietà chiave:

  • Pubblica — visibile a chiunque sulla rete Bitcoin
  • Con marca temporale — ancorata a un blocco specifico con data e ora precise
  • Immutabile — non può essere modificata o eliminata una volta confermata

Tre chiavi crittografiche

Chiave del proprietario

Derivata dal tuo account. Prova chi possiede il certificato. La chiave pubblica corrispondente è stampata sul tuo certificato PDF.

Chiave dati

Derivata dall'hash SHA-256 dei file del progetto. Prova quali file sono coperti dal certificato.

Chiave Bernstein

La chiave della piattaforma Bernstein, che co-firma la transazione. La chiave pubblica corrispondente è stampata sul tuo certificato PDF.

Fasi di registrazione

01

I tuoi file vengono sottoposti individualmente a hash SHA-256, poi combinati in un'unica impronta di progetto.

02

L'impronta del progetto viene convertita in una chiave privata Bitcoin, dalla quale si deriva una chiave pubblica (la Chiave Dati).

03

La Chiave Dati, la Chiave del Proprietario e la Chiave Bernstein vengono combinate in un indirizzo Bitcoin MultiSig 3-di-3.

04

Viene creata una transazione Bitcoin che invia fondi a questo indirizzo MultiSig, registrando permanentemente il certificato sulla blockchain.

L'indirizzo Bitcoin risultante codifica tutte e tre le chiavi — provando chi possedeva cosa, e quando. Chiunque abbia i file originali e le chiavi pubbliche può ricostruire indipendentemente l'indirizzo e verificarlo sulla blockchain.

Avanzato

Verifica manuale

Non hai nemmeno bisogno dei nostri strumenti. Ecco i passaggi per validare indipendentemente un certificato Bernstein contro la blockchain Bitcoin utilizzando software crittografico open-source standard.

Cosa ti serve prima di iniziare
  • Tutti i file del progetto e il file di copertina del progetto (scaricabile dall'app Bernstein)
  • Il Transaction ID, visualizzato sul certificato Bernstein in PDF
  • La Owner Public Key e la Bernstein Public Key, anch'esse presenti sul certificato PDF
  • Competenze di base per utilizzare un terminale del computer

Calcola l'hash SHA-256 di ogni singolo file incluso nel progetto. Esistono numerosi strumenti software che puoi utilizzare. Su Linux o macOS, esegui il seguente comando nel terminale:

Comando terminale:

shasum -a 256 yourfile.pdf

Puoi anche utilizzare servizi online come SHA256 Online Checksum.

SHA-256 è un algoritmo standard: produrrà sempre lo stesso risultato indipendentemente dallo strumento utilizzato.

Non dimenticare di calcolare anche l'hash del file di copertina del progetto. Si tratta di un file di testo contenente il titolo e la descrizione del progetto, scaricabile dall'app Bernstein.

Combina gli hash in un'unica impronta del progetto:
  1. Ordina alfabeticamente tutti gli hash dei singoli file
  2. Concatenali in un'unica stringa
  3. Calcola l'hash SHA-256 della stringa concatenata

Il risultato è l'impronta del tuo progetto. Puoi verificarla confrontandola con l'impronta mostrata nell'app Bernstein sotto il tuo progetto.

Per utilizzare l'hash del progetto come chiave Bitcoin, devi convertirlo dal formato HEX al formato WIF (Wallet Import Format). Forniamo uno script Python per questa conversione.

Per prima cosa, installa il pacchetto Python necessario:

pip install base58

Salva il seguente script Python come 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]))

Quindi esegui lo script con l'hash del tuo progetto:

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

Lo script restituirà la chiave corrispondente in formato WIF. Puoi verificare il risultato nell'app Bernstein cliccando sull'icona della chiave accanto al certificato blockchain nel tuo progetto.

In questo passaggio, devi derivare la chiave pubblica compressa dalla chiave privata WIF ottenuta nel Passo 2. Si tratta di un'operazione crittografica Bitcoin standard.

Puoi utilizzare questo strumento online: Bitcoin Key Compression Tool

Incolla la chiave WIF dal Passo 2 e lo strumento restituirà la chiave pubblica compressa associata. Questa è la Data Public Key, una delle tre chiavi che compongono l'indirizzo del certificato.

Ora che hai derivato la Data Public Key dai tuoi file, combinala con la Owner Public Key e la Bernstein Public Key (entrambe presenti sul certificato PDF) per costruire l'indirizzo Bitcoin MultiSig 3-di-3.

Salva ed esegui il seguente script 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}"

Esegui lo script dal terminale:

ruby multisig.rb

Segui le istruzioni: seleziona la versione del protocollo, poi inserisci le tre chiavi pubbliche una dopo l'altra. Lo script restituirà l'indirizzo Bitcoin.

Il Protocollo 1 (legacy) genera un indirizzo P2SH. Il Protocollo 2 (attuale) genera un indirizzo SegWit P2WSH. Controlla il tuo certificato per determinare quale versione del protocollo si applica.

Infine, cerca il Transaction ID dal tuo certificato PDF su qualsiasi blockchain explorer.

Consigliamo Blockstream.info orBlockchair.com.

Trova l'indirizzo nell'elenco degli output della transazione e confrontalo con l'indirizzo che hai calcolato nel Passo 4.

Se gli indirizzi corrispondono, la verifica è riuscita!

Congratulazioni: hai dimostrato in modo indipendente l'esistenza e l'integrità delle informazioni incluse nel tuo progetto, senza affidarti a terze parti.

Pronto a verificare?

Inserisci l'ID del tuo certificato per validarne indipendentemente l'autenticità.