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.
Cosa puoi verificare
Il nostro validatore ti permette di dimostrare sia l'esistenza dei file che la proprietà dei certificati.
Dimostra l'esistenza
Carica i file per verificare che corrispondano all'impronta del certificato registrata sulla blockchain Bitcoin.
Dimostra la proprietà
Inserisci le tue chiavi private per dimostrare crittograficamente che possiedi il certificato.
Genera firme
Crea firme crittografiche per dimostrare la proprietà a terze parti come tribunali o investitori.
Condividi la prova
Esporta i dati di verifica che chiunque può validare indipendentemente.
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.
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:
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
I tuoi file vengono sottoposti individualmente a hash SHA-256, poi combinati in un'unica impronta di progetto.
L'impronta del progetto viene convertita in una chiave privata Bitcoin, dalla quale si deriva una chiave pubblica (la Chiave Dati).
La Chiave Dati, la Chiave del Proprietario e la Chiave Bernstein vengono combinate in un indirizzo Bitcoin MultiSig 3-di-3.
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.
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.pdfPuoi 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:
- Ordina alfabeticamente tutti gli hash dei singoli file
- Concatenali in un'unica stringa
- 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 base58Salva 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.rbSegui 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.
Congratulazioni: hai dimostrato in modo indipendente l'esistenza e l'integrità delle informazioni incluse nel tuo progetto, senza affidarti a terze parti.