TW202304171A - 用於以區塊鏈實施之資料應用程式中簽章驗證的改良方法與系統 - Google Patents

用於以區塊鏈實施之資料應用程式中簽章驗證的改良方法與系統 Download PDF

Info

Publication number
TW202304171A
TW202304171A TW111111417A TW111111417A TW202304171A TW 202304171 A TW202304171 A TW 202304171A TW 111111417 A TW111111417 A TW 111111417A TW 111111417 A TW111111417 A TW 111111417A TW 202304171 A TW202304171 A TW 202304171A
Authority
TW
Taiwan
Prior art keywords
transaction
blockchain
signature
data
transactions
Prior art date
Application number
TW111111417A
Other languages
English (en)
Inventor
克瑞格 S 萊特
傑克 戴維斯
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 TW202304171A publication Critical patent/TW202304171A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/68Special signature format, e.g. XML format

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

實施例提供關於面向資料之區塊鏈應用程式而使用的驗證方法及系統。相比於區塊鏈協定中之習知簽章驗證,本文中所揭示之實施例係僅使用在一單個交易內提供之資料在該交易內就地執行。因此,不依賴於自其他交易提供之簽章,且可防止諸如重放攻擊之潛在惡意探索。在一實施例中,此可藉由將該簽章置放於該交易之輸出中而非鎖定指令碼中來達成。

Description

用於以區塊鏈實施之資料應用程式中簽章驗證的改良方法與系統
發明領域
本揭露內容係關於安全及驗證方法及系統,且特定而言,係關於針對區塊鏈交易執行之安全及驗證操作。
發明背景
區塊鏈係指一種形式之分散式資料結構,其中在分散式同級間(P2P)網路(在下文被稱作「區塊鏈網路」)中之多個節點中之各者處維護區塊鏈之複本且廣泛地公佈該等複本。區塊鏈包含資料區塊鏈,其中各區塊包含一或多個交易。除所謂的「比特幣基地(coinbase)交易」以外,各交易亦指回至序列中之先前交易,該序列可橫跨一或多個區塊,追溯至一或多個coinbase交易。下文進一步論述coinbase交易。經提交至區塊鏈網路之交易包括於新區塊中。新區塊係藉由常常被稱作「挖掘(mining)」之程序創建,該程序涉及多個節點中之各者競爭執行「工作量證明」,亦即,基於等待包括於區塊鏈之新區塊中的有序及經驗核之未決交易之所定義集合的表示而解決密碼編譯難題。應注意,可在一些節點處修剪區塊鏈,且可經由僅公佈區塊標頭來達成區塊之公佈。
區塊鏈中之交易可用於以下目的中之一或多者:傳送數位資產(亦即,數個數位代幣);對虛擬化分類帳或註冊表中之一組條目進行排序;接收及處理時戳條目;及/或按時間對索引指標進行排序。亦可利用區塊鏈以便對區塊鏈之上的額外功能性進行分層。舉例而言,區塊鏈協定可允許將額外使用者資料或資料之索引儲存於交易中。對於可儲存於單個交易內之最大資料容量不存在預先指定之限制,且因此可併入愈來愈複雜之資料。舉例而言,此可用於將電子文件或音訊或視訊資料儲存於區塊鏈中。
區塊鏈網路之節點(其常常被稱作「挖掘者」)執行稍後將更詳細描述之分散式交易註冊及驗證程序。總體而言,在此程序期間,節點驗核交易且將其插入至區塊範本中,針對該區塊範本,該等交易嘗試識別有效的工作量證明解決方案。一旦找到有效解決方案,便將新區塊傳播至網路之其他節點,因此使得各節點能夠在區塊鏈上記錄新區塊。為了使交易記錄於區塊鏈中,使用者(例如,區塊鏈用戶端應用程式)將交易發送至網路之節點中之一者以供傳播。接收交易之節點可競相尋找將經驗核交易併入至新區塊中之工作量證明解決方案。各節點經組配以實行同一節點協定,其將包括交易有效之一或多個條件。無效交易將不被傳播或併入至區塊中。假定交易經驗核且藉此經接受至區塊鏈上,則交易(包括任何使用者資料)將因此作為不可變的公用記錄在區塊鏈網路中之節點中之各者處保持註冊及編索引。
成功地解決工作量證明難題以創建最新區塊之節點通常獲得被稱為「coinbase交易」之新交易的獎勵,該新交易分發一定金額之數位資產,亦即,數個代幣。對無效交易之偵測及拒絕係藉由競爭節點之動作實行,該等競爭節點充當網路之代理且經激勵以報告及阻止非法行為。資訊之廣泛公佈允許使用者連續地稽核節點之效能。對僅區塊標頭之公佈允許參與者確保區塊鏈之持續完整性。
在「基於輸出」之模型(有時被稱作基於UTXO之模型)中,給定交易之資料結構包含一或多個輸入及一或多個輸出。任何可支出輸出皆包含一元素,該元素指定可自進行中之交易序列導出的數位資產之金額。可支出輸出有時被稱作UTXO (「未支出交易輸出」)。該輸出可進一步包含指定用於未來兌換該輸出之條件的鎖定指令碼。鎖定指令碼係定義驗核及轉移數位代幣或資產所必需之條件的述詞。交易(除coinbase交易以外)之各輸入包含指向先前交易中之此輸出的指標(亦即,參考),且可進一步包含用於解除鎖定所指向輸出之鎖定指令碼的解除鎖定指令碼。因此,考慮一對交易,將其稱為第一交易及第二交易(或「目標」交易)。第一交易包含至少一個輸出,該至少一個輸出指定數位資產之金額且包含定義解除鎖定該輸出之一或多個條件的鎖定指令碼。第二目標交易包含至少一個輸入,該至少一個輸入包含指向第一交易之輸出的指標及用於解除鎖定第一交易之輸出的解除鎖定指令碼。
在此模型中,當將第二目標交易發送至區塊鏈網路以在區塊鏈中傳播及記錄時,在各節點處應用之有效性準則中之一者將為解除鎖定指令碼符合第一交易之鎖定指令碼中所定義的所有一或多個條件。另一準則將為第一交易之輸出尚未由另一較早有效交易兌換。根據此等條件中之任一者發現目標交易為無效的任何節點將不會傳播該目標交易(作為有效交易,但可能註冊無效交易),亦不將該目標交易包括於待記錄於區塊鏈中之新區塊中。
交易模型之替代類型為基於帳戶之模型。在此狀況下,各交易皆不會藉由返回參考過去交易序列中之先前交易之UTXO來定義待轉移之金額,而是藉由參考絕對帳戶餘額。所有帳戶之當前狀態由節點與區塊鏈分離地儲存,且不斷更新。
如上文所提及,此等區塊鏈模型及其相關聯協定可用以形成基本的底層平台,複雜的應用程式及系統可建置於該平台上以提供額外功能性。結果,區塊鏈實施之技術可用以提供更廣泛範圍之技術益處,而不僅僅係密碼貨幣之轉移。已開發出眾多較高層級應用程式,其利用區塊鏈及其相關聯協定作為底層機制,該機制使得能夠儲存及轉移資料及資源,諸如代幣化資產。一個此實例為「元網路」,其為習知網際網路提供基於區塊鏈之替代方案以用於儲存、結構化、編索引及共用資料。元網路協定位於底層區塊鏈網路及相關聯協定之上(https://bitcoinsv.io/wp-content/uploads/2020/10/The-Metanet-Technical-Summary-v1.0.pdf)。
此類區塊鏈實施之技術需要確保其正轉移及處理之資料僅能由授權方存取,且其不會受到潛在安全漏洞或惡意第三方的惡意探索。因此,需要可由建置於區塊鏈上之面向資料之應用程式及系統利用的安全、靈活且高效的驗證技術。
發明概要
根據本文中所揭示之一個態樣,提供一種簽章驗證技術,其可供實施於底層區塊鏈之上的資料應用程式利用。此類應用程式常常將資料儲存於區塊鏈上之交易內,且與彼資料相關之簽章驗證對於確保其完整性且防止惡意探索及未授權活動為必需的。然而,儘管簽章驗證係在交易層級根據底層區塊鏈之協定執行,但此機制有時不足以在資料應用程式層級進行驗證,此係因為資料常常儲存於交易內之方式且因為底層區塊鏈協定需要驗證經簽章訊息,該訊息包括在交易之外提供的資料。此外,區塊鏈協定通常需要使用特定簽章方案,該方案在某些面向資料之實施方案中可為限制性的或非所要的。
本揭露內容之實施例藉由使用比特幣指令碼處理引擎將由資料應用程式使用之簽章自輸入之解除鎖定指令碼重定位至交易中別處(諸如,輸出)及移除對待由比特幣網路之節點驗核的簽章之要求來克服至少此等技術挑戰。在一些實施例中,簽章可移動至輸出之鎖定指令碼,可能在終止評估諸如OP_RETURN之指令碼的命令之後。該簽章可藉由對訊息進行簽章來提供,該訊息包括唯一地識別其所位於之交易的資料,因此使簽章與交易繫結或相關聯且使得能夠避免潛在的惡意探索。此外,藉由提供不同於底層區塊鏈協定之簽章驗證機制的驗證技術,可避免與使用特定簽章方案相關之限制。亦可提高效率,此係因為驗證不需要諸如處理及能量要求之挖掘者資源。
較佳實施例之詳細說明 實例系統概述
圖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,比如Alice,希望發送新交易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包括於資料欄位中,則此資料欄位可指回至先前交易。 基於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)。實情為,由給定交易152之輸入202所指向的總金額與給定交易之輸出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之條件不一定包含鑑認簽章。更一般而言,指令碼處理語言可用於定義任何一或多個條件。因此,「鎖定指令碼」及「解除鎖定指令碼」二個更一般的詞可為較佳的。 旁側通道
如圖1中所展示,愛麗絲及鮑勃之電腦裝備102a、120b中之各者上的用戶端應用程式可分別包含額外通訊功能性。此額外功能性使得愛麗絲103a能夠與鮑勃103b建立分離的旁側通道107 (在任一方或第三方之推動下)。旁側通道107使得能夠與區塊鏈網路分離地進行資料交換。此通訊有時被稱作「鏈外」通訊。舉例而言,此可用於在愛麗絲與鮑勃之間交換交易152,而無需(尚未)將交易註冊至區塊鏈網路106上或使其進入鏈150,直至多方中之一者選擇將其廣播至網路106。以此方式共用交易有時被稱作共用「交易範本」。交易範本可能缺乏形成完整交易所需之一或多個輸入及/或輸出。替代地或另外,旁側通道107可用於交換任何其他交易相關資料,諸如金鑰、協商的金額或條款、資料內容等。
可經由與區塊鏈網路106相同之封包交換網路101建立旁側通道107。替代地或另外,可經由諸如行動蜂巢式網路之不同網路或諸如區域無線網路之區域網路或甚至愛麗絲之裝置102a與鮑勃之裝置102b之間的直接有線或無線鏈路來建立旁側通道301。通常,在本文中任何位置處被提及之旁側通道107可包含經由一或多個網路連接技術或通訊媒體之任何一或多個鏈路,以用於「鏈外」(亦即,與區塊鏈網路106分離地)交換資料。在使用多於一個鏈路的情況下,鏈外鏈路之集束或集合作為整體可被稱作旁側通道107。因此,應注意,若據稱愛麗絲及鮑勃經由旁側通道107交換某些資訊或資料片段或其類似者,則此未必暗示必須經由完全相同的鏈路或甚至相同類型之網路來發送所有此等資料片段。 用戶端軟體
圖3A示出用於實施本發明所揭示方案之實施例的用戶端應用程式105之實例實施方案。用戶端應用程式105包含交易引擎401及使用者介面(UI)層402。交易引擎401經組配以根據上文所論述且稍後將進一步詳細論述之方案來實施用戶端105之底層的交易相關功能性,諸如制定交易152、經由旁側通道301接收及/或發送交易及/或其他資料,及/或將交易發送至一或多個節點104以經由區塊鏈網路106進行傳播。根據本文中所揭示之實施例,各用戶端105之交易引擎401包含函式403。
UI層402經組配以經由各別使用者之電腦裝備102之使用者輸入/輸出(I/O)構件來呈現使用者介面,包括經由裝備102之使用者輸出構件將資訊輸出至各別使用者103,及經由裝備102之使用者輸入構件自各別使用者103接收回輸入。舉例而言,使用者輸出構件可包含用於提供視覺輸出之一或多個顯示螢幕(觸控式或非觸控式螢幕)、用於提供音訊輸出之一或多個揚聲器,及/或用於提供觸覺輸出之一或多個觸覺輸出裝置等。使用者輸入構件可包含例如以下各者之輸入陣列:一或多個觸控式螢幕(與用於輸出構件之彼/彼等觸控式螢幕相同或不同);一或多個基於游標之裝置,諸如滑鼠、軌跡墊或軌跡球;一或多個麥克風及語音或話音辨識演算法,其用於接收語音或聲音輸入;一或多個基於示意動作之輸入裝置,其用於接收呈手勢或身體示意動作之形式的輸入;或一或多個機械按鈕、開關或操縱桿等。
應注意:雖然本文中之各種功能性可描述為整合至同一用戶端應用程式105中,但此未必為限制性的,且實情為,其可實施於二個或多於二個相異應用程式之套件中,例如一個應用程式為另一應用程式之外掛程式或經由應用程式設計介面(API)介接。舉例而言,交易引擎401之功能性可實施於與UI層402分離之應用程式中,或諸如交易引擎401之給定模組之功能性可在多於一個應用程式之間進行劃分。亦不排除可在比如作業系統層處實施所描述功能性中之一些或全部。在本文中任何位置提及單個或給定應用程式105或其類似者的情況下,應瞭解,此僅作為實例,且更一般而言,所描述功能性可以任何形式之軟體實施。
圖3B提供使用者介面(UI) 500之實例的模型,該使用者介面可由愛麗絲之裝備102a上之用戶端應用程式105a的UI層402呈現。應瞭解,類似UI可由鮑勃之裝備102b或任何其他方之裝備上的用戶端105b呈現。
作為說明,圖3B自愛麗絲之視角展示UI 500。UI 500可包含經由使用者輸出構件呈現為相異UI元素之一或多個UI元素501、502、502。
舉例而言,UI元素可包含一或多個使用者可選擇元素501,其可諸如不同螢幕上按鈕或選單中之不同選項或其類似者。使用者輸入構件經配置以使得使用者103 (在此狀況下為愛麗絲103a)能夠選擇或以其他方式操作選項中之一者,諸如藉由點選或觸碰螢幕上的UI元素,或說出所要選項的名稱(注意:如本文中所使用之「手動」一詞僅意謂與自動相對,且未必限於使用手)。該等選項使得使用者(愛麗絲)能夠。
替代地或另外,UI元素可包含一或多個資料鍵入欄位502,使用者可經由該一或多個資料鍵入欄位。此等資料鍵入欄位經由使用者輸出構件例如在螢幕上呈現,且資料可經由例如鍵盤或觸控式螢幕之使用者輸入構件鍵入至欄位中。替代地,可例如基於語音辨識而口頭接收資料。替代地或另外,UI元素可包含一或多個資訊元素503,其經輸出以將資訊輸出至使用者。例如,可在螢幕上或有聲地呈現此/此等元素。
應瞭解,呈現各種UI元素、選擇選項以及鍵入資料之特定方式並不重要。稍後將更詳細地論述此等UI元素之功能性。亦應瞭解,圖3中所展示之UI 500僅為示意性模型,且實務上,其可包含出於簡明起見而未示出之一或多個其他UI元素。 節點軟體
圖4示出在基於UTXO或基於輸出之模型之實例中的在網路106之各區塊鏈節點104上運行的節點軟體450之實例。應注意,另一實體可運行節點軟體450,而不被分類為網路106上之節點104,亦即,不執行節點104所需的動作。節點軟體450可含有但不限於協定引擎451、指令碼引擎452、堆疊453、應用程式層級決策引擎454,及一或多個區塊鏈相關功能模組455之集合。各節點104可運行節點軟體,該節點軟體含有但不限於所有以下三者:共識模組455C (例如,工作量證明)、傳播模組455P及儲存模組455S (例如,資料庫)。協定引擎401通常經組配以辨識交易152之不同欄位,且根據節點協定處理該等欄位。當接收到具有指向另一先前交易152i (
Figure 02_image001
)之輸出(例如,UTXO)之輸入的交易152j (
Figure 02_image003
)時,協定引擎451接著識別
Figure 02_image003
中之解除鎖定指令碼且將其傳遞至指令碼引擎452。協定引擎451亦基於
Figure 02_image003
之輸入中的指標而識別及擷取
Figure 02_image005
。可在區塊鏈150上公佈
Figure 02_image005
,在此狀況下,協定引擎可自儲存於節點104處之區塊鏈150的區塊151之複本擷取
Figure 02_image005
。替代地,
Figure 02_image005
可能尚未在區塊鏈150上公佈。在彼狀況下,協定引擎451可自藉由節點104維護之未公佈交易的有序集合154擷取
Figure 02_image005
。無論如何,指令碼引擎451皆會識別
Figure 02_image005
之參考輸出中的鎖定指令碼且將此傳遞至指令碼引擎452。
指令碼引擎452因此具有
Figure 02_image005
之鎖定指令碼及來自
Figure 02_image003
之對應輸入的解除鎖定指令碼。舉例而言,圖2中示出標示為
Figure 02_image007
Figure 02_image009
之交易,但此可適用於任一對交易。指令碼引擎452如先前所論述一起運行二個指令碼,其將包括根據正使用之基於堆疊之指令碼處理語言(例如,Script)而將資料置放至堆疊453上及自該堆疊擷取資料。
藉由一起運行該等指令碼,指令碼引擎452判定解除鎖定指令碼是否符合鎖定指令碼中所定義之一或多個準則,亦即,其是否「解除鎖定」包括鎖定指令碼之輸出? 指令碼引擎452將此判定之結果傳回至協定引擎451。若指令碼引擎452判定解除鎖定指令碼符合對應鎖定指令碼中所指定之一或多個準則,則其傳回結果「真」。否則,其傳回結果「假」。
在基於輸出之模型中,來自指令碼引擎452之結果「真」為交易有效條件中之一者。通常,亦存在藉由協定引擎451評估的亦必須符合之一或多個其他協定層級條件;諸如
Figure 02_image003
之輸出中指定之數位資產的總金額不超過由其輸入指向的總金額,及
Figure 02_image005
之所指向輸出尚未由另一有效交易支出。協定引擎451評估來自指令碼引擎452之結果連同一或多個協定層級條件,且其僅在該結果及該等條件皆為真之情況下驗核交易
Figure 02_image003
。協定引擎451將交易是否有效的指示輸出至應用程式層級決策引擎454。僅在確實驗核了
Figure 02_image003
之條件下,決策引擎454才可選擇控制共識模組455C及傳播模組455P二者以執行其關於
Figure 02_image003
之各別區塊鏈相關功能。此包含共識模組455C將
Figure 02_image003
添加至節點之交易的各別有序集合154以用於併入區塊151中,及傳播模組455P將
Figure 02_image003
轉遞至網路106中之另一區塊鏈節點104。任擇地,在實施例中,應用程式層級決策引擎454可在觸發此等功能中之任一者或二者之前應用一或多個額外條件。例如,決策引擎可僅在交易有效且留下足夠交易費用之條件下選擇公佈交易。
亦應注意,本文中之二個詞「真」及「假」未必限於傳回以僅單個二進位數字(位元)之形式表示的結果,但當然為一個可能的實施方案。更一般而言,「真」可指指示成功或肯定結果之任何狀態,且「假」可指指示不成功或非肯定結果之任何狀態。舉例而言,在基於帳戶之模型中,結果「真」可由簽章之隱式協定層級驗核及智慧型合約之額外肯定輸出之組合指示(若二個個別結果為真,則總體結果被視為發信真)。 揭露內容特定材料
如上文所解釋,由各區塊鏈節點(亦即,「挖掘者」)實施之協定需要節點104檢查在新交易152j中供應之密碼編譯簽章是否匹配在先前交易152i中指定且先前交易所需的簽章。在基於輸出之交易協定中。在先前交易中之輸出的鎖定指令碼中提供簽章要求,且在新交易中之輸入的解除鎖定指令碼中提供滿足彼要求之簽章。因此,構成區塊鏈網路之共識機制的挖掘節點104執行驗證服務,且若下一交易之輸入中的簽章不符合指定要求,則拒絕對解除鎖定輸出之任何嘗試。因此,習知驗證程序涉及由二個不同交易分離地提供之資料(訊息),此係因為驗證程序需要三個輸入:訊息、使用私密金鑰產生之簽章,及對應公開金鑰。換言之,用於挖掘者驗核簽章中之訊息係/可在分離交易上劃分。因此,當鎖定輸出時,創建鎖定指令碼,其包括公開金鑰及使用對應私密金鑰產生之簽章。經簽章以產生簽章之資料的部分為包括經鎖定輸出之整個交易資料的雜湊或其部分。在後一狀況下,將1位元組SIGHASH旗標附加至簽章以指示交易資料之哪一部分包括於由私密金鑰進行簽章之雜湊中。
比特幣之SIGHASH演算法藉由將交易分段(被稱為「串列化」)成稱為訊息之資訊塊來達成此情形。此等訊息係使用ECDSA簽章進行簽章且包括於解除鎖定指令碼中。
SIGHASH演算法之關鍵特徵為,當產生經串列化訊息以用於對特定交易輸入進行簽章時,該訊息通常含有在彼輸入中取用的先前輸出點及先前鎖定指令碼。此情形係重要的,此係因為其使簽章與彼特定交易相關,因此防止在不同交易內複製及使用該簽章。
然而,結果為待進行簽章之經串列化訊息通常明確地取決於先前鎖定指令碼。至關重要地,有必要確保此先前鎖定指令碼實際上為先前交易之部分。此可藉由驗證先前鎖定指令碼實際上為原始交易
Figure 02_image011
之部分來達成,該原始交易之雙雜湊產生
Figure 02_image013
將實施於比特幣SV中且資料類型在括號中給出之完整SIGHASH演算法寫成: 1.
Figure 02_image015
中之nVersion (4位元組小端) 2.       所有輸入輸出點之串列化的SHA256d (32位元組雜湊) •若ANYONECANPAY旗標經設定,則此應為32位元組的零。 3.       所有輸入之nSequence的串列化之SHA256d (32位元組雜湊) •若ANYONECANPAY旗標經設定,則此應為32位元組的零。 4.       輸出點被支出(用於交易ID之32位元組+用於索引之4位元組小端) 5.       subScript之以位元組計的長度(大端) 6.       subScript (下文所定義) 7.       以聰為單位之輸出的amount (8位元組小端) 8.       此輸出點之nSequence(4位元組小端) 9.          所有輸出amount及scriptPubKey之串列化的SHA256d。此等係自
Figure 02_image015
中之輸出獲得。 •若SINGLE旗標經設定且輸入索引小於輸出之數目,則此應為具有索引與輸入相同之scriptPubKey的輸出之雙SHA256 •若NONE旗標經設定,則此應為32位元組的零。 10.  交易
Figure 02_image017
之nLocktime (4位元組小端) 11.   簽章之sighash類型(4位元組小端)
上文演算法中之步驟6取決於使用先前解除鎖定指令碼及prevOuts產生之subScript。先前交易之間的關係如下: 「自
Figure 02_image019
創建新的subScript。subScript自最近OP_CODESEPARATOR (恰好在[正執行]之OP_CHECKSIG之前的一者)開始,直至
Figure 02_image019
之末尾。若不存在OP_CODESEPARATOR,則
Figure 02_image019
成為subScript」-參見https://wiki.bitcoinsv.io/index.php/OP_CHECKSIG
此外,在建置於比特幣之上且使用比特幣分類帳作為底層資料層的面向資料之應用程式中,可能需要將簽章應用於應用程式資料(而非交易或輸出)以便驗證彼資料之真確性。舉例而言,若應用程式在鏈上對土地註冊進行公證,則令可信任土地註冊機構或公證人對註冊資料進行簽章為有益的。
出於高效驗證註冊資料之目的,經公證資料及用於真確性之簽章二者均存在於同一鏈上比特幣交易中將為有益的。此係因為其將允許使用者或驗證者獲得一個比特幣交易,且(i)獲得經公證資料並檢查其完整性以及(ii)驗證資料上之簽章以檢查其真確性。
在理想狀況下,用於比特幣上之此類應用程式中的數位簽章應具有三個以下性質: •可就地驗證—簽章應可驗證,僅使用自含有簽章之交易獲得的資料; •此提供效率,此係因為獲得用於驗證程序之輸入需要較少時間及較少資源 •靈活的簽章演算法—簽章應能夠在特用基礎上使用任何簽章演算法(例如,以輔助量子抵抗); •此提供更靈活且通用之解決方案的優點,該解決方案不限於使用特定方案或演算法,而是可替代地選擇使用適合即將到來的任務之特定特性或要求的技術 以及 •不可重放—簽章應僅對一個比特幣交易有效,亦即,最初提供簽章之交易; 此提供增強安全性,從而避免重放惡意探索且防止在其他交易中再使用簽章之優點。
在本揭露內容出現之前,可在比特幣交易中使用簽章滿足此等性質之一者或二者,但不滿足全部三個性質。因此,本揭露內容之實施例提供更通用、高效且安全的配置。出於解釋及對比之目的,提供二個實例狀況(下文狀況1及2),其後接著說明可用以達成所有三個性質之本揭露內容(狀況3)之較佳實施例。 狀況1:指令碼簽章(指令碼)
用於對比特幣交易中之資料進行簽章的習知方式為輸入簽章,該等簽章係在網路上之挖掘者進行交易驗核期間由指令碼執行驗證。簽章置放於後續(消費)交易 TxID 1 之解除鎖定指令碼中以用於對照提供於先前(支出)交易 TxID 0 之鎖定指令碼中的簽章進行驗證。
在此典型情境中,使用上文所描述之比特幣SIGHASH演算法制定由簽章進行簽章的訊息且簽章為利用DER編碼之ECDSA簽章。經簽章之訊息包括來自 TxID 0 之先前鎖定指令碼及輸出值。換言之,此驗證操作需要使用自先前交易提供之資料。此在圖6中示出,其展示稱為
Figure 02_image021
之實例交易,該交易在其解除鎖定指令碼中含有輸入簽章
Figure 02_image023
。用作訊息且經數位簽章之 TxID 0 (先前交易)及
Figure 02_image021
的部分在圖6中展示於虛線內。
SIGHASH旗標迫使簽章對先前交易之部分進行簽章的事實意謂此等交易無法僅藉由使用僅自TxID1內可獲得或可導出之資料就地驗證。亦必須提取TxID0之資料之至少部分且可能需要對其進行完整性檢查。因此,輸入簽章無法滿足上文的性質1。此外,該等簽章亦限於經DER-編碼ECDSA簽章,此係因為其由網路之挖掘者正實施的底層區塊鏈協定規定,此意謂其無法滿足性質2。
因此,狀況1僅達成性質3,此係因為在比特幣指令碼中驗證簽章且區塊鏈之交易驗核機制將不允許以此方式重放簽章。 狀況2:非指令碼簽章(資料)
在此狀況下,將簽章作為額外資料添加至輸出。相較於狀況1,簽章現已自輸入之解除鎖定指令碼移除且移動至輸出中。雖然簽章對輸出中之其他資料進行簽章,但簽章自身在交易驗核期間從未由挖掘者驗證。
可就地驗證簽章,此係因為經簽章之訊息完全含於Tx1自身內且在Tx1自身內可導出/可獲得。由於挖掘者未檢查簽章,因此其亦可使用任何數位簽章演算法及靈活編碼格式。
然而,因為此等簽章僅為添加至交易之資料,所以該等簽章可複製及黏貼至其他交易中以重放。
因此,此等類型之簽章僅達成性質1及2。為了說明此狀況,圖7展示含有輸出簽章
Figure 02_image025
之實例交易
Figure 02_image027
。經簽章訊息展示於虛線內。 狀況3:不可重放簽章(資料)
吾人提議根據本揭露內容之實施例的第三狀況,其可被稱為「不可重放簽章」。
如同狀況2,此等簽章包含非指令碼簽章,且因此簽章已自狀況1之輸入的解除鎖定指令碼移除且移動至輸出中。此外,狀況3需要經簽章訊息包括將其唯一地繫結至提供其之交易的資料之一部分。在一實施例中,資料之該部分為含於交易內之一或多個輸出點。將唯一交易識別資料包括於訊息中意謂簽章可僅相對於Tx1進行驗證,且因此不可在後續交易中重放。此係因為由Tx1取用之各輸出點對於Tx1為唯一的。因此,此等簽章滿足性質3。
因為此等簽章亦為非指令碼簽章,所以其亦滿足性質1及2。因此,此第三狀況滿足用於資料應用程式層級處之簽章驗證的鏈上數位簽章所需的所有三個性質。為了說明,圖8展示含有輸出簽章
Figure 02_image029
之實例交易
Figure 02_image031
。經簽章訊息展示於虛線內。 實例使用狀況-元網路交易
出於說明之目的且參看圖5,吾人現提供展示與特定實施方案一起使用之實施例的情境。在此情境中,底層區塊鏈為比特幣區塊鏈,且根據大體上如揭示於WO 2020/109908中之元網路協定形成面向資料之應用程式,該案之內容以其全文併入本文中。與元網路協定相關之其他資訊可見於https://wiki.bitcoinsv.io/index.php/The_Metanet。更詳細的解釋亦可見於下文題為「元網路之更多細節」之章節中。
然而,總體而言,元網路為應用層協定,其為網際網路提供基於區塊鏈之替代方案以用於儲存、結構化、存取及編索引資料。資料儲存於吾人將稱作節點之區塊鏈上的交易中(或自交易參考)。各元網路節點包括用以指示其係根據元網路協定形成且可因此由基於元網路之實施方案識別的旗標。各元網路節點亦包括公開金鑰(DPK)及交易ID (DTxID),在該公開金鑰及該交易ID係除根據底層區塊鏈(比特幣)協定所需之公開金鑰及交易ID以外提供的且與該等公開金鑰及交易ID分離的意義上,吾人將該公開金鑰及該交易ID稱為「任意的」。元網路節點之DPK及DTxID可組合使用以充當元網路內之資料之給定部分的索引或位址,且使得能夠建構形成含資料節點之圖狀結構的相關聯交易之邏輯階層。出於說明之目的,圖5中展示此圖之極簡單實例,但應瞭解,可創建複雜得多的結構。圖中之節點經由邊被結構化成更高及更低的階層式層級。為了自親代節點501創建子代節點502 (亦即,分別為較低層級節點及較高層級節點),使用自親代節點之金鑰導出的有效簽章創建該等節點之間的邊。在一些實施方案中,子代可具有一或多個親代。
顯然,在元網路實施方案(以及其他區塊鏈實施之資料應用程式)中,能夠驗證給定節點/交易之簽章及公開金鑰係重要的。在上文狀況1中所說明之基於挖掘者之習知驗證中,簽章位於親代節點內之輸入的解除鎖定指令碼中。
然而,使用挖掘者驗證方法,此需要來自先前交易之輸出的鎖定指令碼之資料,該資料可能不可用於驗證實體。若讀取器/使用者/應用程式自身未明確地執行或觸發挖掘者驗證方法,則將有可能插入無效簽章至節點之交易的解除鎖定指令碼中,且區塊鏈網路上之挖掘者仍將此簽章視為有效的。此係因為解除鎖定指令碼之形式未必暗示先前解除鎖定指令碼之特定形式(亦即,尤其在BSV之Genesis升級之後,其中「標準」指令碼類型之概念被廢止)。
因此,元網路節點中之解除鎖定指令碼表面上為有效簽章及公開金鑰,但未必如此,且將需要使用挖掘者驗證方法進行顯式檢查來確認。若此顯式檢查未進行,則表面上的簽章(及公開金鑰)可能無效,或僅為經格式化成看似簽章(及公開金鑰)之隨機的任何資料。結果,可創建看似有效子代節點之表面上的元網路子代節點,此係因為其符合區塊鏈之語法要求,但不包括來自親代之有效簽章。此將未必會被挖掘者拒絕,此係因為含有非有效簽章之解除鎖定指令碼仍可滿足特定解除鎖定指令碼(例如,鎖定指令碼:OP_1 OP_DROP OP_DROP;解除鎖定指令碼:<Fake Signature> <Fake Public Key>)。
因此,在此應用層情境中,無法依賴由比特幣挖掘者在UTXO驗證層級處執行之習知簽章驗證。
本揭露內容之實施例藉由自輸入之解除鎖定指令碼移動元網路簽章及將其添加至交易中別處(較佳地,輸出)來克服此潛在的惡意探索,因此移除對依賴於挖掘者驗證之需要,且又移除對將來自交易自身之外的資料包括於簽章訊息中的需要。現在,訊息可藉由任何類型之簽章方案進行簽章。此外,就地執行新驗證方法(亦即,僅使用以自含方式提供於交易自身內之資料)而不依賴於相對於交易源於外部之簽章。藉由將元網路簽章驗證與由挖掘者實施之底層協定解耦,吾人獲得不僅保持安全性而且提供更靈活驗證機制之優點,此係因為移除了對使用一個指定類型之簽章方案的限制。
使用此實施例,實施諸如元網路之資料應用程式的基於電腦之資源,諸如應用程式、機器人(bot)、預言機(oracle)等,可經配置以基於經簽章訊息而執行簽章驗證,該經簽章訊息在解除鎖定指令碼之外提供且包括使其與其所位於之交易唯一地相關聯的資料。
此係用於區塊鏈中之習知挖掘者執行之簽章驗證的顯著重新配置,如名稱所指示,其需要經由輸出至輸入將一個交易連結或鏈結至另一交易,該等輸出至輸入在交易之間傳遞簽章以確保將傳輸發送至正確接收者。根據實施例,分離的交易之間不存在簽章之鏈結或相依性。 元網路之更多細節
上文已總體解釋了如何可藉由在交易內提供資料來將資料插入至區塊鏈中。出於完整性起見且參看圖5,吾人現呈現與元網路協定相關之更多細節,該元網路協定可用於以邏輯方式結構化交易,從而允許網際網路之區塊鏈實施替代方案中的節點定址、權限及內容版本控制。
此處所描述之結構的目標為 (i)     使不同交易中之相關內容相關聯以使得能夠對資料進行搜尋、識別及存取 (ii)   允許使用人類可讀關鍵字搜尋來識別內容,以改良搜尋之速度、準確性及效率 (iii) 在區塊鏈內建置及模擬類似伺服器之結構
元網路方法係將資料結構化為有向圖。此圖之節點及邊對應於: 節點 與元網路協定相關聯之交易。節點儲存內容。(「內容」及「資料」二個詞在此文件內可互換使用)。
節點藉由包括緊跟有<元網路旗標>之OP_RETURN而創建。各節點經指派有一公開金鑰
Figure 02_image033
。公開金鑰與交易ID之組合唯一地指定節點之索引
Figure 02_image035
所使用之雜湊函數應符合本發明待與例如用於比特幣之SHA-256或RIPEMD-160一起使用之底層區塊鏈協定。
—子代節點與親代節點之關聯。
當簽章
Figure 02_image037
出現在元網路交易之輸入中時創建邊,且因此僅親代可授予創建邊之權限。所有節點可具有至多一個親代,且親代節點可具有任意數目個子代。在圖論之語言中,各節點之入度至多為1,且各節點之出度為任意的。
應注意,邊為元網路協定之態樣且自身並非為與底層區塊鏈相關聯之交易。
有效元網路節點(具有親代)由以下形式之交易給出:
Figure 02_image039
輸入 輸出
Figure 02_image041
> <
Figure 02_image043
OP_RETURN <元網路旗標> <
Figure 02_image045
> <
Figure 02_image047
此交易含有指定節點及其親代之索引所需的所有資訊
Figure 02_image049
Figure 02_image051
應注意:元網路節點可具有多於一個親代,但為了說明簡單起見,吾人將在本文中使用僅涉及一個親代之實例。此外,由於需要至少一個親代節點之簽章,因此僅親代可創建至子代之邊。若<
Figure 02_image053
>欄位不存在或其並不指向有效元網路交易,則節點係孤立的。其不具有可到達的更高層級的節點。可將額外屬性添加至各節點。此等屬性可包括旗標、名稱及關鍵字。下文論述此等屬性。
如所展示,節點(交易)之索引可分解成 a)     公開金鑰
Figure 02_image033
,吾人將其解譯為節點之位址 b)     交易ID
Figure 02_image055
,吾人將其解譯為節點之版本
自此結構化產生二個有利特徵: 1.       版本控制 若存在具有相同公開金鑰之二個節點,則吾人將具有具最大工作量證明之交易ID的節點解譯為彼節點之最新版本。若節點在不同區塊中,則可使用區塊高度進行檢查。對於同一區塊中之交易,此由拓樸交易排序規則(TTOR)判定。 2.     許可 僅當公開金鑰
Figure 02_image033
之所有者在創建子代節點時對交易輸入進行簽章時,才可創建節點之子代。因此,
Figure 02_image033
不僅表示節點之位址,而且表示創建子代節點之權限。此有意類似於標準比特幣交易-不僅位址中之公開金鑰,而且與彼位址相關聯之權限。 應注意,由於親代節點之簽章出現在UXTO解除鎖定指令碼中,因此在交易被網路接受時經由標準挖掘者驗核程序對其進行驗核。此意謂創建子代節點之權限由比特幣網路自身驗核。
節點及邊結構允許吾人將元網路視覺化為圖,如圖5中所展示。
因此,元網路圖之階層允許出現豐富的類網域結構。吾人將孤立節點解譯為頂層網域(TLD),將孤立節點之子代解譯為子網域,將孫代解譯為子子網域,等等,且將無子節點解譯為端點。
將網域名稱解譯為
Figure 02_image057
。元網路中之各頂層網域可被視為樹,其中根為孤立節點且葉為無子節點。元網路自身為形成圖之樹的全域集合。元網路協定並不規定任何節點皆含有內容資料,但葉(無子)節點表示資料樹上之有向路徑的末端,且因此將通常用以儲存內容資料。然而,內容可儲存於樹中之任何節點處。作為屬性包括於節點中之協定特定旗標可用以指定節點在資料樹中之角色(磁碟空間、資料夾、檔案或許可改變)。
前已述及,網際網路使用網域名稱系統(DNS)來使人類可讀名稱與網際網路協定(IP)位址相關聯。DNS在某種意義上為去中心化的,但實務上,其由少數關鍵參與者(諸如,政府及大公司)控制。取決於你的DNS提供者,同一名稱可將你帶至不同位址。在將人類可讀的短名稱映射至電腦產生之數字時,此問題係固有的。
元網路使用將人類可讀之頂層網域名稱映射至根節點之去中心化索引
Figure 02_image059
的等效分散式系統。換言之,1-1函數
Figure 02_image061
將人類可讀名稱映射至元網路根節點索引,例如
Figure 02_image063
左側之輸入為人類可讀字,而右側之輸出為雜湊摘錄,其將通常為256位元資料結構。應注意,
Figure 02_image065
Figure 02_image067
通常亦並非人類可讀的。在標準IP協定中,此將為自
Figure 02_image069
至網路內之對應網域之IP位址的映射。
映射
Figure 02_image061
應解譯為在複製DNS發佈之網域名稱的人類可讀性時確保元網路與網際網路之回溯相容性的措施,但提供元網路之結構的命名及定址方案並不明確地取決於此映射。
映射函數
Figure 02_image061
之可能現有形式包括由星際檔案系統(IPFS)或OpenNIC服務(https://www.openic.org)使用之DNSLink系統。此映射可作為DNS之部分儲存於現有TXT記錄中。此類似於IPFS中之DNSLink-參見https://docs.ipfs.io/guides/concepts/dnslink/。然而,一般而言,此等犧牲了一些去中心化元素以便提供1-1之映射-參見https://hackernoon.com/ten-terrible-attempts-to-make-the-inter-planetary-file-system-human-friendly-e4e95df0c6fa
用作元網路節點之位址的公開金鑰並非人類可讀物件。此可使人類使用者之搜尋、參考及輸入活動容易出錯且很慢。然而,有可能創建人類可辨識之公開金鑰位址(無用位址
Figure 02_image071
),其包括可由使用者直接解譯之明文首碼。先前技術中已知無用位址。
創建此位址之難度取決於所要首碼之字元長度。此意謂人類可辨識之無用位址可用作僅依賴於所有者之創建工作量而非集中發佈之節點位址。對於給定首碼,由於尾碼中保留之字元,存在許多不同的無用位址,且因此許多節點位址可共用共同首碼,同時仍保持唯一性。具有合乎需要之首碼的無用位址之實例為
Figure 02_image065
:bobsblogHtKNngkdXEeobR76b53LETtpyT 首碼:bobsblog 尾碼:HtKNngkdXEeobR76b53LETtpyT
上文的無用位址可用以感測檢查自名稱「bobsblog」至節點索引
Figure 02_image073
之映射且輔助可藉由位址搜尋元網路節點。應注意,首碼在此處並非唯一的,但整個位址自身係唯一實體。
一起形成
Figure 02_image057
之所選擇位址
Figure 02_image071
Figure 02_image075
的組合亦為有益的,此係因為其意謂不存在網域名稱之中央發佈者(
Figure 02_image075
由去中心化工作量證明產生)且名稱可自區塊鏈自身恢復。有利地,網際網路DNS內不再存在故障點。
由於元網路網域已提供權限系統(公開金鑰),因此不需要發佈憑證來證明所有權。舉例而言,已在域名幣(https://namecoin.org/)中探索了將區塊鏈用於此目的。然而,根據本發明,不需要針對此功能使用分離的區塊鏈,此係因為一切皆在一個區塊鏈內實現。相比先前技術,此顯著減小本發明所需之資源(硬體、處理資源及能量)的量。就設備以及系統組件之配置而言,其亦提供完全不同的架構。此命名系統之優點為使用者能夠藉由容易記住的詞(例如,公司名稱)而非雜湊摘錄來識別元網路中之頂層網域。此亦使網域搜尋更快,此係因為搜尋關鍵字比搜尋雜湊摘錄更快。其亦減小輸入錯誤,因此為區塊鏈儲存資料提供改良之搜尋工具。
鑒於存在自網域名稱至節點索引之映射,可建置類似於網際網路之統一資源定位符(URL)的資源定位符。此可被稱為元網路URL (MURL),且採用以下形式
Figure 02_image077
URL之各分量,即協定、網域名稱、路徑及檔案,已映射至MURL之結構,從而使物件對於使用者更直觀且使得其能夠與網際網路之現有結構整合。此假定各節點具有與其公開金鑰(位址)相關聯之名稱,該公開金鑰在網域樹內之層級處係唯一的。此名稱始終為給定節點之MURL的最右分量。若樹中同一層級處之二個節點具有相同名稱,則其將具有相同公開金鑰且因此採用最新版本。 搜尋元網路
上文描述了元網路圖結構之實施例,使得各節點具有唯一索引且可具有歸於其的名稱。此允許使用MURL定位內容。為了亦實現快速搜尋功能性,元網路協定允許將額外關鍵字歸於節點。節點之固定屬性為索引及親代節點之索引,且任擇屬性為名稱及關鍵字。 節點屬性 { 索引:
Figure 02_image079
; 親代之索引
Figure 02_image081
(若孤立,則為空值) 名稱           'bobsblog'; kwd1:        'travel'; kwd2:        'barbados';
Figure 02_image083
}
在一個實例中,用於搜尋元網路之實用方法可為首先使用區塊探索器(explorer)遍歷區塊鏈,且識別具有元網路旗標之所有交易,檢查其是否為有效元網路節點,且若是,則在資料庫或其他儲存資源中記錄其索引及關鍵字。此資料庫接著可用以利用所要關鍵字高效地搜尋節點。一旦找到具有所要關鍵字之節點之索引,便可自區塊探索器擷取其內容且進行檢視。亦應注意,元網路可藉由將由節點交易儲存之內容的雜湊儲存為額外屬性而併有內容可定址網路(CAN)。此意謂元網路節點亦可藉由內容雜湊進行編索引及搜尋。 瀏覽器錢包應用程式
前已述及,在元網路協定中,所有資料直接存在於區塊鏈自身上。可建置可高效地存取、顯示儲存於區塊鏈上之元網路資料且與元網路資料互動的工具及應用程式(僅為方便起見,吾人將其稱作「瀏覽器錢包」)。
瀏覽器錢包為意欲允許終端使用者與區塊鏈上之元網路基礎架構互動的應用程式。此應用程式應允許對嵌入於樹中之特定內容的元網路圖進行探索性搜尋。另外,瀏覽器錢包將處置內容之擷取、解密、重組及快取(任擇的)。瀏覽器錢包應用程式藉由支援原生(或外部)錢包而組合此等元素與密碼貨幣支付機制。瀏覽器錢包可包含以下核心元素: 區塊鏈搜尋引擎 支援第三方搜尋引擎以藉由包括
Figure 02_image057
、節點名稱、關鍵字、區塊高度及
Figure 02_image075
之多種索引來查詢元網路節點。
顯示視窗 解包封由完整複本區塊鏈同級者傳回至瀏覽器之內容的軟體。此涵蓋解密、重組、快取及兌換存取符記。
密碼貨幣錢包 區塊鏈之貨幣的專用金鑰管理。可為應用程序原生的或經授權以與外部錢包(軟體或硬體)通訊及同步。能夠寫入標準區塊鏈交易以及新元網路節點交易。可調解存取金鑰及存取符記之鏈上購買。
對密碼貨幣公開金鑰及元網路節點位址二者均使用階層式判定性金鑰管理。
存取金鑰/符記錢包 用於所購買之存取金鑰或符記的專用金鑰管理。可使用密碼貨幣錢包接收所購買之金鑰或符記,但對金鑰或符記無權限。金鑰或符記可對使用者隱藏以允許稍後到期。此可經由使用可信任執行環境來實現。可藉由與區塊鏈同步及查詢當前區塊高度來保證定時存取。
元網路瀏覽器錢包之規格包括以下功能性: 1.       階層式金鑰管理 用於控制資金及管理元網路樹(圖)之金鑰利用相同的階層式判定性金鑰基礎架構,從而減少使用者維護用於其元網路內容之金鑰記錄的負擔。
2. 指向外部密碼貨幣錢包 授權外部(非應用程式原生)錢包且與外部錢包同步的能力藉由將瀏覽器錢包作為故障點移除來提供額外安全性。 應用程式可寫入區塊鏈交易,且需要容納金鑰之外部錢包的簽章,從而將此責任委託給分離的軟體或硬體。
3. 搜尋元網路內容 瀏覽器錢包可支援及查詢第三方搜尋引擎,其功能可包含對全域資料庫中之元網路節點交易資料進行耙梳、編索引、服務及排名。可建構含有元網路協定旗標之OP_RETURN交易的資料庫。參見BitDB 2.0-https://bitdb.network/。搜尋引擎可為瀏覽器錢包提供節點索引,其允許找到資料。
4. 讀取資料及將資料寫入至區塊鏈 除使用搜尋引擎及完整節點為瀏覽器提供內容以外,對密碼貨幣錢包之支援亦允許將內容直接自瀏覽器錢包寫入至元網路中。
5. 資料之解壓縮及解密 瀏覽器錢包處置解密金鑰且可就地對元網路內容執行解壓縮。
6. 快取節點識別碼(
Figure 02_image085
) 可在本端快取唯一節點識別碼以用於更高效的查找及查詢。
7. 繞過網路伺服器 給定節點索引,瀏覽器錢包可查詢同級間(P2P)區塊鏈網路之任何完整複本成員以獲取位於節點處的內容。因為元網路在鏈上,所以任何完整複本同級者必須具有節點及其內容之本端複本。 此意謂使用者之瀏覽器錢包僅需要查詢單個同級者,此可直接進行且無需中間網路伺服器。 圖15展示瀏覽器錢包及如何跨越應用程式之不同組件劃分其核心功能的示意圖。 元網路搜尋引擎
瀏覽器錢包應用程式與第三方搜尋引擎通訊以用於發現節點識別碼(
Figure 02_image057
)。第三方可提供複製現有網際網路搜尋引擎之能力的服務。元網路搜尋引擎第三方維護挖掘至可由元網路協定旗標識別的區塊鏈中之所有元網路交易的資料庫。此資料庫可藉由包括
Figure 02_image057
、節點名稱、關鍵字、
Figure 02_image075
及區塊高度之範圍索引來編錄所有元網路節點。
與區塊鏈持續同步且以標準資料庫格式維護交易資料的服務係已知的。瀏覽器錢包將對元網路交易進行耙梳、編索引、服務及排名之責任轉移給此第三方,且在定位儲存於元網路圖上之內容時連接至其服務。
藉由具有僅專用於元網路資料之資料庫,可節省效率。不同於Bit DB,此將不會儲存與所有交易相關聯之資料,而僅儲存含有元網路旗標之彼等資料。某些資料庫,諸如非關係資料庫,如MongoDB,可在儲存元網路之圖結構上可能更高效。此將允許更快查詢、更少儲存空間,及更高效地關聯元網路網域內之相關內容。程序如下 1.       終端使用者將關鍵字輸入至瀏覽器錢包搜尋列中。 2.       瀏覽器錢包將關鍵字查詢發送至第三方SE。 3.       SE對照其資料庫檢查關鍵字且傳回含有相關內容之任何元網路節點的
Figure 02_image057
。第三方亦可向使用者傳回各節點上之其他索引,以及為相關內容提供建議。 4.       瀏覽器錢包使用節點識別碼及與其相關聯之網域名稱以建構MURL。 5.       瀏覽器錢包向具有區塊鏈之完整複本的任何網路同級者請求屬於指定節點之內容。 6.       網路同級者為瀏覽器錢包提供所請求內容。因為同級者具有區塊鏈之複本,所以其必須亦具有內容之複本,且因此僅作出一個請求,且永遠不會將請求轉遞至其他網路同級者。 內容顯示器-元網路瀏覽器
瀏覽器錢包應用程式模擬任何典型網路瀏覽器應提供的相同前端能力。此等功能包括但不限於: 1.       搜尋—提供對搜尋引擎(SE)之存取以用於定位內容。 2.       擷取—與伺服器通訊以促進使用例如超文字傳送協定(HTTP)之已知協定傳送內容。 3.       解譯—剖析原始程式碼(例如,以JavaScript編寫)且執行。 4.       呈現—高效顯示待由終端使用者檢視之經剖析內容。 5.       使用者介面(UI)—為使用者提供用以與內容互動之直觀介面,包括動作按鈕及使用者輸入機制。 6.       儲存—用於快取網際網路內容、小型文字檔(cookie)等之本端臨時儲存容量,以改良對內容之重複存取。
在某些實施例中,負責充當網路瀏覽器之瀏覽器錢包應用程式的軟體組件能夠對嵌入於區塊鏈中之元網路內容執行以上功能,該元網路內容可使用其屬性進行搜尋(使用SE)及擷取(自同級者)。
根據本發明之某些實施例,瀏覽器錢包應用程式之網路瀏覽器軟體組件能夠處置需要對給定元網路內容執行之所有操作。一般而言,存在需要執行之許多此類操作,但吾人假定至少以下操作由應用程序使用元網路協定及基礎架構執行。
重組—在元網路內容需要劃分且插入至多個分離的節點交易中之狀況下,應用程式將向所有相關節點請求內容且重建構原始內容。可使用各節點屬性中之額外旗標來編碼碎片內容之排序及結構。
解壓縮—在內容資料以壓縮形式儲存於區塊鏈上之情況下,其應包括用以向瀏覽器錢包指示已使用哪一標準壓縮方案之旗標。應用程式將根據此旗標解壓縮內容。
解密—在內容經加密之情況下,應使用旗標來指示加密方案。應用程式將自其解密金鑰錢包(如下文所論述)定位金鑰,且根據所使用之加密方案解密內容資料以供使用。
在對內容資料執行此等操作時,旗標可用以向瀏覽器錢包指示需要執行給定操作。此推廣至任何其他操作,對於該操作,可將合適的<operation_flag>包括為應用該操作之節點的屬性之部分。 快取
快取本端檔案及小型文字檔為典型網路瀏覽器之常見且重要的功能。瀏覽器錢包應用程式亦以類似方式使用本端儲存器以便任擇地保存
Figure 02_image057
之記錄及與所關注內容相關之其他節點屬性。此允許自頻繁訪問之元網路節點更高效地查找及擷取內容。元網路解決了快取網際網路資料之固有問題,該問題為該資料可變且可取決於提供者由網路瀏覽軟體改變或審查。在快取元網路資料時,使用者可始終容易地驗證資料與最初作為不可變記錄包括在區塊鏈上時處於相同狀態。 密碼貨幣錢包
判定性金鑰
Figure 02_image087
為自單個「種子」金鑰初始化之私密金鑰(參見Andreas M. Antonopoulos,「Mastering Bitcoin」第5章(奧萊利出版社,第2版,2017年,第93至98頁))。種子為充當主金鑰之隨機產生的數字。雜湊函數可用以組合種子與其他資料,諸如索引號或「鏈碼」(參見HD錢包-BIP-32/BIP-44)),以導出判定性金鑰。此等金鑰彼此相關且可利用種子金鑰完全恢復。種子亦准許錢包在不同的錢包實施方案之間的容易匯入/匯出,從而在使用者希望結合元網路瀏覽器錢包來使用外部錢包的情況下提供額外自由度。
階層式判定性(HD)錢包為判定性金鑰之熟知導出方法。在HD錢包中,親代金鑰產生一系列子代金鑰,其又導出一系列孫代金鑰,等等。此樹狀結構為用於管理若干金鑰之強大機制。在較佳實施例中,HD錢包可併入至元網路架構中。
有利地,本揭露內容之實施例可直接合併傳統網路瀏覽器之功能性與一或多個密碼貨幣錢包。此為元網路將對「網際網路」內容之支付與其向終端使用者之遞送組合的基本方式。
為實現此情況,瀏覽器錢包之實施例可具有作為密碼貨幣錢包操作之專用內置軟體組件。此錢包係原生應用程式自身並可用以管理密碼貨幣私密金鑰,且授權交易作為對瀏覽器錢包自身內之元網路內容的支付。此意謂應用程式之瀏覽器組件可提示錢包組件授權所需的支付—藉由購買解密金鑰、存取符記或以其他方式—以檢視元網路內容。應用程式無需調用外部第三方以處理支付,且因此由應用程式耗用所關注元網路內容且就地支付。
若使用者希望替代地在外部錢包(軟體或硬體)上管理或保存其密碼貨幣私密金鑰或甚至使用多個錢包,則可藉由應用程式之實施例實現相同的優點及功能性。此可代替或結合應用程式之原生錢包執行。在此等實施例中,應用程式與外部錢包建立連結或配對且與其同步,但並不在瀏覽器錢包自身中儲存私密金鑰。實情為,當瀏覽器組件提示對內容進行支付時,應用程式向所選的外部錢包請求數位簽章之授權。此授權由使用者作出且瀏覽器錢包可廣播交易並檢視經支付內容。 讀取及寫入元網路交易
元網路之內在優點為其使用相同資料結構—區塊鏈—來記錄支付及內容資料二者。此意謂除了創建僅基於密碼貨幣之交換的交易之外,軟體錢包亦可用以將內容資料寫入至元網路基礎架構。內置至應用程式之原生錢包能夠將比典型的簡化支付驗證(SPV)用戶端更複雜之交易寫入至區塊鏈-參見https://bitcoin.org/en/glossary/simplified-payment-verification。錢包允許使用者藉由自其電腦選擇待嵌入於區塊鏈中之內容資料而選擇將元網路節點交易直接自應用程式寫入至區塊鏈。
由於瀏覽器錢包應用程式具有使用者介面(UI),因此其允許錢包組件創建及廣播包括已預先在瀏覽器組件中或使用者電腦上建構之內容資料的交易。對於自行處置的專用錢包而言,將較難以實現此能力。 存取金鑰/符記錢包
前已述及,將使用ECC金鑰對或AES對稱金鑰加密內容之能力及購買對應解密金鑰或符記之能力內置至元網路協定中。吾人將此等金鑰或符記稱作 存取金鑰存取符記。此類金鑰/符記授予使用者檢視或編輯內容之權限(單次使用或多例項使用),且與控制使用者密碼貨幣錢包之金鑰起著不同的作用(但在需要時同一金鑰可用於二種目的)。出於此原因,引入與應用程式之原生密碼貨幣錢包分離的用於儲存及管理存取金鑰及符記之新錢包係有利的。
吾人亦可藉由允許在某一時段之後燒毀存取金鑰/符記而引入對元網路內容之定時存取的概念。此可藉由要求存取金鑰/符記儲存於可信任執行環境(TEE)中且使用者不可直接存取存取金鑰/符記而實現。
存取金鑰/符記可經「燒毀」之實情亦為不將其儲存於密碼貨幣錢包中以確保不存在密碼貨幣私密金鑰被燒毀之風險的激勵因素。
以類似於密碼貨幣錢包之方式,可判定性地儲存及管理解密金鑰及存取符記以促進高效處置及部署。可藉由隨後添加至主金鑰來產生及恢復解密金鑰(例如,ECC私密金鑰),而可使用以某一初始符記為種子之雜湊鏈重建構存取符記。
重要的為在此處進行如下區分:密碼貨幣錢包處置用於與其他使用者進行交易及創建新元網路節點的金鑰對之判定性金鑰產生,而金鑰/符記錢包處置已由密碼貨幣錢包購買之金鑰及符記。 區塊高度許可
時間鎖可包括於比特幣指令碼語言中以實現區塊高度許可。op_code OP_CHECKLOCKTIMEVERIFY (CLTV)設定准許支出交易輸出(UTXO)的區塊高度。
區塊高度許可之優點有二個: 1. 版本控制-在元網路協定中,可自最大區塊高度處之節點識別節點之最新版本。瀏覽器錢包可設置成僅根據區塊高度顯示檔案之最近版本,從而允許工作量證明版本控制。 2. 定時存取-瀏覽器錢包應用程式可週期性地燒毀由使用者在原子級上購買之解密金鑰。此確保檢視者僅可在其已支付之時段期間存取內容資料。可藉由將解密金鑰儲存於可信任執行環境(TEE)中來防止對解密金鑰之再製。此外,原子調換涉及購買判定性金鑰
Figure 02_image087
(用於解密內容資料)。儘管此判定性金鑰係公開可見的,但TEE可用以對
Figure 02_image087
與安全包封的私密金鑰之組合進行簽章。
瀏覽器錢包可配置成與區塊鏈之當前狀態同步,以便將區塊高度用作其自身的時間代理,而非依賴於任何外部時脈或第三方時間預言機。 結論
一旦給定本文中之揭露內容,所揭示技術之其他變體或使用狀況對於熟習此項技術者可變得顯而易見。本揭露內容之範圍不受所描述實施例限制而僅受隨附申請專利範圍限制。
舉例而言,上文的一些實施例已關於比特幣網路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所描述之相同方式實施於硬體中。
應瞭解,已僅作為實例來描述以上實施例。更一般而言,可提供根據以下陳述項中之任何一或多者的方法、設備或程式。
與本揭露內容之說明性實施例相關的陳述項: 本揭露內容之實施例可描述為驗證及/或安全方法/系統。另外或替代地,其可描述為用於經由區塊鏈控制數位資產之轉移的方法/系統。
陳述項1:一種用於驗證在一區塊鏈交易內提供之一簽章的方法,其包含: 在該區塊鏈交易內提供該簽章及/或驗證該簽章,其中該簽章係基於一訊息,該訊息: 包含用於唯一地識別該交易之交易識別資料;且 含有僅自該交易內可導出及/或可獲得之資料。
陳述項2。如陳述項1之方法,其中: i)該訊息經數位簽章;及/或 ii)該訊息之至少部分經加密或編碼;及/或 iii)該簽章係在該交易內除一解除鎖定指令碼以外之一位置處提供;及/或 iii)該簽章及/或訊息係在該交易之一輸出內提供;較佳地,其可在該交易之一鎖定指令碼中提供;該鎖定指令碼可在該交易之該輸出內提供或與該輸出相關聯。
陳述項3。如陳述項1或2之方法,其中: i)該交易識別資料包含或關於唯一地與該交易相關聯之資料的一輸出點或其他部分;及/或 ii)該交易識別資料經編碼、雜湊或混淆。
陳述項4。如前述陳述項中任一項之方法且其進一步包含: i)對該簽章執行一驗證操作;及/或 ii)使用該訊息及一公開金鑰來對該簽章執行一驗證操作。
陳述項5。如前述陳述項中任一項之方法且其包含以下步驟: 使用一基於電腦之資源來驗證該簽章,其中該基於電腦之資源並不經配置以根據與區塊鏈相關聯之一底層協定執行挖掘及/或驗證操作。
陳述項6。如前述陳述項中任一項之方法且其進一步包含: 使用一密碼編譯金鑰對該訊息進行數位簽章、編碼或加密。
陳述項7。如前述陳述項中任一項之方法且其進一步包含: 若對該簽章之驗證成功,則准許一動作,或若對該訊息之驗證失敗,則禁止一動作。
陳述項8。如前述陳述項中任一項之方法,其中: 該區塊鏈交易係根據一應用程式層級協定形成。
陳述項9。如陳述項8之方法,其中該協定: 經配置以促進區塊鏈交易之關聯,從而形成區塊鏈交易之一邏輯階層;及/或 一區塊鏈實施之元網路協定。
陳述項10。如前述陳述項中任一項之方法且其包含: 使用該簽章及該公開金鑰以與使用該公開金鑰產生之另一簽章進行一比較,或 藉由比較該公開金鑰與另一公開金鑰來執行一驗證。
陳述項11。如前述陳述項中任一項之方法,其中該交易識別資料包含一輸出點。
陳述項12。一種區塊鏈實施之驗證方法,其包含: 產生或提供一區塊鏈交易,該區塊鏈交易包含: i)一訊息,其包含: 用於唯一地識別該交易之交易識別資料;以及 僅自該交易內可導出及/或可獲得之資料; 及 ii)一數位簽章,其與該訊息相關、基於該訊息或使用該訊息產生。
陳述項13。如陳述項12之區塊鏈實施之驗證方法,其中: i)該交易進一步包含與用以產生該簽章之密碼編譯金鑰相關的一公開金鑰;及/或 iii)該交易識別資料包含一輸出;及/或 ii)該簽章係藉由使用與該公開金鑰相關之一密碼編譯金鑰對該訊息進行數位簽章來產生;及/或 iv)該簽章係在與該交易相關聯之任何輸入之外提供。
陳述項14。一種驗證在一區塊鏈交易(Tx)中提供之一數位簽章的方法,該區塊鏈交易包含: 待驗證之該數位簽章; 一訊息,其: i)包含用於唯一地識別該交易之交易識別資料;且 ii)含有僅自該交易內可導出及/或可獲得之資料; 一交易ID (TxID); 一協定旗標; 一任意公開金鑰(DPK);以及 一任意交易ID (DTxID)。
陳述項15。如陳述項14之方法,其中該交易(Tx)進一步包含: 所儲存資料之一部分或對所儲存資料之一部分的一參考。
陳述項16。如陳述項14或15之方法,其中: 所儲存資料之該部分或對所儲存資料之一部分的參考、該協定旗標、該任意公開金鑰(DPK)及/或該任意交易ID (DTxID)係在該交易之一輸出(UTXO)內,較佳在與該輸出(UTXO)相關聯之一鎖定指令碼內提供。
陳述項17。如陳述項14至16之方法,其中所儲存資料之該部分、對所儲存資料之部分的參考、該協定旗標、該任意公開金鑰(DPK)及/或該任意交易ID (DTxID)係在該交易內在一指令碼作業碼之後的一位置處提供,該指令碼作業碼用於將一輸出標記為無效,以供後續用作一後續交易之一輸入。
陳述項18。如陳述項14至17之方法,其中: 該交易(Tx)進一步包含一或多個屬性;較佳地其中: 該一或多個屬性包含與以下各者相關聯之一關鍵字、標誌或識別符: i)在該交易(Tx)內提供或參考之資料之一部分;及/或 ii)該交易(Tx)。
陳述項19。如陳述項13至17之方法,其中該交易(Tx)進一步包含: 與一邏輯親代交易(LPTx)相關聯之一親代公開金鑰(PPK),其中該邏輯親代交易(LPTx)由該任意交易ID (DTxID)識別;且 該簽章係使用該親代公開金鑰(PPK)產生。
陳述項20。如陳述項13至18之方法且其進一步包含以下步驟: 使用該任意公開金鑰(DPK)及該交易ID (TxID)以識別一區塊鏈內之該交易(Tx)或該邏輯親代交易。
陳述項21。如陳述項14至20之方法,其中該協定旗標與用於在一或多個區塊鏈交易中搜尋、儲存及/或擷取資料的一基於區塊鏈之協定相關聯及/或指示該協定。
陳述項22。一種電腦裝備,其包含: 記憶體,其包含一或多個記憶體單元;以及 處理設備,其包含一或多個處理單元,其中該記憶體儲存經配置以在該處理設備上運行之程式碼,該程式碼經組配以便在處於該處理設備上時執行如陳述項1至21中任一項之方法。
陳述項23。如陳述項22之電腦裝備,其中該裝備: i)用以或經配置或可操作以與一區塊鏈網路及/或區塊鏈實施系統互動;及/或 ii)包含一硬體錢包。
陳述項24。一種電腦程式,其體現於電腦可讀儲存器上且經組配以便在運行於一或多個處理器上時執行如陳述項1至21中任一項之方法。
陳述項25。如陳述項1至21中任一項之區塊鏈實施方法且其包含: 使用或提供一硬體及/或軟體組件以執行如陳述項1至21中之任一者;其中該硬體及/或軟體組件為或包含: 一密碼貨幣錢包; 一搜尋引擎; 一區塊鏈探索器;或 一瀏覽器; 且較佳地,其中該組件可操作以執行一簡化支付驗證(SPV)操作。
根據本文中所揭示之另一態樣,可提供一種電腦實施方法及對應系統。此等可描述為用於驗證(密碼編譯)簽章之方法/系統。簽章可用於根據諸如元網路協定之基於區塊鏈之協定形成的交易(節點)內。元網路協定可大體上如GB2007238.5或WO 2020/109908內所揭示,此二者之全文併入本文中。下文關於本揭露內容之此態樣或其他態樣所描述的任何特徵可與在上文所提供之陳述項中之一或多者中闡述的方法組合。
根據本揭露內容之此態樣的方法可描述為用於經由區塊鏈使得能夠或控制資料之處理、儲存、擷取、識別及/或共用的方法。另外或替代地,其可描述為用於關聯或連結儲存於(分離/不同的)區塊鏈交易內之資料以使得能夠識別、擷取及/或共用該資料的方法。另外或替代地,其可描述為用於驗證密碼編譯簽章之方法。該方法可包括處理包含交易ID (TxID)之至少一個區塊鏈交易(Tx)的步驟,該交易包含: 一協定旗標; 一任意公開金鑰(DPK);以及 一任意交易ID (DTxID)。
特徵之此組合使得能夠在區塊鏈上識別資料之部分,且亦使得資料之部分在提供於多個交易中時能夠彼此連結/相關聯。其使得能夠建構圖或樹狀結構,該結構反映資料之部分之間的階層式關係,從而促進資料之處理、搜尋、存取、產生及共用。本文中,「共用」可包括將資料之部分提供、發送、傳達、傳輸至節點或使用者或提供對資料之部分的存取。
交易ID (TxID)為如區塊鏈協定技術中已知的交易之識別符—各區塊鏈交易具有唯一ID作為底層區塊鏈協定之部分。相比之下,任意公開金鑰(DPK)及/或任意交易ID (DTxID)可為「任意的」,此係因為其係作為本發明之部分提供,而非如由底層區塊鏈之協定規定的交易之必需分量。換言之,根據例如比特幣之底層區塊鏈的協定,不需要該任意公開金鑰及該任意交易ID來使交易有效。另外或替代地,金鑰及ID可描述為作為本發明之部分而非因為區塊鏈協定需要而提供的額外非必需項目。
較佳地,協定旗標與用於在一或多個區塊鏈交易中搜尋、儲存及/或擷取資料之基於區塊鏈之協定相關聯及/或指示該協定。協定旗標可為指示符或標記。其可指示交易係根據預定協定形成。此可為不同於底層區塊鏈之協定的協定。其可為根據本文中所描述之任何實施例的搜尋協定(亦即,可被稱作本文中所描述之「元網路」協定的協定)。
「處理」一詞可經解譯為意謂與交易或其相關聯資料相關之任何活動,包括產生、傳輸、驗核、存取、搜尋、至區塊鏈網路之共用提交及/或識別。
根據本發明之實施例,任意交易ID可為與交易(Tx)相關聯之識別符、標籤、指示符或標誌。吾人使用「指示符」一詞來包括所有此等術語。應注意,如此項技術中已知且有技巧之讀者易於理解,區塊鏈上之各交易由通常在此項技術中稱作TXID之識別符唯一地識別。TxID為底層區塊鏈協定之必不可少、必需且非任意的部分。此非任意TxID不應與如本文中所提及的任意交易ID (DTxID)混淆。
較佳地,區塊鏈交易(Tx)進一步包含資料之一部分或對資料之一部分的參考。對資料之該部分的參考可為儲存資料之位置的指標、位址或其他指示符。資料之該部分可為任何類型之資料或數位內容,例如電腦可執行項目、文字、視訊、影像、聲音檔案等。資料之該部分可被稱作「內容」。資料之該部分或對其之參考可呈經處理形式。舉例而言,其可為資料之該部分的雜湊摘錄。該資料可儲存於區塊鏈上或之外(亦即,「鏈外」)。較佳地,資料之該部分或對資料之一部分的參考、協定旗標、任意公開金鑰(DPK)及/或任意交易ID (DTxID)係在區塊鏈交易之輸出(UTXO)內提供。其中之一或多者可在與輸出(UTXO)相關聯之鎖定指令碼內提供。
較佳地,資料之該部分、對資料之該部分的參考、協定旗標、任意公開金鑰(DPK)及/或任意交易ID (DTxID)係在交易(Tx)內在指令碼作業碼之後的位置處提供,該指令碼作業碼用於將輸出標記為無效,以供後續用作後續交易之輸入。
此指令碼作業碼可為比特幣協定之一或多個變體中的OP_RETURN作業碼,或可為來自另一區塊鏈協定之功能上類似/等效的作業碼。
較佳地,交易(Tx)進一步包含一或多個屬性。此使得搜尋資料/內容之方法能夠更詳細。屬性亦可被稱作「值」、「標籤」或「標誌」或「識別符」。屬性可用以描述或註解資料之部分,或提供與資料之部分相關的額外資訊。
較佳地,一或多個屬性包含與以下各者相關聯之關鍵字、標誌或識別符:i)在交易(Tx)內提供或參考之資料之部分;及/或ii)交易(Tx)。
較佳地,交易(Tx)進一步包含:與由任意交易ID (DTxID)識別之各別邏輯親代交易(LPTx)相關聯的至少一個親代公開金鑰(PPK);以及使用至少一個親代公開金鑰(PPK)產生之簽章。
此情況使得能夠在交易與其嵌入資料之間建構邏輯階層。可存在與子代節點相關聯之一個親代公開金鑰(亦即,子代節點具有單個親代節點)或多於一個親代公開金鑰(亦即,子代節點可具有多於一個親代)。因此,可高效、安全且快速地處理區塊鏈上之多個相關聯或邏輯上連結之交易。邏輯上相關聯之交易可能不會以連續區塊高度儲存於區塊鏈上,但其可被容易且安全地識別及/或存取。較佳地,該方法進一步包含使用任意公開金鑰(DPK)及交易ID (TxID)以識別區塊鏈內之交易(Tx)或邏輯親代交易的步驟。
另外,實施例可包含以下步驟:使公開金鑰與包含交易ID之區塊鏈交易(Tx)相關聯;以及基於交易ID及交易公開金鑰而搜尋區塊鏈交易(Tx)。此可提供用於經由區塊鏈儲存、搜尋、識別、傳達及/或存取資料之改良解決方案。其可提供對跨越電子網路,具體而言同級間區塊鏈網路之資料通訊及交換的改良。本文中所描述之任何特徵亦可根據本揭露內容之此實施例利用(且反之亦然),但為簡潔及清晰起見,此處未重述或再現。該方法可進一步包含存取或以其他方式處理在交易(Tx)內提供或自交易參考之資料之一部分的步驟。
如本文中所描述,公開金鑰及/或交易ID可為任意的。交易可包含交易ID (TxID)、協定旗標;任意公開金鑰(DPK);以及任意交易ID (DTxID)。交易(Tx)可進一步包含資料之一部分,或對資料之一部分的參考。資料之該部分或對資料之一部分的參考、協定旗標、任意公開金鑰(DPK)及/或任意交易ID (DTxID)可在輸出(UTXO)內,較佳在與輸出(UTXO)相關聯之鎖定指令碼內提供。
資料之該部分、對資料之該部分的參考、協定旗標、任意公開金鑰(DPK)及/或任意交易ID (DTxID)可在交易(Tx)內在指令碼作業碼之後的位置處提供,該指令作業碼用於將輸出標記為無效。
交易(Tx)可包含一或多個屬性。該一或多個屬性可包含與以下各者相關聯之關鍵字、標誌或識別符:i)在交易(Tx)內提供或參考之資料之部分;及/或ii)交易(Tx)。
該交易(Tx)可包含:與各別邏輯親代交易(LPTx)相關聯之至少一個親代公開金鑰(PPK),其中至少一個邏輯親代交易(LPTx)由任意交易ID (DTxID)識別;以及使用各別親代公開金鑰(PPK)產生之簽章。
實施例可包含:使用任意公開金鑰(DPK)及交易ID (TxID)以識別區塊鏈內之交易(Tx)或邏輯親代交易。此操作可在搜尋步驟期間執行。協定旗標可與用於在一或多個區塊鏈交易中搜尋、儲存及/或擷取資料之基於區塊鏈之協定相關聯及/或指示該協定。
另外,本揭露內容之實施例可包括用於識別區塊鏈中之交易(Tx)的步驟,包含將助憶符映射至以下各者之步驟:與交易(TX)相關聯之公開金鑰(PK);以及交易(TX)之交易ID (TX ID)。
該等步驟亦可包含:i)使用公開金鑰(PK)及交易ID (TX ID)作為運算之運算元以產生輸出且將助憶符映射至輸出;ii)在映射助憶符之前對輸出進行雜湊。該運算可為序連運算。公開金鑰(PK)可包含人類可讀首碼。
另外,本揭露內容之實施例可包括用於識別區塊鏈上之目標交易的步驟。此等步驟可包括使用搜尋路徑來識別目標交易,該搜尋路徑包含: i)            根交易索引(RT Index),其包含與根交易相關聯之公開金鑰(RTPK)及與根交易相關聯之ID (RTID);以及 ii)         與根交易及/或目標交易相關聯之至少一個屬性。
該至少一個屬性可為空值。根交易索引(RT Index)可包含公開金鑰(RTPK)及ID (RTID)之函數的雜湊。該函數可為序連。該等屬性中之至少一者可為與根交易或目標交易相關聯之助憶符。根交易及/或目標交易可包含協定旗標。其亦可包含以下步驟:i)使用區塊探索器在區塊鏈中識別包含協定旗標之至少一個交易;及/或ii)在區塊鏈中識別包含協定旗標之至少一個交易及將與至少一個交易相關之資料儲存於區塊鏈外資源中。較佳地,與至少一個交易相關之資料包含:與該交易相關聯之至少一個索引;與連結至該交易之另一交易相關聯的至少一個索引;及/或與交易相關聯之關鍵字。實施例亦可包含:存取儲存於目標交易中或自目標交易參考之資料之一部分。
另外,本揭露內容之實施例可包括一種電腦實施系統,其經配置以使得使用者能夠搜尋、存取、檢視、寫入及/或擷取在至少一個區塊鏈交易(Tx)中提供之資料之一部分,其中:該系統經配置以基於包含與至少一個交易(Tx)相關聯之交易ID及公開金鑰的交易索引(TX index)來識別該交易(Tx)。
該系統可包含搜尋設施,該搜尋設施:係在區塊鏈搜尋系統內提供;或經配置以與區塊鏈搜尋系統介接及/或通訊。該系統可包含至少一個密碼貨幣錢包。至少一個錢包可經配置以:1)產生、儲存及/或處理階層式判定性金鑰;及/或2)將至少一個密碼編譯金鑰及/或至少一個符記儲存於可信任執行環境中。該系統可包含:解壓縮組件,其經配置以在資料之部分經壓縮的情況下對其進行解壓縮;重組組件;及/或解密組件,其經配置以在資料之部分經加密的情況下對其進行解密。該系統可包含至少一個呈現組件,其配置成以有聲及/或視覺形式向使用者呈現資料之部分。該系統可包含:用於輸入或產生搜尋路徑以識別區塊鏈上之至少一個交易(Tx)的構件,其中該搜尋路徑包含:i)交易索引(TX index);以及ii)與交易(Tx)相關聯之至少一個屬性。該等屬性中之至少一者可為與交易相關聯之助憶符;及/或至少一個屬性可為空值。該系統可操作以與密碼貨幣錢包或其他資源通訊以促進處理、儲存及/或產生密碼編譯金鑰、區塊鏈交易及/或數位簽章。其可操作以儲存交易索引(TX index),較佳地其中該系統經配置以儲存多於一個交易之各別交易索引。其可操作以:i)在存取資料之部分之前將密碼貨幣之一部分的控制轉移至目的地;ii)將對資料之部分的請求發送至區塊鏈上之同級者;及/或iii)自區塊鏈上之同級者接收資料之部分。其可操作以使用時間鎖機制來控制對資料之部分的存取。
另外,本揭露內容之實施例可提供用於將資產自一資源轉移至另一資源之步驟,包括:將以下各者自該資源發送至另一資源:與至少一個區塊鏈交易相關之完整交易資料;以及至少一個區塊鏈交易之完整默克爾路徑。該資源及/或另一資源可包含:數位錢包、密碼貨幣錢包,或輕量型或簡化支付錢包;及/或包含錢包之基於電腦之裝置;及/或包含錢包之智慧卡。其可包含以下步驟:在資源處或上儲存、接收及/或產生至少一個私密金鑰及/或至少一個公開金鑰;及/或在資源處接收至少一個區塊標頭。
其可包含以下步驟:藉由該資源將轉移資料提供至另一資源,該資料包含:i)與至少一個未支出區塊鏈交易輸出(UTXO)相關之資料;ii)含有至少一個未支出區塊鏈交易輸出(UTXO)之交易的交易ID (TXID);iii)用於支出至少一個未支出區塊鏈交易輸出(UTXO)之簽章;iv)用於含有至少一個未支出區塊鏈交易輸出(UTXO)之交易的默克爾路徑;及/或公開金鑰位址。
根據本文中所揭示之另一態樣,可提供一種包含電腦裝備之系統,該電腦裝備包括: 記憶體,其包含一或多個記憶體單元;以及 處理設備,其包含一或多個處理單元,其中該記憶體儲存經配置以在該處理設備上運行之程式碼,該程式碼經組配以便在處於該處理設備上時執行本文中所包括的任一技術方案之方法、方法步驟或實施例。
該電腦裝備可或可經配置或可操作以與區塊鏈網路及/或區塊鏈實施系統互動;及/或可包含硬體錢包。該錢包可經配置以執行簡化支付驗證(SPV)操作。
實施例亦提供一種電腦程式,其體現於電腦可讀儲存器上且經組配以便在運行於一或多個處理器上時執行本文中所包括之任何方法、技術方案或實施例。
實施例亦提供一種使用或提供硬體及/或軟體組件以執行本文中所包括之任何技術方案、方法、步驟或實施例的區塊鏈實施方法。硬體及/或軟體組件可為或可包含:密碼貨幣錢包;搜尋引擎;區塊鏈探索器;及/或瀏覽器。該組件可經配置或可操作以執行簡化支付驗證(SPV)操作。
本揭露內容之實施例可包括大體上如WO 2020/109908及PCT/IB2020/050737內所揭示之一或多個特徵,此二者之全文併入本文中。
100:系統 101:封包交換網路 102a:電腦裝備/裝置 102b:電腦裝備/裝置 103:使用者/給定方/代理 103a:使用者/實體/愛麗絲/第一方 103b:新使用者/實體/鮑勃/第二方 104:第一區塊鏈節點/比特幣節點/挖掘節點 105:用戶端應用程式/軟體/用戶端 105a:用戶端應用程式 105b:用戶端 106:分散式或區塊鏈網路/同級間(P2P)網路/比特幣網路 107:旁側通道 150:比特幣區塊鏈 151:資料區塊 151n-1:先前創建區塊 151n:新區塊 152:先前交易/原始交易 152i:先前交易 152j:目前交易/新接收交易/後續交易 153:起源區塊(Gb) 154:有序集合/有序匯集 155:區塊指標 201:標頭 202:輸入/輸入欄位 203:輸出欄位/未支出交易輸出 301:旁側通道 401:交易引擎 402:使用者介面(UI)層 403:函式 450:節點軟體 451:協定引擎 452:指令碼引擎 453:堆疊 454:應用程式層級決策引擎 455:區塊鏈相關功能模組 455C:共識模組 455P:傳播模組 455S:儲存模組 500:使用者介面(UI) 501:使用者可選擇元素/UI元素/親代節點 502:UI元素子代節點 503:資訊元素
為了輔助理解本揭露內容之實施例且展示此等實施例可如何付諸實施,僅作為實例參看附圖,在附圖中: 圖1為用於實施區塊鏈之系統的示意性方塊圖, 圖2示意性地示出可記錄於區塊鏈中之交易的一些實例, 圖3A為用戶端應用程式之示意性方塊圖, 圖3B為可藉由圖3A之用戶端應用程式呈現之實例使用者介面的示意性模型(mock-up), 圖4為用於處理交易之某一節點軟體的示意性方塊圖。 圖5提供節點之元網路實施圖的簡單實例,該等節點各自適合於儲存資料且可在元網路協定內藉由其元網路索引唯一地識別,該元網路索引由公開金鑰及元網路交易ID構成。 圖6展示根據如下文所論述之狀況1的實例交易 TxID 1 及先前交易 TxID 0 以及用作簽章驗證訊息之部分。 圖7展示根據如下文所論述之狀況2的實例交易 TxID2及用作簽章驗證訊息之部分。 圖8展示根據如下文所論述之狀況3的實例交易 TxID 3 及用作簽章驗證訊息之部分。

Claims (25)

  1. 一種用於驗證在一區塊鏈交易內提供之一簽章的方法,其包含: 在該區塊鏈交易內提供該簽章及/或驗證該簽章,其中該簽章係基於一訊息,該訊息: 包含用於唯一地識別該交易之交易識別資料;且 含有僅自該交易內可導出及/或可獲得之資料。
  2. 如請求項1之方法,其中: i)該訊息經數位簽章;及/或 ii)該訊息之至少部分經加密或編碼;及/或 iii)該簽章係在該交易內除一解除鎖定指令碼以外之一位置處提供;及/或 iii)該簽章及/或訊息係在該交易之一輸出內,較佳在該交易之一鎖定指令碼中提供。
  3. 如請求項1或2之方法,其中: i)該交易識別資料包含或關於唯一地與該交易相關聯之資料的一輸出點或其他部分;及/或 ii)該交易識別資料經編碼、雜湊或混淆。
  4. 如請求項1至3之方法且其進一步包含: i)對該簽章執行一驗證操作;及/或 ii)使用該訊息及一公開金鑰來對該簽章執行一驗證操作。
  5. 如請求項1至4之方法且其包含以下步驟: 使用一基於電腦之資源來驗證該簽章,其中該基於電腦之資源並不經配置以根據與區塊鏈相關聯之一底層協定執行挖掘及/或驗證操作。
  6. 如請求項1至5之方法且其進一步包含: 使用一密碼編譯金鑰對該訊息進行數位簽章、編碼或加密。
  7. 如請求項1至6之方法且其進一步包含: 若對該簽章之驗證成功,則准許一動作,或若對該訊息之驗證失敗,則禁止一動作。
  8. 如請求項1至7之方法,其中: 該區塊鏈交易係根據一應用程式層級協定形成。
  9. 如請求項8之方法,其中該協定: 經配置以促進區塊鏈交易之關聯,從而形成區塊鏈交易之一邏輯階層;及/或 一區塊鏈實施之元網路協定。
  10. 如請求項1至9之方法且其包含: 使用該簽章及該公開金鑰以與使用該公開金鑰產生之另一簽章進行一比較,或 藉由比較該公開金鑰與另一公開金鑰來執行一驗證。
  11. 如請求項1至10之方法,其中該交易識別資料包含一輸出點。
  12. 一種區塊鏈實施之驗證方法,其包含: 產生或提供一區塊鏈交易,該區塊鏈交易包含: i)一訊息,其包含: 用於唯一地識別該交易之交易識別資料;以及 僅自該交易內可導出及/或可獲得之資料; 以及 ii)一數位簽章,其與該訊息相關、基於該訊息或使用該訊息產生。
  13. 如請求項12之區塊鏈實施之驗證方法,其中: i)該交易進一步包含與用以產生該簽章之密碼編譯金鑰相關的一公開金鑰;及/或 iii)該交易識別資料包含一輸出;及/或 ii)該簽章係藉由使用與該公開金鑰相關之一密碼編譯金鑰對該訊息進行數位簽章來產生;及/或 iv)該簽章係在與該交易相關聯之任何輸入之外提供。
  14. 一種驗證在一區塊鏈交易(Tx)中提供之一數位簽章的方法,該區塊鏈交易包含: 待驗證之該數位簽章; 一訊息,其: i)包含用於唯一地識別該交易之交易識別資料;且 ii)含有僅自該交易內可導出及/或可獲得之資料; 一交易ID (TxID); 一協定旗標; 一任意公開金鑰(DPK);以及 一任意交易ID (DTxID)。
  15. 如請求項14之方法,其中該交易(Tx)進一步包含: 所儲存資料之一部分或對所儲存資料之一部分的一參考。
  16. 如請求項14或15之方法,其中: 所儲存資料之該部分或對所儲存資料之一部分的參考、該協定旗標、該任意公開金鑰(DPK)及/或該任意交易ID (DTxID)係在該交易之一輸出(UTXO)內,較佳在與該輸出(UTXO)相關聯之一鎖定指令碼內提供。
  17. 如請求項14至16之方法,其中所儲存資料之該部分、對所儲存資料之該部分的參考、該協定旗標、該任意公開金鑰(DPK)及/或該任意交易ID (DTxID)係在該交易內在一指令碼作業碼之後的一位置處提供,該指令碼作業碼用於將輸出一標記為無效,以供後續用作一後續交易之一輸入。
  18. 如請求項14至17之方法,其中: 該交易(Tx)進一步包含一或多個屬性;較佳地其中: 該一或多個屬性包含與以下各者相關聯之一關鍵字、標誌或識別符: i)在該交易(Tx)內提供或參考之資料之一部分;及/或 ii)該交易(Tx)。
  19. 如請求項13至17之方法,其中該交易(Tx)進一步包含: 與一邏輯親代交易(LPTx)相關聯之一親代公開金鑰(PPK),其中該邏輯親代交易(LPTx)由該任意交易ID (DTxID)識別;且 該簽章係使用該親代公開金鑰(PPK)產生。
  20. 如請求項13至18之方法且其進一步包含以下步驟: 使用該任意公開金鑰(DPK)及該交易ID (TxID)以識別一區塊鏈內之該交易(Tx)或該邏輯親代交易。
  21. 如請求項14至20之方法,其中該協定旗標與用於在一或多個區塊鏈交易中搜尋、儲存及/或擷取資料的一基於區塊鏈之協定相關聯及/或指示該協定。
  22. 一種電腦裝備,其包含: 記憶體,其包含一或多個記憶體單元;以及 處理設備,其包含一或多個處理單元,其中該記憶體儲存經配置以在該處理設備上運行之程式碼,該程式碼經組配以便在處於該處理設備上時執行如請求項1至21中任一項之方法。
  23. 如請求項22之電腦裝備,其中該裝備: i)用以或經配置或可操作以與一區塊鏈網路及/或區塊鏈實施系統互動;及/或 ii)包含一硬體錢包。
  24. 一種電腦程式,其體現於電腦可讀儲存器上且經組配以便在運行於一或多個處理器上時執行如請求項1至21中任一項之方法。
  25. 如請求項1至21中任一項之區塊鏈實施方法且其包含: 使用或提供一硬體及/或軟體組件以執行如請求項1至21中任一項之方法;其中該硬體及/或軟體組件為或包含: 一密碼貨幣錢包; 一搜尋引擎; 一區塊鏈探索器;或 一瀏覽器; 且較佳地,其中該組件可操作以執行一簡化支付驗證(SPV)操作。
TW111111417A 2021-03-26 2022-03-25 用於以區塊鏈實施之資料應用程式中簽章驗證的改良方法與系統 TW202304171A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB2104312.0A GB202104312D0 (en) 2021-03-26 2021-03-26 Computer-implemented method & system
GB2104312.0 2021-03-26

Publications (1)

Publication Number Publication Date
TW202304171A true TW202304171A (zh) 2023-01-16

Family

ID=75783698

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111111417A TW202304171A (zh) 2021-03-26 2022-03-25 用於以區塊鏈實施之資料應用程式中簽章驗證的改良方法與系統

Country Status (8)

Country Link
US (1) US20240171407A1 (zh)
EP (1) EP4278555A1 (zh)
JP (1) JP2024512068A (zh)
KR (1) KR20230160849A (zh)
CN (1) CN117136527A (zh)
GB (1) GB202104312D0 (zh)
TW (1) TW202304171A (zh)
WO (1) WO2022200193A1 (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11606190B2 (en) * 2017-12-26 2023-03-14 Akamai Technologies, Inc. High performance distributed system of record with cryptographic service support
EP3888297A1 (en) * 2018-11-27 2021-10-06 Nchain Holdings Limited Computer implemented system and method for storing data on a blockchain
GB201907349D0 (en) * 2019-05-24 2019-07-10 Nchain Holdings Ltd Verification of data fields of blockchain transactions

Also Published As

Publication number Publication date
WO2022200193A1 (en) 2022-09-29
US20240171407A1 (en) 2024-05-23
GB202104312D0 (en) 2021-05-12
KR20230160849A (ko) 2023-11-24
EP4278555A1 (en) 2023-11-22
JP2024512068A (ja) 2024-03-18
CN117136527A (zh) 2023-11-28

Similar Documents

Publication Publication Date Title
JP7467456B2 (ja) ブロックチェーンネットワークを介するデータの効率的且つセキュアな処理、アクセス、及び送信のためのシステム及び方法
US20230342437A1 (en) Blockchain-based system and method for publishing an operating system
KR20220139871A (ko) 블록체인 네트워크에서 사용하기 위한 증명 서비스
WO2021229334A1 (en) Computer-implemented systems and methods for efficient and secure processing, access and transmission of data via a blockchain
EP4032223A1 (en) Multi-criteria blockchain protocol
KR20230101843A (ko) 머클 증명 엔티티
TW202304171A (zh) 用於以區塊鏈實施之資料應用程式中簽章驗證的改良方法與系統
US20240121118A1 (en) Blockchain tree structure
US20240205030A1 (en) Uniform resource identifier
WO2024028077A1 (en) Wrapped encryption
GB2611538A (en) Redacting content from blockchain transaction
WO2023227467A1 (en) Blockchain-based message journaling