Weryfikacja

Zweryfikuj swój certyfikat

Niezależnie potwierdź autentyczność każdego certyfikatu blockchain Bernstein. Nie wymaga zaufania do serwera.

Weryfikacja zero-trust

Nasz walidator zaprojektowano tak, byś nigdy nie musiał nam ufać. Wszystko odbywa się w Twojej przeglądarce.

100% po stronie klienta

100% po stronie klienta

Twoje pliki nigdy nie opuszczają Twojego urządzenia. Całe hashowanie i weryfikacja odbywają się lokalnie w Twojej przeglądarce.

Dowód blockchain

Dowód blockchain

Certyfikaty są weryfikowane wobec niezmiennego łańcucha bloków Bitcoin - nie wymaga zaufania do serwera.

Działa offline

Działa offline

Dla maksymalnego bezpieczeństwa możesz odłączyć się od internetu przed przesłaniem wrażliwych plików.

Otwarta weryfikacja

Otwarta weryfikacja

Każdy może niezależnie zweryfikować certyfikaty za pomocą standardowych narzędzi kryptograficznych.

Możliwości

Co możesz zweryfikować

Nasz walidator pozwala udowodnić zarówno istnienie plików, jak i własność certyfikatów.

01

Udowodnij istnienie

Prześlij pliki, aby zweryfikować, że odpowiadają odciskowi palca certyfikatu zarejestrowanemu w łańcuchu bloków Bitcoin.

02

Udowodnij własność

Wprowadź swoje klucze prywatne, aby kryptograficznie udowodnić, że jesteś właścicielem certyfikatu.

03

Generuj podpisy

Twórz podpisy kryptograficzne, aby udowodnić własność stronom trzecim, takim jak sądy lub inwestorzy.

04

Udostępnij dowód

Eksportuj dane weryfikacyjne, które każdy może niezależnie zwalidować.

Techniczne

Jak działa weryfikacja

Nasze certyfikaty wykorzystują standardowe techniki kryptograficzne, które każdy może zweryfikować.

Hashowanie SHA-256

Hashowanie SHA-256

Pliki są hashowane tym samym algorytmem co Bitcoin. Odcisk palca jest unikalnym identyfikatorem Twoich dokładnych plików.

Zakotwiczenie w Bitcoin

Zakotwiczenie w Bitcoin

Odcisk palca jest osadzany w transakcji Bitcoin, tworząc niezmienny znacznik czasu w najbezpieczniejszym rejestrze na świecie.

Kwalifikowane znaczniki czasu

Kwalifikowane znaczniki czasu

Dodatkowe znaczniki czasu od organów rządowych UE i Chin zapewniają uznanie prawne.

Dopasowanie odcisków palca

Dopasowanie odcisków palca

Prześlij oryginalne pliki. Jeśli obliczony odcisk palca odpowiada rekordowi w łańcuchu bloków, istnienie zostało udowodnione.

Protokół

Protokół rejestracji Bernstein

Dowiedz się, jak Bernstein tworzy certyfikaty blockchain z Twoich plików.

Bernstein pomaga tworzyć weryfikowalne dowody istnienia i własności dla każdego zasobu cyfrowego. Gdy przesyłasz pliki do projektu, Bernstein generuje kryptograficzny odcisk palca i rejestruje go w łańcuchu bloków Bitcoin.

Każdy projekt może zawierać wiele plików i rozwijać się w czasie. Każda certyfikowana wersja tworzy nowy rekord w łańcuchu bloków, budując pełny ślad audytu Twojej własności intelektualnej.

Każdy certyfikat Bernstein odpowiada transakcji Bitcoin o trzech kluczowych właściwościach:

  • Publiczna - widoczna dla każdego w sieci Bitcoin
  • Oznaczona znacznikiem czasu - zakotwiczona w konkretnym bloku z dokładną datą i godziną
  • Niezmienna - nie może zostać zmieniona ani usunięta po potwierdzeniu

Trzy klucze kryptograficzne

Klucz właściciela

Klucz właściciela

Wyprowadzony z Twojego konta. Dowodzi, kto jest właścicielem certyfikatu. Odpowiadający klucz publiczny znajduje się na PDF certyfikatu.

Klucz danych

Klucz danych

Wyprowadzony z hasha SHA-256 plików projektu. Dowodzi, które pliki są objęte certyfikatem.

Klucz Bernstein

Klucz Bernstein

Klucz platformy Bernstein, który współpodpisuje transakcję. Odpowiadający klucz publiczny znajduje się na PDF certyfikatu.

Kroki rejestracji

01

Twoje pliki są indywidualnie hashowane algorytmem SHA-256, a następnie łączone w jeden odcisk palca projektu.

02

Odcisk palca projektu jest konwertowany na klucz prywatny Bitcoin, z którego wyprowadzany jest klucz publiczny (klucz danych).

03

Klucz danych, klucz właściciela i klucz Bernstein są łączone w adres Bitcoin 3-z-3 MultiSig.

04

Tworzona jest transakcja Bitcoin wysyłająca środki na ten adres MultiSig, co trwale rejestruje certyfikat w łańcuchu bloków.

Wynikowy adres Bitcoin koduje wszystkie trzy klucze - dowodząc, kto co posiadał i kiedy. Każdy, kto ma oryginalne pliki i klucze publiczne, może niezależnie odtworzyć adres i zweryfikować go wobec łańcucha bloków.

Zaawansowane

Ręczna weryfikacja

Nie potrzebujesz nawet naszych narzędzi. Wykonaj te kroki, aby niezależnie zwalidować certyfikat Bernstein wobec łańcucha bloków Bitcoin za pomocą standardowego oprogramowania kryptograficznego open source.

Co jest potrzebne na początek
  • Wszystkie pliki projektu i plik okładki projektu (do pobrania z aplikacji Bernstein)
  • Identyfikator transakcji widoczny na PDF certyfikatu Bernstein
  • Publiczny klucz właściciela i publiczny klucz Bernstein, również na PDF certyfikatu
  • Podstawowa znajomość korzystania z terminala komputerowego

Oblicz hash SHA-256 każdego pojedynczego pliku w projekcie. Istnieje wiele narzędzi do tego celu. Na Linuksie lub macOS wykonaj następujące polecenie w terminalu:

Polecenie terminala:

shasum -a 256 yourfile.pdf

Możesz również użyć usług online, takich jak SHA256 Online Checksum.

SHA-256 to standardowy algorytm - zawsze daje ten sam wynik, niezależnie od użytego narzędzia.

Pamiętaj, aby zahashować również plik okładki projektu. Jest to plik tekstowy z tytułem i opisem projektu, do pobrania z aplikacji Bernstein.

Połącz hashe w jeden odcisk palca projektu:
  1. Posortuj wszystkie indywidualne hashe alfabetycznie
  2. Połącz je w jeden ciąg znaków
  3. Oblicz hash SHA-256 połączonego ciągu

Wynik to Twój odcisk palca projektu. Możesz go zweryfikować wobec odcisku palca wyświetlanego w aplikacji Bernstein w Twoim projekcie.

Aby użyć hasha projektu jako klucza Bitcoin, musisz go przekonwertować z formatu HEX na WIF (Wallet Import Format). Udostępniamy skrypt Python do tej konwersji.

Zacznij od zainstalowania wymaganego pakietu Python:

pip install base58

Zapisz następujący skrypt Python jako 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]))

Następnie uruchom skrypt z hashem projektu:

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

Skrypt wyświetli odpowiadający klucz w formacie WIF. Możesz zweryfikować wynik w aplikacji Bernstein, klikając ikonę klucza obok certyfikatu blockchain w Twoim projekcie.

W tym kroku musisz wyprowadzić skompresowany klucz publiczny z klucza prywatnego WIF uzyskanego w kroku 2. Jest to standardowa operacja kryptograficzna Bitcoin.

Możesz użyć tego narzędzia online: Bitcoin Key Compression Tool

Wklej klucz WIF z kroku 2, a narzędzie pokaże odpowiadający skompresowany klucz publiczny. To jest publiczny klucz danych - jeden z trzech kluczy tworzących adres certyfikatu.

Teraz, gdy wyprowadziłeś publiczny klucz danych z plików, połącz go z publicznym kluczem właściciela i publicznym kluczem Bernstein - oba znajdują się na PDF certyfikatu - aby skonstruować adres Bitcoin 3-z-3 MultiSig.

Zapisz i uruchom następujący skrypt 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}"

Uruchom skrypt z terminala:

ruby multisig.rb

Postępuj zgodnie z instrukcjami: wybierz wersję protokołu, a następnie wprowadź trzy klucze publiczne po kolei. Skrypt wyświetli adres Bitcoin.

Protokół 1 (przestarzały) generuje adres P2SH. Protokół 2 (aktualny) generuje adres SegWit P2WSH. Sprawdź certyfikat, aby określić, która wersja protokołu ma zastosowanie.

Na koniec wyszukaj identyfikator transakcji z PDF certyfikatu w eksploratorze łańcucha bloków.

Zalecamy: Blockstream.info orBlockchair.com.

Znajdź adres na liście wyjść transakcji i porównaj go z adresem obliczonym w kroku 4.

Jeśli adresy się zgadzają, weryfikacja przebiegła pomyślnie!

Gratulacje - niezależnie udowodniłeś istnienie i integralność informacji w Twoim projekcie, bez polegania na żadnej stronie trzeciej.

Gotowy do weryfikacji?

Wprowadź identyfikator certyfikatu, aby niezależnie zwalidować jego autentyczność.