Valideer uw certificaat
Bevestig onafhankelijk de authenticiteit van elk Bernstein blockchain-certificaat. Geen serververtrouwen vereist.
Zero-trust verificatie
Onze validator is zo ontworpen dat u ons nooit hoeft te vertrouwen. Alles gebeurt in uw browser.
100% clientzijdig
Uw bestanden verlaten nooit uw apparaat. Alle hashing en verificatie vindt lokaal plaats in uw browser.
Blockchain-bewijs
Certificaten worden geverifieerd tegen de onveranderlijke Bitcoin-blockchain - geen serververtrouwen vereist.
Werkt offline
Voor maximale beveiliging kunt u de internetverbinding verbreken voordat u gevoelige bestanden uploadt.
Open verificatie
Iedereen kan certificaten onafhankelijk verifiëren met standaard cryptografische tools.
Wat u kunt verifiëren
Onze validator laat u zowel het bestaan van bestanden als eigendom van certificaten bewijzen.
Bewijs bestaan
Upload bestanden om te verifiëren dat ze overeenkomen met de vingerafdruk van het certificaat die op de Bitcoin-blockchain is geregistreerd.
Bewijs eigendom
Voer uw privésleutels in om cryptografisch te bewijzen dat u eigenaar bent van het certificaat.
Genereer handtekeningen
Maak cryptografische handtekeningen om eigendom te bewijzen aan derden zoals rechtbanken of investeerders.
Deel bewijs
Exporteer verificatiegegevens die iedereen onafhankelijk kan valideren.
Hoe verificatie werkt
Onze certificaten gebruiken standaard cryptografische technieken die door iedereen kunnen worden geverifieerd.
SHA-256 hashing
Bestanden worden gehasht met hetzelfde algoritme als Bitcoin. De vingerafdruk is een unieke identificatie van uw exacte bestanden.
Bitcoin-verankering
De vingerafdruk wordt ingebed in een Bitcoin-transactie, waarmee een onveranderlijk tijdstempel wordt gecreëerd op 's werelds veiligste register.
Gekwalificeerde tijdstempels
Aanvullende tijdstempels van EU- en Chinese overheidsautoriteiten bieden juridische erkenning.
Vingerafdrukmatching
Upload uw originele bestanden. Als de berekende vingerafdruk overeenkomt met het blockchain-record, is het bestaan bewezen.
Het Bernstein-registratieprotocol
Begrijp hoe Bernstein blockchain-certificaten maakt van uw bestanden.
Bernstein helpt u verifieerbaar bewijs van bestaan en eigendom te creëren voor elk digitaal activum. Wanneer u bestanden uploadt naar een project, genereert Bernstein een cryptografische vingerafdruk en registreert deze op de Bitcoin-blockchain.
Elk project kan meerdere bestanden bevatten en zich in de tijd ontwikkelen. Elke versie die u certificeert, creëert een nieuw blockchain-record, waarmee een volledig auditspoor van uw intellectueel eigendom wordt opgebouwd.
Elk Bernstein-certificaat komt overeen met een Bitcoin-transactie met drie belangrijke eigenschappen:
Drie cryptografische sleutels
Eigenaarsleutel
Afgeleid van uw account. Bewijst wie eigenaar is van het certificaat. De bijbehorende publieke sleutel staat op uw certificaat-PDF.
Gegevenssleutel
Afgeleid van de SHA-256 hash van uw projectbestanden. Bewijst welke bestanden onder het certificaat vallen.
Bernstein-sleutel
Bernsteins platformsleutel, die de transactie medeondertekent. De bijbehorende publieke sleutel staat op uw certificaat-PDF.
Registratiestappen
Uw bestanden worden individueel gehasht met SHA-256 en vervolgens gecombineerd tot één projectvingerafdruk.
De projectvingerafdruk wordt omgezet in een Bitcoin-privésleutel, waaruit een publieke sleutel (de gegevenssleutel) wordt afgeleid.
De gegevenssleutel, eigenaarsleutel en Bernstein-sleutel worden gecombineerd tot een 3-van-3 MultiSig Bitcoin-adres.
Er wordt een Bitcoin-transactie aangemaakt die fondsen naar dit MultiSig-adres stuurt, waarmee het certificaat permanent op de blockchain wordt vastgelegd.
Het resulterende Bitcoin-adres codeert alle drie de sleutels - en bewijst wie wat bezat, en wanneer. Iedereen met de originele bestanden en de publieke sleutels kan het adres onafhankelijk reconstrueren en verifiëren tegen de blockchain.
Handmatige verificatie
U hebt onze tools niet eens nodig. Volg deze stappen om een Bernstein-certificaat onafhankelijk te valideren tegen de Bitcoin-blockchain met standaard open-source cryptografische software.
Wat u nodig hebt om te beginnen
- Alle projectbestanden en het projectomslagbestand (te downloaden vanuit de Bernstein-app)
- De transactie-ID, weergegeven op de Bernstein-certificaat-PDF
- De publieke eigenaarsleutel en publieke Bernstein-sleutel, ook te vinden op de certificaat-PDF
- Basiskennis van het gebruik van een computerterminal
Bereken de SHA-256 hash van elk individueel bestand in het project. Er zijn veel hulpprogramma's hiervoor. Op Linux of macOS voert u het volgende commando uit in uw terminal:
Terminalcommando:
shasum -a 256 yourfile.pdfU kunt ook online diensten gebruiken zoals SHA256 Online Checksum.
SHA-256 is een standaardalgoritme - het levert altijd hetzelfde resultaat op, ongeacht het gebruikte hulpprogramma.
Vergeet niet ook het projectomslagbestand te hashen. Dit is een tekstbestand met de projecttitel en -beschrijving, te downloaden vanuit de Bernstein-app.
Combineer de hashes tot één projectvingerafdruk:
- Sorteer alle individuele hashes alfabetisch
- Voeg ze samen tot één tekenreeks
- Bereken de SHA-256 hash van de samengevoegde tekenreeks
Het resultaat is uw projectvingerafdruk. U kunt deze verifiëren tegen de vingerafdruk die wordt weergegeven in de Bernstein-app onder uw project.
Om de projecthash als Bitcoin-sleutel te gebruiken, moet u deze converteren van HEX-formaat naar WIF (Wallet Import Format). We bieden een Python-script voor deze conversie.
Begin met het installeren van het benodigde Python-pakket:
pip install base58Sla het volgende Python-script op als 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]))
Voer vervolgens het script uit met uw projecthash:
python hex2wif.py <your-project-hash-hex>Het script geeft de bijbehorende sleutel in WIF-formaat uit. U kunt het resultaat verifiëren in de Bernstein-app door op het sleutelpictogram naast het blockchain-certificaat in uw project te klikken.
In deze stap moet u de gecomprimeerde publieke sleutel afleiden uit de WIF-privésleutel die u in stap 2 hebt verkregen. Dit is een standaard Bitcoin-cryptografische bewerking.
U kunt deze online tool gebruiken: Bitcoin Key Compression Tool
Plak de WIF-sleutel uit stap 2 en de tool toont de bijbehorende gecomprimeerde publieke sleutel. Dit is de publieke gegevenssleutel - een van de drie sleutels waaruit het certificaatadres bestaat.
Nu u de publieke gegevenssleutel hebt afgeleid uit uw bestanden, combineert u deze met de publieke eigenaarsleutel en de publieke Bernstein-sleutel - beide te vinden op de certificaat-PDF - om het 3-van-3 MultiSig Bitcoin-adres te construeren.
Sla het volgende Ruby-script op en voer het uit:
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}"
Voer het script uit vanuit uw terminal:
ruby multisig.rbVolg de instructies: selecteer uw protocolversie en voer vervolgens de drie publieke sleutels één voor één in. Het script geeft het Bitcoin-adres uit.
Protocol 1 (verouderd) genereert een P2SH-adres. Protocol 2 (huidig) genereert een SegWit P2WSH-adres. Controleer uw certificaat om te bepalen welke protocolversie van toepassing is.
Zoek ten slotte de transactie-ID van uw certificaat-PDF op in een blockchain-verkenner.
Wij raden aan: Blockstream.info orBlockchair.com.
Zoek het adres in de uitvoerlijst van de transactie en vergelijk het met het adres dat u in stap 4 hebt berekend.
Gefeliciteerd - u hebt onafhankelijk het bestaan en de integriteit bewezen van de informatie in uw project, zonder afhankelijk te zijn van een derde partij.