驗證

驗證您的憑證

獨立確認任何 Bernstein 區塊鏈憑證的真實性。無需信任伺服器。

零信任驗證

我們的驗證器設計為您永遠不需要信任我們。一切都在您的瀏覽器中進行。

100% 客戶端

您的檔案永遠不會離開您的裝置。所有雜湊和驗證都在您的瀏覽器中本地進行。

區塊鏈證明

憑證透過不可變的比特幣區塊鏈進行驗證 - 無需信任伺服器。

離線工作

為了最大安全性,您可以在上傳敏感檔案之前斷開網路連線。

開放驗證

任何人都可以使用標準加密工具獨立驗證憑證。

功能

您可以驗證什麼

我們的驗證器讓您能夠證明檔案的存在性和憑證的所有權。

01

證明存在性

上傳檔案以驗證它們是否與在比特幣區塊鏈上註冊的憑證指紋匹配。

02

證明所有權

輸入您的私鑰以加密方式證明您擁有該憑證。

03

產生簽章

建立加密簽章以向法院或投資者等第三方證明所有權。

04

分享證明

匯出任何人都可以獨立驗證的驗證資料。

技術

驗證運作原理

我們的憑證使用標準加密技術,任何人都可以驗證。

SHA-256 雜湊

檔案使用與比特幣相同的演算法進行雜湊。指紋是您確切檔案的唯一識別符。

比特幣錨定

指紋嵌入比特幣交易中,在世界上最安全的帳本上建立不可變的時間戳記。

合格時間戳記

來自歐盟和中國政府機構的附加時間戳記提供法律認可。

指紋匹配

上傳您的原始檔案。如果計算出的指紋與區塊鏈記錄匹配,則存在性得到證明。

協議

Bernstein 註冊協議

了解 Bernstein 如何從您的檔案建立區塊鏈憑證。

Bernstein 幫助您為任何數位資產建立可驗證的存在和所有權證明。當您將檔案上傳到專案時,Bernstein 會產生加密指紋並將其記錄在比特幣區塊鏈上。

每個專案可以包含多個檔案並隨時間演變。您認證的每個版本都會建立一條新的區塊鏈記錄,建構您智財的完整稽核追蹤。

每個 Bernstein 憑證對應一筆具有三個關鍵屬性的比特幣交易:

  • 公開 - 比特幣網路上任何人都可見
  • 帶時間戳記 - 錨定到具有精確日期和時間的特定區塊
  • 不可變 - 一旦確認就無法修改或刪除

三個加密金鑰

所有者金鑰

源自您的帳戶。證明誰擁有憑證。對應的公鑰印刷在您的憑證 PDF 上。

資料金鑰

源自專案檔案的 SHA-256 雜湊。證明憑證涵蓋哪些檔案。

Bernstein 金鑰

Bernstein 的平台金鑰,用於共同簽署交易。對應的公鑰印刷在您的憑證 PDF 上。

註冊步驟

01

您的檔案使用 SHA-256 逐個進行雜湊處理,然後組合成單一的專案指紋。

02

專案指紋被轉換為比特幣私鑰,從中派生出公鑰(資料金鑰)。

03

資料金鑰、所有者金鑰和 Bernstein 金鑰組合成一個 3-of-3 多重簽章比特幣地址。

04

建立一筆比特幣交易,將資金發送到該多重簽章地址,從而將憑證永久記錄在區塊鏈上。

產生的比特幣地址編碼了所有三個金鑰 - 證明誰擁有什麼以及何時擁有。任何擁有原始檔案和公鑰的人都可以獨立重建地址並在區塊鏈上驗證。

進階

手動驗證

您甚至不需要我們的工具。以下是使用標準開源加密軟體,針對 Bitcoin 區塊鏈獨立驗證 Bernstein 憑證的步驟。

開始前您需要準備的內容
  • 所有專案檔案和專案封面檔案(可從 Bernstein 應用程式下載)
  • 交易 ID(Transaction ID),顯示在 Bernstein 憑證 PDF 上
  • Owner Public Key 和 Bernstein Public Key,同樣可在憑證 PDF 上找到
  • 基本的電腦終端機操作技能

計算專案中包含的每個單獨檔案的 SHA-256 雜湊。有許多軟體工具可供使用。在 Linux 或 macOS 上,在終端機中執行以下命令:

終端機命令:

shasum -a 256 yourfile.pdf

您也可以使用線上服務,例如 SHA256 Online Checksum.

SHA-256 是一種標準演算法 - 無論使用哪種工具,結果始終相同。

別忘了對專案封面檔案也進行雜湊處理。這是一個包含專案標題和描述的文字檔案,可從 Bernstein 應用程式下載。

將雜湊合併為單個專案指紋:
  1. 按字母順序排列所有單個檔案的雜湊值
  2. 將它們串接成一個字串
  3. 計算串接字串的 SHA-256 雜湊

結果就是您的專案指紋。您可以在 Bernstein 應用程式的專案頁面中驗證該指紋。

要將專案雜湊用作 Bitcoin 金鑰,您需要將其從 HEX 格式轉換為 WIF(Wallet Import Format)。我們提供了一個 Python 腳本來執行此轉換。

首先,安裝所需的 Python 套件:

pip install base58

將以下 Python 腳本儲存為 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]))

然後使用您的專案雜湊執行該腳本:

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

腳本將輸出對應的 WIF 格式金鑰。您可以在 Bernstein 應用程式中,點擊專案中區塊鏈憑證旁邊的金鑰圖示來驗證結果。

在此步驟中,您需要從第二步獲得的 WIF 私鑰派生壓縮公鑰。這是標準的 Bitcoin 加密操作。

您可以使用此線上工具:Bitcoin Key Compression Tool

貼上第二步中的 WIF 金鑰,工具將輸出關聯的壓縮公鑰。這就是 Data Public Key - 構成憑證地址的三個金鑰之一。

現在您已經從檔案中派生出了 Data Public Key,將其與 Owner Public Key 和 Bernstein Public Key(均可在憑證 PDF 上找到)組合,建構 3-of-3 MultiSig Bitcoin 地址。

儲存並執行以下 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}"

在終端機中執行該腳本:

ruby multisig.rb

按照提示操作:選擇您的協議版本,然後依次輸入三個公鑰。腳本將輸出 Bitcoin 地址。

協議 1(傳統)產生 P2SH 地址。協議 2(目前)產生 SegWit P2WSH 地址。請查看您的憑證以確定適用的協議版本。

最後,在任何區塊鏈瀏覽器上查找您憑證 PDF 中的交易 ID。

我們推薦 Blockstream.info orBlockchair.com.

在交易輸出列表中找到該地址,並將其與您在第四步中計算的地址進行比較。

如果地址匹配,驗證成功!

恭喜 - 您已獨立證明了專案中所含資訊的存在性和完整性,無需依賴任何第三方。

準備好驗證了嗎?

輸入您的憑證 ID 以獨立驗證其真實性。