TW202036344A - 包括公鑰組合驗證之電腦實行系統及方法 - Google Patents

包括公鑰組合驗證之電腦實行系統及方法 Download PDF

Info

Publication number
TW202036344A
TW202036344A TW108137096A TW108137096A TW202036344A TW 202036344 A TW202036344 A TW 202036344A TW 108137096 A TW108137096 A TW 108137096A TW 108137096 A TW108137096 A TW 108137096A TW 202036344 A TW202036344 A TW 202036344A
Authority
TW
Taiwan
Prior art keywords
public key
public keys
transaction
public
group
Prior art date
Application number
TW108137096A
Other languages
English (en)
Other versions
TWI834741B (zh
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 TW202036344A publication Critical patent/TW202036344A/zh
Application granted granted Critical
Publication of TWI834741B publication Critical patent/TWI834741B/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/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
    • H04L9/3252Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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
    • H04L9/3255Cryptographic 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 using group based signatures, e.g. ring or threshold signatures
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Optimization (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

揭露一種電腦實行方法。該方法包括提供包含一公鑰組合驗證函數之一區塊鏈交易。該區塊鏈交易經組配為可兌換的以藉由向該區塊鏈交易提供一輸入來准許對一資源之存取或傳送該資源之控制,該輸入包含:多個公鑰;一梯度值(λ),其與該多個公鑰中之二者相關;及一群組公鑰,其源自該公鑰與該梯度值(λ)之一組合。該區塊鏈交易經組配以根據該交易之成功兌換而將該公鑰驗證函數應用於該輸入以驗證該群組公鑰係源自該多個公鑰之該組合。

Description

包括公鑰組合驗證之電腦實行系統及方法
發明領域 本揭露內容大體上係關於資源控制及/或存取之傳送,且更特定言之,係關於在區塊鏈上使用密碼編譯多重簽名法來傳送此控制及/或存取。本揭露內容尤其適合(但不限於)用於比特幣(Bitcoin)區塊鏈或比特幣協定之任何變體
發明背景 在此文件中,吾人使用術語「區塊鏈」來包括所有形式的基於電腦之電子分散式分類賬。此等分類賬包括基於共識之區塊鏈及交易鏈技術、許可及未許可分類賬、共用分類賬及其變體。區塊鏈技術之最廣泛已知應用為比特幣分類賬,儘管已提議並開發了其他區塊鏈實施方案。儘管本文中出於便利及說明之目的可提及比特幣,但應注意,本揭露內容不限於與比特幣區塊鏈一起使用,且替代區塊鏈實施方案及協定屬本揭露內容之範疇。術語「使用者」在本文中可指人類或基於處理器之資源。
區塊鏈為同級間電子分類賬,其經實行為由區塊構成之基於電腦之去中心化分散式系統,該等區塊又由交易構成。每一交易為一資料結構,該資料結構編碼區塊鏈系統中之參與者之間的數位資產或資源(例如密碼貨幣或符記化項)之控制之傳送,且包括至少一個輸入及至少一個輸出。每一區塊含有先前區塊之散列,使得該等區塊變為鏈接在一起以產生自一開始就已寫入至區塊鏈之所有交易的永久性不可變更記錄。交易含有嵌入至其輸入及輸出中之已知為指令碼的小型程式,其指定可如何及由誰存取交易之輸出。在比特幣平台上,此等指令碼係使用基於堆疊之指令碼處理語言來撰寫。
為了將交易寫入至區塊鏈,交易必須經「確證」。網路節點(挖掘者(miner))執行工作以確保每一交易有效,其中無效交易被網路拒絕。安裝於節點上之軟體用戶端根據執行其鎖定及解除鎖定指令碼而對未用交易(unspent transaction,UTXO)執行此確證工作。若鎖定及解除鎖定指令碼之執行評估為TRUE,則交易為有效的且將交易寫入至區塊鏈。因此,為將交易寫入至區塊鏈,該交易必須:i)由接收交易之第一節點進行確證,若交易經確證,則節點將該交易轉送至網路中之其他節點;且ii)添加至由挖掘者建構之新區塊中;且iii)經挖掘,亦即添加至過去交易之公用分類賬。
雖然區塊鏈技術由於密碼貨幣實施之使用而為最廣泛已知的,但數位企業家已開始探索比特幣所基於之密碼安全系統及可儲存於區塊鏈上以實行新系統之資料二者的使用。若區塊鏈可用於不限於密碼貨幣範圍之自動任務及程序,則將非常有利。此等解決方案將夠利用區塊鏈的益處(例如,事件之永久性防篡改記錄、分散式處理等),同時在其應用中變得更通用。
區塊鏈相關關注之另一領域係使用『符記(token)』(或『彩色幣』)來表示真實世界實體及經由區塊鏈傳送真實世界實體。潛在地敏感或秘密之項可由符記表示,該符記不具有可辨別之含義或值。符記因此充當允許自區塊鏈引用現實世界項之識別符。
區塊鏈交易可利用內置多重簽名協定來限制交易,使得N 個總簽名中之M 個需要呈現為兌換指令碼兌換交易之輸入。舉例而言,可使用五個多重簽名法中之三個鎖定交易,使得可僅藉由使用對應於該五個簽名中之任何三個的三個私鑰來解除鎖定交易。
對於N 個方法中之M 個,參考比特幣區塊鏈協定之變化中使用的命令,作業碼OP_MULTISIG採用N 個公鑰及M 個簽名作為輸入。在此實例中,N 個公鑰儲存於其自身兌換指令碼中。作業碼開始於第一簽名且檢索N 個公鑰測試以查看該簽名是否藉由該公鑰產生。其丟棄與簽名不匹配的每一密鑰。出於此原因,簽名之階數(order)必須匹配提供公鑰之階數。以下給出多重簽名兌換指令碼之實例:
兌換指令碼
>PubKey
Figure 02_image005
>>PubKey
Figure 02_image007
>…>PubKey
Figure 02_image009
> OP_CHECKMULTISIG
 
對於解除鎖定,將需要呈現以下輸入:
輸入
>sig
Figure 02_image005
>>Sig
Figure 02_image007
>…>Sig
Figure 02_image011
>
根據上文顯而易見,兌換指令碼大小與所需簽名之數目M 及參與者之數目N 二者成線性比例。因此,隨著MN 增大,兌換交易中之兌換交易所需之簽名的數目增大,公鑰之數目亦如此。因此,傳播後續兌換交易所需之網路速度及儲存後續兌換交易所需之空間增加。此外,在合併兌換交易之解除鎖定指令碼與兌換指令碼時需要執行之操作之數目在N 中且在M 中線性地增大。
因此,需要提供一種用於減少與區塊鏈交易、利用多重簽名協定之此等區塊鏈交易且尤其需要儲存較大數目之公鑰之此等交易的傳輸、操縱及儲存相關聯的操作及儲存要求的解決方案。
現在已設計出此改良之解決方案。因此,根據本揭露內容,提供一種如隨附申請專利範圍中所定義之方法。
發明概要 根據本揭露內容,提供一種電腦實行方法。其可描述為一種安全方法。
方法可包含以下步驟:提供包含一公鑰組合驗證函數之一區塊鏈交易,該區塊鏈交易經組配為可兌換的以藉由向該區塊鏈交易提供一輸入來准許對一資源之存取或傳送該資源之控制,該輸入包含多個公鑰、與該多個公鑰中之各別二者相關之至少一個梯度值以及源自該多個公鑰與該至少一個梯度值之一組合的一群組公鑰,其中該區塊鏈交易經組配以根據該交易之成功兌換而將該公鑰驗證函數應用於該輸入以驗證該群組公鑰係源自該多個公鑰之該組合。
此方法提供一種以一安全、可靠且可公開驗證的方式傳送控制或由多個私鑰表示及/或控制之一資源或對該資源之存取的方法。
方法可包含以下步驟:自一已知值導出一導出公鑰;以及將該導出公鑰配置為次級公鑰之一序列,其中次級公鑰之該序列為該多個公鑰之一子集。
此使得一使用者能夠將方法之已知要求轉換為待用於方法中之公鑰,藉此提供改良方法之通用性之優勢。提供之其他優勢為可預先計算該序列之係數,藉此提高方法可藉以執行的速度。
方法可包含以下步驟:在將該導出公鑰配置為次級公鑰之一序列之前將一限制函數應用於該已知值,藉此限制該子集之大小。
此提供進一步提高方法之效率的優勢。
方法可包含以下步驟:至少部分地基於該多個中之一另外公鑰及該導出公鑰計算該多個中之一公鑰。
此提供以下優勢:鑒於該多個中之一或多者可源自一個儲存的公鑰,因此移除儲存給定多個公鑰之要求。
該區塊鏈交易可進一步包含:一群組簽名,其對應於該群組公鑰;一默克爾(Merkle)根;及一默克爾路徑驗證函數,其中藉由向該區塊鏈交易提供以下各者而將該區塊鏈交易組配為可兌換的:一默克爾路徑,其與該多個公鑰相關聯;及一群組私鑰,其對應於該群組簽名。
此方法需要更少處理步驟以實現安全性之給定位準,藉此提供提高方法之效率同時維持安全性之優勢。
本揭露內容亦提供一種系統,其包含:一處理器;及記憶體,該記憶體包括可執行指令,該等可執行指令因由該處理器執行而使得該系統執行本文中所描述的電腦實行方法之任何實施例。
本揭露內容亦提供一種非暫時性電腦可讀儲存媒體,其上儲存有可執行指令,該等可執行指令因由一電腦系統之一處理器執行而使得該電腦系統至少執行本文中所描述之該電腦實行方法之一實施例。
較佳實施例之詳細說明 揭露驗證比特幣指令碼內二個橢圓曲線點相加之方法。給定二個點
Figure 02_image013
及候選解
Figure 02_image015
,所揭露方法在指令碼中驗證
Figure 02_image017
。所揭露之另一方法為將前一方法擴展至一系列點相加。
方法可針對數目個參與者用於簽名法,諸如多重簽名法。方法可使用橢圓曲線數位簽名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)協定。
質數階
Figure 02_image019
之橢圓曲線由以下等式定義:
Figure 02_image021
根據曲線之組結構,可將曲線
Figure 02_image023
Figure 02_image025
上之二個點相加以得到第三點
Figure 02_image027
,亦即:
Figure 02_image029
Figure 02_image015
定義為橢圓曲線上的點,該點穿過連接
Figure 02_image031
Figure 02_image033
隨後圍繞x軸反射的線。用於點相加之公式為:
Figure 02_image035
Figure 02_image037
其中,針對
Figure 02_image039
情況,梯度
Figure 02_image041
由以下給定:
Figure 02_image043
且針對
Figure 02_image045
情況,梯度
Figure 02_image041
由以下給定:
Figure 02_image047
比特幣協定等使用secp256k1約定,其中橢圓曲線參數由
Figure 02_image049
Figure 02_image051
給定。
在區塊鏈交易之指令碼中應用擴展的歐幾里得(Euclidean)算法並不實用,此係因為其需要計算模數乘法反元(modular multiplicative inverses),且因此其無法實行如指令碼中之上述等式所定義的橢圓曲線點相加。
在下文中,所揭露之方法為驗證二個點
Figure 02_image031
Figure 02_image033
之相加之解。解
Figure 02_image053
本身之計算係在指令碼之外執行,同時在指令碼中驗證答案。此減少將另外施加於區塊鏈節點上之計算要求。
為實現此驗證,需要解
Figure 02_image015
Figure 02_image031
Figure 02_image033
之間的線之梯度之值,標示為
Figure 02_image041
Figure 02_image041
之計算在指令碼之外執行,但
Figure 02_image041
之驗證可在指令碼中執行。
下文中更詳細地定義的新公鑰驗證函數>Point Add
Figure 02_image055
>經組配以在其中所呈現之
Figure 02_image041
Figure 02_image031
Figure 02_image033
之間的線之梯度的情況下且在
Figure 02_image053
的情況下返回TRUE。此二個驗證直接在指令碼中實現,且一旦交易成功地兌換便發佈。
函數之執行包含以下步驟: 1.   藉由檢查以下來驗證
Figure 02_image041
之值: a)   在
Figure 02_image039
情況下,吾等具有
Figure 02_image057
b)   在
Figure 02_image045
情況下,吾等具有
Figure 02_image059
2.   藉由檢查
Figure 02_image027
之座標滿足以下等式來驗證
Figure 02_image015
之值
Figure 02_image061
Figure 02_image063
藉由應用公鑰驗證函數之逐次迭代,可驗證任意數目
Figure 02_image065
個公鑰之總和,其中唯一限制為正使用之區塊鏈協定之要求,諸如比特幣指令碼中之作業碼數目(201)或位元組中之大小(10000)。
上述公鑰驗證函數作用於三個公鑰以驗證該等公鑰中之二個合併以產生第三個。此可經擴展以驗證三個公鑰之相加
Figure 02_image067
及超出三個公鑰之相加。標示為PointAddMulti之擴展函數在下文中經定義,其中驗證過程驗證P1、P2及P3合併以產生P: >Point Add Multi
Figure 02_image069
>: = >Point Add
Figure 02_image071
> >Point Add
Figure 02_image073
> 其中
Figure 02_image075
,值
Figure 02_image077
Figure 02_image031
Figure 02_image033
之間的梯度,且值
Figure 02_image041
Figure 02_image079
Figure 02_image015
之間的梯度。
一般而言,亦即,給定合併以產生公鑰
Figure 02_image081
n 個公鑰
Figure 02_image083
,PointAddMulti可如下定義: >PointAddMulti
Figure 02_image085
> := >PointAdd
Figure 02_image087
>>PointAdd
Figure 02_image089
>…>PointAdd
Figure 02_image091
>
可使用下文中揭露之方法以比特幣指令碼處理語言來建構點相加函數PointAdd。
在圖1中說明用於未壓縮公鑰之資料編碼。此處,資料之虛擬值獲自A.安東諾普洛斯(A. Antonopoulos)的著名書《精通比特幣(Mastering Bitcoin)》,第2版,O'Reilly媒體(O'Reilly Media)(2017)。
給定未壓縮公鑰P,可使用運算符OP_SPLIT如下在比特幣指令碼中直接擷取x及y座標: >P > OP_1 OP_SPLIT OP_NIP 32 OP_SPLIT = >x> >y>。
使用此運算,可自輸入
Figure 02_image093
擷取x及y座標:
Figure 02_image095
>
Figure 02_image015
> >
Figure 02_image041
> >
Figure 02_image031
> >
Figure 02_image033
>                    >
Figure 02_image096
> >
Figure 02_image098
> >
Figure 02_image041
> >
Figure 02_image100
> >
Figure 02_image102
> >
Figure 02_image104
> >
Figure 02_image106
>
應注意,可複製且重新配置上述之右側之項,以使用基本運算產生任何所需組合。
參考圖2,函數PointAdd之結構中之第一步驟為驗證λ之輸入值。在其中
Figure 02_image039
的情況下,檢查以下等式是否成立:
Figure 02_image057
。此藉由將>
Figure 02_image106
> >
Figure 02_image102
> >
Figure 02_image041
> >
Figure 02_image104
> >
Figure 02_image100
>作為輸入且利用以下運算對此輸入進行操作來實現: OP_SUB OP_MUL >p> OP_MOD OP_3 OP_ROLL OP_3 OP_SUB >p> OP_MOD OP_EQUAL
在且僅在滿足等式
Figure 02_image108
的情況下,其將返回TRUE。圖2之表說明執行上述運算時堆疊之演進。
針對
Figure 02_image110
情況,可建構與上文所描述之運算類似之一組運算,其檢查以下等式是否成立:
Figure 02_image112
參考圖3,函數PointAdd之結構中之第二步驟為驗證
Figure 02_image015
之輸入值為
Figure 02_image114
之和。為進行此操作,檢查以下等式中之每一者是否成立:
Figure 02_image035
,且
Figure 02_image116
由於
Figure 02_image041
已經驗證,因此其可在以下計算中使用。為檢查上述二個等式中之第一個是否成立,將以下內容呈現為輸入: >
Figure 02_image096
> >
Figure 02_image041
> >
Figure 02_image100
> >
Figure 02_image104
> 且利用以下運算進行操作: OP_3 OP_ROLL OP_DUP OP_MUL OP_SWAP OP_SUB OP_SWAP >
Figure 02_image019
> OP_MOD OP_EQUAL。
此處,
Figure 02_image019
為橢圓曲線基礎字段之階數。
圖3之表說明執行上述運算時堆疊之演進。
可藉由將現有公鑰
Figure 02_image031
添加至根據橢圓曲線產生器點
Figure 02_image118
乘以數目
Figure 02_image120
而計算之公鑰來產生新公鑰
Figure 02_image015
,因此:
Figure 02_image122
Figure 02_image124
可為用以自初始公鑰
Figure 02_image031
創建導出公鑰
Figure 02_image015
之確定性密鑰。
Figure 02_image126
之點相加之驗證可藉由驗證涉及產生器點
Figure 02_image118
之固定倍數之點相加之序列來實現。
舉例而言,雙加(double-and-add)法可用以將點相加分解為級數(series)
Figure 02_image128
其中
Figure 02_image130
Figure 02_image132
為如下
Figure 02_image124
之二元展開式中之係數:
Figure 02_image134
藉由使產生器加倍而獲得之點
Figure 02_image136
為常識且可預先計算。    此意謂存在可能之255個個別點相加,其需要驗證以獲得最終結果。
因此,可利用255 + 1 = 256點相加之最大值來驗證
Figure 02_image126
除了雙加法之外,可使用其他點相加法算法,諸如滑動窗口(sliding-window)或蒙哥馬利(Montgomery ladder)階梯法。
為使利用計算密鑰之點相加之計算更易於管理,
Figure 02_image124
可受限於較小範圍。範圍可為特定於應用程式的。
Figure 02_image124
可能需要在
Figure 02_image138
內之32位範圍中取值,該
Figure 02_image138
表示43億個值範圍。然而,僅需要31個個別點相加來驗證最終結果。舉例而言,在比特幣中,此可藉由以完整256位範圍中之
Figure 02_image124
開始且隨後應用模數運算OP_MOD來將該範圍限制為32位來實現。隨機公鑰
Figure 02_image140
可用以藉由獲取和
Figure 02_image142
來使範圍模糊。
舉例而言,二手車拍賣可具有16,000 USD之最高出價。呈數目16000之形式的
Figure 02_image144
USD之出價可添加至公鑰
Figure 02_image031
中以得到附加密鑰
Figure 02_image146
其可藉由指令碼中之14點相加來驗證。
為瞭解可如何將其用於出價過程,假設一車輛之當前最高出價為9,000 USD,該出價由特定UTXO追蹤。此UXTO具有兌換指令碼:
IF
Figure 02_image148
>Point Add Multi
Figure 02_image150
> >CheckSig
Figure 02_image152
> ELSE OP_RETURN
需要以下作為輸入以用於解除鎖定:
>Sig
Figure 02_image152
> >
Figure 02_image152
> >Verification data> >
Figure 02_image154
> >
Figure 02_image156
>  
上文所描述之點相加驗證方法可隨後用以驗證
Figure 02_image158
。應注意,此涉及14個個別點相加之驗證。用於此等驗證之資料在上述輸入中標記為『驗證資料』。
在提供
Figure 02_image144
>9000之新出價的情況下,UTXO可解除鎖定。新出價者必須將其公鑰
Figure 02_image031
及解
Figure 02_image081
提供至和
Figure 02_image160
其利用附加密鑰
Figure 02_image081
對交易進行簽名之事實使其始終如一地鏈接至特定
Figure 02_image144
USD出價。
作為另一實例,考慮檢索一隨機數(一數目)之比特幣挖掘者,該隨機數在與區塊鏈中之一區塊(諸如當前區塊)進行哈希運算時產生低於某一臨限值之值。挖掘者可創建利用其公鑰加上隨機數之前9個數位鎖定之交易
Figure 02_image162
。對於一數目之前9個數位,存在十億個組合。因此,可使用30個點相加來驗證公鑰
Figure 02_image081
。此使密鑰
Figure 02_image081
與挖掘者之公鑰及經挖掘區塊之隨機數始終如一地鏈接。
上文所描述之記入(inscript)點相加驗證過程可用以實行使用N中之M (M-of-N)多重簽名法對交易進行簽名之有效方式,藉此實現用於使用區塊鏈傳送資源之控制或對該資源之存取的更高效及安全方法。
對於N中之M方法,比特幣作業碼OP_MULTISIG採用N個公鑰及M個簽名作為輸入。作業碼開始於第一簽名且檢索N個公鑰測試以查看該簽名是否藉由該公鑰產生。其丟棄與簽名不匹配的每一密鑰。出於此原因,簽名之階數必須匹配提供公鑰之階數。
多重簽名兌換指令碼看起來像: >PubKey
Figure 02_image164
>>PubKey
Figure 02_image166
>…>PubKey
Figure 02_image168
> OP_CHECKMULTISIG
需要以下作為輸入以用於解除鎖定: >sig
Figure 02_image164
>>Sig
Figure 02_image166
>…>Sig
Figure 02_image170
>。
根據上文可見,指令碼大小與所需簽名之數目M及參與者之數目N二者成線性比例。
參考圖4至6,創建一默克爾樹,其中葉子對應於公鑰之每一N中之M組合,該默克爾樹含有總計N個選擇M個葉子。接著,創建一兌換指令碼,其含有默克爾根,且需要解除鎖定含有默克爾路徑之輸入及簽名驗證方法之呈現。
下文描述用於傳送資源之控制或對該資源之存取的二種方法。每一種方法具有其自身優勢及劣勢。 1.個別簽名法。 此使用每一簽名來分別地對交易進行簽名,且具有與多重簽名相同的功能性但指令碼大小較小。 2.群組簽名法。 此在簽名群組中為M個參與者提供單一簽名。此可為參與者之每一集合M預先同意之任何公鑰,諸如源自共用秘密之密鑰,或藉由對群組之公鑰進行求和而形成的密鑰。在後一種情況中,用於驗證密鑰為密鑰之個別成員之和的額外選項使用先前所描述的驗證方法。
每一方法具有不同縮放特性,如圖4中佈置之表中所概括。
考慮5中之4方法。在此情況下,默克爾樹將具有5個選擇4
Figure 02_image172
個葉子。默克爾樹本身將為三個層級深。用於驗證具有根>R>之默克爾路徑的運算為 >Verify Merkle Path> = 6 OP_PICK OP_SHA256 (OP_SWAP OP_IF OP_SWAP OP_ENDIF OP_CAT OP_SHA256)*3 >R> OP_EQUALVERIFY 其將對於下式之默克爾路徑返回TRUE: >Leaf> >Grandparent Sib> >0,1> >Parent Sib> >0,1> >Sib> >0,1> 其中在同胞(sibling)為左側節點的情況下存在0,且在同胞為右側節點的情況下存在1。
默克爾路徑及用以驗證默克爾路徑之操作的大小與簽名組
Figure 02_image168
選擇
Figure 02_image170
之選擇之數目呈對數增長。
在個別簽名法中,群組之每一成員提供交易之個別簽名。此方法之功能性與標準多重簽名法一致,然而,指令碼之大小減小,此提高指令碼所執行之效率。該指令碼具有以下形式: >Verify Merkle Path>  >CheckSig>*M
其需要解除鎖定以下輸入之呈現: >Sig
Figure 02_image031
>…>Sig
Figure 02_image174
>   >
Figure 02_image031
>…>
Figure 02_image174
>  >Merkle Path
Figure 02_image176
>
兌換者必須提供具有其對應公鑰之
Figure 02_image170
個簽名及
Figure 02_image081
之默克爾路徑作為輸入。
此方法中之
Figure 02_image176
對默克爾樹葉之映射可為例如使用OP_CAT之
Figure 02_image176
之級聯之散列。
此方法之密鑰特徵為每一成員對一特定交易進行簽名。其並不彼此揭露關於其私鑰的任何資訊,且因此並不損害其私鑰之安全性。
參考圖4,可見此方法對於傳統多重簽名法具有有利的縮放特性。在多重簽名體系位於低
Figure 02_image170
及大
Figure 02_image168
(例如1000中之5)時,此最為明顯。
在群組簽名法中,對交易進行簽名之M個成員之群組僅需要一個簽名。該指令碼具有以下形式: >Verify Merkle Path>  >CheckSig>
其需要解除鎖定以下輸入之呈現: >Sig
Figure 02_image081
>>
Figure 02_image081
> >Merkle Path>
此處,
Figure 02_image081
為用於
Figure 02_image170
個參與者之集合之群組公鑰。
此方法之優勢為解除鎖定指令碼大小極小,此係因為其僅需要一個簽名。記入公鑰相加之數目與參與者之數目M成線性比例,因此在處理功率方面,此方法提供比檢查個別簽名更低成本的運算。
此方法需要參與者彼此共享其私鑰。此意謂其在此方法中使用之密鑰對為單次使用密鑰對以改良方法之安全性為適用的。另一特徵為可對群組私鑰進行存取之參與者中之任何成員可對其所希望之任何交易進行簽名。此提高方法之通用性。存在尤其需要此等特徵之應用。舉例而言,引向器之群組希望激活已在區塊鏈上記錄為UTXO之良好確立的最終手段(last-resort)條項。此可藉由使用此方法解除鎖定彼特定UTXO來激活。
在上述方法中,外部觀測器將完全未察覺此實際上為群組簽名法。為公佈簽名及對應公鑰與使用者之群組相關之事實,方法可經修改以需要驗證群組公鑰為指令碼中之個別參與者之公鑰之和
Figure 02_image178
。此調適方法可使用上文所描述之密鑰相加驗證方法。
在此調適方法中,兌換指令碼可具有以下形式: >Verify Merkle Path>  >Point Add Multi
Figure 02_image180
> >CheckSig>
其需要解除鎖定以下輸入之呈現: >Sig
Figure 02_image081
>>
Figure 02_image081
> >Verification data>>
Figure 02_image081
>>
Figure 02_image031
>…>
Figure 02_image174
> >Merkle Path>
其中>Point Add Multi
Figure 02_image180
>函數為先前所介紹之物,且>Verification data>含有每一個別點相加之間的梯度。
圖5說明一對交易Tx1及Tx2。Tx1定義具有兌換指令碼之UTXO,該兌換指令碼含有驗證默克爾路徑(Verify Merkle Path)函數、對特定N中之M要求定製之PointAddMulti函數及CheckSig函數。Tx2定義隨後提交至區塊鏈之交易,該交易意欲藉由在輸入中向中呈現群組簽名、與群組簽名相關之群組公鑰、PointAddMulti函數所需之梯度、使用者群組之公鑰及相關聯默克爾路徑來兌換Tx1之UTXO。
圖6展示說明經採用以執行根據上文所描述之個別簽名法及群組簽名法之方法之步驟的流程圖。在圖6中,Tx1及Tx2可指代根據任一方法使用的一對交易。
現轉而參看圖7,提供計算裝置2600之說明性簡化方塊圖,該計算裝置可用於實踐本揭露內容之至少一個實施例。在各種實施例中,計算裝置2600可用以實行上文所說明及描述之系統中之任一者。舉例而言,計算裝置2600可經組配以用作資料伺服器、網頁伺服器、攜帶型計算裝置、個人電腦或任何電子計算裝置。如圖7中所展示,計算裝置2600可包括具有快取記憶體之一或多個層級的一或多個處理器以及可經組配以與包括主記憶體2608及持久性儲存器2610之儲存子系統2606通訊的記憶體控制器(共同地標記為2602)。主記憶體2608可包括如所展示之動態隨機存取記憶體(dynamic random-access memory,DRAM) 2618及唯讀記憶體(read-only memory,ROM) 2620。儲存子系統2606及快取記憶體2602且可用於儲存資訊,諸如與如本揭露內容中所描述之交易及區塊相關聯的細節。處理器2602可用以提供如本揭露內容中所描述之任何實施例的步驟或功能性。
處理器2602亦可與一或多個使用者介面輸入裝置2612、一或多個使用者介面輸出裝置2614及網路介面子系統2616通訊。
匯流排子系統2604可提供用於使計算裝置2600之各個組件及子系統能夠按預期彼此通訊之機制。儘管匯流排子系統2604經示意性地展示為單一匯流排,但匯流排子系統之替代實施例可利用多個匯流排。
網路介面子系統2616可提供至其他計算裝置及網路之介面。網路介面子系統2616可充當用於自其他系統接收資料及將資料自計算裝置2600傳輸至其他系統之介面。舉例而言,網路介面子系統2616可使資料技術員能夠將裝置連接至網路,使得資料技術員可能夠在處於諸如資料中心之遠程位置中時將資料傳輸至裝置及自裝置接收資料。
使用者介面輸入裝置2612可包括:一或多個使用者輸入裝置,諸如鍵盤;指標裝置,諸如整合式滑鼠、軌跡球、觸控板或圖形平板電腦;掃描器;條形碼掃描器;觸控螢幕,其併入至顯示器中;音訊輸入裝置,諸如語音辨識系統、麥克風;及其他類型之輸入裝置。一般而言,使用術語「輸入裝置」意欲包括用於將資訊輸入至計算裝置2600之所有可能類型的裝置及機構。
一或多個使用者介面輸出裝置2614可包括顯示子系統、列印機或諸如音訊輸出裝置之非視覺顯示器等。顯示子系統可為陰極射線管(cathode ray tube,CRT)、諸如液晶顯示器(liquid crystal display,LCD)之平板裝置、發光二極體(light emitting diode,LED)顯示器,或投影裝置或其他顯示裝置。一般而言,使用術語「輸出裝置」意欲包括用於輸出來自計算裝置2600之資訊的所有可能類型的裝置及機制。舉例而言,一或多個使用者介面輸出裝置2614可用以呈現使用者介面以在使用者與應用程式之交互可為適當的時促進此交互,該等應用程式執行所描述之處理及其中之變化。
儲存子系統2606可提供用於儲存可提供本揭露內容之至少一個實施例之功能性的基本程式設計及資料建構的電腦可讀儲存媒體。應用程式(程式、程式碼模組、指令)在由一或多個處理器執行時可提供本揭露內容之一或多個實施例之功能性,且可儲存於儲存子系統2606中。此等應用程式模組或指令可由一或多個處理器2602執行。儲存子系統2606可另外提供用於儲存根據本揭露內容所使用之資料的儲存庫。舉例而言,主記憶體2608及快取記憶體2602可提供用於程式及資料之揮發性儲存器。持久性儲存器2610可提供用於程式及資料之持久性(非揮發性)儲存器且可包括快閃記憶體、一或多個固態驅動機、一或多個磁性硬碟驅動機、具有相關聯可移媒體之一或多個軟碟驅動機、具有相關聯可移媒體之一或多個光學驅動機(例如CD-ROM或DVD或藍光光碟(Blue-Ray))驅動機及其他類似儲存媒體。此程式及資料可包括用於進行如本揭露內容中所描述之一或多個實施例之步驟的程式以及與如本揭露內容中所描述之交易及區塊相關聯的資料。
計算裝置2600可屬於各種類型,包括攜帶型電腦裝置、平板電腦、工作站或下文所描述之任何其他裝置。另外,計算裝置2600可包括可經由一或多個埠(例如USB、頭戴式耳機插口、雷電型連接器等)連接至計算裝置2600的另一裝置。可連接至計算裝置2600之裝置可包括經組配以接受光纖連接器之多個埠。因此,此裝置可經組配以將光學信號轉換成可經由將裝置連接至計算裝置2600之埠傳輸的電信號以供處理。歸因於電腦及網路不斷改變之本質,出於說明裝置之較佳實施例之目的,圖7中所描繪之計算裝置2600之描述僅意欲作為特定實例。具有比圖7中所描繪之系統更多或更少組件的許多其他組配為可能的。
應注意,上文所提及之實施例說明而非限制本發明,且熟習此項技術者將能夠設計許多替代實施例,而不脫離本揭露內容之如由所附申請專利範圍定義的範疇。在申請專利範圍中,置放於圓括號中之任何參考符號不應被認為限制申請專利範圍。詞「包含(comprising及comprises)」及其類似者並不排除除任何申請專利範圍或說明書中整體列出之彼等元件或步驟外的元件或步驟之存在。在本說明書中,「包含(comprises及comprising)」意謂「包括(includes及including)或由……組成(consists of及consisting of)」。元件之單數參考並不排除此等元件之複數參考,且反之亦然。本揭露內容可藉助於包含若干獨特元件之硬體且藉助於經合適程式化之電腦實行。在枚舉若干構件之裝置申請專利範圍中,此等構件中之若干者可由硬體之同一物件體現。在相互不同之附屬申請專利範圍中敍述某些措施之純粹實情並不指示不能有利地使用此等措施之組合。
2600:計算裝置 2602:處理器 2604:匯流排子系統 2606:儲存子系統 2608:主記憶體 2610:持久性儲存器 2612:使用者介面輸入裝置 2614:使用者介面輸出裝置 2616:網路介面子系統 2618:動態隨機存取記憶體 2620:唯讀記憶體
本揭露內容之此等及其他態樣將自本文中所描述之實施例顯而易見且參考本文中所描述之實施例進行闡明。現將僅藉助於實例且參考附圖而描述本揭露內容之實施例,在附圖中: 圖1為說明用於未壓縮公鑰之資料編碼的表; 圖2為展示執行本揭露內容之一實施例之堆疊的演進的表; 圖3為展示執行本揭露內容之一實施例之堆疊之演進的表; 圖4為說明用於不同多重簽名法之M、N及指令碼大小之間的關係的表; 圖5示意性地說明體現本揭露內容之二個交易; 圖6為展示體現本揭露內容之步驟之序列的流程圖;且 圖7為說明各種實施例可實行於其中之計算環境的示意圖。

Claims (7)

  1. 一種電腦實行方法,其包含以下步驟: 提供包含一公鑰組合驗證函數之一區塊鏈交易,該區塊鏈交易經組配為可兌換的以藉由向該區塊鏈交易提供一輸入來准許對一資源之存取或傳送該資源之控制,該輸入包含: 多個公鑰; 至少一個梯度值,其與該多個公鑰中之各別二者相關;及 一群組公鑰,其源自該多個公鑰與該至少一個梯度值之一組合, 其中該區塊鏈交易經組配以根據該交易之成功兌換而將該公鑰驗證函數應用於該輸入以驗證該群組公鑰係源自該多個公鑰之該組合。
  2. 如請求項1之方法,其包含以下步驟: 自一已知值導出一導出公鑰;以及 將該導出公鑰配置為次級公鑰之一序列, 其中次級公鑰之該序列為該多個公鑰之一子集。
  3. 如請求項2之方法,其包含以下步驟:在將該導出公鑰配置為次級公鑰之一序列之前將一限制函數應用於該已知值,藉此限制該子集之大小。
  4. 如請求項3之方法,其包含以下步驟:至少部分地基於該多個中之一另外公鑰及該導出公鑰計算該多個中之一公鑰。
  5. 如前述請求項中任一項之方法,該區塊鏈交易進一步包含: 一群組簽名,其對應於該群組公鑰; 一默克爾根;及 一默克爾路徑驗證函數, 其中藉由向該區塊鏈交易提供以下各者而將該區塊鏈交易組配為可兌換的: 一默克爾路徑,其與該多個公鑰相關聯;及 一群組私鑰,其對應於該群組簽名。
  6. 一種系統,其包含:一處理器;及記憶體,該記憶體包含可執行指令,該等可執行指令因由該處理器執行而使得該系統執行如前述請求項中任一項之電腦實行方法。
  7. 一種非暫時性電腦可讀儲存媒體,其上儲存有可執行指令,該等可執行指令因由一電腦系統之一處理器執行而使得該電腦系統至少執行如請求項1至5中任一項之電腦實行方法。
TW108137096A 2018-10-17 2019-10-15 包括公鑰組合驗證之電腦實行系統及方法 TWI834741B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB1816936.7A GB201816936D0 (en) 2018-10-17 2018-10-17 Computer-implemented system and method
GB1816936.7 2018-10-17

Publications (2)

Publication Number Publication Date
TW202036344A true TW202036344A (zh) 2020-10-01
TWI834741B TWI834741B (zh) 2024-03-11

Family

ID=

Also Published As

Publication number Publication date
JP7383017B2 (ja) 2023-11-17
SG11202103165YA (en) 2021-05-28
EP3868054B1 (en) 2024-05-15
EP3868054A1 (en) 2021-08-25
CN112970227A (zh) 2021-06-15
JP2022504224A (ja) 2022-01-13
US20210344510A1 (en) 2021-11-04
KR20210074358A (ko) 2021-06-21
GB201816936D0 (en) 2018-11-28
JP2023184657A (ja) 2023-12-28
WO2020079534A1 (en) 2020-04-23

Similar Documents

Publication Publication Date Title
JP7379371B2 (ja) ブロックチェーンネットワークの分割
JP7428704B2 (ja) デジタルリソースへのアクセスを移転するための、コンピュータにより実施されるシステム及び方法
JP7264878B6 (ja) ブロックチェーンにおけるリソースを保護する改善された時間ロック技術
JP7240402B2 (ja) コンピュータにより実施される意思決定システム及び方法
CN114982193A (zh) 使用区块链事务的数字合约
JP2023056011A (ja) ブラインド化された帰結選択のためのブロックチェーンで実装されるセキュリティー・システムおよび方法
JP2023184657A (ja) 公開鍵結合検証を含む、コンピュータにより実施されるシステム及び方法
CN113508570B (zh) 在区块链中节点之间共享及验证区块及电子文档的方法
JP2022532764A (ja) プルーフオブワークブロックチェーンネットワークにおける非並列化マイニングのためのシステムおよび方法
KR102272164B1 (ko) 블록체인에서 스마트 컨트랙트를 이용한 대용량 전자 문서 유통 방법
US20220278843A1 (en) Computer implemented method and system for knowledge proof in blockchain transactions
JP2022511971A (ja) ブロックチェーン上で行われる移転の実行を制御又は強制するためのコンピュータにより実現されるシステム及び方法
KR102365914B1 (ko) 블록체인 기반의 스마트 컨트랙트를 이용한 개인 정보가 포함된 전자 문서를 유통하는 방법 및 그 시스템
TWI834741B (zh) 包括公鑰組合驗證之電腦實行系統及方法
JP2022520593A (ja) 擬似ランダムデータ生成のためのコンピュータで実施される方法およびシステム