JPWO2020240289A5 - - Google Patents

Download PDF

Info

Publication number
JPWO2020240289A5
JPWO2020240289A5 JP2021569311A JP2021569311A JPWO2020240289A5 JP WO2020240289 A5 JPWO2020240289 A5 JP WO2020240289A5 JP 2021569311 A JP2021569311 A JP 2021569311A JP 2021569311 A JP2021569311 A JP 2021569311A JP WO2020240289 A5 JPWO2020240289 A5 JP WO2020240289A5
Authority
JP
Japan
Prior art keywords
transaction
ecdsa
code
transactions
signature
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2021569311A
Other languages
Japanese (ja)
Other versions
JP2022533752A (en
JP7516425B2 (en
Publication date
Priority claimed from GBGB1907397.2A external-priority patent/GB201907397D0/en
Application filed filed Critical
Publication of JP2022533752A publication Critical patent/JP2022533752A/en
Publication of JPWO2020240289A5 publication Critical patent/JPWO2020240289A5/ja
Application granted granted Critical
Publication of JP7516425B2 publication Critical patent/JP7516425B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (28)

楕円曲線デジタル署名アルゴリズム(ECDSA)に基づき知識証明を実行する、コンピュータにより実施される方法であって、前記方法は、ブロックチェーンネットワークの検証ノードにおいて、
実行可能コードを含む第1トランザクションを取得するステップであって、前記コードは、共同r値rjointに基づき定義されるチャレンジを評価するための参照データを含む、ステップと、
第1ECDSA署名i=1,2のペアのうちのそれぞれのECDSA署名のそれぞれのr部分ri及びs部分siを少なくとも含む情報を含む1つ以上の第2トランザクションを受信するステップであって、前記第1ECDSA署名のうちのそれぞれは、それぞれの第1公開鍵Piに対応するそれぞれの第1秘密鍵Viに基づき前記1つ以上の第2トランザクションのうちの1つの第2トランザクションの部分に署名する、ステップと、
前記第1トランザクションからの前記コードを実行するステップであって、前記コードは、前記第1トランザクション内の前記参照データ及び前記1つ以上の第2トランザクションの中で受信された前記r部分riに基づき、前記チャレンジが満たされるかどうかを検証し、それを条件として真の値を返すよう構成され、前記チャレンジは、以下の基準:
Figure 2020240289000001
を含み、ここで、r+rはスカラー加算を示し、
Figure 2020240289000002
pは素数モジュラスであり、
Figure 2020240289000003
kiは一時鍵であり、Gは楕円曲線生成元であり、[]xは[…]のx座標を示し、[]yは[…]のy座標を示し、「・」は楕円曲線スカラー乗算を示す、ステップと、
を含む方法。
A computer-implemented method of performing knowledge proofs based on the Elliptic Curve Digital Signature Algorithm (ECDSA), the method comprising, at a verification node of a blockchain network:
obtaining a first transaction containing executable code, the code containing reference data for evaluating a challenge defined based on a joint r-value r joint ;
receiving one or more second transactions containing information including at least the respective r-parts ri and s-parts si of each ECDSA signature of the pair of first ECDSA signatures i=1,2; each of the first ECDSA signatures is part of one of the one or more second transactions based on a respective first private key V i corresponding to a respective first public key P i ; signing; and
executing the code from the first transaction, wherein the code applies to the reference data in the first transaction and the r-part ri received in the one or more second transactions. configured to verify whether the challenge is satisfied and conditionally return a true value based on the following criteria:
Figure 2020240289000001
where r 1 +r 2 denote scalar addition and
Figure 2020240289000002
p is the prime modulus and
Figure 2020240289000003
k i is the ephemeral key, G is the elliptic curve generator, [] x denotes the x coordinate of […], [] y denotes the y coordinate of […], '・' is the elliptic curve scalar a step indicating multiplication;
method including.
λを示すデータが、前記1つ以上の第2トランザクションのうちの少なくとも1つの第2トランザクションの中で受信される情報の部分として受信され、前記の決定は、λを示す受信されたデータに基づき実行される、請求項1に記載の方法。 data indicative of λ 2 is received as part of information received in at least one second transaction of said one or more second transactions, said determining 2. The method of claim 1, wherein the method is performed based on: 前記第1トランザクション内の前記参照データは、p及びλ-rの値を含む、請求項1に記載の方法。 2. The method of claim 1, wherein the reference data in the first transaction includes values of p and [lambda] 2 -r. 前記方法は、
前記第1ECDSA署名のうちの各々の第1ECDSA署名のそれぞれの第1公開鍵を取得し、ECDSAの検証関数を適用して、前記それぞれの第1公開鍵及び署名済み部分に基づき、各第1ECDSA署名を検証するステップであって、前記コードは、前記第1ECDSA署名のうちの各第1ECDSA署名の前記検証を更なる条件として、真の値を返すよう構成される、ステップを含む請求項1、2、又は3に記載の方法。
The method includes
obtaining a respective first public key of each first ECDSA signature of said first ECDSA signatures and applying a verification function of ECDSA to each first ECDSA signature based on said respective first public key and a signed portion; wherein said code is configured to return a true value, further conditioned on said verification of each first ECDSA signature of said first ECDSA signatures. , or 3.
前記第1公開鍵を取得する前記ステップは、前記1つ以上の第2トランザクション内の前記情報の部分として前記第1公開鍵を受信するステップを含む、請求項4に記載の方法。 5. The method of claim 4, wherein said step of obtaining said first public key comprises receiving said first public key as part of said information within said one or more second transactions. 前記コードは、前記第1ECDSA署名のうちの1つ、一部、又は全部のそれぞれの第1公開鍵として、誰の公開鍵が使用されたかに関係なく、真の結果を出力するよう構成される、請求項1~5のいずれかに記載の方法。 The code is configured to output a true result regardless of whose public key was used as the first public key for each one, some, or all of the first ECDSA signatures. , the method according to any one of claims 1 to 5. ECDSAは、y=x+7の形式の楕円曲線に基づく、請求項1~6のいずれかに記載の方法。 A method according to any preceding claim, wherein ECDSA is based on an elliptic curve of the form y 2 =x 3 +7. ECDSAはsecp256k1アルゴリズムである、請求項1~7のいずれかに記載の方法。 A method according to any preceding claim, wherein ECDSA is the secp256k1 algorithm. 前記第1ECDSA署名の各々は、異なるそれぞれの第2パーティの署名であり、前記チャレンジは少なくとも部分的に第1パーティにより定義される、請求項1~8のいずれかに記載の方法。 A method according to any preceding claim, wherein each of said first ECDSA signatures is a signature of a different respective second party and said challenge is at least partially defined by said first party. 前記第1ECDSA署名の各々の前記r部分及びs部分は、それぞれの一時鍵kiを用いてそれぞれの第2パーティにより生成される、請求項9に記載の方法。 10. The method of claim 9, wherein the r and s portions of each of the first ECDSA signatures are generated by respective second parties using respective ephemeral keys k i . それぞれの一時鍵は、前記第1パーティによりそれぞれの第2パーティに与えられる、又はその逆である、請求項10に記載の方法。 11. The method of claim 10, wherein respective temporary keys are provided by said first party to respective second parties, or vice versa.
Figure 2020240289000004
ここで、kiはそれぞれの一時鍵であり、miは前記第2トランザクションのそれぞれの署名済み部分であり、HsigはそれぞれのECDSA署名を生成する際にmをハッシングするために使用されたハッシュ関数であり、nは前記生成元の素数位数である、請求項11に記載の方法。
Figure 2020240289000004
where k i is the respective ephemeral key, m i is the respective signed part of the second transaction, and H sig was used to hash m in generating the respective ECDSA signature. 12. The method of claim 11, which is a hash function and n is the prime order of the generator.
前記コードにより返された結果が真であることを条件として、第1パーティのためにサービスをトリガするステップ、を含む請求項7~12のいずれかに記載の方法。 13. A method according to any of claims 7-12, comprising triggering a service for the first party, conditional on the result returned by said code being true. 前記1つ以上の第2トランザクションを受信する前記ステップは、第2パーティのうちの1つから前記第2トランザクションのそれぞれを受信するステップを含む、請求項7~13のいずれかに記載の方法。 A method according to any of claims 7 to 13, wherein said step of receiving said one or more second transactions comprises receiving each of said second transactions from one of second parties. 前記第2トランザクション内で受信された前記情報は、第2パーティの更なる秘密鍵を用いる前記第2パーティのうちの少なくとも1つの更なる暗号署名を含み、前記更なる秘密鍵は更なる公開鍵に対応する、請求項7~14のいずれかに記載の方法。 The information received within the second transaction includes a further cryptographic signature of at least one of the second parties using a second party's further private key, the further private key being a further public key. A method according to any one of claims 7 to 14, corresponding to 第1パーティ及び/又は第三者が前記更なる公開鍵に基づき前記少なくとも1つの第2パーティのアイデンティティを検索できるようにするマッピングが利用可能である、請求項15に記載の方法。 16. Method according to claim 15, wherein a mapping is available that enables a first party and/or a third party to retrieve the identity of said at least one second party based on said further public key. 前記コードは、前記更なる公開鍵を用いて前記更なる暗号署名を検証し、前記更なる暗号鍵が検証されたことを更なる条件として真の値を返すよう構成される、請求項15又は16に記載の方法。 16. or wherein said code is configured to verify said further cryptographic signature using said further public key and return a true value further conditioned upon said further cryptographic key being verified; 16. The method according to 16. 前記第2トランザクション内で受信された前記情報は、第1パーティの秘密鍵を用いる前記第1パーティの暗号署名を更に含む、請求項7~17のいずれかに記載の方法。 The method of any of claims 7-17, wherein the information received within the second transaction further comprises a cryptographic signature of the first party using the first party's private key. 前記第2トランザクション内で受信された前記情報は、前記第1ECDSA署名と同じそれぞれの秘密鍵を用いるが、前記第1ECDSA署名と異なるr部分の値を有する、第2パーティのうちの1つ、一部、又は全部の各々の追加ECDSA署名を含み、
前記コードは、それぞれの前記第1公開鍵を用いて前記追加ECDSA署名の各々を検証し、前記追加ECDSA署名が検証されたことを更なる条件として真の結果を返すよう構成される、請求項7~18のいずれかに記載の方法。
The information received in the second transaction is one of a second party using the same respective private key as the first ECDSA signature, but having a different r-part value than the first ECDSA signature. including an additional ECDSA signature for each of the parts or all,
3. The code is configured to verify each of the additional ECDSA signatures using the respective first public key and return a true result further contingent upon the additional ECDSA signature being verified. 19. The method according to any one of 7-18.
前記コードは、r部分の値の大きな集合の中から任意の2つのr部分の値がr及びrとして使用可能にするよう構成される、請求項1~19のいずれかに記載の方法。 A method according to any preceding claim, wherein the code is arranged to allow any two r-part values to be used as r 1 and r 2 from a large set of r-part values. . 前記集合は、r部分の値の少なくとも3個のペアを含み、
k値の異なるそれぞれのペアは、少なくとも3つの第2パーティのそれぞれに分配されて、それらが集合内のペアのそれぞれを生成できるようにし、
rは前記第2パーティのうちの1つの第2パーティからのr部分の値のうちの1つであり、rは前記第2パーティのうちの別の第2パーティからのr部分の値であり、
前記コードは、前記少なくとも3つの第2パーティのうちの任意の2つが前記チャレンジを満たすことを可能にする、請求項7~19のいずれかに従属する請求項20に記載の方法。
the set includes at least three pairs of r-part values;
each pair of different k values is distributed to each of at least three second parties so that they can generate each of the pairs in the set;
r1 is one of the r-part values from one of said second parties and r2 is the r-part value from another of said second parties and
21. A method as claimed in claim 20 when dependent on any of claims 7 to 19, wherein said code enables any two of said at least three second parties to fulfill said challenge.
前記情報は、同じ第2トランザクション内で受信される、請求項1~21のいずれかに記載の方法。 A method according to any preceding claim, wherein said information is received within the same second transaction. 前記トランザクションの各々は、1つ以上のインプットと1つ以上のアウトプットとを含むデータ構造を有し、各アウトプットはロックスクリプトを含み、各インプットはアンロックスクリプトと別のトランザクションのアウトプットへのポインタと含み、
前記コードは、前記第1トランザクションの前記ロックスクリプトに含まれ、前記情報は、前記第2トランザクションのインプット内の前記アンロックスクリプトに含まれ、前記第2トランザクションの前記インプット内の前記ポインタは、前記第1トランザクションの前記アウトプットを指し、
前記方法は、少なくとも前記コードが真の結果を返すことを条件として、前記トランザクションを検証するステップと、
前記検証に応答して、以下:
前記検証ードにより1つ以上のブロックへとマイニングするために、前記第2トランザクションをトランザクションプールに含めるステップ、及び/又は、
前記第2トランザクションをブロックチェーンネットワークのノードのうちの少なくとも1つの他のノードへ転送するステップ、
のうちの少なくとも1つを含む、ステップと、
を含む請求項22に記載の方法。
Each of the transactions has a data structure that includes one or more inputs and one or more outputs, each output including a lock script, each input to an unlock script and an output of another transaction. contains a pointer to
The code is included in the lock script of the first transaction, the information is included in the unlock script in inputs of the second transaction, and the pointer in the inputs of the second transaction includes the referring to said output of a first transaction;
The method validates the transaction, subject to at least the code returning a true result;
In response to said verification, the following:
including the second transaction in a transaction pool for mining into one or more blocks by the validation node ; and/or
forwarding the second transaction to at least one other node of the blockchain network;
a step comprising at least one of
23. The method of claim 22, comprising:
前記トランザクションは、アカウントに基づくモデルに従い構成され、前記コードは前記第1トランザクションに含まれるスマートコントラクトに含まれる、請求項1~22のいずれかに記載の方法。 A method according to any preceding claim, wherein said transaction is structured according to an account-based model and said code is contained in a smart contract contained in said first transaction. 前記情報は、複数の第2トランザクションに渡り受信される、請求項24に記載の方法。 25. The method of claim 24, wherein the information is received over multiple second transactions. ネットワークのノードにより実行されると、前記ノードに請求項1~2のいずれかに記載の方法を実行させる、コンピュータプログラム。 A computer program product, which, when executed by a node of a network, causes said node to perform the method of any of claims 1-25 . ネットワークのノードであって、
1つ以上のメモリユニットを含むメモリと、
1つ以上の処理ユニットを含む処理機器と、
を含み、
前記メモリはコードを格納し、前記コードは前記処理機器上で実行されると前記処理機器に請求項1~25のいずれかに記載の方法を実行させるよう構成される、ノード。
A node of a network,
a memory including one or more memory units;
a processing device comprising one or more processing units;
including
A node, wherein the memory stores code, the code being configured to cause the processing device to perform the method of any one of claims 1 to 25 when executed on the processing device .
ブロックチェーンに記録するための第1トランザクションであって、前記第1トランザクションは、1つ以上のコンピュータ可読媒体上に具現化され、前記第1トランザクションは実行可能コードを含み、
前記コードは、第1ECDSA署名i=1,2のペアのうちのそれぞれのECDSA署名のそれぞれのr部分ri及びs部分siを少なくとも含む情報を含む1つ以上の第2トランザクションに基づき、共同r値rjointに基づき定義されるチャレンジを評価するための参照データを含み、前記第1ECDSA署名のうちのそれぞれは、それぞれの第1公開鍵Piに対応するそれぞれの第1秘密鍵Viに基づき前記1つ以上の第2トランザクションのうちの1つの第2トランザクションの部分に署名し、
前記コードは、前記第1トランザクション内の前記参照データ及び前記1つ以上の第2トランザクションの中で受信された前記r部分riに基づき、前記チャレンジが満たされるかどうかを検証し、それを条件として真の値を返すよう構成され、前記チャレンジは、以下の基準:
Figure 2020240289000005
を含み、ここで、r+rはスカラー加算を示し、
Figure 2020240289000006
pは素数であり、
Figure 2020240289000007
kiは一時鍵であり、Gは楕円曲線生成元であり、[]xは[…]のx座標を示し、[]yは[…]のy座標を示し、「・」は楕円曲線スカラー乗算を示す、第1トランザクション。
A first transaction for recording on a blockchain, said first transaction embodied on one or more computer-readable media, said first transaction comprising executable code,
The code is based on one or more second transactions including information including at least an r part r i and an s part s i of each ECDSA signature of each pair of first ECDSA signatures i=1,2. including reference data for evaluating a challenge defined based on the r-value r joint , each of said first ECDSA signatures to a respective first private key V i corresponding to a respective first public key P i ; signing a second transaction portion of one of the one or more second transactions based on;
The code verifies whether the challenge is satisfied based on the reference data in the first transaction and the r- part ri received in the one or more second transactions, and conditions it. Said challenge is configured to return a true value as the following criteria:
Figure 2020240289000005
where r 1 +r 2 denote scalar addition and
Figure 2020240289000006
p is a prime number and
Figure 2020240289000007
k i is the ephemeral key, G is the elliptic curve generator, [] x denotes the x coordinate of […], [] y denotes the y coordinate of […], '・' is the elliptic curve scalar A first transaction, showing multiplication.
JP2021569311A 2019-05-24 2020-04-21 Proof of Knowledge Active JP7516425B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1907397.2 2019-05-24
GBGB1907397.2A GB201907397D0 (en) 2019-05-24 2019-05-24 Knowledge proof
PCT/IB2020/053762 WO2020240289A1 (en) 2019-05-24 2020-04-21 Knowledge proof

Publications (3)

Publication Number Publication Date
JP2022533752A JP2022533752A (en) 2022-07-25
JPWO2020240289A5 true JPWO2020240289A5 (en) 2023-03-30
JP7516425B2 JP7516425B2 (en) 2024-07-16

Family

ID=67385508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021569311A Active JP7516425B2 (en) 2019-05-24 2020-04-21 Proof of Knowledge

Country Status (8)

Country Link
US (1) US20220239501A1 (en)
EP (1) EP3977674A1 (en)
JP (1) JP7516425B2 (en)
KR (1) KR20220012347A (en)
CN (1) CN113924748A (en)
GB (1) GB201907397D0 (en)
SG (1) SG11202112015SA (en)
WO (1) WO2020240289A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111444547B (en) * 2020-03-20 2024-03-19 苏州链原信息科技有限公司 Method, apparatus and computer storage medium for data integrity attestation
CA3091660A1 (en) * 2020-08-31 2021-11-03 Polymath Inc. Method, system, and medium for blockchain-enabled atomic settlement
CN112561701B (en) * 2020-12-15 2024-07-19 长沙理工大学 Transaction creation method, verification method and transaction equipment of blockchain system
GB2622833A (en) * 2022-09-29 2024-04-03 Nchain Licensing Ag Blockchain based read receipt

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010124390A1 (en) * 2009-04-30 2010-11-04 Certicom Corp. System and method for authenticating rfid tags
US11182782B2 (en) * 2016-02-23 2021-11-23 nChain Holdings Limited Tokenisation method and system for implementing exchanges on a blockchain
US20170345011A1 (en) * 2016-05-26 2017-11-30 Hitfin, Inc. System and method executed on a blockchain network
JP6729334B2 (en) 2016-12-06 2020-07-22 富士通株式会社 Transaction management method, transaction management program, and transaction management device
EP3385894B1 (en) * 2017-04-03 2021-07-21 PLC Group AG Method for producing a cryptographically signed transaction
US10530585B2 (en) * 2017-06-07 2020-01-07 Bar-Ilan University Digital signing by utilizing multiple distinct signing keys, distributed between two parties
KR102627039B1 (en) * 2017-08-15 2024-01-19 엔체인 홀딩스 리미티드 Threshold digital signature method and system
KR102209178B1 (en) * 2018-07-17 2021-01-29 이윤경 Method for preserving and utilizing genome and genome information
US11112132B2 (en) * 2018-08-22 2021-09-07 Bao Tran Systems and methods for monitoring water in a building
CN109559122B (en) * 2018-12-07 2021-02-02 北京瑞卓喜投科技发展有限公司 Block chain data transmission method and block chain data transmission system
CN109728910A (en) * 2018-12-27 2019-05-07 北京永恒纪元科技有限公司 A kind of efficient thresholding distribution elliptic curve key generates and endorsement method and system
AU2018349940B2 (en) * 2018-12-29 2020-08-20 Advanced New Technologies Co., Ltd. System and method for information protection

Similar Documents

Publication Publication Date Title
Van Oorschot et al. Parallel collision search with cryptanalytic applications
US6341349B1 (en) Digital signature generating/verifying method and system using public key encryption
KR101089121B1 (en) Fast batch verification method and apparatus there-of
CN110730963B (en) System and method for information protection
JP4112373B2 (en) Efficient calculation method and apparatus for one-way chain in cryptographic application
JP2020512572A5 (en)
JP5488596B2 (en) Signature device, signature verification device, anonymous authentication system, signature method, signature authentication method, and programs thereof
CN110263584B (en) Block chain-based data integrity auditing method and system
JP2012014203A5 (en)
JP4453996B2 (en) COMMUNICATION METHOD, COMMUNICATION SYSTEM, AND COMPUTER-READABLE RECORDING MEDIUM
JP2023530141A (en) Generating Secret Shares
CN113875186A (en) Proof of knowledge
CN111724145A (en) Design method of block chain system fragmentation protocol
CN113924748A (en) Proof of knowledge
CN116349203A (en) Identifying denial of service attacks
CN118160275A (en) Threshold signature scheme
CN114747172A (en) Encrypting a link identity
JP2001202012A (en) Signature computing system by mobile agent and recording medium with program recorded thereon
Bellini et al. Parallel isogeny path finding with limited memory
JPWO2020240289A5 (en)
CN115516817A (en) DSA threshold signature with secret sharing
Hwang et al. Simplified small exponent test for batch verification
JP2000511649A (en) Public key cryptography
JPWO2010061951A1 (en) Scalar multiplier and scalar multiplication program
US20080002825A1 (en) Method and a system for a quick verification rabin signature scheme