TW202416296A - 所有權證明之技術 - Google Patents

所有權證明之技術 Download PDF

Info

Publication number
TW202416296A
TW202416296A TW112124142A TW112124142A TW202416296A TW 202416296 A TW202416296 A TW 202416296A TW 112124142 A TW112124142 A TW 112124142A TW 112124142 A TW112124142 A TW 112124142A TW 202416296 A TW202416296 A TW 202416296A
Authority
TW
Taiwan
Prior art keywords
data
verifier
commitment
value
blockchain
Prior art date
Application number
TW112124142A
Other languages
English (en)
Inventor
恩里克 拉拉亞
歐文 沃恩
Original Assignee
瑞士商區塊鏈授權股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 瑞士商區塊鏈授權股份有限公司 filed Critical 瑞士商區塊鏈授權股份有限公司
Publication of TW202416296A publication Critical patent/TW202416296A/zh

Links

Abstract

本案提供一種用於證明資料 之所有權及/或擁有權的電腦實施方法。基於一秘密值 及該資料 產生一資料承諾值。產生與一指明驗證者相關聯之一質詢解決方案 ,其中該質詢解決方案 為證明該秘密值 之知識的一零知識證明。使該資料 、該質詢解決方案 及該資料承諾值可用於該指明驗證者。該秘密值

Description

所有權證明之技術
發明領域
本揭露內容係關於一種用於證明資料之所有權及/或擁有權的電腦實施方法,以及一種用於藉由指明驗證者驗證資料之所有權及/或擁有權的電腦實施方法。
發明背景
區塊鏈係指一種形式之分散式資料結構,其中在分散式同級間(P2P)網路(在下文被稱作「區塊鏈網路」)中之複數個節點中之各者處維護區塊鏈之複本且廣泛地發佈該等複本。區塊鏈包含資料區塊鏈,其中各區塊包含一或多個交易。除所謂的「比特幣基地(coinbase)交易」以外,各交易亦指回至序列中之先前交易,該序列可橫跨一或多個區塊,返回至一或多個coinbase交易。下文進一步論述coinbase交易。經提交至區塊鏈網路之交易包括於新區塊中。新區塊係藉由常常被稱作「挖掘(mining)」之程序創建,該程序涉及複數個節點中之各者競爭執行「工作量證明」,亦即,基於等待包括於區塊鏈之新區塊中的有序及經驗核之未決交易之所定義集合的表示而解決密碼編譯難題。應注意,可在一節點處修剪區塊鏈,且可經由僅發佈區塊標頭來達成區塊之發佈。
區塊鏈中之交易可用於以下目的中之一或多者:傳送數位資產(亦即,數個數位符記);對虛擬化分類帳或註冊表中之一組條目進行排序;接收及處理時戳條目;及/或按時間對索引指標進行排序。亦可利用區塊鏈以便對區塊鏈之上的額外功能性進行分層。舉例而言,區塊鏈協定可允許將額外使用者資料或資料之索引儲存於交易中。對於可儲存於單個交易內之最大資料容量不存在預先指定之限制,且因此可併入愈來愈複雜之資料。舉例而言,此可用於將電子文件或音訊或視訊資料儲存於區塊鏈中。
區塊鏈網路之節點(其常常被稱作「挖掘者」)執行稍後將更詳細描述之分散式交易註冊及驗證程序。總體而言,在此程序期間,節點驗核交易且將其插入至區塊範本中,針對該區塊範本,該等交易嘗試識別有效的工作量證明解決方案。一旦找到有效解決方案,便將新區塊傳播至網路之其他節點,因此使得各節點能夠在區塊鏈上記錄新區塊。為了使交易記錄於區塊鏈中,使用者(例如,區塊鏈用戶端應用程式)將交易發送至網路之節點中之一者以供傳播。接收交易之節點可競相尋找將經驗核交易併入至新區塊中之工作量證明解決方案。各節點經組配以強制實行同一節點協定,其將包括交易有效之一或多個條件。無效交易將不被傳播亦不被併入至區塊中。假定交易經驗核且藉此經接受至區塊鏈上,則交易(包括任何使用者資料)將因此作為不可變的公開記錄在區塊鏈網路中之節點中之各者處保持註冊及編索引。
成功地解決工作量證明難題以創建最新區塊之節點通常獲得被稱為「coinbase交易」之新交易的獎勵,該新交易分發一定金額之數位資產,亦即,數個符記。對無效交易之偵測及拒絕係藉由競爭節點之動作強制實行,該等競爭節點充當網路之代理且經激勵以報告及阻止非法行為。資訊之廣泛發佈允許使用者連續地稽核節點之效能。對僅區塊標頭之發佈允許參與者確保區塊鏈之持續完整性。
在「基於輸出」之模型(有時被稱作基於UTXO之模型)中,給定交易之資料結構包含一或多個輸入及一或多個輸出。任何可支出輸出皆包含一元素,該元素指定可自進行中之交易序列導出的數位資產之金額。可支出輸出有時被稱作UTXO (「未支出交易輸出」)。該輸出可進一步包含指定用於未來兌換該輸出之條件的鎖定腳本。鎖定腳本係定義驗核及轉移數位符記或資產所必需之條件的述詞。交易(除coinbase交易以外)之各輸入包含指向先前交易中之此輸出的指標(亦即,參考),且可進一步包含用於解除鎖定所指向輸出之鎖定腳本的解除鎖定腳本。因此,考慮一對交易,將其稱為第一交易及第二交易(或「目標」交易)。第一交易包含至少一個輸出,該至少一個輸出指定數位資產之金額且包含定義解除鎖定該輸出之一或多個條件的鎖定腳本。第二目標交易包含至少一個輸入,該至少一個輸入包含指向第一交易之輸出的指標及用於解除鎖定第一交易之輸出的解除鎖定腳本。
在此模型中,當將第二目標交易發送至區塊鏈網路以在區塊鏈中傳播及記錄時,在各節點處應用之有效性準則中之一者將為解除鎖定腳本符合第一交易之鎖定腳本中所定義的所有一或多個條件。另一準則將為第一交易之輸出尚未由另一較早有效交易兌換。根據此等條件中之任一者發現目標交易為無效的任何節點將不會傳播該目標交易(作為有效交易,但可能註冊無效交易),亦不將該目標交易包括於待記錄於區塊鏈中之新區塊中。
替代類型之交易模型為基於帳戶之模型。在此狀況下,各交易皆不會藉由返回參考過去交易序列中之先前交易之UTXO來定義待轉移的金額,而是參考絕對帳戶餘額。所有帳戶之當前狀態由與區塊鏈分離之節點儲存,且不斷更新。
發明概要
使用者可能希望與驗證者共用資料,諸如身分資料。使用者可藉由提供其正共用之資料的認證者複本來向驗證者證明該資料為正確的。然而,一旦驗證者已接收到資料之經認證複本,其便能夠在未經使用者同意之情況下將此資料提供至任何其他第三方。
本揭露內容係關於一種用於向資料所有者提供控制權之方法,經由該控制權,多方可確信資料為正確的。亦即,資料所有者可控制何人可驗證資料。
根據本文中所揭露之一個態樣,提供一種用於證明資料 之所有權及/或擁有權的電腦實施方法,該方法包含:基於秘密值 及資料 產生資料承諾值;產生與指明驗證者相關聯之質詢解決方案 ,其中該質詢解決方案 為證明秘密值 之知識的零知識證明;以及使資料 、質詢解決方案 及資料承諾值可用於指明驗證者;其中秘密值 不為指明驗證者所知或不可用於指明驗證者。
本文中所揭露之態樣可用於例如以下情境中。愛麗絲(資料所有者)進入一家夜總會,且門口的保安鮑勃要求其證明其年齡已超過18歲。愛麗絲將其護照遞給鮑勃。在檢查護照之後,鮑勃詢問愛麗絲其是否可影印護照,以防警察來檢查夜總會內部之每個人皆並非未成年人。愛麗絲拒絕,此係因為其不想鮑勃具有其個人資料(之經認證證明)。實情為,愛麗絲說,警察可找其,且愛麗絲將容易地向警察證明其已超過18歲。因此,愛麗絲想要控制 何人可確信其年齡已足夠大的事實。
使用本文中所描述之方法,愛麗絲可向鮑勃(指明驗證者)證明其資料已被混淆(承諾及雜湊),而無需向鮑勃提供足夠資訊來向查理(第三方)證明此情況。愛麗絲可藉由保留其用以承諾資料 之秘密隨機值 來控制 與混淆之間的連結。若其損毀 ,則混淆與資料之間的連結亦被永久地損毀。本文所揭露之方法涉及用於指明驗證者之知識的非互動式零知識(nizk)證明以證明資料所有者之私密值 的知識。證明 係專門為鮑勃(指明驗證者)製作的且其無法使用 來使其他任何人確信。
此外,相比於通用證明系統,此處所揭露之系統不需要任何受信任設置,其實施為快速且簡單的。
應注意,雖然主要依據一方(資料所有者)證明一些資料之所有權來描述實施例,但實施例可同樣用以證明一些資料之擁有權。在一些實例中,資料可能未必屬於資料所有者,其中資料所有者僅擁有資料。亦即,資料之擁有權未必意謂資料之所有權,且反之亦然。在此等實例中,資料所有者可替代地被稱作資料擁有者。應瞭解,「資料所有者」一詞僅用作識別標籤。在一些實例中,資料所有者可能既持有又擁有資料。
作為說明性實例,在區塊鏈之上下文中,例如一些實體(通常被稱作「錢包提供者」)代表私密金鑰(亦即,資料)之使用者來控制該等私密金鑰。其為持有金鑰之使用者,但錢包提供者擁有或控制金鑰。作為另一實例,愛麗絲可為醫療記錄之服務提供者,且愛麗絲希望代表其患者向醫生鮑勃展示患者記錄(患者授權其進行此操作)。愛麗絲不持有資料,而患者持有,但愛麗絲仍可使用所描述之實施例來證明其擁有患者之資料。
較佳實施例之詳細說明 1.   例示性系統綜述
圖1展示用於實施區塊鏈150之例示性系統100。系統100可包含封包交換網路101,其通常為諸如網際網路之廣域網際網路。封包交換網路101包含複數個區塊鏈節點104,該等區塊鏈節點可經配置以在封包交換網路101內形成同級間(P2P)網路106。雖然未繪示,但區塊鏈節點104可經配置為接近完整的圖。各區塊鏈節點104因此高度連接至其他區塊鏈節點104。
各區塊鏈節點104包含同級者之電腦裝備,其中節點104中之不同節點屬於不同同級者。各區塊鏈節點104包含:處理設備,其包含一或多個處理器,例如一或多個中央處理單元(CPU)、加速器處理器、特殊應用處理器及/或場可規劃閘陣列(FPGA);以及其他裝備,諸如特殊應用積體電路(ASIC)。各節點亦包含記憶體,亦即,呈一或多個非暫時性電腦可讀媒體之形式的電腦可讀儲存器。記憶體可包含一或多個記憶體單元,其使用一或多個記憶體媒體,例如,諸如硬碟之磁性媒體;諸如固態硬碟(SSD)、快閃記憶體或EEPROM之電子媒體;及/或諸如光碟機之光學媒體。
區塊鏈150包含資料區塊鏈151,其中在分散式或區塊鏈網路106中之複數個區塊鏈節點104中之各者處維護區塊鏈150之各別複本。如上文所提及,維護區塊鏈150之複本未必意謂儲存整個區塊鏈150。實情為,只要各區塊鏈節點150儲存各區塊151之區塊標頭(下文所論述),即可修剪區塊鏈150之資料。該鏈中之各區塊151包含一或多個交易152,其中在此上下文中之交易係指一種資料結構。該資料結構之性質將取決於用作交易模型或方案之部分的交易協定之類型。給定區塊鏈將始終使用一個特定交易協定。在一種常見類型之交易協定中,各交易152之資料結構包含至少一個輸入及至少一個輸出。各輸出指定表示作為財產之數位資產之數量的金額,其實例為輸出以密碼編譯方式被鎖定至的使用者103 (需要彼使用者之簽章或其他解決方案以便解除鎖定且藉此兌換或支出)。各輸入均指回至先前交易152之輸出,藉此連結交易。
各區塊151亦包含區塊指標155,該區塊指標指回至該鏈中之先前創建區塊151以便定義區塊151之順序次序。各交易152 (除了coinbase交易以外)包含指回至先前交易之指標,以便定義交易序列之次序(注意:允許交易152之序列進行分支)。區塊151之鏈一直追溯至起源區塊(Gb) 153,該起源區塊為該鏈中之第一區塊。鏈150中早期之一或多個原始交易152指向起源區塊153,而非先前交易。
區塊鏈節點104中之各者經組配以將交易152轉遞至其他區塊鏈節點104,且藉此使交易152在整個網路106中傳播。各區塊鏈節點104經組配以創建區塊151,且將同一區塊鏈150之各別複本儲存於其各別記憶體中。各區塊鏈節點104亦維護等待併入至區塊151中之交易152的有序集合(或「池」) 154。有序池154常常被稱作「記憶池」。本文中之此術語並不意欲限於任何特定區塊鏈、協定或模型。該術語係指節點104已接受為有效的交易之有序集合,且對於該有序集合,節點104不必接受嘗試支出相同輸出之任何其他交易。
在給定的目前交易152j中,該(或各)輸入包含參考交易序列中之先前交易152i之輸出的指標,指定此輸出待在目前交易152j中兌換或「支出」。支出或兌換未必暗示轉移金融資產,但此肯定為一種常見的應用。更一般而言,支出可描述為耗用輸出或將輸出指派給另一後繼交易中之一或多個輸出。一般而言,先前交易可為有序集合154或任何區塊151中之任何交易。在目前交易152j經創建或甚至發送至網路106時,先前交易152i不一定存在,但先前交易152i將需要存在且經驗核以使目前交易有效。因此,本文中的「先前」係指藉由指標連結之邏輯序列中的前置者,未必為時間序列中之創建或發送時間,且因此,其未必排除無序地創建或發送交易152i、152j (參見下文關於孤立交易之論述)。先前交易152i同樣可被稱為前期或前置交易。
目前交易152j之輸入亦包含輸入授權,例如先前交易152i之輸出被鎖定至的使用者103a之簽章。又,目前交易152j之輸出可以密碼編譯方式鎖定至新使用者或實體103b。目前交易152j因此可將先前交易152i之輸入中所定義的金額轉移至如目前交易152j之輸出中定義的新使用者或實體103b。在一些狀況下,交易152可具有多個輸出以在多個使用者或實體(多個使用者或實體中之一者可為原始使用者或實體103a以便找零)間劃分輸入金額。在一些狀況下,交易亦可具有多個輸入以將來自一或多個先前交易之多個輸出的金額搜集在一起,且重新分發給當前交易之一或多個輸出。
根據基於輸出之交易協定,諸如比特幣,當諸如個別使用者或組織之一方103希望制定新交易152j (手動地或藉由該方所使用之自動化程序)時,則制定方將新交易自其電腦終端機102發送至接收者。該制定方或接收者將最終發送此交易至網路106之區塊鏈節點104中之一或多者(該等區塊鏈節點現今通常為伺服器或資料中心,但原則上可為其他使用者終端機)。亦不排除制定新交易152j之該方103可將交易直接發送至區塊鏈節點104中之一或多者,且在一些實例中不發送至接收者。接收交易之區塊鏈節點104根據應用於區塊鏈節點104中之各者處之區塊鏈節點協定而檢查該交易是否有效。區塊鏈節點協定通常需要區塊鏈節點104檢查新交易152j中之密碼編譯簽章是否匹配預期簽章,此取決於交易152之有序序列中的先前交易152i。在此基於輸出之交易協定中,此可包含檢查包括於新交易152j之輸入中的該方103之密碼編譯簽章或其他授權是否匹配定義於新交易支出(或「指派」)之先前交易152i之輸出中的條件,其中此條件通常包含至少檢查新交易152j之輸入中的密碼編譯簽章或其他授權是否解除鎖定新交易之輸入所連結至的先前交易152i之輸出。該條件可至少部分地由包括於先前交易152i之輸出中的腳本定義。替代地,其可簡單地由區塊鏈節點協定單獨確定,或其由此等協定之組合確定。無論如何,若新交易152j有效,則區塊鏈節點104將其轉遞至區塊鏈網路106中之一或多個其他區塊鏈節點104。此等其他區塊鏈節點104根據相同區塊鏈節點協定應用相同測試,且因此將新交易152j轉遞至一或多個其他節點104,等等。以此方式,新交易在區塊鏈節點104之整個網路中傳播。
在基於輸出之模型中,是否指派(或「支出」)給定輸出(例如,UTXO)之定義為其是否已根據區塊鏈節點協定由另一後繼交易152j之輸入有效地兌換。使交易有效之另一條件為該交易嘗試兌換之先前交易152i之輸出尚未由另一交易兌換。再次,若並非有效的,則將不在區塊鏈150中傳播(除非經標記為無效,且經傳播以用於警示)或記錄交易152j。此防止雙重支出,由此交易者試圖將同一交易之輸出指派多於一次。另一方面,基於帳戶之模型藉由維持帳戶餘額來防止雙重支出。因為同樣存在所定義之交易次序,所以帳戶餘額在任一時間皆具有單個所定義狀態。
除了驗核交易以外,區塊鏈節點104亦競相率先在通常被稱作挖掘之程序中創建交易區塊,該程序由「工作量證明」支援。在區塊鏈節點104處,將新交易增添至有效交易之有序池154,該等新交易尚未出現在記錄於區塊鏈150上之區塊151中。區塊鏈節點接著競相藉由嘗試解決密碼編譯難題而自交易之有序集合154組裝交易152之新有效區塊151。通常,此包含搜尋「臨時亂數」值,使得當臨時亂數與未決交易之有序池154的表示序連且經雜湊時,雜湊之輸出接著符合預定條件。例如,預定條件可為雜湊之輸出具有某預定義數目個前導零。應注意,此僅為一個特定類型之工作量證明難題,且不排除其他類型。雜湊函數之屬性為其輸出相對於其輸入為不可預測的。因此,此搜尋可僅藉由蠻力執行,因此在正試圖解決難題之各區塊鏈節點104處耗用大量處理資源。
解決難題之第一區塊鏈節點104向網路106宣佈此情況,從而提供解決方案作為證明,該解決方案接著可由網路中之其他區塊鏈節點104容易地檢查(一旦給定雜湊之解決方案,便直接檢查其是否使得雜湊之輸出符合條件)。第一區塊鏈節點104將區塊傳播至接受該區塊且因此強制實行協定規則之其他節點的臨限共識。交易之有序集合154接著藉由區塊鏈節點104中之各者而記錄為區塊鏈150中之新區塊151。區塊指標155亦經指派給新區塊151n,該指標指回至鏈中之先前創建區塊151n-1。創建工作量證明解決方案所需之例如呈雜湊形式的大量工作量發信第一節點104遵循區塊鏈協定之規則的意圖。此等規則包括若交易支出或指派與先前驗核交易相同之輸出,則不接受該交易為有效的,否則被稱為雙重支出。一旦經創建,區塊151便無法被修改,此係因為在區塊鏈網路106中之區塊鏈節點104中之各者處辨識及維護該區塊。區塊指標155亦向區塊151強加順序次序。由於交易152記錄於網路106中之各區塊鏈節點104處的有序區塊中,因此,此提供交易的不可變公共分類帳。
應注意,在任何給定時間競相解決難題之不同區塊鏈節點104可基於在任何給定時間尚待發佈之交易的池154的不同快照而如此操作,此取決於該等節點何時開始搜尋解決方案或接收該等交易之次序。不論誰首先解決其各別難題皆定義哪些交易152且以哪一次序包括於下一新區塊151n中,且更新未發佈交易之當前池154。區塊鏈節點104接著繼續競相自未發佈交易之新定義有序池154創建區塊,等等。亦存在用於解決可能出現的任何「分叉」之協定,分叉為二個區塊鏈節點104彼此在極短的時間內解決其難題之情況,使得區塊鏈的衝突觀點在節點104之間傳播。簡言之,無論分叉之哪個支叉生長得最長,皆成為決定性區塊鏈150。應注意,此不應影響網路之使用者或代理,此係因為相同交易將出現在二個分叉中。
根據比特幣區塊鏈(及大部分其他區塊鏈),成功地建構新區塊之節點104被授予在新特殊種類之交易中新指派額外接受金額之數位資產的能力,該新特殊種類之交易分發額外定義數量之數位資產(相較於代理間或使用者間交易,其將一定金額之數位資產自一個代理或使用者轉移至另一代理或使用者)。此特殊類型之交易通常被稱作「coinbase交易」,但亦可被稱為「起始交易」或「產生交易」。其通常形成新區塊151n之第一交易。工作量證明發信建構新區塊之節點遵循協定規則的意圖,從而允許稍後兌換此特殊交易。在可兌換此特殊交易之前,區塊鏈協定規則可能需要成熟期,例如100個區塊。常常,常規(非產生)交易152亦將在其輸出中之一者中指定額外交易費用,以進一步獎勵創建了發佈彼交易之區塊151n的區塊鏈節點104。此費用通常被稱作「交易費用」,且在下文論述。
由於交易驗核及發佈中所涉及之資源,區塊鏈節點104中之至少各者通常採用伺服器之形式,該伺服器包含一或多個實體伺服器單元或甚至整個資料中心。然而,原則上,任何給定區塊鏈節點104皆可採用使用者終端機或經網路連接在一起之使用者終端機之群組的形式。
各區塊鏈節點104之記憶體儲存軟體,該軟體經組配以在區塊鏈節點104之處理設備上運行以便根據區塊鏈節點協定執行其各別的一或多個角色且處置交易152。應理解,本文中歸於區塊鏈節點104之任何動作可由在各別電腦裝備之處理設備上運行的軟體執行。節點軟體可以一或多個應用程式實施於應用層或諸如作業系統層或協定層之下部層或此等層之任何組合處。
充當消費使用者之角色的複數方103中之各者的電腦裝備102亦連接至網路101。此等使用者可與區塊鏈網路106互動,但不參與驗核交易或建構區塊。此等使用者或代理103中之一些可在交易中充當發送者及接收者。其他使用者可與區塊鏈150互動,而未必充當發送者或接收者。舉例而言,一些方可充當儲存實體,其儲存區塊鏈150之複本(例如,已自區塊鏈節點104獲得區塊鏈之複本)。
一些或所有方103可作為不同網路(例如,覆疊於區塊鏈網路106之上的網路)之部分而連接。區塊鏈網路之使用者(常常被稱作「用戶端」)可據稱為包括區塊鏈網路106之系統的部分;然而,此等使用者並非區塊鏈節點104,此係因為其不執行區塊鏈節點所需的角色。實情為,各方103可與區塊鏈網路106互動,且藉此,藉由連接至區塊鏈節點106 (亦即,與該區塊鏈節點通訊)而利用區塊鏈150。出於繪示目的展示二方103及其各別裝備102:第一方103a及其各別電腦裝備102a,以及第二方103b及其各別電腦裝備102b。應理解,更多此類方103及其各別電腦裝備102可存在且參與系統100,但為方便起見而未繪示。各方103可為個人或組織。僅作為說明,第一方103a在本文中被稱作愛麗絲,且第二方103b被稱作鮑勃,但應瞭解,此不具限制性,且在本文中對愛麗絲或鮑勃之任何提及皆可分別用「第一方」及「第二方」替換。
各方103之電腦裝備102包含各別處理設備,該處理設備包含一或多個處理器,例如一或多個CPU、GPU、其他加速器處理器、特殊應用處理器及/或FPGA。各方103之電腦裝備102進一步包含記憶體,亦即,呈一或多個非暫時性電腦可讀媒體之形式的電腦可讀儲存器。此記憶體可包含一或多個記憶體單元,其使用一或多個記憶體媒體,例如,諸如硬碟之磁性媒體;諸如SSD、快閃記憶體或EEPROM之電子媒體;及/或諸如光碟機之光學媒體。各方103之電腦裝備102上的記憶體儲存軟體,該軟體包含經配置以在處理設備上運行之至少一個用戶端應用程式105的各別執行個體。應理解,可使用在各別電腦裝備102之處理設備上運行的軟體來執行本文中歸於給定方103之任何動作。各方103之電腦裝備102包含至少一個使用者終端機,例如桌上型或膝上型電腦、平板電腦、智慧型手機或諸如智慧型手錶之可穿戴式裝置。給定方103之電腦裝備102亦可包含一或多個其他網路連接資源,諸如經由使用者終端機存取之雲端計算資源。
用戶端應用程式105最初可在合適的一或多個電腦可讀儲存媒體上經提供至任何給定方103之電腦裝備102,例如自伺服器下載,或經提供於抽取式儲存裝置上,該抽取式儲存裝置諸如為抽取式SSD、快閃記憶體鑰匙、抽取式EEPROM、抽取式磁碟機、磁性軟碟或磁帶、諸如CD或DVD ROM之光碟,或抽取式光碟機等。
用戶端應用程式105包含至少一「錢包」功能。此具有二個主要功能性。此等功能性中之一者為使得各別方103能夠創建、授權(例如,簽章)及發送交易152至一或多個比特幣節點104,以接著在區塊鏈節點104之整個網路中傳播且藉此包括於區塊鏈150中。另一功能性為將其當前持有之數位資產的金額報告回給各別方。在基於輸出之系統中,此第二功能性包含核對散佈在整個區塊鏈150中屬於所討論的一方之各種交易152之輸出中所定義的金額。
應注意:雖然各種用戶端功能性可描述為整合至給定用戶端應用程式105中,但此未必為限制性的,且實情為,本文中所描述之任何用戶端功能性可替代地實施於二個或多於二個相異應用程式之套件中,例如經由API介接,或一個應用程式為另一應用程式之外掛程式。更一般而言,用戶端功能性可實施於應用層或諸如作業系統之下部層或此等層之任何組合處。下文將依據用戶端應用程式105進行描述,但應瞭解,此並非限制性的。
各電腦裝備102上之用戶端應用程式或軟體105的執行個體操作性地耦接至網路106之區塊鏈節點104中之至少一者。此使得用戶端105之錢包功能能夠將交易152發送至網路106。用戶端105亦能夠聯繫區塊鏈節點104以便查詢區塊鏈150以詢問各別方103為接收者之任何交易(或實際上檢測區塊鏈150中之其他方的交易,此係因為在實施例中,區塊鏈150為公共設施,其部分地經由其公共可見性提供對交易之信任)。各電腦裝備102上之錢包功能經組配以根據交易協定來制訂及發送交易152。如上文闡述,各區塊鏈節點104運行軟體,該軟體經組配以根據區塊鏈節點協定來驗核交易152,且轉遞交易152以便在整個區塊鏈網路106中傳播該等交易。交易協定及節點協定彼此對應,且給定交易協定與給定節點協定相配,其一起實施給定交易模型。相同交易協定用於區塊鏈150中之所有交易152。相同節點協定由網路106中之所有節點104使用。
當給定方103,比如愛麗絲,希望發送新交易152j以包括於區塊鏈150中時,其接著根據相關交易協定來制訂新交易(使用其用戶端應用程式105中之錢包功能)。其接著將交易152自用戶端應用程式105發送至與其連接的一或多個區塊鏈節點104。例如,此可為最佳地連接至愛麗絲之電腦102的區塊鏈節點104。當任何給定區塊鏈節點104接收新交易152j時,該區塊鏈節點根據區塊鏈節點協定及其各別角色來處置該新交易。此包含首先檢查新接收交易152j是否符合「有效」的某一條件,稍後將更詳細地論述該條件之實例。在一些交易協定中,可藉由包括於交易152中之腳本基於各交易來組配驗核條件。替代地,該條件可簡單地為節點協定之內置特徵,或由腳本及節點協定之組合來定義。
若新接收交易152j通過被視為有效的測試(亦即,若其「經驗核」),則接收交易152j之任何區塊鏈節點104將增添新的經驗核交易152至在彼區塊鏈節點104處維護的交易之有序集合154。另外,接收交易152j之任何區塊鏈節點104將經驗核交易152向前傳播至網路106中之一或多個其他區塊鏈節點104。由於各區塊鏈節點104應用相同協定,因此接著假定交易152j有效,此意謂該交易將很快在整個網路106中傳播。
一旦被接納至在給定區塊鏈節點104處維護之未決交易的有序池154,彼區塊鏈節點104便將開始競爭解決關於其包括新交易152之各別池154之最新版本的工作量證明難題(前已述及,其他區塊鏈節點104可能正試圖基於交易之不同池154來解決難題,但不論何人率先完成皆將定義包括於最新區塊151中之交易的集合。最終,區塊鏈節點104將解決包括愛麗絲之交易152j的有序池154之一部分的難題)。一旦已針對包括新交易152j之池154完成工作量證明,則其不可變地成為區塊鏈150中之區塊151中之一者的部分。各交易152包含指回至較早交易之指標,因此亦不變地記錄交易之次序。
不同區塊鏈節點104可首先接收給定交易之不同例項,且因此在新區塊151中發佈一個例項之前對於哪個例項「有效」具有衝突的觀點,此時,所有區塊鏈節點104同意所發佈例項為唯一有效例項。若區塊鏈節點104將一個例項接受為有效的且接著發現第二例項已記錄於區塊鏈150中,則彼區塊鏈節點104必須接受此例項且將捨棄(亦即,視為無效)其最初接受之例項(亦即,尚未在區塊151中發佈之例項)。
作為基於帳戶之交易模型之部分,由一些區塊鏈網路操作之交易協定之替代類型可被稱作「基於帳戶」之協定。在基於帳戶之狀況下,各交易皆不會藉由返回參考過去交易序列中之先前交易之UTXO來定義待轉移的金額,而是參考絕對帳戶餘額。所有帳戶之當前狀態由彼網路之節點與區塊鏈分離地儲存且不斷更新。在此系統中,使用帳戶(亦被稱作「頭寸」)之運行交易計數來對交易進行排序。此值由發送者進行簽章,作為其密碼編譯簽章之部分,且作為交易參考計算之部分而經雜湊。此外,任擇資料欄位亦可對交易進行簽章。舉例而言,若先前交易ID包括於資料欄位中,則此資料欄位可指回至先前交易。 2.   基於UTXO之模型
圖2繪示例示性交易協定。此為基於UTXO之協定的實例。交易152 (簡稱為「Tx」)為區塊鏈150之基本資料結構(各區塊151包含一或多個交易152)。下文將參考基於輸出或基於「UTXO」之協定來描述。然而,此並不限於所有可能實施例。應注意,雖然參考比特幣描述基於UTXO之例示性協定,但其可同樣地實施於其他例示性區塊鏈網路上。
在基於UTXO之模型中,各交易(「Tx」) 152包含資料結構,該資料結構包含一或多個輸入202及一或多個輸出203。各輸出203可包含未支出交易輸出(UTXO),其可用作另一新交易之輸入202的來源(若尚未兌換UTXO)。UTXO包括指定數位資產之金額的值。此表示分散式分類帳上之符記的設定數目。UTXO亦可含有其所來自的交易之交易ID以及其他資訊。交易資料結構亦可包含標頭201,該標頭可包含輸入欄位202及輸出欄位203之大小的指示符。標頭201亦可包括交易之ID。在實施例中,交易ID為交易資料(不包括交易ID自身)之雜湊,且儲存於提交至節點104之原始交易152的標頭201中。
假定愛麗絲103a希望創建將所討論的一定金額之數位資產轉移至鮑勃103b的交易152j。在圖2中,愛麗絲之新交易152j經標示為「 Tx 1 」。該交易獲取在序列中之先前交易152i之輸出203中鎖定至愛麗絲的一定金額之數位資產且將此數位資產中之至少一些轉移至鮑勃。先前交易152i在圖2中經標示為「 Tx 0 」。 Tx 0 Tx 1 僅為任意標籤。其未必意謂 Tx 0 為區塊鏈151中之第一交易,亦不意謂 Tx 1 為池154中緊接著的下一交易。 Tx 1 可指回至仍具有鎖定至愛麗絲之未支出輸出203的任何先前(亦即,前期)交易。
在愛麗絲創建其新交易 Tx 1 時,或至少至其將新交易發送至網路106時,先前交易 Tx 0 可能已經驗核且包括於區塊鏈150之區塊151中。該交易在彼時可能已包括於區塊151中之一者中,或其可能仍在有序集合154中等待,在此狀況下,該交易將很快包括於新區塊151中。替代地,可創建 Tx 0 Tx 1 且將其一起發送至網路106,或若節點協定允許緩衝「孤立」交易,則 Tx 0 甚至可在 Tx 1 之後發送。如本文中所使用之「先前」及「後續」二個詞在交易序列之上下文中係指如由交易中指定之交易指標所定義的序列中之交易的次序(哪一交易指回至哪一其他交易,等等)。該等詞同樣地可用「前置」及「後置」或「前期」及「後期」、「親代」及「子代」或其類似者來替換。其未必暗示該等交易經創建、發送至網路106或到達任何給定區塊鏈節點104之次序。然而,直至且除非親代交易經驗核,否則將不驗核指向先前交易(前期交易或「親代」)之後續交易(後期交易或「子代」)。在親代之前到達區塊鏈節點104之子代被視為孤立的。取決於節點協定及/或節點行為,子代可被捨棄或緩衝一段時間以等待親代。
先前交易 Tx 0 之一或多個輸出203中之一者包含特定UTXO,其在此處標示為 UTXO 0 。各UTXO包含指定由UTXO表示之一定金額之數位資產的值;以及鎖定腳本,其定義後續交易之輸入202中之解除鎖定腳本必須符合的條件,以便驗核後續交易且因此成功地兌換UTXO。通常,鎖定腳本將金額鎖定至特定方(包括該金額之交易的受益人)。亦即,鎖定腳本定義解除鎖定條件,通常包含如下條件:後續交易之輸入中的解除鎖定腳本包含先前交易經鎖定至的一方之密碼編譯簽章。
鎖定腳本(亦稱為scriptPubKey)為以節點協定所辨識之網域特定語言編寫的一段程式碼。此語言之特定實例被稱為「Script」(S為大寫),其由區塊鏈網路使用。鎖定腳本指定需要何資訊來支出交易輸出203,例如愛麗絲之簽章的要求。解除鎖定腳本出現在交易之輸出中。解除鎖定腳本(亦稱為scriptSig)為用網域特定語言編寫的一段程式碼,其提供滿足鎖定腳本準則所需的資訊。舉例而言,其可含有鮑勃之簽章。解除鎖定腳本出現在交易之輸入202中。
因此,在所繪示之實例中, Tx 0 之輸出203中的 UTXO 0 包含鎖定腳本[Checksig P A ],該鎖定腳本需要愛麗絲之簽章Sig P A 以便兌換 UTXO 0 (嚴格而言,以便使嘗試兌換 UTXO 0 之後續交易有效)。[Checksig P A ]含有來自愛麗絲之公開-私密金鑰對之公開金鑰 P A 的表示(亦即,雜湊)。 Tx 1 之輸入202包含指回至 Tx 1 之指標(例如,藉助於其交易ID TxID 0 ,其在實施例中為整個交易 Tx 0 之雜湊)。 Tx 1 之輸入202包含識別 Tx 0 內之 UTXO 0 的索引,以在 Tx 0 之任何其他可能輸出中識別 UTXO 0 Tx 1 之輸入202進一步包含解除鎖定腳本<Sig P A >,其包含愛麗絲之密碼編譯簽章,該密碼編譯簽章係藉由愛麗絲將其來自金鑰對之私密金鑰應用於資料(在密碼學中有時被稱為「訊息」)之預定義部分而創建。需要由愛麗絲進行簽章以提供有效簽章之資料(或「訊息」)可由鎖定腳本或由節點協定或由此等之組合來定義。
當新交易 Tx 1 到達區塊鏈節點104時,該節點應用節點協定。此包含一起運行鎖定腳本及解除鎖定腳本以檢查解除鎖定腳本是否符合鎖定腳本中所定義之條件(其中此條件可包含一或多個準則)。在實施例中,此涉及序連二個腳本: <Sig P A > < P A > || [Checksig P A ] 其中「||」表示序連,且「<…>」意謂將資料置放於堆疊上,且「[…]」為鎖定腳本(在此實例中為基於堆疊之語言)所包含之函式。等效地,腳本可使用共同堆疊一個接一個地運行,而非序連腳本。無論如何,當一起運行時,腳本使用如包括於 Tx 0 之輸出中之鎖定腳本中的愛麗絲之公開金鑰 P A ,以鑑認 Tx 1 之輸入中的解除鎖定腳本含有對資料之預期部分進行簽章的愛麗絲之簽章。亦需要包括資料自身(「訊息」)之預期部分,以便執行此鑑認。在實施例中,經簽章資料包含整個 Tx 1 (因此不需要包括分離的元素來以明文指定資料之經簽章部分,此係因為其已固有地存在)。
藉由公開-私密密碼學進行鑑認之細節將為熟習此項技術者所熟悉的。基本上,若愛麗絲已使用其私密金鑰對訊息進行簽章,則在以明文給出愛麗絲之公開金鑰及訊息的情況下,諸如節點104之另一實體能夠鑑認該訊息必須已由愛麗絲進行簽章。簽章通常包含對訊息進行雜湊、對雜湊進行簽章以及將此標誌至訊息上作為簽章,因此使得公開金鑰之任何持有者能夠鑑認該簽章。因此,應注意,本文中對特定資料片段或交易之部分或其類似者之簽章的任何提及在實施例中可意謂對彼資料片段或交易之部分的雜湊進行簽章。
Tx 1 中之解除鎖定腳本符合 Tx 0 之鎖定腳本中所指定的一或多個條件(因此在所展示之實例中,若愛麗絲之簽章經提供於 Tx 1 中且經鑑認),則區塊鏈節點104將 Tx 1 視為有效的。此意謂區塊鏈節點104將增添 Tx 1 至未決交易之有序池154。區塊鏈節點104將亦轉遞交易 Tx 1 至網路106中之一或多個其他區塊鏈節點104,使得該交易將在整個網路106中傳播。一旦 Tx 1 已經驗核且包括於區塊鏈150中,則此將來自 Tx 0 UTXO 0 定義為已支出。應注意, Tx 1 可僅在其支出未支出交易輸出203之情況下為有效的。若其嘗試支出已由另一交易152支出之輸出,則 Tx 1 將為無效的,即使符合所有其他條件亦如此。因此,區塊鏈節點104亦需要檢查是否已支出先前交易 Tx 0 中所參考之UTXO (亦即,其是否已形成另一有效交易之有效輸入)。此為區塊鏈150將所定義次序強加於交易152上很重要的一個原因。實務上,給定區塊鏈節點104可維護分離的資料庫,其標記已支出哪些交易152中之哪些UTXO 203,但最終定義是否已支出UTXO的係其是否已形成區塊鏈150中之另一有效交易的有效輸入。
若給定交易152之所有輸出203中所指定的總金額大於由所有其輸入202所指向之總金額,則此為大多數交易模型中無效之另一基礎。因此,此類交易將不被傳播,亦不包括於區塊151中。
應注意,在基於UTXO之交易模型中,需要將給定UTXO整個支出。其不能「留下」在UTXO中定義為支出之一小部分金額,而另一小部分已支出。然而,來自UTXO之金額可在下一交易之多個輸出之間劃分。例如, Tx 0 中之 UTXO 0 中所定義的金額可在 Tx 1 中之多個UTXO之間劃分。因此,若愛麗絲不想將 UTXO 0 中所定義之所有金額皆給予鮑勃,則其可使用剩餘金額在 Tx 1 之第二輸出中給自身找零,或支付給另一方。
實務上,愛麗絲通常亦將需要包括比特幣節點104之費用,該比特幣節點成功地將愛麗絲之交易104包括於區塊151中。若愛麗絲不包括此費用,則區塊鏈節點104可拒絕 Tx 0 ,且因此儘管技術上有效,但 Tx 0 可能不會被傳播且包括於區塊鏈150中(若區塊鏈節點104不想接受交易152,則節點協定不會強迫區塊鏈節點接受)。在一些協定中,交易費用不需要其自身的分離輸出203 (亦即,不需要分離的UTXO)。實情為,由輸入202所指向的總金額與給定交易152之輸出203中所指定的總金額之間的任何差額被自動地給予發佈該交易之區塊鏈節點104。例如,假定指向 UTXO 0 之指標為 Tx 1 之唯一輸入,且 Tx 1 僅具有一個輸出 UTXO 1 。若 UTXO 0 中所指定之數位資產的金額大於 UTXO 1 中所指定之金額,則差額可由贏得工作量證明競賽之節點104指派(或支出)以創建含有 UTXO 1 之區塊。然而,替代地或另外,未必排除可在交易152之其自身的UTXO 203中之一者中明確地指定交易費用。
愛麗絲及鮑勃之數位資產由在區塊鏈150中任何位置處之任何交易152中鎖定至愛麗絲及鮑勃的UTXO組成。因此,給定方103之資產通常遍及整個區塊鏈150中之各種交易152的UTXO而散佈。區塊鏈150中之任何位置處皆未儲存定義給定方103之總餘額的一個數字。用戶端應用程式105中之錢包功能的作用為將鎖定至各別方且尚未在另一後繼交易中支出之所有各種UTXO的值一起核對。其可藉由查詢如儲存於比特幣節點104中之任一者處的區塊鏈150之複本來實現此操作。
應注意,常常示意性地表示腳本(亦即,不使用確切語言)。舉例而言,吾人可使用操作碼(作業碼)來表示特定函式。「OP_…」係指Script語言之特定作業碼。作為實例,OP_RETURN為Script語言之作業碼,當在鎖定腳本之開頭加上OP_FALSE時,該作業碼創建交易之不可支出輸出,該輸出可儲存交易內之資料,且藉此將資料不可變地記錄於區塊鏈150中。例如,資料可包含需要儲存於區塊鏈中之文件。
通常,交易之輸入含有對應於公開金鑰 P A 之數位簽章。在實施例中,此係基於使用橢圓曲線secp256k1之ECDSA。數位簽章對特定資料片段進行簽章。在一些實施例中,對於給定交易,簽章將對交易輸入之部分及交易輸出中之一些或全部進行簽章。數位簽章進行簽章之輸出之特定部分取決於SIGHASH旗標。SIGHASH旗標通常為4位元組碼,其被包括在簽章之末尾,以選擇對哪些輸出進行簽章(且因此在簽章時固定)。
鎖定腳本有時被稱為「scriptPubKey」,係指其通常包含各別交易被鎖定至的一方之公開金鑰。解除鎖定腳本有時被稱為「scriptSig」,係指其通常供應對應簽章。然而,更一般而言,在區塊鏈150之所有應用中,兌換UTXO之條件不一定包含鑑認簽章。更一般而言,腳本處理語言可用於定義任何一或多個條件。因此,「鎖定腳本」及「解除鎖定腳本」二個更一般的詞可為較佳的。 3.   旁側通道
如圖1中所展示,愛麗絲及鮑勃之電腦裝備102a、120b中之各者上的用戶端應用程式可分別包含額外通訊功能性。此額外功能性使得愛麗絲103a能夠與鮑勃103b建立分離的旁側通道107 (在任一方或第三方之推動下)。旁側通道107使得能夠與區塊鏈網路分離地進行資料交換。此通訊有時被稱作「鏈外」通訊。舉例而言,此可用於在愛麗絲與鮑勃之間交換交易152,而無需(尚未)將交易註冊至區塊鏈網路106上或使其進入鏈150,直至多方中之一者選擇將其廣播至網路106。以此方式共用交易有時被稱作共用「交易範本」。交易範本可能缺乏形成完整交易所需之一或多個輸入及/或輸出。替代地或另外,旁側通道107可用於交換任何其他交易相關資料,諸如金鑰、協商的金額或條款、資料內容等。
可經由與區塊鏈網路106相同之封包交換網路101建立旁側通道107。替代地或另外,可經由諸如行動蜂巢式網路之不同網路或諸如區域無線網路之區域網路或甚至愛麗絲之裝置102a與鮑勃之裝置102b之間的直接有線或無線鏈路來建立旁側通道301。通常,在本文中任何位置處被提及之旁側通道107可包含經由一或多個網路連接技術或通訊媒體之任何一或多個鏈路,以用於「鏈外」(亦即,與區塊鏈網路106分離地)交換資料。在使用多於一個鏈路的情況下,鏈外鏈路之集束或集合作為整體可被稱作旁側通道107。因此,應注意,若據稱愛麗絲及鮑勃經由旁側通道107交換某些資訊或資料片段或其類似者,則此未必暗示必須經由完全相同的鏈路或甚至相同類型之網路來發送所有此等資料片段。 4.   零知識證明
係質數階為 之有限群且令 為指數域。 中之元素用小羅馬字母 表示,且 中之元素用大寫羅馬字母 表示。 中之 個元素的向量以粗體 表示。同樣地, 中之 個元素的向量表示為
符號「+」在本文中用於 之群運算(以加法記法)及域 中之加法運算(模 加法)二者。純量乘法表示為 。對於實際執行個體,吾人將 設定為橢圓曲線。 4.1 西格瑪(SIGMA)協定
為NP關係。亦即, 之子集使得可在 之長度的多項式時間內檢查 ,且 之長度亦為 之長度的多項式。
元組之第一元素被稱為聲明且其為公開資訊。第二元素被稱為見證(對聲明)且其為私密的。對於給定聲明,可能存在多於一個見證。所引入之NP語言 為聲明之集合。
西格瑪協定為證明者與驗證者之間的三輪協定。二方接收聲明 作為輸入。另外,證明者接收見證 作為輔助輸入且驗證者可接收任何任意輔助輸入。證明者藉由將在本文中另外被稱作公開轉錄本之質詢解決方案 提供至驗證者來證明見證 之知識,該驗證者基於協定驗證質詢解決方案
西格瑪協定可使用以下步驟來實施: 1. 證明者使用隨機性 來計算承諾 。證明者接著在將 保密的同時將 發送至驗證者。 2. 驗證者隨機地對質詢 進行取樣且將其發送至證明者 3. 證明者計算回答 (使用 )且將其發送至驗證者。 4. 驗證者基於公開轉錄本 接受聲明 是否有效。
西格瑪協定具有以下屬性。
完整性。若 ,則驗證者以機率一接受。
特殊可靠性。對於任何一對具有相同承諾 (證明者之第一訊息)及相異質詢 的接受轉錄本 ,可計算見證 使得
特殊誠實驗證者零知識 (SHVZK)。存在多項式時間演算法 ,其在輸入 時輸出無法與協定轉錄本區分之接受轉錄本
特殊可靠性暗示較強屬性:西格瑪協定亦為(見證之)知識的證明。
又,SHVZK暗示(誠實驗證者)零知識之標準概念,其中模擬器之任務為在僅接收到聲明作為輸入時模擬轉錄本。換言之,假定驗證者按規定行事,SHVZK保證不會自交換訊息漏泄關於見證之資訊。 4.1.1  實例:施諾爾(Schnorr)協定
給定二個群組元素 ,施諾爾協定證明離散對數 之知識。步驟為: 1. 證明者隨機地對 進行取樣且計算 。其將 發送至驗證者。 2. 驗證者隨機地對質詢 進行取樣且將其發送至證明者。 3. 證明者計算 且將其發送至驗證者。 4. 當且僅當 時,驗證者接受。
易於看到,施諾爾協定為完整的且為SHVZK。為了查看其為何具有特殊可靠性,觀測到,自具有不同質詢之二個接受轉錄本 ,吾人可寫出 。自第一等式減去第二等式(應注意,在二者中使用相同 ),吾人獲得 。因此,吾人得出結論: 。觀測到,由於 ,接著 逆中具有(乘法)且其可高效地計算,因此吾人可使用二個質詢及二個回答計算離散對數。 4.1.2  移除互動-菲亞特-沙米爾(Fiat-Shamir)啟發式
西格瑪協定為公共幣互動式證明系統之實例。亦即,由驗證者發送之訊息(質詢)為隨機的且獨立於證明者之訊息。利用此特徵,互動式西格瑪協定可藉由利用密碼編譯雜湊函數仿真驗證者用以對質詢 進行取樣之熵而變成非互動式(僅自證明者至驗證者之一個訊息)。此被稱為 Fiat - Shamir啟發式。
Fiat-Shamir啟發式在較強安全模型中操作。其中,密碼編譯雜湊函數經模型化為在新輸入位元串時輸出均勻分佈之位元串的函數。在此安全模型中,熟知的雜湊函數,如 ,可用以建構「隨機預言機」函數 ,其將任意位元串映射至質詢空間 。證明者現可在無驗證者幫助之情況下計算 ,簡單地設定 。觀測到, 為在互動式西格瑪協定中驗證者產生質詢 之後立即出現的(公開)轉錄本。此處, 指示二方預先已知的(公開)上下文資訊,諸如會話或方識別符。
函數之假定確保二件事。首先,質詢 隨機地分佈,且因此,互動式協定僅需要滿足針對誠實驗證者之零知識(或SHVZK)。其次,證明者無法在計算承諾 (及對彼事項之聲明 )之前計算質詢,因此協定之執行次序無法顛倒。
最新情況係如此,前提條件為質詢空間 足夠大使得嘗試不同承諾 永遠不會遇到將允許模擬之(唯一)質詢。中等/保守的選擇為分別使用大小為80或128個位元之質詢,然而,應瞭解,可使用其他質詢位元大小。 4.2 佩德森(PEDERSEN)承諾
向量佩德森承諾或分批佩德森承諾為使用單個群組元素 承諾向量 之佩德森方案的一般化。分批佩德森可在離散對數假定困難之任何群組上執行個體化。
方案具有二個演算法。假定群組 之描述為二個演算法之隱式輸入。 承諾 :在輸入訊息向量 、隨機元素 及承諾金鑰 時,輸出點: 驗證承諾 在輸入開放的 、承諾 及承諾金鑰 時,計算 ,則輸出 (接受)。否則,輸出 (拒絕)。
為橢圓曲線上之點,使得對於 之承諾金鑰為橢圓曲線上之一對點。佩德森承諾提供可藉由單條橢圓曲線承諾 個不同訊息之方式。 4.2.1  承諾金鑰之可驗證產生
群組元素 待以安全方式產生使得點 之指數之間的關係為未知的。可公開地驗證正確產生。 4.2.2  陷阱門承諾金鑰
群組元素 係藉由選取指數 及設定 來產生。應注意,根據 之知識,佩德森承諾不再具有約束力。舉例而言,對於狀況 ,假設 。可開放對任意值 之承諾 ,從而設定 。值 在本文中可被稱作陷阱門或陷阱門值。 4.3 指明驗證者之零知識論證
為承認西格瑪協定之NP語言。存在一種架構,其中證明者愛麗絲130a能夠僅向指明驗證者鮑勃103b (其擁有秘密或陷阱門 )而非其他人證明聲明 。論證為非互動的,且信念不可轉移。後者意謂鮑勃103b無法使第三(隱藏)驗證者查理103c確信聲明之準確性,即使查理103c被給予了秘密 亦如此。
愛麗絲103a產生證明 來證明聲明: 或「 吾人知曉秘密 」。
證明 係專門為鮑勃103b製作的。若鮑勃相信其秘密 尚未被洩露,則 實際上為令其確信的證明。然而,鮑勃無法使用 使查理103c確信 ,此係因為鮑勃103b可能已產生完全相同的證明(證明其知曉 )。
可使用陷阱門承諾方案(諸如,具有不可驗證承諾金鑰之佩德森-參見章節4.1),其中指明驗證者(鮑勃103b)已知陷阱門 。證明者(愛麗絲103a)以承諾 承諾隨機值 且使用 (連同西格瑪協定之聲明及第一訊息 )以利用雜湊函數產生質詢之「一半」。非互動式質詢定義為: ,其中
除西格瑪協定之檢查以外,指明驗證者鮑勃亦檢查 是否對 開放。現在,由於鮑勃可對其喜歡的任何值開放 (使用陷阱門 -參見章節5.1),因此其可在隨機質詢 上運行模擬器 以獲得 來偽造證明 ,且接著對 開放承諾 。 5.   證明系統
此章節指定允許資料所有者控制何人可確信其資料與資料之雜湊承諾之間的連結的證明方案。此實施例包含愛麗絲(證明者)使用以使鮑勃(指明驗證者)確信用以承諾資料 之私密值 之知識的非互動式證明系統。 5.1 聲明
資料所有者使用佩德森承諾金鑰 以隱藏方式承諾其資料 。公開聲明(至少為資料所有者及指明驗證者所已知)為元組: )
資料經編碼為元素 。資料所有者產生知識之指明驗證者nizk證明以證明以下集合中之元素的知識: 5.2 產生及儲存承諾金鑰
承諾金鑰 可在多個資料所有者間共用,但其必須以確保 不為任何人所知之可驗證方式產生(參見章節4.1)。為了使此金鑰公開可用,其可作為OP_RETURN資料儲存於區塊鏈中。 5.3 證明者及指明驗證者演算法
對於如上所定義之給定聲明 ,資料所有者產生nizk論證 以證明其知曉開放的 ,而不向驗證者揭示 。換言之,其證明 之知識。
指明驗證者選擇隨機秘密陷阱門 且將新的承諾金鑰設置為 。在此章節中,吾人假定資料所有者在產生 時知曉
下文給出的演算法使用密碼編譯雜湊函數 以產生非互動式質詢。
證明者:輸入: •聲明 •見證:  s.t. •上下文資訊: 步驟: 1. 2.  //EC點加法 3. 4. // 加法 5. 6. 輸出: 驗證者:輸入: •聲明 •Nizk證明 •上下文資訊: 步驟: 1. 若 ,則拒絕。 2. 3. 4. 若 ,則拒絕。 5. 若 ,則拒絕。否則,接受。 輸出:接受/拒絕
5.4 偽造證明
指明驗證者能夠產生對於包含偽造資料值 之偽造聲明有效的「偽造證明」。接收偽造證明之第三方將確信偽造證明滿足驗證演算法,然而,無法確信資料所有者而非指明驗證者為資料源。
令元組 使得 。備有陷阱門 之知識的指明驗證者可為任何資料 產生有效證明,即使其不知曉開放的 。此情況為可能的,此係因為指明驗證者可依據承諾之金鑰 對其喜歡的任何值開放該等承諾,且因此預先選擇施諾爾證明之質詢(據稱證明了 之知識)。下文詳述偽造證明之演算法。
偽造證明:輸入: •聲明  //誠實地產生。其保持 //任何資料(可能不同於 ) •陷阱門:  s.t. •上下文資訊: 步驟: 1. 2. 3. 4. 5.  //利用陷阱門計算開發資訊 6. 輸出:  //偽造聲明 之有效證明
因此,自指明驗證者接收證明 之第三方無法驗證資料源,且更具體而言,無法證明資料所有者為資料源。 6.   私密時戳
描述於章節5中之證明系統的第一應用為以私密方式對資料加時戳。資料所有者混淆資料 ,且將混淆 上傳至區塊鏈。亦即,資料所有者將經混淆資料承諾 上傳至區塊鏈,其中 ,同時保持隨機性 私密。更一般而言,混淆 可為資料承諾值 之任何雜湊。亦即, ,其中 為密碼編譯雜湊函數,且未必為SHA256或用以產生質詢 之雜湊函數。
稍後其在不揭示私密值 之情況下(僅)向指明驗證者證明 與資料 之間的連結。證明向指明驗證者確保 之時戳;證明之混淆及不可轉移性向除指明驗證者之外的每個人確保私密性。
資料記入於區塊鏈中以確保其在給定時間的不可變性及存在性。然而,由於佩德森承諾之隱藏屬性,吾人可推斷哪些資料已被加時戳。
應瞭解,將混淆資料儲存於區塊鏈上會導致隱式地記入資料。亦即,資料 無需儲存於區塊鏈上。 6.1 證明正確加時戳
一旦 出現在區塊鏈中,想要驗證與資料之連結的任何人皆可充當指明驗證者。其將確信 實際上與 一致。
證明及驗證正確加時戳之步驟如下: 1. 指明驗證者產生陷阱門承諾金鑰 。前已述及,陷阱門為 ,使得 。其將 發送至資料所有者。 2. 資料所有者對輸入 運行來自前一章節之演算法 證明。其將 發送至指明驗證者 3. 指明驗證者對輸入 運行演算法 驗證。若輸出為接受,則其將資料 視為正確的。
圖3展示用於實施上文闡述之證明者及驗證者演算法的例示性方法。在此實例中,愛麗絲103a為證明者及資料所有者,而鮑勃103b為指明驗證者。
在步驟1處,愛麗絲103a使用資料 產生資料承諾值 ,其中 為僅愛麗絲103a知曉之秘密值,且 為資料所有者承諾金鑰,亦即,愛麗絲之承諾金鑰。愛麗絲103a對資料承諾值進行雜湊以產生經混淆資料值
愛麗絲103a在證明區塊鏈交易中將混淆資料值 儲存至區塊鏈150 (步驟2)。OP_RETURN腳本用以使此等值可用於鮑勃103b及其他使用者。在一些實施例中,亦將承諾值 儲存至區塊鏈150。
鮑勃103b在步驟4處自區塊鏈擷取混淆資料值 。其選擇陷阱門值 且使用此產生指明驗證者承諾金鑰 ,其中 (步驟4)。鮑勃103b在步驟5處將其指明驗證者承諾金鑰 連同混淆資料值 一起發送至愛麗絲103a。此訊息充當或包括對用於證明資料 之所有權及/或擁有權之證明 的請求。
一旦愛麗絲103a已接收到指明驗證者承諾金鑰 ,其便使用指明驗證者承諾金鑰 產生驗證者承諾值 ,使得 (步驟6)。在此步驟中,愛麗絲103a使用 對隨機值 承諾。此隨機值 稍後用以形成質詢 ,但 不能基於 來選擇,此係因為愛麗絲103a首先承諾 ,亦即,承諾 用以產生 以確保愛麗絲103a首先對 承諾。
在步驟7處,愛麗絲103a產生用於證明秘密值 之知識的證明 。愛麗絲103a使用自鮑勃103b接收到之混淆資料值 來識別鮑勃103b已請求哪些資料 之所有權及/或擁有權的證明,且因此識別在產生證明 時使用哪一秘密值 。愛麗絲103a可維護具有用於實施此步驟之條目 的查找表。
愛麗絲103a接著在步驟8處將包括驗證者承諾值 之證明 發送至鮑勃103b,且藉此解除承諾隨機值 。愛麗絲103a亦將承諾值 及資料 發送至鮑勃103b。
鮑勃103b在步驟9處使用 產生目標驗證者承諾值,其將目標驗證者承諾值與驗證者承諾值 進行比較。若此等值匹配,則鮑勃103b藉由實施上文在5.2中闡述之 驗證演算法的步驟2至4基於證明 而驗證資料承諾值 。在此步驟中,鮑勃檢查解除承諾 對於承諾 是否正確,其中 為所承諾訊息且 為開放資訊。鮑勃將其承諾金鑰 用於此步驟。
鮑勃103b在步驟11處藉由對資料承諾值 進行雜湊來產生候選混淆資料值,鮑勃將候選混淆資料值與所擷取或「目標」混淆資料值 進行比較。自區塊鏈擷取之混淆資料值 可被稱作目標混淆資料值
若鮑勃103b藉由在步驟9、10及11處執行之比較感到滿意,則鮑勃103b可確信愛麗絲103a為資料 之所有者。 6.2 經由不可轉移證明保護時戳之私密性
在自資料所有者(愛麗絲103a)接收到 之後,指明驗證者(鮑勃103b)可為其選擇之任何資料 產生令人確信的證明 ,亦即,通過驗證演算法(運行上文在章節5.4中所描述的 偽造證明演算法)之證明。在具有此能力之情況下,第三方(查理103c)永遠無法確定鮑勃103b轉遞之資料來自資料所有者抑或指明驗證者自身。
換言之,查理103c無法判斷資料係在將 上傳至區塊鏈(藉由愛麗絲103a)之前抑或之後(當鮑勃103b看到承諾 時)創建的。此意謂來自鮑勃103b之任何資料皆不受時戳 限制,從而對除鮑勃103b之外的任何人維護 之私密性。
圖4提供可提供至可通過驗證演算法之查理103c的資訊之繪示。 7.   資料之自主權公證
上文闡述之證明及驗證演算法可用於提供經公證資料之方法中。
在資料實施方案之自主權公證中,資料所有者在公證(由此資料由公證人進行簽章)以及將經簽章資料上傳至區塊鏈之程序中發揮積極作用。
公證人接收資料 ,但對混淆 進行簽章。資料所有者被賦予(a)強大的私密性:無人可將簽章(儲存於鏈上)連結回至實際資料,以及控制何人驗證簽章:僅指明驗證者(其藉助於證明確信此連結存在)可藉由驗證簽章得出結論:公證人(隱式地)對資料進行了簽章。
在資料所有者、指明驗證者及公證人之間提供二階段協定。方案之參數 經預先組配且已儲存於區塊鏈中。該等參數由公證人用於簽章之驗證金鑰 以及資料所有者之承諾金鑰 組成。
階段 1 資料公證。在第一階段中,資料所有者承諾其資料 且將其連同承諾 一起發送至對承諾之雜湊進行簽章的公證人。資料所有者隨後將經混淆及簽章之資料 , 儲存於區塊鏈中,其中
階段 2 經公證資料之驗證。在第二階段中,指明驗證者自區塊鏈擷取 且向資料所有者請求資料 及承諾 連同用以自 產生 之開放 的知識之非互動式零知識證明 。指明驗證者使用證明及簽章 來檢查證明且亦檢查 之雜湊。
圖5a及圖5b展示上文闡述之二階段方法。
圖5a展示資料公證階段。資料所有者(愛麗絲103a)發送自區塊鏈150擷取資料之請求。該請求包括「get_data」命令及方案ID (sid)。將參數傳回至愛麗絲103a,若例如資料所有者承諾金鑰 在多個資料所有者間共用,則該等參數可包括該金鑰。若不共用,則資料所有者無需自區塊鏈擷取任何資料。
使用所擷取之資料所有者承諾金鑰 、資料 及秘密值 ,愛麗絲103a產生資料承諾值
愛麗絲103a請求公證人502對資料 進行公證。為了進行公證,愛麗絲103a將方案ID、資料所有者ID (id)、「公證」命令、資料承諾值 及資料 發送至公證人502。回應於接收到請求,公證人502檢查所接收資料,且若資料有效,則藉由對資料承諾值進行雜湊來產生混淆資料值且產生資料簽章 ,其中 。由公證人502執行之檢查可取決於與資料相關聯之業務邏輯,且若資料符合由邏輯指定之要求,則認為資料有效。公證人502僅在承諾值 為其已接收到並檢查的資料 之承諾且因此合規的情況下對資料進行簽章。愛麗絲103a以零知識證明了秘密值 之知識。公證人502執行在章節5.3中闡述之驗證演算法以檢查愛麗絲103a是否具有秘密值 之知識。
公證人502將經簽章資料 傳回至愛麗絲103a。愛麗絲103a產生用於將經簽章資料儲存至區塊鏈150之區塊鏈交易,該經簽章資料亦包括愛麗絲發送以利用「store_data」命令儲存至區塊鏈150的方案ID及資料所有者ID。
圖5b展示經公證資料驗證階段。指明驗證者(鮑勃103b)發送自區塊鏈150擷取資料之請求。該請求包括「get_data」命令、方案ID及識別愛麗絲103a之資料所有者ID。將參數及經簽章資料連同方案ID及資料所有者ID一起傳回至鮑勃103b。
鮑勃103b產生其承諾金鑰 ,鮑勃在資料請求中將該承諾金鑰連同經混淆資料值及「request_data」命令一起發送至愛麗絲103a。
基於所接收資料請求,愛麗絲103a產生用於證明秘密值 之知識的證明 ,愛麗絲將該秘密值與資料 及資料承諾值 一起發送至鮑勃103b。鮑勃103b實施驗證演算法以驗證 之證明且亦檢查資料簽章 。若證明經驗證且簽章有效,則鮑勃103b可確信資料 為正確的且為愛麗絲103a所有。
公證人502接收資料 ,因此其可在簽章之前強制實行資料合規性。公證人502並不知曉私密值 ,且因此無法證明 之間的連結。資料所有者103a可以零知識證明此連結,因此,公證人502充當指明驗證者。 8.   資料公證即服務
不同於章節7中所描述之先前使用狀況,資料所有者利用其私密值 來信任公證人。作為回報,公證人產生nizk證明 以及代表資料所有者與區塊鏈互動。另外,公證人令多方註冊為指明驗證者,且向指明驗證者證明儲存於區塊鏈中之所請求資料的正確公證。此等二個服務可能以收費作為交換來提供。
在此使用狀況下,公證人代表資料所有者執行章節5中闡述之驗證演算法。因為資料所有者利用其秘密值 來信任公證人,所以此情況為可能的。
圖6繪示多方之間的互動。資料所有者(愛麗絲103a)將其資料 及秘密值 發送至檢查資料之公證(簽章)的公證人502。公證人502接著將經簽章資料儲存至區塊鏈150。
指明驗證者(鮑勃103b)藉由將其承諾金鑰 發送至公證人502來向公證人502註冊。當註冊時,鮑勃103b向公證人502證明其知曉對應於其承諾金鑰 之陷阱門值 。替代地,鮑勃103b可將承諾金鑰產生外包給被信任以向指明驗證者揭示陷阱門值 之第三方。下文更詳細地論述註冊。
當鮑勃103b想要驗證資料時,其自區塊鏈150擷取經公證資料且將其與驗證請求一起發送至公證人502。公證人502亦自區塊鏈150擷取經公證資料且使用對應秘密值 及鮑勃之承諾金鑰來為鮑勃103b產生證明,從而實施上文所描述之證明演算法。將證明提供至鮑勃103b使得鮑勃可藉由實施驗證演算法來確認資料源。
在此實施方案中,資料所有者僅與公證人502互動一次,僅發送其資料。此後,其保持完全無視公證程序。亦即,將經混淆資料上傳至區塊鏈(章節7之自主權協定的階段1),及驗證(為指明驗證者產生nizk證明-章節7之階段2)。 8.1 對資料進行簽章
可以二種方式對資料進行簽章: 顯式簽章 公證人502對資料承諾 進行簽章且將經混淆資料設定為 。因此,序連承諾及簽章。假定指明驗證者具有公證人502之正確驗證金鑰 。指明驗證者接收經簽章承諾且其檢查簽章是否為正確的且其是否雜湊至 (其自區塊鏈擷取)。
隱式簽章 公證人502將經混淆資料承諾 嵌入為支出P2PKH UTXO之交易的OP_RETURN資料。指明驗證者接收已知屬於公證人之P2PKH位址、承諾 ,且其檢查其雜湊是否嵌入於自肯塞(Kensei) P2PKH位址支出之交易中。此具有將簽章驗證委託給區塊鏈之挖掘者的效應。 8.2 保護公證人免受惡意驗證者之影響
相互不信任之指明驗證者的聯盟可互動以僅向公證人支付一次費用且為所有人重複使用相同證明。
攻擊 惡意驗證者可以秘密共用方式產生(陷阱門)承諾金鑰 ,其中各共謀的驗證者 產生陷阱門 之附加份額 且接著在不揭露 之情況下設定 。由於驗證者中無一者知曉陷阱門 ,因此相同證明 對於所有人皆將為令人確信的。
在此攻擊中,惡意驗證者中之一者可自公證人獲得證明 ,且將證明傳遞至亦將確信基礎資料之有效性的其他惡意驗證者。因此,若惡意驗證者中之一者能夠使公證人確信其並非惡意的,使得公證人向該惡意驗證者提供證明 ,則可在所有惡意驗證者間共用經驗證資料。
可以二種方式保護公證人免受此類型之驗證者聯盟的影響。 8.2.1  外包陷阱門之產生
避免惡意驗證者聯盟之簡單解決方案為將陷阱門承諾金鑰 之產生外包給在本文中被稱作陷阱門產生者之一方。相信該方不會與公證人共謀以共用陷阱門 ,且不產生模擬證明。在來自指明驗證者之產生請求後,該方向驗證者發出經簽章對 。應注意,其明確地包括陷阱門。
任何方可向公證人註冊承諾金鑰 ,該公證人將檢查此金鑰是否由陷阱門產生者進行簽章。若為此狀況,則公證人確信至少一方(事實上的指明驗證者),亦即,向陷阱門產生者請求產生金鑰之一方知曉 之陷阱門 的知識。此將使得證明 僅對此指明驗證者(及陷阱門產生者)為令人確信的,但對聯盟之其他成員不令人確信。 8.2.2  以零知識證明陷阱門之知識
在章節8.2.1中闡述之解決方案引入具有高可信度之新的一方,此可能為不合乎需要的。實情為,指明驗證者可向公證人證明(以零知識)其知曉給定承諾金鑰 之陷阱門
困難在於證明陷阱門 之明確知識。舉例而言,用以證明以 為底之對數 之知識的標準施諾爾協定(參見章節4.1.1)在此處並不足夠。假定驗證者中之各者僅知曉附加份額 ,如上所述之驗證者聯盟可合作以證明 之聯合知識。 8.2.2.1  基本想法
為了向公證人502註冊承諾金鑰 ,指明驗證者(鮑勃103b)充當證明者之角色,且公證人502充當驗證者之角色。如吾人稍後將看到的,若證明成功地驗證,則驗證者確信證明者已在產生證明時以壓倒性的機率明確地使用陷阱門
協定為具有共同輸入 之標準施諾爾協定,其中進行以下修改:驗證者發出位元質詢 ,且證明者預先承諾二個可能的回答 。其藉由對回答進行雜湊來承諾 。因此,其設定 ,其中 為密碼編譯雜湊函數(具有抗衝突性)。此處, 為用以產生施諾爾協定之第一訊息的隨機性。接著,一旦揭示質詢位元 ,證明者便發送 且驗證者檢查 是否為 之原像。
此經修改之施諾爾協定給出了可靠性誤差 。為了將可靠性放大至 ,協定可依序重複 次。 8.2.2.2  減少重複次數
質詢之大小可增加至 個位元。具有 位元質詢之協定的各次執行給出可靠性誤差 。為實現可靠性誤差 ,其中 為固定安全參數,協定重複總計 次。
此後,證明者需要承諾 個不同回答 。此可使用深度為 之默克爾樹來高效地完成,其中將第 葉設定為 。在驗證者發出質詢 之前,證明者發送默克爾樹之根 ,且驗證者以 連同其默克爾證明 來進行回答。默克爾樹在本文中亦可被稱作簡明承諾,此係因為其承諾指派給葉節點之 個值,其中一個元素為默克爾根。 8.2.2.3  安全分析-證明者為何明確地知曉陷阱門?
上文所簡述之協定具有特殊可靠性(參見章節4.1)。此意謂存在多項式時間提取器演算法 ,其可自二個不同的接受轉錄本(其中第一訊息固定)提取陷阱門 。更具體而言,藉由計算 自二個不同質詢 及二個回答 提取。
現假定證明者知曉所有可能回答。特定而言,其可產生二個接受轉錄本且在其上運行提取器 以輸出陷阱門 。換言之,若證明者知曉所有可能回答,則其明確地知曉陷阱門 。不知曉回答但提供 之有效默克爾證明 的機率至多為 ,其中 為發現用於深度為 之默克爾樹中的雜湊函數之衝突的機率。因此,令人確信的證明者知曉 之機率為至少 。最後,假定用於默克爾樹中之雜湊函數具有抗衝突性,觀測到 之大小上為可忽略的。 8.2.2.4  協定之實際實施
上文所簡述之協定的非互動式版本(使用Fiat-Shamir變換)可按以下方式實施:
證明者:輸入: •聲明 •見證:  s.t. •上下文資訊: 步驟: 1. 2. For  to  do: a.   b. For  to  do: i. c. d. //參見下文 e. f. g. 3. 輸出: 驗證者:輸入: •聲明 •證明: •上下文資訊: 步驟: 1. 2. For  to  do: a. b. 若 ,則拒絕及停止 c. d. e. f.  //截斷前 個位元組 g. I若 ,則拒絕及停止 h. 否則 3. 若在步驟2中不拒絕,則接受 輸出:接受/拒絕
1. 2.  do: //拒絕取樣: a. b. c.  //截斷前  個位元組 Return
此零知識證明系統證明陷阱門 之知識。其利用質詢之位元大小 及迭代次數 進行參數化。雜湊函數輸出長度為 之位元串。
為了保持(陷阱門之)零知識,證明者(指明驗證者鮑勃103b)依序執行所有輪次。此影響如何自轉錄本導出質詢。具體而言,令 為在第 輪次中產生之轉錄本。第 質詢為 之雜湊。又,證明者例如利用拒絕取樣產生質詢,以在減小mod ( 為任意的)時不引入偏差。
以此方式,鮑勃103b證明陷阱門 之明確知識,且此向其證明對可能質詢之所有可能回答的知識且承諾該等回答。
圖7繪示用於向作為指明驗證者之公證人502註冊的方法。在實例中,鮑勃103b正請求向公證人502註冊。
鮑勃103b產生其指明驗證者承諾金鑰 ,其中
鮑勃103b接著實施上文闡述之證明演算法。首先,其使用上下文資訊設定 ,該上下文資訊包括指明驗證者承諾金鑰 。接著,對於各 ,鮑勃103b使用 迭代地計算 。各 可被稱作質詢證明部分。
為了計算各 ,鮑勃103b產生默克爾樹。鮑勃計算 個回答值, 中之各者一個值。將此等值指派給默克爾樹之第0至第 葉節點,使得各默克爾樹中存在與回答值相關聯之 個葉節點。
使用 個回答值,鮑勃103b產生默克爾根。鮑勃103b使用默克爾根、使用隨機選定值 計算之承諾 及承諾金鑰組件 中之第一者以及先前質詢證明部分 來產生質詢。質詢包含質詢值 ,其亦被稱作目標質詢值。
質詢值 用以選擇回答值中之一者。具體而言,選擇對應於 之回答值。此選定回答值用作默克爾證明之原像。
鮑勃103b為選定回答值產生默克爾證明,亦即,證明包括 作為根為 之默克爾樹之葉的鑑認路徑 ,且隨後產生質詢證明部分 。質詢證明部分包含承諾、默克爾根、質詢值及選定回答值。
鮑勃103b產生包含各 (其中 )連同默克爾證明(鑑認路徑) 之證明 。亦即,其已基於 產生的默克爾樹。質詢證明 包含默克爾根、默克爾根、質詢及選定回答值。
為了改良通訊複雜度,移除來自證明部分 之承諾 。稍後,驗證者重新計算此等值。應瞭解,承諾 可包括於證明 中且自證明者發送至驗證者。
鮑勃103b將證明 及其承諾金鑰 提供至公證人502。以類似於鮑勃103b之方式,公證人502使用上下文資訊設定
對於各 ,公證人502使用由鮑勃103b提供之證明 計算候選質詢值 ,且將候選質詢值與在質詢證明 中提供之對應目標質詢值 進行比較,該對應目標質詢值亦被稱作目標質詢值。
公證人502亦針對在質詢證明 中提供之各 而檢查默克爾證明。
若各候選質詢值匹配其對應目標質詢值,且發現默克爾證明中之各者皆為有效的,則證明被驗證且公證人502註冊鮑勃之承諾金鑰
一旦鮑勃103b已向公證人502註冊其承諾金鑰 ,鮑勃103b便可使用在章節5中闡述之證明及驗證演算法請求公證人502驗證資料。 8.2.2.5  複雜度及參數選擇
佩德森承諾係在具有256個位元之 階的任何橢圓曲線上起始的,且雜湊函數用以導出質詢並用SHA-256建構默克爾樹。此等選擇產生位元大小大約為 之證明 ,其中 為質詢之位元大小且 為迭代次數(輪次)。
證明者需要執行 個純量乘法且驗證者執行二倍多的純量乘法。吾人因此試圖儘可能地最小化迭代次數 。此將最小化計算及通訊複雜度二者。然而,不能將 設定得太小(例如, ),此係因為此將產生過大的默克爾樹(例如, 個葉)而無法在證明者側進行計算。可能存在例如5、8或16次重複(亦即, ),然而,應瞭解,參數 為可組配的且可基於指明驗證者之裝置的計算能力而選擇。
考慮到 且吾人已將可靠性安全參數設定為 之具體值應憑經驗判定。 9.   替代例
在上文闡述之實例中,自區塊鏈150擷取資料 、資料承諾值 及混淆資料值 。應瞭解,此等值中之一些或全部可在資料所有者或在章節8中闡述之實施方案中的公證人與鏈外指明驗證者之間傳送。對於經簽章資料亦係如此。應瞭解,使用區塊鏈來儲存及傳送此等值引入了額外的信任級別,此係因為該等值不可變地儲存於區塊鏈上。
以上實例中之資料承諾值為 。應瞭解,資料承諾值一詞可用以參考需要使用者承諾資料值 之任何其他值。舉例而言,資料承諾值可為雜湊(資料 之雜湊、資料承諾值 之雜湊或任何其他合適值之雜湊)或其可為公開金鑰。 10. DID及VC
全球資訊網協會(W3C)已提供關於去中心化識別符(DID)及可驗證憑證(VC)之指導及標準,去中心化識別符實現去中心化及可驗證數位身分,可驗證憑證允許合法驗證者驗證主張,亦即,關於主題之陳述。W3C資料模型可在https://www.w3.org/TR/vc-data-model/處存取。
雖然DID為去中心化的,但VC可使受信任實體發出可以密碼編譯方式驗證之憑證。W3C亦引入了VC之可驗證呈現(VP)的想法,其可允許選擇性揭露及其他屬性以最大限度地保護VC持有者之私密性。
指明驗證者之ZKP可為無法傳遞以使另一驗證者確信的VP。如上文所提及,愛麗絲並不想要鮑勃能夠使其他人確信其已超過18歲。愛麗絲可在指明驗證者為鮑勃之情況下產生ZKP以保護其私密性。
舉例而言,假定聲明「愛麗絲已超過18歲」係以公開金鑰憑證之形式,亦即,以X509格式進行證實。其暗示若愛麗絲可產生關於經認證公開金鑰之數位簽章,則其已超過18歲。然而,替代產生可重新使用以使其他人確信之有效數位簽章,愛麗絲可為指明驗證者鮑勃產生其私密金鑰之ZKP。結果,鮑勃將在無愛麗絲之數位簽章的情況下確信愛麗絲知曉私密金鑰,且鮑勃無法使其他任何人確信。
此方法可一般化至由VC持有者已知之秘密以密碼編譯方式保護的任何可驗證憑證。
另一方法供VC發出者認證對主張之承諾。持有者可向指明驗證者呈現主張,該指明驗證者驗證ZKP證明及發出者之承諾憑證。
在以上實例中,應理解,VC,此處為愛麗絲之年齡或超過18歲的狀態,可被視為資料𝑚,其中愛麗絲為VC持有者。質詢證明π為產生以向指明驗證者鮑勃證明愛麗絲知曉秘密之VP。舉例而言,作為陷阱門之此秘密可為其私密金鑰,且對應經認證公開金鑰可為承諾金鑰。在此狀況下,資料 可由發出者在公開金鑰憑證中隱式地或顯式地認證。 11. 其他備註
一旦給定本文中之揭露內容,所揭露技術之其他變體或使用狀況對於熟習此項技術者可變得顯而易見。本揭露內容之範圍不受所描述實施例限制而僅受隨附申請專利範圍限制。
舉例而言,上文的一些實施例已依據比特幣網路106、比特幣區塊鏈150及比特幣節點104進行了描述。然而,應瞭解,比特幣區塊鏈為區塊鏈150之一個特定實例,且以上描述通常可適用於任何區塊鏈。亦即,本發明絕不限於比特幣區塊鏈。更一般而言,上文對比特幣網路106、比特幣區塊鏈150及比特幣節點104之任何提及皆可分別用對區塊鏈網路106、區塊鏈150及區塊鏈節點104之提及來替換。區塊鏈、區塊鏈網路及/或區塊鏈節點可共用如上文所描述之比特幣區塊鏈150、比特幣網路106及比特幣節點104之所描述屬性中之一些或全部。
在本發明之較佳實施例中,區塊鏈網路106為比特幣網路,且比特幣節點104執行創建、發佈、傳播及儲存區塊鏈150之區塊151的所描述功能中之至少全部。不排除可存在僅執行此等功能中之一者或一些而非全部的其他網路實體(或網路元件)。亦即,網路實體可執行傳播及/或儲存區塊而不創建及發佈區塊之功能(前已述及,此等實體不被視為較佳比特幣網路106之節點)。
在本發明之其他實施例中,區塊鏈網路106可能並非比特幣網路。在此等實施例中,不排除節點可執行創建、發佈、傳播及儲存區塊鏈150之區塊151的功能中之至少一者或一些而非全部。舉例而言,在彼等其他區塊鏈網路上,「節點」可用於指網路實體,該網路實體經組配以創建及發佈區塊151,而非儲存及/或傳播彼等區塊151至其他節點。
甚至更一般而言,上文對「比特幣節點」 104一詞之任何提及皆可用「網路實體」或「網路元件」一詞來替換,其中此實體/元件經組配以執行創建、發佈、傳播及儲存區塊之角色中之一些或全部。此網路實體/元件之功能可以上文參考區塊鏈節點104所描述之相同方式實施於硬體中。
已依據實施工作量證明共識機制以保護底層區塊鏈之區塊鏈網路描述了一些實施例。然而,工作量證明僅為一種類型之共識機制且在一般實施例中可使用任何類型之合適共識機制,諸如權益證明、委託權益證明、容量證明或經過時間證明。作為特定實例,權益證明使用隨機化程序以判定哪一區塊鏈節點104有機會產生下一區塊151。所選擇節點常常被稱作驗核者。區塊鏈節點可將其符記鎖定一段時間以便有機會成為驗核者。通常,在最長時段內鎖定最大權益之節點最有機會成為下一驗核者。
應瞭解,已僅作為實例來描述以上實施例。更一般而言,可提供根據以下陳述項中之任何一或多者的方法、設備或程式。
陳述項1。    一種用於證明資料 之所有權及/或擁有權的電腦實施方法,該方法包含:基於秘密值 及資料 產生資料承諾值;產生與指明驗證者相關聯之質詢解決方案 ,其中該質詢解決方案 為提供秘密值 之知識的零知識證明;以及使資料 、質詢解決方案 及資料承諾值可用於指明驗證者;其中秘密值 不為指明驗證者所知或不可用於指明驗證者。
陳述項2。    如陳述項1之方法,其中產生與指明驗證者相關聯之質詢解決方案 的步驟包含產生與指明驗證者相關聯之驗證者承諾值,其中質詢解決方案 包含驗證者承諾值。
陳述項3。    如前述陳述項中任一項之方法,其中該方法進一步包含自指明驗證者接收與指明驗證者相關聯之驗證者承諾金鑰,其中與指明驗證者相關聯之零知識證明係基於驗證者承諾金鑰而產生。
陳述項4。    如前述陳述項中任一項之方法,其中該方法進一步包含產生資料承諾值之雜湊以及使資料承諾值之雜湊可用於指明驗證者。
陳述項5。    如陳述項4之方法,其中該方法進一步包含:產生證明區塊鏈交易,當儲存於區塊鏈上時,該證明區塊鏈交易使資料承諾值之雜湊可用;以及使證明區塊鏈交易可用於區塊鏈之一或多個節點。
陳述項6。    如前述陳述項中任一項之方法,其中該資料承諾值係基於資料所有者承諾金鑰而導出。
陳述項7。    如前述陳述項中任一項之方法,其中該方法進一步包含:將資料承諾值及資料 提供至公證人;以及自公證人接收資料之經簽章版本。
陳述項8。    如陳述項7之方法,其中資料之經簽章版本係藉由對資料承諾值進行簽章而產生。
陳述項9。    如陳述項7之方法,其中資料之經簽章版本係藉由對資料承諾值之雜湊進行簽章而產生,其中資料承諾值之雜湊係自公證人接收。
陳述項10。  如陳述項7之方法,其中該方法進一步包含產生公證區塊鏈交易,當儲存於區塊鏈上時,該公證區塊鏈交易使自公證人接收到之資料的經簽章版本可用。
陳述項11。  如陳述項9之方法,其中該方法進一步包含產生公證區塊鏈交易,當儲存於區塊鏈上時,該公證區塊鏈交易使自公證人接收到之資料承諾值的雜湊可用。
陳述項12。  如陳述項1至7中任一項之方法,其中該方法由公證人實施,該方法進一步包含:自資料 之資料所有者接收資料 ;以及產生與資料 相關聯之簽章。
陳述項13。  如陳述項12之方法,當依附於陳述項4時,其中該方法進一步包含:自指明驗證者接收陷阱門證明,其中該陷阱門證明為證明陷阱門值之知識的非互動式零知識證明,其中驗證者承諾金鑰包含第一橢圓曲線點及第二橢圓曲線點,其中該陷阱門值定義驗證者承諾金鑰之第一橢圓曲線點與第二橢圓曲線點之間的關係;以及基於驗證者承諾金鑰驗證陷阱門證明;其中若陷阱門證明經驗證,則公證人使驗證者承諾值及資料承諾值之版本可用於指明驗證者。
陳述項14。  如陳述項12之方法,當依附於陳述項3時,其中該方法進一步包含:接收驗證者承諾金鑰之經簽章版本;以及驗證驗證者承諾金鑰之經簽章版本已由受信任陷阱門產生者進行簽章,其中該受信任陷阱門產生者產生經簽章對,該經簽章對包含各自藉由受信任陷阱門產生者進行簽章之驗證者承諾金鑰之經簽章版本及經簽章陷阱門值,其中該驗證者承諾金鑰包含第一橢圓曲線點及第二橢圓曲線點,其中該陷阱門值定義驗證者承諾金鑰之第一橢圓曲線點與第二橢圓曲線點之間的關係;其中若經簽章版本經驗證,則公證人使驗證者承諾值及資料承諾值之版本可用於指明驗證者。
陳述項15。  一種藉由指明驗證者驗證資料 之電腦實施方法,該方法包含:獲得:資料 ;資料承諾值,其中該資料承諾值係基於資料 及秘密值 產生,其中該秘密值 對於指明驗證者為未知的;以及與指明驗證者相關聯之質詢解決方案 ,其中該質詢解決方案 為證明秘密值 之知識的零知識證明;以及檢查質詢解決方案 是否與指明驗證者相關聯;以及基於質詢解決方案 驗證基於資料 之資料承諾值。
陳述項16。  如陳述項15之方法,其中與指明驗證者相關聯之質詢解決方案 包含與指明驗證者相關聯之目標驗證者承諾值,其中檢查質詢解決方案 是否與指明驗證者相關聯之步驟包含產生候選驗證者承諾值以及將候選驗證者承諾值與目標驗證者承諾值進行比較,其中若候選驗證者承諾值與目標驗證者承諾值相等,則質詢解決方案 與指明驗證者相關聯。
陳述項17。  如陳述項16之方法,其中該方法進一步包含:產生與指明驗證者相關聯之驗證者承諾金鑰;以及將驗證者承諾金鑰傳輸至驗證者承諾值之產生者,其中目標驗證者承諾值係基於驗證者承諾金鑰而產生。
陳述項18。  如陳述項17之方法,其中驗證者承諾金鑰係與對資料承諾值之請求一起傳輸。
陳述項19。  如陳述項15至18中任一項之方法,其中該方法進一步包含:獲得資料承諾值之目標雜湊;產生資料承諾值之候選雜湊以及將候選雜湊與資料承諾值之目標雜湊進行比較,其中若候選雜湊匹配目標雜湊,則資料 經驗證。
陳述項20。  如陳述項15至18中任一項之方法,其中資料承諾值之目標雜湊係自儲存於區塊鏈上之證明區塊鏈交易獲得。
陳述項21。  如陳述項15至20中任一項之方法,其中該方法進一步包含獲得資料 之經簽章版本以及驗證資料 之經簽章版本。
陳述項22。  如陳述項21之方法,其中資料 之經簽章版本係自儲存於區塊鏈上之區塊鏈交易獲得。
陳述項23。  如陳述項20之方法,當依附於陳述項17或陳述項18時,其中資料承諾值之目標雜湊係與驗證者承諾金鑰一起傳輸至驗證者承諾值之產生者。
陳述項24。  如陳述項17或依附於其之任何陳述項之方法,其中該方法進一步包含:產生陷阱門證明,其中該陷阱門證明為證明陷阱門值之知識的非互動式零知識證明,其中驗證者承諾金鑰包含第一橢圓曲線點及第二橢圓曲線點,其中該陷阱門值定義驗證者承諾金鑰之第一橢圓曲線點與第二橢圓曲線點之間的關係;將陷阱門證明傳輸至公證人,其中該公證人為驗證者承諾值之產生者;以及自公證人接收目標驗證者承諾值。
陳述項25。  一種電腦裝備,其包含:記憶體,其包含一或多個記憶體單元;以及處理設備,其包含一或多個處理單元,其中該記憶體儲存經配置以在處理設備上運行之程式碼,該程式碼經組配以便在運行於處理設備上時使處理設備執行如陳述項1至24中任一項之方法。
陳述項26。  一種電腦程式,其體現於電腦可讀儲存器上且經組配以便在運行於一或多個處理器上時執行如陳述項1至24中任一項之方法。
100:系統 101:封包交換網路 102:電腦終端機/電腦裝備 102a,102b:電腦裝備/裝置 103:使用者/給定方/代理 103a:使用者/實體/愛麗絲/第一方/資料所有者 103b:新使用者/實體/鮑勃/第二方 103c:第三(隱藏)驗證者查理 104:第一區塊鏈節點/比特幣節點 105,105a,105b:用戶端應用程式/軟體/用戶端 106:分散式或區塊鏈網路/同級間(P2P)網路/比特幣網路 107:旁側通道 150:比特幣區塊鏈/區塊鏈節點 151:資料區塊/新有效區塊/先前創建區塊/最新區塊 151n-1:先前創建區塊 151n:新區塊 152:先前交易/原始交易/規則(非產生)交易/給定交易/新經驗核交易 152i:先前交易 152j:目前交易/新接收交易/後繼交易 153:起源區塊(Gb) 154:有序集合/有序池 155:區塊指標 201:標頭 202:輸入/輸入欄位 203:輸出欄位/未支出交易輸出 502:公證人
為了輔助理解本揭露內容之實施例且展示此等實施例可如何付諸實施,僅作為實例參看附圖,在附圖中: 圖1為用於實施區塊鏈之系統的示意性方塊圖, 圖2示意性地繪示可記錄於區塊鏈中之交易的一些實例, 圖3展示用於對資料私密地加時戳之例示性方法, 圖4示意性地繪示多方之間的資料傳送, 圖5a展示用於公證資料之例示性方法, 圖5b展示用於驗證經公證資料之例示性方法, 圖6示意性地繪示受信任第三方對資料之公證,及 圖7展示用於向公證人註冊承諾金鑰之例示性方法。
101:封包交換網路
102a,102b:電腦裝備/裝置
103a:使用者/實體/愛麗絲/第一方/資料所有者
103b:新使用者/實體/鮑勃/第二方
104:第一區塊鏈節點/比特幣節點
105a,105b:用戶端應用程式/軟體/用戶端
106:分散式或區塊鏈網路/同級間(P2P)網路/比特幣網路
107:旁側通道
150:比特幣區塊鏈/區塊鏈節點
151n-1:先前創建區塊
151n:新區塊
152:先前交易/原始交易/規則(非產生)交易/給定交易/新經驗核交易
152i:先前交易
152j:目前交易/新接收交易/後繼交易
153:起源區塊(Gb)
154:有序集合/有序池
155:區塊指標

Claims (26)

  1. 一種用於證明資料 之所有權及/或擁有權的電腦實施方法,該方法包含: 基於一秘密值 及該資料 來產生一資料承諾值; 產生與一指明驗證者相關聯之一質詢解決方案 ,其中該質詢解決方案 為證明該秘密值 之知識的一零知識證明;以及 使該資料 、該質詢解決方案 及該資料承諾值可用於該指明驗證者; 其中該秘密值 不為該指明驗證者所知或不可用於該指明驗證者。
  2. 如請求項1之方法,其中產生與該指明驗證者相關聯之該質詢解決方案 的步驟包含產生與該指明驗證者相關聯之一驗證者承諾值,其中該質詢解決方案 包含該驗證者承諾值。
  3. 如前述請求項中任一項之方法,其中該方法進一步包含自該指明驗證者接收與該指明驗證者相關聯之一驗證者承諾金鑰,其中與該指明驗證者相關聯之該零知識證明係基於該驗證者承諾金鑰而產生。
  4. 如前述請求項中任一項之方法,其中該方法進一步包含產生該資料承諾值之一雜湊以及使該資料承諾值之該雜湊可用於該指明驗證者。
  5. 如請求項4之方法,其中該方法進一步包含: 產生一證明區塊鏈交易,當儲存於一區塊鏈上時,該證明區塊鏈交易使該資料承諾值之該雜湊可用;以及 致使該證明區塊鏈交易可用於該區塊鏈之一或多個節點。
  6. 如前述請求項中任一項之方法,其中該資料承諾值係基於一資料所有者承諾金鑰而導出。
  7. 如前述請求項中任一項之方法,其中該方法進一步包含: 將該資料承諾值及該資料 提供至一公證人;以及 自該公證人接收該資料之一經簽章版本。
  8. 如請求項7之方法,其中該資料之該經簽章版本係藉由對該資料承諾值進行簽章而產生。
  9. 如請求項7之方法,其中該資料之該經簽章版本係藉由對該資料承諾值之一雜湊進行簽章而產生,其中該資料承諾值之該雜湊係自該公證人接收。
  10. 如請求項7之方法,其中該方法進一步包含產生一公證區塊鏈交易,當儲存於該區塊鏈上時,該公證區塊鏈交易使自該公證人所接收之該資料的該經簽章版本可用。
  11. 如請求項9之方法,其中該方法進一步包含產生一公證區塊鏈交易,當儲存於該區塊鏈上時,該公證區塊鏈交易使自該公證人所接收之該資料承諾值的該雜湊可用。
  12. 如請求項1至7中任一項之方法,其中該方法係由一公證人所實施,該方法進一步包含: 自該資料 之一資料所有者接收該資料 ;以及 產生與該資料 相關聯之一簽章。
  13. 如請求項12之方法,當依附於請求項4時,其中該方法進一步包含: 自該指明驗證者接收一陷阱門證明,其中該陷阱門證明為證明一陷阱門值之知識的一非互動式零知識證明,其中該驗證者承諾金鑰包含一第一橢圓曲線點及一第二橢圓曲線點,其中該陷阱門值定義該驗證者承諾金鑰之該第一橢圓曲線點與該第二橢圓曲線點之間的一關係;以及 基於該驗證者承諾金鑰來驗證該陷阱門證明; 其中若該陷阱門證明係經驗證,則該公證人使該驗證者承諾值及該資料承諾值之版本可用於該指明驗證者。
  14. 如請求項12之方法,當依附於請求項3時,其中該方法進一步包含: 接收該驗證者承諾金鑰之一經簽章版本;以及 驗證該驗證者承諾金鑰之該經簽章版本已由一受信任陷阱門產生者進行簽章,其中該受信任陷阱門產生者產生一經簽章對,該經簽章對包含各自藉由該受信任陷阱門產生者進行簽章之該驗證者承諾金鑰之該經簽章版本及一經簽章陷阱門值,其中該驗證者承諾金鑰包含一第一橢圓曲線點及一第二橢圓曲線點,其中該陷阱門值定義該驗證者承諾金鑰之該第一橢圓曲線點與該第二橢圓曲線點之間的一關係; 其中若該經簽章版本經驗證,則該公證人使該驗證者承諾值及該資料承諾值之版本可用於該指明驗證者。
  15. 一種藉由一指明驗證者驗證資料 之電腦實施方法,該方法包含: 獲得: 該資料 ; 一資料承諾值,其中該資料承諾值係基於該資料 及一秘密值 而產生,其中該秘密值 對於該指明驗證者為未知的;以及 與該指明驗證者相關聯之一質詢解決方案 ,其中該質詢解決方案 為證明該秘密值 之知識的一零知識證明; 檢查該質詢解決方案 是否與該指明驗證者相關聯;以及 基於該質詢解決方案 來驗證基於資料 之該資料承諾值。
  16. 如請求項15之方法,其中與該指明驗證者相關聯之該質詢解決方案 包含與該指明驗證者相關聯之一目標驗證者承諾值,其中檢查該質詢解決方案 是否與該指明驗證者相關聯之步驟包含產生一候選驗證者承諾值以及將該候選驗證者承諾值與該目標驗證者承諾值進行比較,其中若該候選驗證者承諾值與該目標驗證者承諾值相等,則該質詢解決方案 係與該指明驗證者相關聯。
  17. 如請求項16之方法,其中該方法進一步包含: 產生與該指明驗證者相關聯之一驗證者承諾金鑰;以及 將該驗證者承諾金鑰傳輸至該驗證者承諾值之一產生者,其中該目標驗證者承諾值係基於該驗證者承諾金鑰而產生。
  18. 如請求項17之方法,其中該驗證者承諾金鑰係與針對該資料承諾值之一請求一起傳輸。
  19. 如請求項15至18中任一項之方法,其中該方法進一步包含: 獲得該資料承諾值之一目標雜湊; 產生該資料承諾值之一候選雜湊以及將該候選雜湊與該資料承諾值之該目標雜湊進行比較,其中若該候選雜湊匹配該目標雜湊,則該資料 被驗證。
  20. 如請求項15至18中任一項之方法,其中該資料承諾值之目標雜湊係自儲存於一區塊鏈上之一證明區塊鏈交易所獲得。
  21. 如請求項15至20中任一項之方法,其中該方法進一步包含獲得該資料 之一經簽章版本以及驗證該資料 之該經簽章版本。
  22. 如請求項21之方法,其中該資料 之該經簽章版本係自儲存於一區塊鏈上之一區塊鏈交易所獲得。
  23. 如請求項20之方法,當依附於請求項17或請求項18時,其中該資料承諾值之該目標雜湊係與該驗證者承諾金鑰一起傳輸至該驗證者承諾值之該產生者。
  24. 如請求項17或依附於其之任何請求項之方法,其中該方法進一步包含: 產生一陷阱門證明,其中該陷阱門證明為證明一陷阱門值之知識的一非互動式零知識證明,其中該驗證者承諾金鑰包含一第一橢圓曲線點及一第二橢圓曲線點,其中該陷阱門值定義該驗證者承諾金鑰之該第一橢圓曲線點與該第二橢圓曲線點之間的一關係; 將該陷阱門證明傳輸至一公證人,其中該公證人為該驗證者承諾值之該產生者;以及 自該公證人接收該目標驗證者承諾值。
  25. 一種電腦裝備,其包含: 記憶體,其包含一或多個記憶體單元;以及 處理設備,其包含一或多個處理單元,其中該記憶體儲存經配置以在該處理設備上運行之程式碼,該程式碼係經組配以便在運行於該處理設備上時致使該處理設備執行如請求項1至24中任一項之方法。
  26. 一種電腦程式,其體現於電腦可讀儲存器上且經組配以便在運行於一或多個處理器上時執行如請求項1至24中任一項之方法。
TW112124142A 2022-06-29 2023-06-28 所有權證明之技術 TW202416296A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB2209496.5 2022-06-29

Publications (1)

Publication Number Publication Date
TW202416296A true TW202416296A (zh) 2024-04-16

Family

ID=

Similar Documents

Publication Publication Date Title
EP3966998B1 (en) Hash function attacks
US20220337427A1 (en) Cryptographically linked identities
JP2023515368A (ja) ブロックチェーンネットワークと共に使用される証明サービス
JP2022533777A (ja) プルーフ・オブ・ワーク
KR20220012347A (ko) 지식 증명
CN116113921A (zh) 区块链上的伪随机选择
US20230308292A1 (en) Digital signatures
US20240064020A1 (en) Blocking sensitive data
EP3973661B1 (en) Knowledge proof
TW202316844A (zh) 鎖定腳本傳播技術
TW202416296A (zh) 所有權證明之技術
TW202402009A (zh) 所有權證明之技術
WO2024002756A1 (en) Proof of ownership
US20230224150A1 (en) Bio-locked seed
WO2024041866A1 (en) Blockchain transaction
WO2024052065A1 (en) Determining shared secrets using a blockchain
WO2024041862A1 (en) Blockchain transaction
TW202345545A (zh) 用於證明與驗證子金鑰真實性之技術
WO2023156105A1 (en) Blockchain transaction
WO2023227529A1 (en) Hash masks
CN117941317A (zh) 生成区块链事务
WO2023208832A1 (en) Blockchain transaction
WO2023156101A1 (en) Blockchain transaction
WO2024061617A1 (en) Atomic swap token trades
WO2024110282A1 (en) Access control using transactions