Verifikation

Valider dit certifikat

Bekræft uafhængigt ægtheden af ethvert Bernstein blockchain-certifikat. Kræver ingen tillid til serveren.

Zero-trust-verifikation

Vores validator er designet, så du aldrig behøver at stole på os. Alt foregår i din browser.

100 % i browseren

100 % i browseren

Dine filer forlader aldrig din enhed. Al hashing og verifikation foregår lokalt i din browser.

Blockchain-bevis

Blockchain-bevis

Certifikater verificeres mod den uforanderlige Bitcoin-blockchain - kræver ingen tillid til serveren.

Fungerer offline

Fungerer offline

For maksimal sikkerhed kan du koble dig fra internettet, før du uploader følsomme filer.

Åben verifikation

Åben verifikation

Enhver kan verificere certifikater uafhængigt med gængse kryptografiske værktøjer.

Muligheder

Hvad du kan verificere

Vores validator lader dig bevise både filers eksistens og ejerskabet af certifikater.

01

Bevis eksistens

Upload filer for at bekræfte, at de matcher certifikatets fingeraftryk, der er registreret i Bitcoin-blockchainen.

02

Bevis ejerskab

Indtast dine private nøgler for kryptografisk at bevise, at du ejer certifikatet.

03

Generer signaturer

Skab kryptografiske signaturer for at bevise ejerskab over for tredjeparter som domstole eller investorer.

04

Del bevis

Eksporter verifikationsdata, som enhver kan validere uafhængigt.

Teknisk

Sådan fungerer verifikation

Vores certifikater bruger gængse kryptografiske teknikker, som enhver kan verificere.

SHA-256-hashing

SHA-256-hashing

Filer hashes med den samme algoritme som Bitcoin. Fingeraftrykket er en unik identifikator for netop dine filer.

Bitcoin-forankring

Bitcoin-forankring

Fingeraftrykket indlejres i en Bitcoin-transaktion og skaber et uforanderligt tidsstempel i verdens mest sikre register.

Kvalificerede tidsstempler

Kvalificerede tidsstempler

Yderligere tidsstempler fra offentlige myndigheder i EU og Kina giver juridisk anerkendelse.

Match af fingeraftryk

Match af fingeraftryk

Upload dine originale filer. Hvis det beregnede fingeraftryk matcher blockchain-optegnelsen, er eksistens bevist.

Protokol

Bernsteins registreringsprotokol

Forstå hvordan Bernstein skaber blockchain-certifikater ud fra dine filer.

Bernstein hjælper dig med at skabe verificerbart bevis for eksistens og ejerskab for ethvert digitalt aktiv. Når du uploader filer til et projekt, genererer Bernstein et kryptografisk fingeraftryk og registrerer det i Bitcoin-blockchainen.

Hvert projekt kan indeholde flere filer og udvikle sig over tid. Hver version, du certificerer, skaber en ny blockchain-optegnelse og opbygger et komplet revisionsspor for din intellektuelle ejendom.

Hvert Bernstein-certifikat svarer til en Bitcoin-transaktion med tre centrale egenskaber:

  • Offentlig - synlig for alle på Bitcoin-netværket
  • Tidsstemplet - forankret til en bestemt blok med en præcis dato og et præcist tidspunkt
  • Uforanderlig - kan ikke ændres eller slettes, når den først er bekræftet

Tre kryptografiske nøgler

Ejernøgle

Ejernøgle

Afledt af din konto. Beviser, hvem der ejer certifikatet. Den tilhørende offentlige nøgle er trykt på din certifikat-PDF.

Datanøgle

Datanøgle

Afledt af SHA-256-hashen af dine projektfiler. Beviser, hvilke filer certifikatet dækker.

Bernstein-nøgle

Bernstein-nøgle

Bernsteins platformsnøgle, som medunderskriver transaktionen. Den tilhørende offentlige nøgle er trykt på din certifikat-PDF.

Registreringstrin

01

Dine filer hashes hver for sig med SHA-256 og kombineres derefter til ét projektfingeraftryk.

02

Projektfingeraftrykket omdannes til en privat Bitcoin-nøgle, hvorfra en offentlig nøgle (datanøglen) afledes.

03

Datanøglen, ejernøglen og Bernstein-nøglen kombineres til en 3-af-3 MultiSig Bitcoin-adresse.

04

Der oprettes en Bitcoin-transaktion, som sender midler til denne MultiSig-adresse og permanent registrerer certifikatet i blockchainen.

Den resulterende Bitcoin-adresse indkoder alle tre nøgler - og beviser, hvem der ejede hvad og hvornår. Enhver med de originale filer og de offentlige nøgler kan uafhængigt rekonstruere adressen og verificere den mod blockchainen.

Avanceret

Manuel verifikation

Du har ikke engang brug for vores værktøjer. Følg disse trin for uafhængigt at validere et Bernstein-certifikat mod Bitcoin-blockchainen med gængs open source-kryptografisk software.

Hvad du skal bruge, før du går i gang
  • Alle projektfiler og projektets omslagsfil (kan downloades fra Bernstein-appen)
  • Transaktions-id'et, der vises på Bernstein-certifikatets PDF
  • Den offentlige ejernøgle og den offentlige Bernstein-nøgle, som også findes på certifikatets PDF
  • Grundlæggende kendskab til at bruge en computerterminal

Beregn SHA-256-hashen af hver enkelt fil i projektet. Der findes mange værktøjer til dette. På Linux eller macOS kører du følgende kommando i din terminal:

Terminalkommando:

shasum -a 256 yourfile.pdf

Du kan også bruge onlinetjenester som SHA256 Online Checksum.

SHA-256 er en standardalgoritme - den giver altid det samme resultat uanset hvilket værktøj der bruges.

Husk også at hashe projektets omslagsfil. Det er en tekstfil, der indeholder projektets titel og beskrivelse, og som kan downloades fra Bernstein-appen.

Kombiner hashene til ét projektfingeraftryk:
  1. Sortér alle individuelle hashes alfabetisk
  2. Sæt dem sammen til én streng
  3. Beregn SHA-256-hashen af den sammensatte streng

Resultatet er dit projektfingeraftryk. Du kan verificere det mod det fingeraftryk, der vises i Bernstein-appen under dit projekt.

For at bruge projekt-hashen som en Bitcoin-nøgle skal du konvertere den fra HEX-format til WIF (Wallet Import Format). Vi stiller et Python-script til rådighed til denne konvertering.

Begynd med at installere den nødvendige Python-pakke:

pip install base58

Gem følgende Python-script som 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]))

Kør derefter scriptet med din projekt-hash:

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

Scriptet udskriver den tilsvarende nøgle i WIF-format. Du kan verificere resultatet i Bernstein-appen ved at klikke på nøgleikonet ved siden af blockchain-certifikatet i dit projekt.

I dette trin skal du aflede den komprimerede offentlige nøgle fra den private WIF-nøgle, du fik i trin 2. Dette er en gængs kryptografisk Bitcoin-operation.

Du kan bruge dette onlineværktøj: Bitcoin Key Compression Tool

Indsæt WIF-nøglen fra trin 2, og værktøjet viser den tilhørende komprimerede offentlige nøgle. Dette er den offentlige datanøgle - en af de tre nøgler, der udgør certifikatets adresse.

Nu hvor du har afledt den offentlige datanøgle fra dine filer, skal du kombinere den med den offentlige ejernøgle og den offentlige Bernstein-nøgle - begge findes på certifikatets PDF - for at konstruere 3-af-3 MultiSig Bitcoin-adressen.

Gem og kør følgende Ruby-script:

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}"

Kør scriptet fra din terminal:

ruby multisig.rb

Følg anvisningerne: vælg din protokolversion, og indtast derefter de tre offentlige nøgler én for én. Scriptet udskriver Bitcoin-adressen.

Protokol 1 (ældre) genererer en P2SH-adresse. Protokol 2 (nuværende) genererer en SegWit P2WSH-adresse. Tjek dit certifikat for at afgøre, hvilken protokolversion der gælder.

Til sidst slår du transaktions-id'et fra din certifikat-PDF op på en hvilken som helst blockchain-explorer.

Vi anbefaler Blockstream.info orBlockchair.com.

Find adressen i transaktionens outputliste og sammenlign den med den adresse, du beregnede i trin 4.

Hvis adresserne matcher, er verifikationen vellykket!

Tillykke - du har uafhængigt bevist eksistensen og integriteten af de oplysninger, der indgår i dit projekt, uden at være afhængig af nogen tredjepart.

Klar til at verificere?

Indtast dit certifikat-id for at validere dets ægthed uafhængigt.