Verifiering

Validera ditt intyg

Bekräfta oberoende äktheten hos valfritt Bernstein-blockkedjeintyg. Inget serverförtroende krävs.

Nollförtroende-verifiering

Vår validerare är designad så att du aldrig behöver lita på oss. Allt sker i din webbläsare.

100% på klientsidan

Dina filer lämnar aldrig din enhet. All hashning och verifiering sker lokalt i din webbläsare.

Blockchain-bevis

Intyg verifieras mot den oföränderliga Bitcoin-blockkedjan - inget serverförtroende krävs.

Fungerar offline

För maximal säkerhet kan du koppla från internet innan du laddar upp känsliga filer.

Öppen verifiering

Vem som helst kan verifiera intyg oberoende med standardkryptografiska verktyg.

Kapacitet

Vad du kan verifiera

Vår validerare låter dig bevisa både filernas existens och äganderätten till intyg.

01

Bevisa existens

Ladda upp filer för att verifiera att de matchar intygets fingeravtryck registrerat på Bitcoin-blockkedjan.

02

Bevisa äganderätt

Ange dina privata nycklar för att kryptografiskt bevisa att du äger intyget.

03

Generera signaturer

Skapa kryptografiska signaturer för att bevisa äganderätt för tredje parter som domstolar eller investerare.

04

Dela bevis

Exportera verifieringsdata som vem som helst kan validera oberoende.

Tekniskt

Hur verifiering fungerar

Våra intyg använder standardkryptografiska tekniker som kan verifieras av vem som helst.

SHA-256-hashning

Filer hashas med samma algoritm som Bitcoin. Fingeravtrycket är en unik identifierare för dina exakta filer.

Bitcoin-förankring

Fingeravtrycket bäddas in i en Bitcoin-transaktion och skapar en oföränderlig tidsstämpel på världens säkraste register.

Kvalificerade tidsstämplar

Ytterligare tidsstämplar från EU:s och Kinas statliga myndigheter ger rättsligt erkännande.

Fingeravtrycksmatchning

Ladda upp dina originalfiler. Om det beräknade fingeravtrycket matchar blockkedjerecordet är existensen bevisad.

Protokoll

Bernsteins registreringsprotokoll

Förstå hur Bernstein skapar blockkedjeintyg från dina filer.

Bernstein hjälper dig att skapa verifierbart bevis på existens och äganderätt för valfri digital tillgång. När du laddar upp filer till ett projekt genererar Bernstein ett kryptografiskt fingeravtryck och registrerar det på Bitcoin-blockkedjan.

Varje projekt kan innehålla flera filer och utvecklas över tid. Varje version du certifierar skapar ett nytt blockkedjerecord och bygger ett komplett revisionshistorik för din immateriella egendom.

Varje Bernstein-intyg motsvarar en Bitcoin-transaktion med tre viktiga egenskaper:

  • Offentlig - synlig för vem som helst på Bitcoin-nätverket
  • Tidsstämplad - förankrad till ett specifikt block med ett exakt datum och tid
  • Oföränderlig - kan inte ändras eller raderas när den bekräftats

Tre kryptografiska nycklar

Ägarnyckel

Härledd från ditt konto. Bevisar vem som äger intyget. Motsvarande publika nyckel trycks på ditt intygs-PDF.

Datanyckel

Härledd från SHA-256-hashen av dina projektfiler. Bevisar vilka filer som täcks av intyget.

Bernstein-nyckel

Bernsteins plattformsnyckel, som medsignerar transaktionen. Motsvarande publika nyckel trycks på ditt intygs-PDF.

Registreringssteg

01

Dina filer hashas individuellt med SHA-256, sedan kombineras de till ett enda projektfingeravtryck.

02

Projektfingeravtrycket konverteras till en Bitcoin-privat nyckel, från vilken en publik nyckel (datanyckeln) härleds.

03

Datanyckeln, ägarnyckeln och Bernstein-nyckeln kombineras till en 3-av-3 MultiSig Bitcoin-adress.

04

En Bitcoin-transaktion skapas som skickar medel till denna MultiSig-adress och registrerar intyget permanent på blockkedjan.

Den resulterande Bitcoin-adressen kodar alla tre nycklar - och bevisar vem som ägde vad och när. Vem som helst med originalfilerna och de publika nycklarna kan oberoende rekonstruera adressen och verifiera den mot blockkedjan.

Avancerat

Manuell verifiering

Du behöver inte ens våra verktyg. Följ dessa steg för att oberoende validera ett Bernstein-intyg mot Bitcoin-blockkedjan med vanlig öppen källkod för kryptografi.

Vad du behöver innan du börjar
  • Alla projektfiler och projektomslaget (nedladdningsbart från Bernstein-appen)
  • Transaktions-ID, visas på Bernstein-intygets PDF
  • Ägarens publika nyckel och Bernsteins publika nyckel, finns också på intygets PDF
  • Grundläggande kunskap om att använda en terminal

Beräkna SHA-256-hashen för varje enskild fil som ingår i projektet. Det finns många verktyg för detta. På Linux eller macOS, kör följande kommando i din terminal:

Terminalkommando:

shasum -a 256 yourfile.pdf

Du kan också använda onlinetjänster som SHA256 Online Checksum.

SHA-256 är en standardalgoritm - den ger alltid samma resultat oavsett vilket verktyg som används.

Kom ihåg att också hasha projektomslaget. Det är en textfil som innehåller projekttiteln och beskrivningen, nedladdningsbar från Bernstein-appen.

Kombinera hasharna till ett enda projektfingeravtryck:
  1. Sortera alla individuella hashar i alfabetisk ordning
  2. Konkatenera dem till en enda sträng
  3. Beräkna SHA-256-hashen av den sammansatta strängen

Resultatet är ditt projektfingeravtryck. Du kan verifiera det mot fingeravtrycket som visas i Bernstein-appen under ditt projekt.

För att använda projekthash som en Bitcoin-nyckel måste du konvertera den från HEX-format till WIF (Wallet Import Format). Vi tillhandahåller ett Python-skript för denna konvertering.

Börja med att installera det nödvändiga Python-paketet:

pip install base58

Spara följande Python-skript 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 sedan skriptet med din projekthash:

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

Skriptet matar ut motsvarande nyckel i WIF-format. Du kan verifiera resultatet i Bernstein-appen genom att klicka på nyckelikonen bredvid blockkedjeintygen i ditt projekt.

I detta steg behöver du härleda den komprimerade publika nyckeln från WIF-privatnyckeln som erhölls i steg 2. Detta är en standard Bitcoin-kryptografisk operation.

Du kan använda detta onlineverktyg: Bitcoin Key Compression Tool

Klistra in WIF-nyckeln från steg 2 och verktyget visar den tillhörande komprimerade publika nyckeln. Det är den publika datanyckeln - en av de tre nycklar som utgör intygsadressen.

Nu när du har härledd den publika datanyckeln från dina filer, kombinera den med ägarens publika nyckel och Bernsteins publika nyckel - båda finns på intygets PDF - för att konstruera 3-av-3 MultiSig Bitcoin-adressen.

Spara och kör följande Ruby-skript:

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 skriptet från din terminal:

ruby multisig.rb

Följ instruktionerna: välj protokollversion och ange sedan de tre publika nycklarna en i taget. Skriptet matar ut Bitcoin-adressen.

Protokoll 1 (äldre) genererar en P2SH-adress. Protokoll 2 (nuvarande) genererar en SegWit P2WSH-adress. Kontrollera ditt intyg för att avgöra vilken protokollversion som gäller.

Slutligen, slå upp transaktions-ID:t från ditt intygs-PDF i valfri blockchain explorer.

Vi rekommenderar Blockstream.info orBlockchair.com.

Hitta adressen i transaktionens outputlista och jämför den med adressen du beräknade i steg 4.

Om adresserna matchar är verifieringen lyckad!

Gratulerar - du har oberoende bevisat existensen och integriteten hos informationen i ditt projekt, utan att förlita dig på någon tredje part.

Redo att verifiera?

Ange ditt intygs-ID för att oberoende validera dess äkthet.