JP2021518685A - データの交換のためのコンピュータ実装されたシステム及び方法 - Google Patents

データの交換のためのコンピュータ実装されたシステム及び方法 Download PDF

Info

Publication number
JP2021518685A
JP2021518685A JP2020549555A JP2020549555A JP2021518685A JP 2021518685 A JP2021518685 A JP 2021518685A JP 2020549555 A JP2020549555 A JP 2020549555A JP 2020549555 A JP2020549555 A JP 2020549555A JP 2021518685 A JP2021518685 A JP 2021518685A
Authority
JP
Japan
Prior art keywords
verifier
certifier
statement
computer
wire
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.)
Pending
Application number
JP2020549555A
Other languages
English (en)
Inventor
トレヴェサン,トーマス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nchain Holdings Ltd
Original Assignee
Nchain Holdings Ltd
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
Priority claimed from GBGB1804740.7A external-priority patent/GB201804740D0/en
Priority claimed from GBGB1804739.9A external-priority patent/GB201804739D0/en
Priority claimed from GBGB1804742.3A external-priority patent/GB201804742D0/en
Application filed by Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of JP2021518685A publication Critical patent/JP2021518685A/ja
Priority to JP2024012421A priority Critical patent/JP2024045359A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0655Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed centrally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • G06Q20/1235Shopping for digital content with control of digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/018Certifying business or products
    • G06Q30/0185Product, service or business identity fraud
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • G06Q30/0215Including financial accounts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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)
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/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
    • H04L9/3073Public 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 involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2216/00Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
    • G06F2216/03Data mining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • 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/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Development Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Software Systems (AREA)
  • Technology Law (AREA)
  • Game Theory and Decision Science (AREA)
  • Fuzzy Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)

Abstract

本発明は、算術回路充足可能性と公開鍵の妥当性に関する従属ステートメント(キーステートメントプルーフ)の両方を同時に必要とする複合ステートメントの効率的なゼロ知識検証に関する。当該方法は、証明者がこの特定のステートメントをゼロ知識で証明することを可能にする。より具体的には、本発明は、証明者が、検証者に対して、ステートメントが真であることを、該ステートメントに対する証人(w)を秘密にしたまま証明するものである、ステートメント(S)のゼロ知識証明又は検証を可能にするためのコンピュータ実装された方法に関する。本発明はまた、プルーフを検証する検証者によって使用される逆の方法に関する。当該方法は、証明者が検証者に、関数回路を実装して、所与の関数回路出力(h)及び楕円曲線点(P)に対して、関数回路のワイヤへの関数回路入力(s)が対応する楕円曲線点乗算器(s)に等しいかを判定する、ように構成されたm個のゲート及びn個のワイヤを有する算術回路を有したステートメント(S)を送信することを含む。証明者はまた、回路のワイヤについての個々のワイヤコミットメント及び/又はバッチにされたコミットメント、算術回路内のワイヤに対する入力、及び関数回路出力(h)を送信する。証明者は、検証者からチャレンジ値(x)を受信し、オープニングで応答するか、更に証明キー(PrK)を検証者に送信するかする。ステートメント及びデータは、検証者が、回路が満たされると判定し、楕円曲線点(P)を計算して、ステートメントを検証すること、故に、証明者がステートメントに対する証人(w)を保持していると判定することを可能にする。

Description

この明細書は、概して、例えばブロックチェーンネットワークのノードなどのコンピュータプロセッサ又は一群のそのようなプロセッサにおける実装に適した、コンピュータ実装された方法及びシステムに関する。ステートメントの効率的なゼロ知識検証を可能にするプルーフを生成する改良された方法が提供される。当該方法は、双線形ペアリングフレンドリー楕円曲線の使用を必要としない既存の回路充足可能性のための離散対数ベースゼロ知識プルーフプロトコルに組み込むのに好適である。本発明は、以下に限られないが、特に、2つの異なるブロックチェーン上のデータ間での、トラストレスでの公正なデータ交換に適している。参加者間の安全なトラストレスでのやり取りを実現するために、当事者のうちの1つが、キー又はステートメントの知識を、そのステートメントを明らかにすることなく証明することができる。特に、交換されるデータは、ブロックチェーンネットワーク上のアドレスに関する秘密鍵の特定を可能にする。
本文書おいて、用語‘ブロックチェーン’は、全ての形態の電子的な、コンピュータベースの、分散型台帳を含む。これらは、合意に基づく(コンセンサスベースの)ブロックチェーン及びトランザクションチェーンの技術、許可された及び許可されていない台帳、共有台帳、並びにこれらの変形を含む。ブロックチェーン技術の最も広く知られている用途はビットコイン台帳であるが、他のブロックチェーン実装も提案及び開発されている。
ここでは、便宜及び説明のために、ビットコインを参照することがあるが、留意されたいことには、本発明は、ビットコインブロックチェーンとの使用に限定されず、それに代わるブロックチェーン実装及びプロトコルも本発明の範囲内にある。用語“ユーザ”は、ここでは、人間又はプロセッサベースのリソースを指す。ブロックチェーンは、トランザクションからなる複数のブロックで構成されるコンピュータベースの非中央集権的な分散システムとして実装されるピア・ツー・ピアの電子台帳である。
各トランザクションは、ブロックチェーンシステムにおける参加者間でのデジタル資産の管理の移転を符号化するデータ構造であり、少なくとも1つのインプットと少なくとも1つのアウトプットとを含む。各ブロックが、そのブロックが一緒にチェーン化される先行ブロックのハッシュを含むことで、その開始以前にそのブロックチェーンに書き込まれた全てのトランザクションの恒久的で変更不可能な記録を作り出す。トランザクションは、それらのインプット及びアウトプットに埋め込まれるスクリプトとして知られた小プログラムを含み、それらが、トランザクションのアウトプットが誰によってどのようにアクセスされ得るかを指定する。ビットコインプラットフォーム上では、これらのスクリプトは、スタックベースのスクリプト言語を使用して書かれる。
さらに、この文書では、算術回路を使用する既知のゼロ知識プルーフプロトコル及びシステムの構造を参照する。ブロックチェーンは、第三者仲裁又は第三者預託を必要とせずに2つの相互に信頼のない2つの当事者間で公正なやり取りすることの問題に対するソリューションを可能にする非中央集権化された許可なしでのグローバル機構を提供した。金銭的報のための又は例えばデジタルグッズなどの情報との交換での、データ又は情報の公正な交換は、ZKCP(Zero-Knowledge Contingent Payments)(非特許文献2)として知られるトランザクションプロトコルにて具体化されている。ZKCPでは、支払が確認された場合にのみ、指定されたデータが売り手から買い手に転送され、買い手から売り手への支払は、この指定されたデータが売却の条件に従って有効である場合にのみ完了される。このようなプロトコルの詳細は知られている(非特許文献1)が、それは基本的に、ハッシュ時間ロック契約(hash-time-locked contract;HTLC)とゼロ知識プルーフとの組み合わせに基づいており、これは、暗号化された情報(‘デジタルグッズ’)が有効/正確であることと、この情報を解読する‘パスワード’が支払いを請求するためにブロックチェーン上で明らかにされなければならないデータであることとを同時に検証するものである。
ZKCPプロトコルの中心コンポーネントは、データ/情報の妥当性又は正確性、キーの妥当性、及び対応するハッシュ値に関する一連の従属ステートメントに対するゼロ知識プルーフである。このような複雑な複合ステートメントは、全般的な計算のために効率的なゼロ知識プルーフシステムを必要とし、突き詰めると、これは、1つの当事者が、秘密の入力を用いて任意のプログラムを走らせ、そして、秘密の入力又はプログラムの実行に関する情報を何ら明らかにすることなく、他の当事者に対し、プログラムが入力を有効であると認めて正しく実行されたことを証明することを可能にする。既知のZKCPの例では、採用された汎用ゼロ知識プルーフシステムは、Pinocchioプロトコル(非特許文献3)及びC++ libsnarkライブラリ(非特許文献4)で実装されるような、知識の簡潔な非対話型論証(succinct non-interactive arguments of knowledge;SNARK)フレームワークに基づいてきた。
ゼロ知識SNARK(zkSNARK)は、算術回路として表現可能な任意の計算の妥当性をゼロ知識で証明する方法を提供する。zkSNARKの2つの主な特徴的性質は、それらが非対話的である(証明者が検証者に一手(1ムーブ)でプルーフを送る)こと及び簡潔である(プルーフが小さくて検証容易である)ことである。しかしながら、それらはかなりの制限を持つ:
− プルーフ生成が、極めて計算的要求が大きいものである。
− 証明キーが非常に大きく、回路サイズに比例する。
− それらは、強力でテストされていない暗号仮定(すなわち、エクスポーネント仮定及びペアリングベース仮定の知識)に依存する。
− 所与のプログラム(回路)に対して、それらは、設定パラメータを削除するために信頼されなければならない第三者によって共通参照文字列(common reference string;CRS)が計算されることを必要とする。設定パラメータの知識を持つ者が、偽のプルーフを作成する能力を持つ。
任意の暗号化楕円曲線キー操作を伴うステートメントを証明するzkSNARKの構築は、今日まで試みられていないが、仮説的に、何十万又は何百万ものゲートを備える算術回路で構成されることになり、結果として、プルーフ生成時間が数分かかることになるとともに、証明キーが数百メガバイトのサイズになるであろう。
技術的背景
対話型ゼロ知識プルーフのための基本システムは、証明者と検証者との間での何度かの通信ステップを伴うΣ(シグマ)プロトコルを使用することができる。通常、Σプロトコルは三手(3ムーブ)を必要とし、すなわち、証明者が最初のコミットメント(a)を検証者に送り、次いで、検証者がランダムチャレンジ(x)で応答し、最後に証明者が最終応答すなわち‘opening’(z)で応答する。そして、検証者が、トランスクリプト(a,x,z)に基づくステートメントを受け入れる又は拒絶する。
Σプロトコルは、証明者のみに知られている証人(w)の知識又は該証人(w)についてのステートメントを証明するために使用されることができる。コミットメントが、証人に関するステートメントが真実であるという事実を除いて、証人に関する情報すなわち秘密を検証者に明らかにしない場合、このプロトコルはゼロ知識である(非特許文献5)。
多くの対話型ゼロ知識プロトコルの中心は、算術回路の充足可能性に関して使用されるものであるコミットメント方式である。コミットメントによって、証明者が前もって秘密値にコミットし、その後、検証可能に秘密値を明らかにする(開く)ことが可能にされる。コミットメントスキームは、2つの主な性質を持つ。第一に、それは隠れていて、コミットメントが値を秘密のままにする。第二に、それは結びついていて、コミットメントは、元のコミットされた値に対してのみ開かれることができる。Pedersenコミットメント(非特許文献5)スキームは、全ての当事者に知られた素数位数pの群Gの中のG及びFという、2つの楕円曲線生成点を含む。コミットする者(コミッタ)が、素な整数Zのフィールドでセキュアな乱数rを生成し、秘密値sへのコミットメント:
Com(s,r)=s×G+r×F
を(楕円曲線加算/乗算によって)計算し、ここで、×は楕円曲線点乗算を表す。
コミッタは、後の段階で、値s及びrを提供することによって、コミットメントを完全に開くことができる(すなわち、それが検証されることができる)。コミッタはまた、秘密s又は乱数rを明らかにすることなく、Σプロトコルの一部として特定のチャレンジ値に応答してコミットメントを開くことができる。
Pedersenコミットメントは相加的に同形(ホモモルフィック)であり、すなわち、(楕円曲線上で)2つのコミットメントを加えることが、コミットされた値の和に対するコミットメントをもたらし、すなわち:
(s×G+r×F)+(s×G+r×F)=(s+s)×G+(r+r)×F
である。
算術回路充足可能性の証明は‘ゼロ知識’で達成されることができる。(フィールドZ上の)算術回路は、ワイヤによって接続され(有向非循環グラフを形成する)算術ゲートの仮想構成であり、これは、任意の複雑な計算を実行することが可能であり、計算は整数演算に限定され、データ依存ループ又は可変状態を持たないものでなければならない。
各ゲートが、2つの入力ワイヤ及び1つの出力ワイヤを持ち、入力に対して乗算(×)又は加算(+)演算を実行する。図1(a)は、左(w)及び右(w)のワイヤ入力と1つのワイヤ出力(w)を有する乗算ゲートの概略図を示し、図1(b)は、3つのゲート、3つの入力ワイヤ(w,w,w)、1つの出力ワイヤ(w)、及び2つの内部ワイヤ(w,w)を有する単純な算術回路の概略図を示している。
実際には、完全な回路は、外部(回路)入出力値を定めるフリー入力ワイヤ及びフリー出力ワイヤを持つ。合法的割り当て(リーガルアサインメント)は、ワイヤの値を、回路を満たすものとして定めるものであり、すなわち、各ワイヤが値を割り当てられ、各ゲートの出力が入力の積又は和に正確に対応する(すなわち、そのゲートは一貫性がある)。
所与の算術回路について、証明者は、まず(Pedersenコミットメントを用いて)合法的割り当てにて各ワイヤ値にコミットし、次いで、ワイヤ値を証人として、(並列に実行されることができる)回路内の各ゲートに対して検証者を持つ特別なΣプロトコルを、実行することによって、ワイヤ値を明らかにすることなく、回路に対する合法的割り当てを知っていることを検証者に対して証明することができる。これらのΣプロトコルは、後述するように、Pedersenコミットメントの同形性を活用する。
(回路が満たされることの)プルーフを生成するために、最初に証明者は回路内の各ワイヤw(ワイヤ数をnとして、i=1,…,n)に対するコミットメント:
=Com(w,r
を生成し、これらを検証者に送る。
回路内の各‘加算’ゲート(図1(b)に1つ示される)に対してΣzeroプロトコルが実行され、これは、w+w−w=0であること(すなわち、入力ワイヤw及びwが出力ワイヤwに等しくて、加算ゲートが満たされること)を(ゼロ知識で)証明することを伴う。これは、以下のステップを含み、すなわち:
1. 証明者が、ゼロに対するコミットメント:B=Com(0,r)を生成して検証者に送る。
2. 検証者が、ランダムチャレンジ値:x←Zで応答する。
3. 次いで、証明者が、開ける値(オープニング値):z=x(r+r−r)+rを計算し、それを検証者に送る。
4. 検証者が、がw+w−w=0であることのプルーフとして、Com(0,z)=x×(W+W−W)+Bを証明する。
Bは、公開鍵と同様の曲線点を表す;B=r×F+0×G
は、対応するペアの秘密鍵を表す。
各‘乗算’ゲート(図1(a)に示される)に対してΣprodプロトコルが実行され、これは、各乗算ゲートに対してw・w=wであること(すなわち、乗算ゲートが満たされること)を(ゼロ知識で)証明することを伴う。
1. 証明者が、5つのランダムバインディング値:t,t,t,t,t←Zを生成する。
2. 証明者が、C=Com(t,t)、C=Com(t,t)、C=t×W+t×Fを計算し、これらを検証者に送る。
3. 検証者が、ランダムチャレンジ値:x←Zで応答する。
4. 証明者が、開ける値:
=wx+t
=wRx+t
=rx+t
=rx+t
=(r−w)x+t
を計算し、これらを検証者に送る。
5. そして、検証者が、w・w=wであることの証明として、次式:
Com(e,z)=x×W+C
Com(e,z)=x×W+C
×W+z×F=x×W+C
を検査する。
Σzeroプロトコル及びΣprodプロトコルは、回路内の各ゲートの検証のために並列に動作されることができ、全てのゲートに対して同じ検証チャレンジ値(x)を使用することができる。
一例として、図1(b)の回路を考えると、合法的割り当て(すなわち、回路を満たすワイヤ値)を知っていることを証明者が検証者に対してゼロ知識で証明するために、証明者は、最初に、各ゲートに対するワイヤコミットメント(W,…,W)及びΣプロトコルコミットメント(すなわち、各加算ゲートに対して1つの追加コミットメント、各乗算ゲートに対して5つの追加コミットメント)を検証者に送る。
次いで、検証者がランダムチャレンジx←Zで応答し、証明者が各ゲートの開ける値(各加算に1つ、各乗算に5つ)を計算して検証者に送り返す。そして、検証者が、Σプロトコルチェックを実行して、
・w=w
・w=w
+w=w
であり、故に、従って、コミットメントW,…,Wがワイヤ値w,…,wを満たすことに対応する、ことを検証する。
証明者が、回路を満たすことに加えて、特定のワイヤが特定の値を持つことを示すことを望む場合、それらは、関連するワイヤに対するコミットメントを完全に開くことができる。この例では、検証者は更に、wが特定の合法的な割り当てからの実際の出力であることを示すために、値w及びrを検証者に送ることができる(そして、検証者は、W=Com(w,r)であることを検証することができる)。
図1(b)の例は、簡単な回路である。実際には、有用な回路はもっと多くのゲートで構成される。特に関心があるのは、SHA−256ハッシュ関数に関する算術回路であり、この回路は、証明者が、特定の(出力)値にハッシュするSHA−256関数へのプリイメージ(入力)を知っていることを、プリイメージを明らかにすることなく示すことを可能にする。SHA−256アルゴリズムに関する回路の最も効率的な実装の1つは、27,904個の算術ゲートからなる(Zcash2016)。すると、SHA−256プリイメージの知識を証明することは、上のプロトコルの最初のコミットメント及びオープニングラウンドの両方で約5MBのデータを送信することを必要とすることになり、証明者と検証者の両方に対して約200,000回の楕円曲線演算を必要とする(各々が数秒のプロセッサ時間を要する)。
算術回路充足可能性を証明するためについての並列Σプロトコルアプローチの性能を有意に改善するために開発された方法が幾つか存在する。既知のアプローチ(非特許文献5、非特許文献6)は、証明者から検証者に送られなければならないデータのサイズを実質的に減らす(すなわち、通信の複雑さを減らす)ために、回路ワイヤ値へのコミットメントをバッチにすることを伴う。これらの方法は、通信複雑性がO(n)からO(√n)又はO(log(n))に低減される証明システムを可能にする。
これまた、同じSHA回路の充足可能性を証明することについての比較として、そのプロトコル(非特許文献5)は、ほんの5KBの証明キーサイズ及び180msの鍵生成時間を持つ。プルーフサイズは24KBであり、生成するのに約4秒かかり、そのプルーフはまた、検証するのにも約4秒かかる。
これらの方法については、採用されているメインベクトルバッチングプロトコルを以下のステップで説明することを除いて、ここで完全に説明することはしない。これは、通常のPedersenコミットメントと同じ性質に従うが、n個の要素(m=m,…,m)へのコミットメントが、単一のグループ要素を送信することを要するのみであり:
1. 証明者及び検証者が、グループ要素F←Gについて合意する。
2. 証明者が、n個の乱数x,…,x←Zを生成する。
3. 証明者が、点K=x×F(for i=1,…,n)を計算する。これらの値は、検証者に送られる証明キーPrKを形成する。
4. 証明者が、乱数:r←Zを生成する。
5. 証明者が、コミットメント:
Figure 2021518685
を計算し、それを検証者に送信する。
Campanelli, Matteo,et al. "Zero-knowledge contingent payments revisited: Attacks and paymentsfor services." Commun. ACM (2017). https://github.com/zcash-hackworks/pay-to-sudoku Parno, Bryan, etal. "Pinocchio: Nearly practical verifiable computation." Securityand Privacy (SP), 2013 IEEE Symposium on. IEEE, 2013. https://github.com/scipr-lab/libsnark Bootle, Jonathan,et al. "Efficient zero-knowledge proof systems." Foundations ofSecurity Analysis and Design VIII. Springer, Cham, 2015. 1-31. Groth, Jens."Linear Algebra with Sub-linear Zero-Knowledge Arguments." CRYPTO.Vol. 5677. 2009. https://bitcointalk.org/index.php?topic=81865.msg901491#msg901491 Bootle, Jonathan,et al. "Efficient zero-knowledge arguments for arithmetic circuits in thediscrete log setting." Annual International Conference on the Theory andApplications of Cryptographic Techniques. Springer, Berlin, Heidelberg, 2016. Standards forEfficient Cryptography (SEC) (Certicom Research, http://www.secg.org/sec2-v2.pd Bitcoin Developer Reference(http://bitcoin.org/en/developer-reference)
全体として、本発明は、ステートメントのゼロ知識証明又は検証を可能にするためのコンピュータ実装された方法にある。証明者は、ここでの方法を用いて、ステートメントに対する証人を秘密にしながら、ステートメントが真であることを検証者に対して証明することができる。
特に、証人とは、取得されたときに、当該証人によって保護されたデータに検証者がアクセスすることを可能にするアクセスデータとすることができる。保護されるデータは、ブロックチェーンネットワークとその機能を使用して保護されることができる。より具体的には、証人は、ブロックチェーンネットワーク上のアドレスに関する秘密鍵の特定を可能にするアクセスデータとし得る。
これらのステートメントは、算術回路充足可能性と公開鍵の妥当性に関する従属ステートメント(キーステートメントプルーフ)の両方を同時に必要とする複合ステートメントである。
ここでの方法は、例えば既存の離散対数ベースのゼロ知識プルーフプロトコルなどの、回路充足可能性に関する既知のプロトコルにおいて使用されることができる。当該方法は特に、双線形ペアリングフレンドリー楕円曲線の使用を必要としないプロトコルに適している。
当該方法においては、証明者が検証者に、所与の関数回路出力及び楕円曲線点に関するものであるステートメントを含む一組のデータを送信することを含み、関数回路入力は、対応する楕円曲線点乗算器(s)に等しい。
ステートメントは、証明者がブロックチェーンネットワーク上のアドレスに関する秘密鍵を知っているというものとすることができる。
データは、ステートメントの回路についての個々のワイヤコミットメント及び/又はバッチにされたコミットメント、入力、及び出力を含む。証明者は、ステートメントで使用される楕円曲線又は各楕円曲線の仕様を、データに含めることができ、又は予め共有していることができる。そして、証明者は、検証者からのチャレンジに応答してオープニングを送信する。あるいは、証明者は更に証明キーを含める。
証明者から受信したデータを用いて、検証者は、回路が満たされると判定して、ステートメントを検証すること、故に、証明者がステートメントに対する証人を保持していると決定することができる。楕円曲線点も計算されることができる。データを受信すると、検証者は、計算を通じて、データがステートメントに適合することを決定する。本発明は特に、ハッシュプリイメージ及び楕円曲線秘密鍵の等価性のゼロ知識証明に適する。
当該方法は特に、一方の当事者を脆弱又は不公正な立場に置いてしまい得る限られたスクリプト機能を持つ2つのブロックチェーン間でのアトミックスワップに適する。当該方法は、例えばハッシュ時間ロック契約(HTLC)などのスクリプト機能の欠如を補償することができる。従って、本発明によれば、添付の特許請求の範囲に規定される方法及びシステムが提供される。
故に、証明者と検証者との間でのデータの交換を可能にするための、ステートメント(S)のゼロ知識証明又は検証を可能にするためのコンピュータ実装された方法を提供することが望ましい。このような交換は、アトミックスワップとして参照され得る。名前をアリスとする証明者は、第1のブロックチェーン上の第1のデータへのアクセスを持ち、名前をボブとする検証者は、第2のブロックチェーン上にある第2のデータへのアクセスを持ち、証明者及び検証者がこれらデータを交換することに合意する。名目上、証明者をアリスと呼ぶことができ、検証者をボブと呼ぶことができる。このデータ交換は、アトミックスワップとしても知られている。
証明者と検証者との間でのデータの交換を可能にするための、ステートメント(S)のゼロ知識証明又は検証を可能にするためのコンピュータ実装された方法が提供されることができ、証明者は、第1のブロックチェーン上の第1のデータへのアクセスを持ち、検証者は、第2のブロックチェーン上の第2のデータへのアクセスを持ち、当該方法は、
証明者が、第2のブロックチェーンに対する鍵ペアを生成し、該ペアのうち公開鍵(P)を検証者に送信し、該ペアのうち秘密鍵(s)を保持し、
証明者が、第1のブロックチェーンに対する検証者公開鍵(P)を受信し、検証者は、第1のブロックチェーンに対する鍵ペアを生成して該ペアのうち秘密鍵(s)を保持しており、
証明者が、検証者にデータセットを送信し、該データセットは、ゼロ知識証明ステートメント(S)、1つ以上のコミットメント、入力(P)及び関数回路出力(h)を含み、
証明者が、第1のデータへのアクセスを共有公開鍵アドレス(P)に移転する第1のブロックチェーントランザクションTxを作成して、該トランザクションを第1のブロックチェーンネットワーク上にブロードキャストし、該アドレスは、入力(P)と検証者公開鍵(P)との和によって定められてP=P+Pであり、
証明者が、第2のブロックチェーントランザクションTxを検証し、該トランザクションは、第1のブロックチェーンに第1のブロックチェーントランザクションTxが含まれることを確認した後に、検証者によって作成されて第2のブロックチェーンネットワーク上にブロードキャストされており、該トランザクションは、第2のデータへのアクセスを証明者公開鍵アドレス(P)に移転させ、該証明者公開鍵アドレス(P)は、
該証明者公開鍵アドレス(P)に関する有効な署名、及び
関数回路出力(h)を決定する関数回路入力である値(x)、
を用いて証明者によってアクセス可能であり、
証明者が、第2のブロックチェーントランザクションTxが第2のブロックチェーン上に含まれることを確認し、自身の署名と、関数回路出力(h)の関数回路入力である値(x)と、を提供することによって第2のデータにアクセスし、
斯くして、検証者が、関数回路出力(h)を決定する関数回路入力である値(x)を観測し、楕円曲線点乗算の同形性からs+xであるPに関する秘密鍵を用いて署名を提供することによって第1のデータにアクセスすることを可能にする、
ことを含む。
当該方法は:証明者が、第2のブロックチェーンに対する鍵ペアを生成し、公開鍵(P)を検証者に送信し、秘密鍵(s)を保持し;証明者が、第1のブロックチェーンに対する検証者公開鍵(P)を受信し、検証者は、第1のブロックチェーンに対する鍵ペアを生成して秘密鍵(s)を保持しており;証明者が、検証者にデータセットを送信し、該データセットは、ゼロ知識証明ステートメント(S)、1つ以上のコミットメント、入力(P)及び関数回路出力(h)を含む、ことを含む。データセットに楕円曲線仕様を含めることができる。当該方法は更に:証明者が、第1のデータを共有公開鍵アドレス(P)に送る第1のブロックチェーントランザクションTxを作成して、該トランザクションを第1のブロックチェーンネットワーク上にブロードキャストし、該アドレスは、入力(P)と検証者公開鍵(P)との和によって定められてP=P+Pであり;証明者が、第2のブロックチェーントランザクションTxを検証し、該トランザクションは、第1のブロックチェーンに第1のブロックチェーントランザクションTxが含まれることを確認した後に、検証者によって作成されて第2のブロックチェーンネットワーク上にブロードキャストされており、該トランザクションは、第2のデータを証明者公開鍵アドレス(P)に送り、該証明者公開鍵アドレス(P)は、該証明者公開鍵アドレス(P)に関する有効な署名、及び関数回路出力(h)を決定する関数回路入力プリイメージである値、を用いて証明者によってアクセス可能であり;証明者が、第2のブロックチェーントランザクションTxが第2のブロックチェーン上に含まれることを確認し、自身の署名と、関数回路出力(h)の関数回路入力である値と、を提供することによって第2のデータにアクセスし;斯くして、検証者が、関数回路出力(h)を決定する関数回路入力である値を観測し、楕円曲線点乗算の同形性からs+xであるPに関する秘密鍵を用いて署名を提供することによって第1のデータにアクセスすることを可能にする、ことを含む。
第1のデータ及び第2のデータのうち少なくとも一方は暗号通貨とすることができる。暗号通貨のうち少なくとも1つは、ビットコイン又はライトコインとし得る。
ステートメントは、関数回路に関する1つの算術回路のみで構成され得る。関数回路はハッシュ関数を実装することができる。ハッシュ関数は、SHA−256ハッシュ関数とし得る。
故に、証明者が、検証者に対して、ステートメントが真であることを、該ステートメントに対する証人(w)を秘密にしたまま証明するものである、ステートメント(S)のゼロ知識証明又は検証を可能にするためのコンピュータ実装された方法を提供することも望ましい。この証明は、明示的な証明とすることができる。
当該方法は、証明者が一組のデータ(データのセット)を検証者に送信することを含む。データのセットは、関数回路を実装し、所与の関数回路出力(h)及び楕円曲線点(P)に対して、関数回路への又は関数回路内のワイヤへの関数回路入力(s)が対応する楕円曲線点乗算器(s)に等しいかを判定する、ように構成されたm個のゲート及びn個のワイヤを有する算術回路を持つステートメントを含む。関数回路は、ハッシュ関数の機能を実装する回路とし得る。ハッシュ関数回路に対する又は関数回路内のワイヤに対するプリイメージは、対応する楕円曲線点乗算器に等しいことができる。
データはまた、個々のワイヤコミットメント及び/又はバッチにされたコミットメントを含む。該コミットメント又は各コミットメントは、回路のゲートに関するワイヤ入力及び出力(これらは暗号化される)とし得る。データはまた、入力を含む。入力は、算術回路[楕円曲線点(P)]のワイヤに対するキーオープニングとしての働きをする。証明者又は検証者のいずれかがワイヤに名前を付け得る。入力又はキーオープニングは、回路内の最初のワイヤに対するものとし得る。データはまた、関数回路出力を含む。ステートメント内で使用される楕円曲線又は各楕円曲線の仕様をデータに含めることができる。
データを送信した後、証明者は、検証者からチャレンジ値を受信し、オープニングで応答する。オープニングは、Σ(シグマ)プロトコルに従った値ステートメントとし得る。オープニング値は、検証者が、ステートメントが真であると判定して楕円曲線点を計算することを可能にする回路の各ゲートに対するものとし得る。
チャレンジを待つことの代わりとして、証明者は更に証明キーを検証者に送信し得る。証明キーは、プルーフの一部であるデータから生成され得る。証明キーは、プルーフに使用される乱数のうちの1つ以上の乱数のハッシュとし得る。
検証者に送信されるデータは、検証者が、回路が満たされることを決定し、楕円曲線点を計算し、ステートメントを検証すること、故に、証明者がステートメントに対する証人を保持していると決定することを可能にする。
検証者に送信されるデータのセット、及び/又は検証者に送信されるチャレンジへのオープニングは、検証者とは無関係に作成されるキーのように機能することができる。検証者からのチャレンジは、証明者の身元及びキーの完全性を決定することに類似している。
入力又はキーオープニングは、算術回路内の最初のワイヤに対するものとし得る。しかしながら、中間ワイヤの知識を証明することは、最初のワイヤの知識を証明することよりも困難であるため、ランダムなワイヤが選択されることが好ましい。さらに、最初のワイヤ以外のランダムなワイヤを選択することは、よりロバストであり、悪意ある第三者によるプルーフ又は証人の発見を阻止する。
検証者が、証明者から受信したデータを分析することによって、ステートメントに対する証人(w)を知ることなく、ステートメントが真であることを検証するものであるステートメントのゼロ知識証明又は検証を可能にするための相補的なコンピュータ実装された方法を提供することが等しく望ましい。明確にしておくに、本発明の方法は、プラグソケット式に検証者によってとられる逆のアクションにまで及ぶ。本発明は、証明者と検証者との間の完全な共同作業にまで及ぶ。
証明者は、チャレンジ値を待つことに加えて、あるいは代えて、検証者が、ステートメントが真であると判定して楕円曲線点を計算することを可能にするランダム値を検証者に送信し得る。証明者からのデータの受信を受けて、検証者は代わりに、検証者が、ステートメントが真であると判定して楕円曲線点を計算することを可能にするランダム値を受信し得る。ランダム値は、少なくとも1つのコミットメントの関数とし得る。この関数は、ハッシュ関数とすることができる。
ランダム値又はチャレンジは、プロセスの利便性及び効率を向上させるために置き換えられ得る。また、証人に関する情報を抽出しようという試みにおいて検証者が非ランダムなチャレンジを生成することに伴うリスクも存在する。さらに、チャレンジ値を、証明者によって提供されるランダム値で置き換えることは、この方法を対話型のものから非対話型のものに変換する。証明者は、独立的且つ公開的に検証されることが可能なプルーフをオフラインで生成することができる。ランダム値は、ハッシュ関数からの出力とし得る。ランダム値(x)の代わりに、1つ以上のコミットメントのハッシュからの出力を用いることは、フィアット−シャミア(Fiat-Shamir)原理を利用する。
ランダム値は、証明者によって生成されて検証者に送信された全てのコミットメントの連結をハッシュすることによって計算され得る。
コミットメントは、W=Com(w,r)とすることができ、
Comは関数回路へのコミットメントであり、
はワイヤ値であり、
は乱数であり、すなわち、これはワイヤコミットメントごとに異なり、
iはワイヤ種類であり、
Com(w,r)=w×G+r×Fとされ、
F及びGは楕円曲線点である。
算術回路内のワイヤlに対する入力は、ko=r×Fとすることができ、
koはキーオープニング入力であり、
は乱数であり、
Fは楕円曲線上の点である。
ワイヤは、回路内の最初のワイヤとし得る。
検証者は、回路が満たされることを確認することができ、楕円曲線点減算:
pk=Com(w,r)−ko
を介してワイヤlに対する公開鍵を計算することができる。
証明者は、ワイヤコミットメントのバッチを送信し得るとともに、各ワイヤについて楕円曲線点を計算するための乱数を生成して、証明キーを形成し得る。
証人に関するバッチにされたコミットメントは、
Figure 2021518685
とすることができ、
rは、証明者によって生成された乱数であり、
証明者は、ワイヤ値w(for i=1,…,n)のベクトルwへのコミットメントを計算し、
は、キーオープンされるものであり、
は、計算された楕円曲線点であり、
はワイヤ値であり、
Fは楕円曲線上の点である。
算術回路内のワイヤnに対する入力は、
Figure 2021518685
であり、
koはキーオープニング入力であり、
rは乱数であり、
Fは楕円曲線上の点である。
入力は、最初のワイヤに対するものとし得る。
検証者は、楕円曲線演算:
Figure 2021518685
を介して、キーステートメントワイヤの公開鍵オープニングを計算し得る。
証明者は更に、完全にオープンにされたコミットメントを少なくとも1つのワイヤに送り得る。当該方法はPedersenコミットメントを使用し得る。ステートメントは、関数回路に対して1つの算術回路のみを使用し得る。関数回路は、好ましくはSHA−256ハッシュ関数であるハッシュ関数を実装し得る。
当該方法は、証明者によって、暗号鍵などのデータに対するゼロ知識付帯トランザクション(これは、ゼロ知識付帯トランザクションとし得る)を可能にするために使用されることができ、証明者は、提供されるデータ(これは、バニティアドレスとし得る)及び受信されるデータ(該データは、UTXOの形態の支払とし得る)を確認するために検証者と連携し、検証者との通信チャンネル(該チャネルはオープンとし得る)を確立し、証明者は、検証者から、安全なランダム秘密鍵skBから検証者が生成した楕円曲線公開鍵pkを受信し、pk=sk×Gであり、Gは楕円曲線点であり、
証明者は、データ=pk+i×Gであるように、提供されるデータをロック値iで保護する。
証明者は、iを変えることによって得られたBase58符号化アドレスにおける必要パターンの検索を実行しているとし得る。証明者は、pk=i×Gであるそれらの公開鍵と、関数回路入力(例えば、プリイメージ)がロック値iである関数回路からの出力f(i)と、を検証者に送信する。
証明者は、関数回路への入力が、pkに対応する秘密鍵であることを検証者に証明するステートメントプルーフを検証者に送信することができ、故に、検証者がプルーフを検証し、pk=pk+pkに対応するアドレスが合意されたパターンと一致することを確認することで、ロック値iを知ることが、データに関する完全な秘密鍵の導出を可能にすることと、ロック値iが関数回路への関数回路入力であることと、を特定することを可能にし得る。
証明者は、証明者からの署名と関数回路入力とによってアクセスされることが可能な、受信されるデータを含む出力を含んだトランザクションTxを受信し得る。該トランザクションは、ハッシュ時間ロック関数とし得る。受信されるデータが、UTXOへのアクセスを提供し得る。
証明者は、該トランザクションに署名して該トランザクションをブロックチェーン上でブロードキャストすることができ、それがブロックへとマイニングされて、該トランザクションをアンロックするための署名及び値iを供給する第2のトランザクションTxを提供することによって、トランザクションTxの出力からデータに証明者がアクセスすることを可能にし、そして、該トランザクションは、ブロックチェーン上で明らかにされ、斯くして、検証者が、ロック値iを特定して、証明者によって提供されたデータにアクセスすることを可能にし、
sk=sk+iであり、
pk=sk×Gである。
証明者によって提供されるデータはバニティアドレスを含み得る。検証者から受信されるデータは暗号通貨支払(例えば、UTXO)を含み得る。
トランザクションは、完全にアトミックでトラストレスとすることができ、買い手は有効な値iを提供した場合にのみ支払いを受け、値iはブロックチェーン上で公然に明かされる。秘密鍵の分割により、ブロックチェーン上で露わにされる値は、他の誰にも役に立たず、完全な秘密鍵のセキュリティを損なわない。
あるコンピュータ実装された方法は、証明者が検証者との(第三者による集中化された交換を用いない)トラストレスでの公正なデータ交換を実行することを伴い得る。これは、クロスチェーン・アトミック・スワップ又はアトミックトレードとして記述されることができる。何故なら、この文脈では、両者がトランザクションを完了するか両者とも完了しないかのいずれかであるという公正な交換性を参照するからである。このスワップは、ハッシュされた時間ロックされた契約を可能にするスクリプト機能をサポートするブロックチェーン間で実行されることができる。
証明者は、第1のブロックチェーン上の例えば1ビットコインのUTXOなどの第1のデータへのアクセスを持ち、検証者は、第2のブロックチェーン上にある例えば100LTCなどの第2のデータへのアクセスを持ち、証明者及び検証者は、データを交換することに合意する。当該方法は、証明者が、第2のブロックチェーンに対する鍵ペアを生成し、公開鍵を検証者に送信し、秘密鍵を保持することと、証明者が、第1のブロックチェーンに対する検証者公開鍵を受信し、検証者は、第1のブロックチェーンに対する鍵ペアを生成して秘密鍵(s)を保持していることと、証明者が、ステートメントと、1つ以上のコミットメントと、入力若しくはキーオープニング及び関数回路出力(h)と、楕円曲線仕様とを送信することと、を含む。
証明者は、第1のデータを共有公開鍵アドレスに送信する第1のブロックチェーントランザクションTxを作成することができ、そして、該トランザクションを第1のブロックチェーンネットワーク上でブロードキャストし、該アドレスは、入力と検証者公開鍵との和によって定められる。このデータは、24時間以内にスワップが実行されなかった後に、証明者によってアクセスされることができる。
証明者は、第2のブロックチェーントランザクションTxを検証することができ、該トランザクションは、第1のブロックチェーンに第1のブロックチェーントランザクションTxが含まれることを確認した後に、検証者によって作成されて第2のブロックチェーンネットワーク上でブロードキャストされ、該トランザクションは、100LTCの形態の第2のデータを証明者公開鍵アドレスに送り、該証明者公開鍵アドレスは、該証明者公開鍵アドレスに関する有効な署名、及び関数回路出力を決定する関数回路入力である値、を用いて証明者によってアクセス可能である。このデータは、24時間以内にスワップが実行されなかった後に、検証者によってアクセスされることができる。
証明者は、第2のブロックチェーントランザクションTxが第2のブロックチェーン上に含まれることを確認し、署名と、関数回路出力の関数回路入力である上記値と、を提供することによって第2のデータにアクセスし、斯くして、検証者が、関数回路出力を決定する関数回路入力である上記値を観測し、(楕円曲線点乗算の同形性からs+sであるPの)秘密鍵を用いて署名を提供することによって第1のデータにアクセスすることを可能にする。
交換されるデータは暗号通貨とすることができ、第1のデータは、好ましくはビットコイン(Bitcoin)である第1の暗号通貨の量に対応し、第2のデータは、好ましくはライトコイン(Litecoin)である第2の暗号通貨の量に対応する。
上述のように、証明者による全てのアクションは、プルーフを検証するための検証者による逆のアクションを必要とする。本発明は、検証者によって実行される方法又はアクションにまで及ぶ。従って、証明者が、検証者に対して、ステートメントが真であることを、該ステートメントに対する証人を秘密にしたまま、好ましくは明示的に、証明するものである、ステートメントのゼロ知識証明又は検証を可能にするためのコンピュータ実装された方法が提供され、当該方法は、検証者が証明者から:好ましくはハッシュ関数である関数回路を実装して、所与の関数回路の、そして好ましくは指定された関数回路の出力及び楕円曲線点に対して、関数回路への関数回路入力又はプリイメージが楕円曲線点乗算器に等しいかを判定する、ように構成されたm個のゲート及びn個のワイヤを有する算術回路を持つステートメント、を受信することを含む。検証者はまた、回路のワイヤについての、暗号化されたワイヤ入力及び出力である個々のワイヤコミットメント及び/又はバッチにされたコミットメントと、算術回路内のワイヤ(好ましくは、最初のワイヤ以外のワイヤ)に対する入力又はキーオープニングと、関数回路出力(h)と、を受信する。検証者はまた、ステートメントで使用される楕円曲線又は各楕円曲線の仕様を受信し得る。検証者は、証明者にチャレンジ値を送信することができ、その後、オープニングを受信する。オープニングは、Σプロトコルに従うものとすることができ、検証者が、ステートメントが真であると判定して楕円曲線点を計算する、ことを可能にする回路の各ゲートについての値を含むことができる。加えて、あるいは代わりに、検証者は、証明者から証明キーを受信し得る。
そして、検証者は、回路が満たされると判定し、楕円曲線点(P)を計算し、故に、証明者がステートメントに対する証人(w)を保持していると判定する。
これは、ステートメント回路の各ゲートについての値を証明者が知っていることを、証明が対話型である場合にはシグマプロトコルを用いて、あるいは、フィアット−シャミアヒューリスティックが使用される場合には証明キーを用いて、ゼロ知識で証明することによって達成され得る。検証者は、証明者から各ゲートに対するΣ_zero及びΣ_prodコミットメントを受信し、チャレンジ値で応答し、証明者からオープニング値を受信し、そして、コミットメントと照合することができる。検証者は、楕円曲線点減算を介してワイヤlに対する公開鍵を計算することによって、回路が満たされることを確認し得る。検証者は、各ワイヤについての各公開鍵が、ステートメントで指定された(1つ以上の)鍵と一致することを確認し得る。検証者は、完全にオープンにされたワイヤが、ステートメント内の指定可能な値と一致すると判定して、検証を完了することができる。
コンピュータ実行可能命令を有したコンピュータ読み取り可能記憶媒体を提供することも望ましく、該コンピュータ実行可能命令は、実行されるときに、証明者によって、検証者によって、又は証明者と検証者とが協働することによって実行される方法を実行するようにプロセッサを構成する。
インタフェース装置と、該インタフェース装置に結合された1つ以上のプロセッサと、該1つ以上のプロセッサに結合されたメモリとを有するエレクトロニクス装置を提供することも望ましく、メモリはコンピュータ実行可能命令を格納しており、該コンピュータ実行可能命令は、実行されるときに、ここに特許請求される方法を実行するように上記1つ以上のプロセッサを構成する。特許請求される方法を実行するように構成された、ブロックチェーンネットワークのノードを提供することも望ましい。そのようなノードを有するブロックチェーンネットワークを提供することも望ましい。
本発明の態様が、ここに記載される実施形態を参照して解明されて明らかになる。以下、本発明の実施形態が、単なる例として、以下を含む添付の図面を参照して説明される。
図1(a)及び(b)は、技術的背景のセクションで対話型ゼロ知識証明に関する基本システムを上述した際に使用した図であり、図1(a)、左及び右のワイヤ入力と1つのワイヤ出力とを有する乗算ゲートの概略図であり、図1(b)は、3つのゲート、3つの入力ワイヤ、1つの出力ワイヤ、及び2つの内部ワイヤを有する算術回路の概略図である。 ハッシュ関数及び楕円曲線乗算のための算術回路を含む、ステートメントに関する複合回路の概略図である。 1つの算術回路のみが必要とされる、図1の複合ステートメントに関する算術回路の代替概略図である。 4つのゲートと5つのワイヤを持つ算術回路の概略図であり、ワイヤは、その公開鍵を有し、その公開鍵は、キーオープニング値でワイヤコミットメントから明らかにされる又はオープンにされる自身の公開鍵を持つ。 回路記述を有し且つ最初のワイヤが対応する公開鍵を持つステートメントSの証明のために証明者と検証者との間で交換されるデータの概略表現である。 証明者と検証者との間で交換されるデータの他の概略表現である。 図4の回路が満たされること、入力ワイヤが必要な公開鍵を持つこと、及び出力ワイヤのハッシュが必要な値を持つことを検証するために検証者によって実行されるチェックの概略図である。
概説
本発明は、算術回路充足可能性と公開鍵の妥当性に関する従属ステートメント(キーステートメントプルーフ)の両方を同時に必要とする複合ステートメントの効率的なゼロ知識検証を可能にする。公開鍵楕円曲線仕様が、回路充足可能性を証明するために、同形コミットメント関数内で採用される。これは、効率的なやり方で回路入力及び/又は出力として使用される秘密鍵に対応する公開鍵ステートメントの証明を可能にする。
回路充足可能性及び楕円曲線キーペアの両方を含むステートメントに関するプルーフを生成することのプルーフサイズ及び計算費用を大きく低減することができる。ここでの方法は、双線形ペアリングフレンドリー楕円曲線の使用を必要としないものである回路充足可能性に関する既存の離散対数ベースのゼロ知識プルーフプロトコルに容易に組み込むことができる。当該方法は、ビットコインsecp256k1標準に完全に適合する。
例えばビットコインブロックチェーンなどのブロックチェーン上の2者間の公正な交換トランザクションに関係する2つの用途が記述される。1つ目は、アウトソーシングされたバニティアドレスのトラストレス販売に関するゼロ知識付帯支払いを含み、これは、SHA256ハッシュプリイメージと楕円曲線(例えば、ビットコイン)秘密鍵とが等しいことのゼロ知識証明を必要とする。2つ目は、クロスチェーン・アトミック・スワップのセキュリティを向上させることを含み、これは、SHA256ハッシュプリイメージが、未知の秘密鍵(提供された公開鍵を有する)に、提供されたナンスを乗じたものに等しいことの証明を必要とする。
全般的ソリューション
この発明は、(楕円曲線点乗算に基づく)楕円曲線公開/秘密鍵ペアとの関係を含む特定のクラスの複合ステートメントの証明を可能にする方法に関する。
任意の暗号楕円曲線キー操作を含むステートメントを証明するためにzkSNARKを用いることは非現実的と考えられ、従って、当該方法は、一般的な回路充足可能性に関するプルーフの構築に使用される“同形隠蔽(homomorphic hiding)”(又はコミットメントスキーム)から直接抽出される楕円曲線公開鍵に関する情報を使用する。当該方法のステートメントに関与する特定タイプの楕円曲線は、回路コミットメントスキームで使用されるものと同じである。
しかしながら、SNARK法はペアリング操作を必要とし、それ故に、特別な双線形ペアリングフレンドリー楕円曲線を必要とする。このことは、一部のブロックチェーン上で使用される楕円曲線は双線形ペアリングフレンドリー楕円曲線と互換性がないので、zk−SNARKの使用を不可能にする。
例として、ビットコイン公開鍵に関係するステートメントは、互換性のないものであるビットコインsecp256k1曲線を使用している。
従って、本発明の方法は、ペアリングに頼らずにいっそう少ない暗号仮定を有した、算術回路充足可能性を証明するための他のプロトコルに適合する。全体的に、本発明の方法はzkSNARKSよりも効率的である。何故なら、より少ない計算しか必要とされず、トラストレス交換用途でのプルーフサイズが小さくなるからである。
例として、後述の“ステートメント1”に関する複合回路を表すものである図2の概略図は、ハッシュ関数と楕円曲線乗算の両方のサブ回路を含む。図2において、その概略図は、秘密鍵‘s’並びにそれが有する対応する対を為す公開鍵‘P’及び値‘h’(これは秘密鍵‘s’のハッシュである値)という、3つの入力(Input)を持っている。この概略図は2つの算術回路を含んでおり、1つ目は、秘密鍵に対するハッシュ(Hash)を実行し、2つ目は、秘密鍵に対する楕円曲線乗算(EC mult)を実行する。これらの回路の出力(Out)が入力と比較される。
なお、これら内部ゲートは単に例示目的でのものである。この回路は、ハッシュの出力が楕円曲線(EC)公開鍵に等しいことを検査する。入力‘h’、‘P’、及び出力のみが検証者に対して完全に明らかにされる。そのたの値は全て暗号化される。
ステートメント1
“ハッシュ関数(H)の出力hと楕円曲線点P(公開鍵)を所与として、ハッシュs(すなわち、h=H(s))のプリイメージが、楕円曲線点乗算器(秘密鍵、すなわち、P=s×G、ただし、Gは楕円曲線生成点)に等しい”。
当該方法は、証明者がこの特定のステートメントをゼロ知識で証明することを可能にする。このような方法からの恩恵を受ける用途の例が、トラストレスでのデータ交換(例えば、アウトソーシングされたビットコインバニティアドレスの販売)、及び匿名化されたセキュアなクロスチェーン・アトミック・スワップに関して後述される。
ステートメント1が真であることの検証は、例として、入力‘h’、‘P’、‘s’をとって、ステートメントが真である場合に‘1’を出力し、それ以外の場合には‘0’を出力するものである以下の擬似コード関数を用いて決定可能である:
int verify(h,P,s)
{
if(h == H(s) && P == s x G) {
return 1
}
else {
return 0
}
}
‘ステートメント1’を、ゼロ知識で検証すること、すなわち、zkSNARKシステムで証明者が‘s’の値を検証者から秘密にしたままで検証することは、図2のように、ハッシュ関数と楕円曲線点乗算の両方について算術回路を必要とすることになる。
SHA−256ハッシュ関数に関する算術回路は広く使用され、最適化されて、典型的に30,000未満の乗算ゲートを含むが、文献において、暗号楕円曲線点乗算実装に関する算術回路の例は知られていない。そのような回路が知られていたとしても、それらは、そのサイズ及び複雑さのために実用的でなく、より多くのゲートを含む。
当該方法は、図2に示すような、単一ハッシュ関数のための完全な算術回路で機能し、これは、キーステートメントプルーフと、ハッシュ関数用の1つの算術回路のみを使用する複合ステートメント1に関する算術回路の概略図を有している。この回路は、ハッシュの出力が正しいこと、及び公開鍵がECの暗号化された入力(キーステートメントプルーフ)に等しいことを検査する。青色でハイライトされた値、すなわち、入力‘h’、‘P’及び出力‘1’は検証者に対して明らかにされ、その他全ての値は暗号化される。
図3の回路を用いて、証明者は、回路充足可能性を介して、秘密鍵‘s’のハッシュが‘h’になること、及び、楕円曲線生成点をGとして、鍵ペアの対応する公開鍵‘P’が‘s×G’に等しいことを、明示的に証明することができる。秘密鍵‘s’は、ハッシュのプリイメージ、又は関数への入力であり、ステートメントを証明するときに検証者には明らかにされない。
言うまでもなく、‘s×G’が‘P’に等しいことを検証することは、プルーフプロトコルの一部としてコミットメントスキームにおいて必要な楕円曲線を使用することにより、無視できる追加の計算コストで回路プルーフから抽出されることができる。このような操作は‘キーステートメントプルーフ(key-statement proof)’と呼ばれており、‘キーオープニング(key-opening)’と呼ばれるコミットメントオープン手順を使用する。
技術的効果
既知のzk‐SNARK(Zero-knowledge Succinct Non-interactive Arguments of Knowledge)は、算術回路充足可能性に関する汎用証明システムの一実装である。SNARKフレームワークにおいて、算術回路としてエンコードされるステートメントは、多項式の集合から成る二次算術プログラム(Quadratic Arithmetic Program;QAP)と呼ばれる構成へと変換される。そして、この式の集合の妥当性を単一の点で実証することによって、ステートメントを証明することができる。SNARK法の主な利点は、検証者が数少ない楕円曲線(ペアリング)演算(数ミリ秒を要する)を実行するだけでよく、プルーフが非常に小さく(288バイト)いとともに回路サイズに依存しないということである。
SNARK法によって達成される非常に小さいプルーフ及び検証時間は、トラストのあるセットアップ、標準的でない暗号仮定、及び証明者に課される遥かに重い計算負荷という犠牲のもとでもたらされる。SNARK法はまた、楕円曲線双線形ペアリングの使用を必要とする。しかしながら、計算的に実現可能な双線形ペアリングの使用は、特別な‘ペアリングフレンドリー’楕円曲線の使用を必要とする。これは、ビットコインsecp256k1を含む、多くの標準的な暗号楕円曲線パラメータセットの使用を排する。すると、一般的な楕円曲線点乗算を含むステートメントは、明示的な回路(非常に大きくなり得る)を使用しなければならない。
前節で説明したSHA回路充足可能性を証明するためのΣプロトコルアプローチとの比較として、SNARK(ピノキオ)フレームワークを用いる場合、証明キーは生成するのに約10秒を要し、約7MBのサイズになり、プルーフも生成するのに約10秒を要することになる。しかしながら、プルーフサイズは288Bとなり、検証するのに要するのは約5msのみである(非特許文献8)。
さらに、明示的な楕円曲線乗算(キーステートメント)を回路に組み込むことは、証明キーサイズ及びプルーフ生成時間の両方に、少なくとも1桁の大きさを乗じることになる。
本発明は、一般的な算術回路充足可能性と同時での、楕円曲線公開鍵−秘密鍵関係を含むステートメントのゼロ知識証明を可能にする。これは、算術回路充足可能性を証明することの域を超えて無視できる計算費用で達成され、証明の計算費用をかなり増加させるものである楕円曲線点乗算演算用の明示的算術回路を作成することを不要にする。
実装
以下、本発明の実装を、バッチ式及び非バッチ式の両方のコミットメントベースゼロ知識証明システムについて説明する。
これら例では、ゼロ知識証明プロトコルに、証明者(P)及び検証者(V)の二者が関与する。このプロトコルの目的は、証明者が、所与のステートメント(S)が真であることを、そのステートメントに対する証人についての情報を秘密にしたまま、検証者に確信させることである。ステートメントは、m個のゲート及びn個のワイヤを有する算術回路(C)と、回路ワイヤ値のうちの1つ(又はそれ以上)に対応する楕円曲線公開鍵:pkについての従属アサーションとで構成される。ここで、下付き文字のlは、キーステートメントのワイヤインデックスである。さらに、ステートメントはまた、完全にオープンにされた(公開)ワイヤ値(すなわち、回路の公開入力/出力)についてのアサーションを含んでもよい。
ステートメントで指定される(1つ以上の)楕円曲線公開鍵は、ターゲット楕円曲線仕様(これは、楕円曲線パラメータの全集合:T=(p,a,b,G,n,h)によって規定される)に対応する。
ビットコインスクリプトの場合、これらのパラメータはsecp256k1(非特許文献9)の仕様によって規定される。この使用は、ベース生成点Gを含む。ベース点を指定することに加えて、ステートメントはまた、第2の点Fも指定しなければならない(ここで、F=f×Gであり、fはZの要素である)。証明者にfの自由選択を許すことは証明者が偽のプルーフを生成することを可能にすることになり得るので、fの値は、証明的にランダムでなければならず(例えば、ビットコインジェネシスブロックハッシュ)、あるいは、例えばπのバイナリ表現の最初の256ビットなどの“奥の手以外の何物でもない(nothing up my sleeve)”数字でなければならない。
バッチにされたコミットメント及びバッチにされていないコミットメントを、4つのゲート及び5つのワイヤを有する代表的な算術回路である図4に関連して説明する。入力ワイヤ(w)は、‘キーオープニング’値koを有するワイヤコミットメントWから明らかにされる又はオープンにされるその公開鍵を持つ。
実装 − 個々のワイヤコミットメント
図4を一例として用いるに、‘キーオープニング’は、証明者によって作成されて検証者に送信される、回線内の各ワイヤに対する個々のコミットメントである。これらのキーオープニングは、算術回路充足可能性に関する既知のΣプロトコルに従う。図5は、証明者と検証者との間で交換されるデータを示している。
充足可能性は、以下のように、幾つかのステップを含めることによって達成される:
1. 回路の各ワイヤi(i=1,…,n)に対して、Pedersenコミットメントを用いてコミットされる:
=Com(w,r
ここで、
Com(w,r)=w×G+r×F
2. それが対応する公開鍵の照明(キーステートメントプルーフ)を必要とする回路ワイヤlに対して、証明者はまた、キーオープニング:
ko=r×F
も送信する。
3. オプションで、回路ワイヤjが公然に明らかにされていること(完全に公開されたワイヤ)を必要とする場合、証明者は完全なオープニングタプル:
(w,r
を送信する。
4. 次いで、Σプロトコルを用いてゼロ知識で、回路の各ゲートが満たされることが証明され、これは、証明者が、各ゲートについてΣzero及びΣprodコミットメント(すなわち、それぞれ、B、又はC,C,C)を計算して送信し、検証者がチャレンジ値(x)で応答し、次いで証明者がオープニング値(z及びe値)を送信し、そして、検証者がコミットメントと照合することを含む。
5. 回路が満たされることを検証者が確認すると、次いで、検証者が、楕円曲線点減算:
pk=Com(w,r)−ko
を介してワイヤlに関する公開鍵を計算する。
6. そして、検証者が、各pkがステートメント中で指定された(1つ以上の)キーと一致すること(及び完全にオープンにされたワイヤが指定値と一致すること)を確認して、検証を完了する。
詳細な実装 − 個々のワイヤコミットメント
図4を続けて参照して、この例の個々のコミットメント及び検証を詳述する明示的な例を提供する。これは、ワイヤのうちの1つのキーステートメントプルーフ及び他の1つのワイヤの完全な開示の両方で、単純な算術回路の充足可能性を検証することを記述するものである。
図4に示す回路Cは、5つのワイヤw(i=1,…,5)と4つのゲートg(j=1,…,4)とを有している。ゲート1及び3は加算ゲートであり、ゲート2及び4は乗算ゲートである。
証明者及び検証者は、楕円曲線及びコミットメント仕様と共に、回路、ワイヤ5の値、及びワイヤ1の公開鍵を含むステートメントに同意する。それが真であることを証明者が検証者に対して証明することを望むステートメント(S)は:
“私は、回路Cへの充足割り当て(すなわち、全てのゲートを満たすワイヤ値{wi=1 を知っており、ただし、ワイヤ1は公開鍵P(すなわち、P=w×G)を持っており、ワイヤ5は値h(すなわち、w=h)を持っている”
である。
ワイヤ1から4の値は明らかにされない。そして、図6に示すように、また以下に説明するように、証明者及び検証者がインタラクトする:
1. 証明者が、5つのランダムなブラインディング値(r,…,r)を生成し、次いで、5つのワイヤコミットメント(W,…,W)を計算し、それらを検証者に送信する。
2. 証明者が、ワイヤ1に対するキーオープニング:ko=r×Fを計算し、それを検証者に送信する。
3. 証明者が、ワイヤ5に関する完全なオープニング情報(w,r)を検証者に送信する。
4. 加算ゲート(g及びg)について、証明者が、(ランダムなナンスrB1及びrB3を用いて)ゼロに対するコミットメント:B=Com(0,rB1)及びB=Com(0,rB3)を生成し、それらを検証者に送信する。
5. 乗算ゲート(g及びg)について、証明者が、次のようにコミットメントを生成し、すなわち:
ゲート2について:
12=Com(t12,t32
=Com(t22,t52) 及び
=t12×W+t42×F
ゲート4について:
14=Com(t14,t34
=Com(t24,t54) 及び
=t14×W+t44×F
のようにコミットメントを生成し、ここで、txx値は、ランダムなブラインディングナンスである。証明者は、これらのコミットメントを検証者に送信する。
6. 次いで、検証者が、ランダムチャレンジ値xを生成し、それを証明者に送信する。あるいは、検証者は、フィアット−シャミアヒューリスティックを用いて、全てのコミットメントの連結をハッシュすることによって、値xを生成してもよい。
7. 加算ゲート(g及びg)について、証明者が、以下のオープニング:
=x(r+r−r)+rB1
=x(r+r−r)+rB3
を計算し、それらを検証者に送信する。
8. 乗算ゲート(g及びg)について、証明者が、以下のオープニング:
12=wx+t12
22=wx+t22
12=rx+t32
22=rx+t52
32=(r−w)x+t42

14=wx+t14
24=wx+t24
14=rx+t34
24=rx+t54
34=(r−w)x+t44
を計算し、それらを検証者に送信する。
9. 最後に、検証者が、等価性を検査する。これらが合格すると、証明が検証される。
検証者によって実行される検証は、図7にまとめられており、内側のボックス内の検査が、回路が満たされること、及び、第1のワイヤが必要な公開鍵を有し、第5のワイヤが必要な値を有することを検証する。
図5及び図6のチャレンジ‘x’は、対話的な証明を提供し、証明者と検証者との間で通信が往復する。
売り手と買い手が同時には応対できない、あるいはオンラインでないことがあり得るので、このインタラクションは、ゼロ知識付帯支払い(zero-knowledge contingent payment;ZKCP)が行われるときに不便であり得る。また、買い手(検証者)が、プルーフが公開的に検証可能であることを望むことがあり、例えば、それがデジタルグッズの広告の一部であることがある。
さらに、証明が厳密にゼロ知識であるのは、完全特別正直検証者(perfect special-honest verifier)モデルにおいてのみであり、すなわち、検証者がチャレンジとして真の乱数を生成するのであって、証人についての情報を試して取り出すためのチャレンジ値を選択したりはしないと仮定されるときのみである。
これらの問題を解決するために、フィアット−シャミアヒューリスティックが適用され、これは、ランダムチャレンジ値‘x’を、証明者によって作成されたコミットメントのハッシュの出力で置き換える。ランダムオラクルモデル(暗号ハッシュ関数の出力が真にランダムとみなされる)では、証明者は不正を働くことができず、検証者は生成されたチャレンジ値を検査することができ。
従って、この例は、フィアット−シャミアヒューリスティックを使用して対話型証明システムを非対話型のものに変換することによって改善さることができ、また、証明者は、オフラインで独立して公開的に検証されることができるプルーフを生成することができる。
より具体的には、チャレンジ値(x)が、証明者によって生成されたコミットメントの全て(すなわち、ワイヤコミットメントの全てと、和ゲート及び積ゲートそれぞれに対するB及びC,C,Cコミットメントの全て)の連結を(例えば、SHA−256で)ハッシュすることによって計算される値で置き換えられる。
実装 − バッチ化ベクトルコミットメント
ベクトルコミットメントのバッチ化を伴う回路充足可能性に関する圧縮証明システム(非特許文献8、非特許文献6)は、以下に記載される方法を使用し、当該方法は、バッチにされた回路ワイヤコミットメントからキーステートメントプルーフを抽出することを可能にする。
繰り返しを避けるため、完全なプロセスを記載することはせず、以下のステップは、バッチにされたワイヤコミットメントの生成と、それが指定された公開鍵を含むことを例証することとに焦点を当てている。以下のステップでは、ワイヤlが、キーオープニングを与えられるものであり、n個のワイヤがベクトルコミットメント内で共にバッチにされるとして、以下のように、バッチにされたコミットメントが生成される。
1. 証明者が、n−1個の乱数x,…,xn−1←Zを生成する。
2. 証明者が、楕円曲線点K=x×G(for i=1,…,n−1)を計算する。これらの値にK=Gを足したものが、検証者に送られる証明キーPrKを形成する。
3. 証明者が、ランダム値:r←Zを生成する。
4. wがキーオープンされるものであるとして、証明者が、ワイヤ値w(for i=1,…,n)のベクトルwへのコミットメント:
Figure 2021518685
を計算し、それを検証者に送信する。
5. 証明者がまた、ベクトルコミットのためのキーオープニング:
Figure 2021518685
を送信する。
6. 検証者が、楕円曲線演算:
Figure 2021518685
を介して、キーステートメントワイヤの公開鍵オープニングを計算する。
発明概要
ハッシュプリイメージ及び楕円曲線秘密鍵の等価性の証明は、数多くの用途で利用されることができる。以下、利用のためのキーステートメントゼロ知識プルーフの具体例の構築を概説するものである2つの用途について説明する。
以下のステートメントSは、適用例の目的で、上述のステートメント1のより具体的なバージョンである:
S:
“公開出力hを有するSHA−256ハッシュ関数(H)及びsecp256k1楕円曲線上の公開点Pが所与であり、ハッシュの秘密のプリイメージs(すなわち、h=H(s))が、楕円曲線点乗算器(すなわち、対応する秘密鍵、すなわち、P=s×G)に等しい。”
提供される例において、このステートメントは、入力ワイヤ(w1)が公開点Pの秘密鍵である、及び出力ワイヤ(wn)がhに等しい、というアサーションとともに、SHA−256ハッシュ関数CSHA256(n個のワイヤw(i=1,…,n)及びm個のゲートを有する)に関する単一の算術回路で構成され、すなわち、
Figure 2021518685
で構成される。
従って、このステートメントを完全に検証するために、証明者は、検証者に対して、secp256k1ベースのコミットメントスキームを使用して、SHA256回路への充足割り当てを知っていることを実証し、そして、ワイヤ1についてのキーオープニング(ko)及びワイヤnについての完全オープニング(w,r)を単純に提供しなければならない。検証者は、入力ワイヤ(w)の値を教わらず、すなわち、完全にオープンにされる出力ワイヤwを除く他のワイヤのいずれの値も教わらない。
用途I
上の実装セクションで説明した本発明の例は、支払い又はリソースへのアクセスのために交換されるデータを表すものである、アウトソーシングされたビットコインバニティアドレスに関するZKCPに適用されることができる。
ビットコインアドレスは、公開、コピー及び転記するのが容易なものとするために、人間読み取り可能な英数字フォーマット(Base58エンコーディング)でエンコードされる。このフォーマットの使用は、所謂バニティアドレスの人気につながっており、例えば下に示すもの:
[外1]
Figure 2021518685
などの、所望の(名前のような)文字列を含むアドレスを生じる秘密鍵を見つけるために、鍵空間がブルートフォース(総当たり)探索される。
有意なパターンを有するバニティアドレスを導出することは計算的に高くつくため(例えば、上に示したアドレスは、一致が見つかるまでにおよそ1013個の異なる公開鍵の生成を必要とした)、検索をアウトソーシングすることが一般的であり、バニティアドレスが委託販売されているオンラインマーケットプレイスが幾つか存在している。これは、楕円曲線点乗算の同形性を用いて安全に行われることができる(非特許文献7)。
生成をアウトソーシングすることは安全であるが、バニティアドレスの販売は信用できない。売り手が支払いを受ける前に買い手が必要値を得たり、売り手が必要値を渡す前に支払いを受けたり、あるいは両者ともが第三者預託サービスを信頼しなければならなかったりする。本発明は、ZKCPを介したバニティアドレスのトラストレス販売を可能にするために使用されることができる。以下にて、買い手/検証者と売り手/証明者との間でとられるステップを説明する。
1. 買い手と売り手が、必要なバニティパターン(Str)及び価格(aビットコイン)について合意し、セキュアである必要のない通信チャンネルを確立する。
2. 買い手が、セキュアなランダム秘密鍵skB及び対応する楕円曲線公開鍵を生成し、公開鍵pk=sk×Gである。
3. 買い手が売り手にpkを送信する。
4. 次いで、売り手が、iを変化させることによってpk=pk+i×Gから導出されるBase58エンコードされたアドレスにおいて必要なパターンの探索を実行する。
5. 必要なパターンを持つアドレスが見つかった場合、売り手はiを保存し、買い手にシグナリングして、pk=i×G及びSHA256ハッシュH(i)を送信する。
6. 売り手はまた、上の例で説明したように、H(i)に対するプリイメージが、pkに対応する秘密鍵であることのプルーフを買い手に提供する。
7. 買い手が、プルーフを検証し、また、pk=pk+pkに対応するアドレスが合意したパターンに一致することを確認する。この時点で(プルーフによって)、買い手は、値iを教わることで、自身がバニティアドレスに関する完全な秘密鍵(sk+i)を導出することが可能になること、及び特定の値iがh=H(i)にハッシュすることを知る。
8. 次いで、買い手が、合意した手数料(a)を含むアウトプットを含んだ、ハッシュ時間ロック契約(HTLC)トランザクションTxを構築する。この出力は、2通りのやり方でアンロックされることができ、すなわち:
i. 任意の時に、売り手からの署名と、ハッシュプリイメージiとを用いて、
ii. 例えば、指定された時間又はブロック高さまで出力が消費されることを防ぐために使用され得るものであるCHECKLOCKTIMEVERIFY (OP_CLTV)スクリプトopコードを使用して、指定された時間の後に買い手からの署名を用いて、
アンロックされることができる。
9. 次いで、買い手が、このトランザクションに署名してブロックチェーンにブロードキャストし、それがブロックへとマイニングされる。
10. 確認されると、売り手は、自身の署名とハッシュロックを解除するための値iを供給するトランザクションTxを提供することによって、Txの出力における手数料を請求することができ、そして、値iはブロックチェーン上で明らかにされる。
11. 買い手は、最終的なバニティアドレス秘密鍵sk=sk+iを計算することができ、pk=sk×Gである。
12. 買い手が指定のOP_CLTV時間の前に値iを供給しない場合、売り手は(非協力的な買い手によって手数料が失われることを防ぐために)署名を提供して手数料を再請求することができる。
すると、トランザクションは、完全にアトミックでトラストレスであり、買い手は有効な値iを提供した場合にのみ支払いを受け、値iはブロックチェーン上で公然に明かされる。秘密鍵の分割により、この値は、他の誰にも役に立たず、完全な秘密鍵のセキュリティを損なわない。
用途II
上の実装セクションで説明した本発明の例は、各々がそれぞれの、異なるブロックチェーン上に記録された交換されるべきデータを持つ二者間での私的なデータ交換に適用されることができる。
より具体的には、本発明は、アトミックトレードとしても知られた、ブロックチェーントランザクション機構を活用するトラストレスでの公正な交換プロトコルであるプライバシーを保護するクロスチェーン・アトミック・スワップに適用されることができる。このプロトコルは、第三者集中型の交換を用いずに、2つの異なるブロックチェーン上で2つの異なる暗号通貨トークンを取引するために使用される。この文脈での単語‘アトミック’は、公正な交換の性質を指し、両者がトランザクションを完了するか、あるいは両者とも完了しないかのいずれかである。
既知の基本プロトコルの一例は、以下のステップに従って実行される。安全であるために、スワップで使用される暗号通貨の両方が、ハッシュされ且つ時間ロックされた契約を可能にするスクリプト機能を持たなければならない。このスワップには、アリスとボブの二者が関与する。この例では、アリスが1ビットコインを保有しており、それをボブの100ライトコインと取引することに合意している。
1. アリスが、ボブに送信するライトコイン公開鍵Pを生成する。
2. ボブが、アリスに送信するビットコイン公開鍵Pを生成する。
3. アリスが、セキュアな乱数xを生成する。
4. アリスが、xのSHA−256ハッシュ:h=H(x)を計算する。
5. アリスが、以下であるビットコイントランザクションTx、すなわち、
i. 有効な署名 AND hにハッシュする値を用いて、1ビットコインをPに支払う、
ii. OR 24時間後に1ビットコインをアリスに払い戻す、
ものであるビットコイントランザクションTxを作成する。
6. アリスが、該トランザクションをビットコインネットワークにブロードキャストする。
7. ボブが、ビットコインブロックチェーン上でTxが確認されたことを観測すると、以下であるライトコイントランザクションTx、すなわち、
i. 有効な署名 AND hにハッシュする値を用いて、100ライトコインをPに支払う、
ii. OR 24時間後に100ライトコインをボブに払い戻す、
ものであるビットコイントランザクションTxを作成する。
8. ボブが、該トランザクションをライトコインネットワークにブロードキャストする。
9. トランザクションが確認されると、アリスは、自身の署名及び値xを提供することによって、ライトコイン出力を請求することができる。
10. ボブは、ライトコインブロックチェーン上で値xを観測すると、自身の署名及び値xを提供することによって、ビットコイン出力を請求することができる。
この例は、両者ともコインを手に入れる又は両者とも手に入れないのいずれかであることを確実にする。アリスはハッシュ値を生成し、彼女のみがプリイメージを知っているが、彼女は、コインを請求するためにこのプリイメージを明らかにすることを要求され、そして、それが、ボブが彼のコインを請求することを可能にする。どちらかの者が完了に向けてプロトコルに従わない場合、それらの両者がロックアウト期間後に自身のコインを再請求することができる。
上述した既知のプロトコルの1つの重大な欠点は、両方のブロックチェーン上のトランザクションが自明にリンク付け可能なことであり、いったん確認されると、固有値xが、永久に、両方のブロックチェーン上で公然と見えてしまう。これは、コインの交換性及びトランザクションのプライバシーの両方に影響を及ぼす。
2つのトランザクションをリンク付けないためには、各チェーン上の出力に異なるキーが使用されなければならないが、プロトコルがセキュア且つトラストレスであるために、ボブは、アリスによって、彼女が彼女のハッシュプリイメージを明らかにするときに彼が彼のコインをアンロックするのに必要な情報を教わることになる、というプルーフを与えられなければならない。
上の例で説明したキーステートメントプルーフを採用することにより、第2のブロックチェーン上のハッシュロックされた出力を、通常のpay−to−public−key−hash(P2PKH)出力に変換することができ、トランザクションの性質を隠すとともに如何なる可能なリンクも破ることができる。
アリスが1ビットコインを保有しており、それをボブの100ライトコインと取引することに合意しているという上の例に適用して、改良プロセスは、以下のアクションを含むことになる:
2. アリスが、ボブに送信するライトコイン公開鍵Pを(秘密鍵sで)を生成する。
3. ボブが、アリスに送信するビットコイン公開鍵Pを(秘密鍵sで)生成する。
4. アリスが、セキュアな乱数x←Zを生成する。
5. アリスが、xのSHA−256ハッシュ:h=H(x)と、xに対応する楕円曲線公開鍵:P=x×Gとを計算する。
6. アリスが、h及びPの両方をボブにセキュアに送信する。
7. アリスはまた、hのプリイメージがPを生成した秘密鍵に等しいことのキーステートメントプルーフをボブに送信する。
8. アリスが、以下であるビットコイントランザクションTx、すなわち、
i. 1ビットコインを公開鍵P=P+Pに支払う、
ii. OR 24時間後に1ビットコインをアリスに払い戻す、
ものであるビットコイントランザクションTxを作成する。
9. アリスが、該トランザクションをビットコインネットワークにブロードキャストする。
10. ボブが、ビットコインブロックチェーン上でTxが確認されたことを観測すると、以下であるライトコイントランザクションTx、すなわち、
i. 有効な署名 AND hにSHA−256ハッシュする値を用いて、100ライトコインをPに支払う、
ii. OR 24時間後に100ライトコインをボブに払い戻す、
ものであるビットコイントランザクションTxを作成する。
11. ボブが、該トランザクションをライトコインネットワークにブロードキャストする。
12. トランザクションが確認されると、アリスは、自身の署名及び値xを提供することによって、ライトコイン出力を請求することができる。
13. ボブは、ライトコインブロックチェーン上で値xを観測すると、楕円曲線点乗算の同形性からs+xであるPの秘密鍵を用いて署名を提供することによってビットコイン出力を要求することができる。
用途全般
本発明は、証明者が、検証者に対して、ステートメントが真であることを、該ステートメントに対する証人(w)を秘密にしたまま証明するものである、ステートメント(S)のゼロ知識証明又は検証に適する。秘密は、例えばハッシュ関数などの関数によって処理されることができるが、例えば公開鍵に関するステートメントの妥当性といった、暗号楕円曲線キー操作を更に含むことができる。上の例において、本発明の方法は、バニティアドレスに関するトラストレスでのZKCPを可能にするために使用されている。これはまた、例えば、パスワードの導出、例えばパスポート又は身元証明書などの有効な機械読み取り可能文書の検証、又は他のそのような機密トランザクションにも適用されることができる。
なお、上述の実施形態は、本発明を限定するものではなく、例示するものであり、当業者は、添付の請求項によって規定される本発明の範囲から逸脱することなく、数多くの代わりの実施形態を設計することができる。
請求項において、括弧内に置かれた如何なる符号も、請求項を限定するものと解釈されるべきでない。用語“有している”及び“有する”並びにこれらに類するものは、いずれかの請求項又は明細書全体に列挙されたもの以外の要素又はステップの存在を除外するものではない。本明細書において、“有する”は“含む又はからなる”を意味し、“有している”は“含んでいる又はからなっている”を意味する。
単数形での要素の参照は、それらの要素の複数形での参照を除外するものではなく、その逆もまた然りである。本発明は、幾つかの別個の要素を有するハードウェアによって、また、適切にプログラムされたコンピュータによって実装され得る。
幾つかの手段を列挙するデバイスクレームにおいて、それらの手段のうちの幾つかが、同一のハードウェアアイテムによって具現化されてもよい。特定の複数の手段が相互に異なる従属請求項に記載されているという単なる事実は、それらの手段の組み合わせが有利に使用され得ないということを指し示すものではない。

Claims (23)

  1. 証明者と検証者との間でのデータの交換を可能にするための、ステートメント(S)のゼロ知識証明又は検証を可能にするためのコンピュータ実装された方法であって、前記証明者は、第1のブロックチェーン上の第1のデータへのアクセスを持ち、前記検証者は、第2のブロックチェーン上の第2のデータへのアクセスを持ち、当該方法は、
    前記証明者が、前記第2のブロックチェーンに対する鍵ペアを生成し、該ペアのうち公開鍵(P)を前記検証者に送信し、該ペアのうち秘密鍵(s)を保持し、
    前記証明者が、前記第1のブロックチェーンに対する検証者公開鍵(P)を受信し、前記検証者は、前記第1のブロックチェーンに対する鍵ペアを生成して該ペアのうち秘密鍵(s)を保持しており、
    前記証明者が、前記検証者にデータセットを送信し、該データセットは、ゼロ知識証明ステートメント(S)、1つ以上のコミットメント、入力(P)及び関数回路出力(h)を含み、
    前記証明者が、前記第1のデータへのアクセスを共有公開鍵アドレス(P)に移転する第1のブロックチェーントランザクションTxを作成して、該トランザクションを第1のブロックチェーンネットワーク上にブロードキャストし、該アドレスは、前記入力(P)と前記検証者公開鍵(P)との和によって定められてP=P+Pであり、
    前記証明者が、第2のブロックチェーントランザクションTxを検証し、該トランザクションは、前記第1のブロックチェーンに前記第1のブロックチェーントランザクションTxが含まれることを確認した後に、前記検証者によって作成されて第2のブロックチェーンネットワーク上にブロードキャストされており、該トランザクションは、前記第2のデータへのアクセスを証明者公開鍵アドレス(P)に移転させ、該証明者公開鍵アドレス(P)は、
    該証明者公開鍵アドレス(P)に関する有効な署名、及び
    前記関数回路出力(h)を決定する関数回路入力である値(x)、
    を用いて前記証明者によってアクセス可能であり、
    前記証明者が、前記第2のブロックチェーントランザクションTxが前記第2のブロックチェーン上に含まれることを確認し、自身の署名と、前記関数回路出力(h)の前記関数回路入力である前記値(x)と、を提供することによって前記第2のデータにアクセスし、
    斯くして、前記検証者が、前記関数回路出力(h)を決定する前記関数回路入力である前記値(x)を観測し、楕円曲線点乗算の同形性からs+xであるPに関する秘密鍵を用いて署名を提供することによって前記第1のデータにアクセスすることを可能にする、
    ことを含むコンピュータ実装された方法。
  2. 交換される前記データは暗号通貨であり、前記第1のデータは第1の暗号通貨の量に対応し、及び/又は前記第2のデータは第2の暗号通貨の量に対応する、請求項1に記載のコンピュータ実装された方法。
  3. 証明者が、検証者に対して、ステートメントが真であることを、該ステートメントに対する証人(w)を秘密にしたまま証明するものである、ステートメント(S)のゼロ知識証明又は検証を可能にするための、請求項1又は2に記載のコンピュータ実装された方法であって、当該方法は、
    証明者が検証者に:
    関数回路を実装して、所与の関数回路出力(h)及び楕円曲線点(P)に対して、前記関数回路のワイヤへの関数回路入力(s)が対応する楕円曲線点乗算器(s)に等しいかを判定する、ように構成されたm個のゲート及びn個のワイヤを有する算術回路によって表されるステートメント(S)と、
    前記回路のワイヤについての個々のワイヤコミットメント及び/又はバッチにされたコミットメントと、
    関数回路出力(h)と、
    証明キー(PrK)と、
    を送信することを含み、
    これにより、前記検証者が、前記回路が満たされることを決定し、前記楕円曲線点(P)を計算して、前記ステートメントを検証すること、故に、前記証明者が前記ステートメントに対する前記証人(w)を保持していると決定することを可能にする、
    コンピュータ実装された方法。
  4. 前記証明者は、前記証人(w)の知識を証明するために、個々のワイヤコミットメントを送信し、Σプロトコルを使用して前記検証者と通信する、請求項3に記載のコンピュータ実装された方法。
  5. 前記証明者は、前記検証者からチャレンジ値(x)を受信し、オープニングで応答する、請求項3に記載のコンピュータ実装された方法。
  6. 前記証明者は、前記検証者が前記ステートメントが真であると判定して前記楕円曲線点(P)を計算することを可能にするランダム値(x)を前記検証者に送信する、請求項3又は4に記載のコンピュータ実装された方法。
  7. 前記ランダム値(x)は、少なくとも1つのコミットメントの関数である、請求項6に記載のコンピュータ実装された方法。
  8. 前記ランダム値(x)は、前記証明者によって生成されて前記検証者に送信された全ての前記コミットメントの連結をハッシュすることによって計算される、請求項6又は7に記載のコンピュータ実装された方法。
  9. 前記コミットメントWは、W=Com(w,r)であり、
    Comは前記関数回路へのコミットメントであり、
    はワイヤ値であり、
    は、ワイヤコミットメントごとに異なる乱数であり、
    iはワイヤ種類であり、
    Com(w,r)=w×G+r×Fとされ、
    F及びGは楕円曲線点である、
    請求項3乃至8のいずれか一項に記載のコンピュータ実装された方法。
  10. 前記算術回路内のワイヤlに対する入力が、ko=r×Fであり、
    koはキーオープニング入力であり、
    は乱数であり、
    Fは楕円曲線上の点である、
    請求項9に記載のコンピュータ実装された方法。
  11. 前記検証者は、前記回路が満たされることを確認し、楕円曲線点減算:
    pk=Com(w,r)−ko
    を介してワイヤlに対する公開鍵を計算することができる、請求項10に記載のコンピュータ実装された方法。
  12. 前記証明者は、ワイヤコミットメントのバッチを送信し、各ワイヤについて楕円曲線点を計算するための乱数を生成して、前記証明キー(PrK)を形成する、請求項3に記載のコンピュータ実装された方法。
  13. 前記証人に関する前記バッチにされたコミットメントは、
    Figure 2021518685
    であり、
    rは、証明者によって生成された乱数であり、
    証明者は、ワイヤ値w(for i=1,…,n)のベクトルwへのコミットメントを計算し、
    は、キーオープンされるものであり、
    は、計算された楕円曲線点であり、
    はワイヤ値であり、
    Fは楕円曲線上の点である、
    請求項12に記載のコンピュータ実装された方法。
  14. 前記算術回路内のワイヤnに対する入力は、
    Figure 2021518685
    であり、
    koはキーオープニング入力であり、
    rは乱数であり、
    Fは楕円曲線上の点である、
    請求項12に記載のコンピュータ実装された方法。
  15. 前記検証者は、楕円曲線演算:
    Figure 2021518685
    を介して、キーステートメントワイヤの公開鍵オープニングを計算する、請求項14に記載のコンピュータ実装された方法。
  16. 前記証明者は更に、完全にオープンにされたコミットメントを前記関数回路の少なくとも1つのワイヤに送る、請求項1乃至15のいずれか一項に記載のコンピュータ実装された方法。
  17. 当該方法はPedersenコミットメントを使用する、請求項1乃至16のいずれか一項に記載のコンピュータ実装された方法。
  18. 前記ステートメントは、前記関数回路に対して1つの算術回路のみを使用する、請求項1乃至17のいずれか1項に記載のコンピュータ実装された方法。
  19. 前記関数回路は、好ましくはSHA−256ハッシュ関数であるハッシュ関数を実装する、請求項1乃至18のいずれか一項に記載のコンピュータ実装された方法。
  20. コンピュータ実行可能命令を有したコンピュータ読み取り可能記憶媒体であって、前記コンピュータ実行可能命令は、実行されるときに、請求項1乃至19のいずれか一項に記載の方法を実行するようにプロセッサを構成する、コンピュータ読み取り可能記憶媒体。
  21. インタフェース装置と、
    前記インタフェース装置に結合された1つ以上のプロセッサと、
    前記1つ以上のプロセッサに結合されたメモリであり、当該メモリはコンピュータ実行可能命令を格納しており、該コンピュータ実行可能命令は、実行されるときに、請求項1乃至19のいずれか一項に記載の方法を実行するように前記1つ以上のプロセッサを構成する、メモリと、
    を有するエレクトロニクス装置。
  22. ブロックチェーンネットワークのノードであって、請求項1乃至19のいずれか一項に記載の方法を実行するように構成されたノード。
  23. 請求項22に記載のノードを有するブロックチェーンネットワーク。
JP2020549555A 2018-03-23 2019-03-18 データの交換のためのコンピュータ実装されたシステム及び方法 Pending JP2021518685A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2024012421A JP2024045359A (ja) 2018-03-23 2024-01-31 データの交換のためのコンピュータ実装されたシステム及び方法

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
GBGB1804740.7A GB201804740D0 (en) 2018-03-23 2018-03-23 Computer-implemented system and method
GB1804742.3 2018-03-23
GBGB1804739.9A GB201804739D0 (en) 2018-03-23 2018-03-23 Computer-implemented system and method
GB1804740.7 2018-03-23
GBGB1804742.3A GB201804742D0 (en) 2018-03-23 2018-03-23 Computer-implemented system and method
GB1804739.9 2018-03-23
PCT/IB2019/052186 WO2019180590A1 (en) 2018-03-23 2019-03-18 Computer-implemented system and method for exchange of data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2024012421A Division JP2024045359A (ja) 2018-03-23 2024-01-31 データの交換のためのコンピュータ実装されたシステム及び方法

Publications (1)

Publication Number Publication Date
JP2021518685A true JP2021518685A (ja) 2021-08-02

Family

ID=65991858

Family Applications (6)

Application Number Title Priority Date Filing Date
JP2020549555A Pending JP2021518685A (ja) 2018-03-23 2019-03-18 データの交換のためのコンピュータ実装されたシステム及び方法
JP2020549645A Pending JP2021518687A (ja) 2018-03-23 2019-03-18 トラストレスゼロ知識付帯支払のためのコンピュータ実装されたシステム及び方法
JP2020549646A Active JP7361706B2 (ja) 2018-03-23 2019-03-18 ゼロ知識証明を可能にするためのコンピュータ実装されたシステム及び方法
JP2023171811A Pending JP2023171896A (ja) 2018-03-23 2023-10-03 ゼロ知識証明を可能にするためのコンピュータ実装されたシステム及び方法
JP2024012421A Pending JP2024045359A (ja) 2018-03-23 2024-01-31 データの交換のためのコンピュータ実装されたシステム及び方法
JP2024012420A Pending JP2024045358A (ja) 2018-03-23 2024-01-31 トラストレスゼロ知識付帯支払のためのコンピュータ実装されたシステム及び方法

Family Applications After (5)

Application Number Title Priority Date Filing Date
JP2020549645A Pending JP2021518687A (ja) 2018-03-23 2019-03-18 トラストレスゼロ知識付帯支払のためのコンピュータ実装されたシステム及び方法
JP2020549646A Active JP7361706B2 (ja) 2018-03-23 2019-03-18 ゼロ知識証明を可能にするためのコンピュータ実装されたシステム及び方法
JP2023171811A Pending JP2023171896A (ja) 2018-03-23 2023-10-03 ゼロ知識証明を可能にするためのコンピュータ実装されたシステム及び方法
JP2024012421A Pending JP2024045359A (ja) 2018-03-23 2024-01-31 データの交換のためのコンピュータ実装されたシステム及び方法
JP2024012420A Pending JP2024045358A (ja) 2018-03-23 2024-01-31 トラストレスゼロ知識付帯支払のためのコンピュータ実装されたシステム及び方法

Country Status (5)

Country Link
US (5) US11797984B2 (ja)
EP (4) EP3769466A1 (ja)
JP (6) JP2021518685A (ja)
CN (3) CN111886830A (ja)
WO (3) WO2019180589A1 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021518685A (ja) * 2018-03-23 2021-08-02 エヌチェーン ホールディングス リミテッドNchain Holdings Limited データの交換のためのコンピュータ実装されたシステム及び方法
WO2019236637A1 (en) * 2018-06-06 2019-12-12 Argosoperem Llc Blockchain structure for an intellectual property exchange including a pointer to an oracle and user interface therefor
CN111783114B (zh) * 2018-08-06 2024-04-02 创新先进技术有限公司 区块链交易方法及装置、电子设备
CN112651740A (zh) 2018-08-30 2021-04-13 创新先进技术有限公司 区块链交易方法及装置、电子设备
CN110612547A (zh) 2018-12-29 2019-12-24 阿里巴巴集团控股有限公司 一种用于信息保护的***和方法
WO2020255575A1 (ja) * 2019-06-19 2020-12-24 ソニー株式会社 暗号鍵生成装置、暗号鍵生成方法
US11556909B2 (en) 2019-08-16 2023-01-17 Visa International Service Association Universal payment channels
CN110795501A (zh) * 2019-10-11 2020-02-14 支付宝(杭州)信息技术有限公司 基于区块链的可验证声明的创建方法、装置、设备及***
US11551204B2 (en) 2019-10-30 2023-01-10 Accenture Global Solutions Limited Leading-party-initiated cryptologic coordinated symmetric conditional key release
US11232441B2 (en) 2019-10-30 2022-01-25 Accenture Global Solutions Limited Cryptologic coordinated symmetric conditional key release
US11704636B2 (en) * 2019-10-31 2023-07-18 Adi Association Proxied cross-ledger authentication
CN111224783B (zh) * 2019-11-26 2021-07-23 复旦大学 一种支持密钥刷新的两方椭圆曲线数字签名方法
CN113132095B (zh) * 2019-12-31 2022-10-21 深圳市迅雷网络技术有限公司 一种区块链跨链监管方法、***、装置及计算机存储介质
US11544786B2 (en) * 2020-01-09 2023-01-03 Jpmorgan Chase Bank, N.A. Systems and methods for provably fair atomic swaps of private digital assets
CN111373694B (zh) * 2020-02-21 2023-05-02 香港应用科技研究院有限公司 零知识证明硬件加速器及其方法
CN113379415B (zh) * 2020-03-10 2022-09-20 深圳市迅雷网络技术有限公司 区块链***及信息处理方法、***、装置、计算机介质
CN111444547B (zh) * 2020-03-20 2024-03-19 苏州链原信息科技有限公司 用于数据完整性证明的方法、设备及计算机存储介质
US11573952B2 (en) 2020-05-04 2023-02-07 International Business Machines Corporation Private shared resource confirmations on blockchain
US11580256B2 (en) * 2020-05-26 2023-02-14 Nec Corporation Efficient deniable commitment of data and unlinkable proof of commitment for securing user privacy in a digital identity system
DE102020207563A1 (de) 2020-06-18 2021-12-23 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Erteilen einer Gutschrift über einen Zahlungskanal
SG10202006466YA (en) * 2020-07-03 2021-05-28 Alipay Labs Singapore Pte Ltd Managing transactions in multiple blockchain networks
DE102020210000A1 (de) 2020-08-06 2022-02-10 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Bestätigen eines Rechtsgeschäftes
CN113095827B (zh) * 2021-04-09 2023-11-28 杭州复杂美科技有限公司 匿名多重签名方法、计算机设备和存储介质
CN113094748B (zh) * 2021-04-20 2024-01-19 西安交通大学 一种基于区块链的可认证匿名电商评价机制的实现方法
CN113300835B (zh) * 2021-04-22 2022-05-17 中国科学院信息工程研究所 一种加密方案接收者确定方法、主动秘密分享方法
CN113225192A (zh) * 2021-05-06 2021-08-06 杭州复杂美科技有限公司 交易存储方法、计算机设备和存储介质
CN113300841B (zh) * 2021-05-25 2022-11-25 贵州大学 一种基于身份的协同签名方法及***
CN113592477B (zh) * 2021-08-02 2023-05-30 杭州复杂美科技有限公司 跨链资产转移方法、计算机设备和存储介质
CN113794567B (zh) * 2021-09-13 2024-04-05 上海致居信息科技有限公司 一种sha256哈希算法零知识证明电路的合成加速方法及装置
CN114399307A (zh) * 2021-11-01 2022-04-26 上海能链众合科技有限公司 一种区块链隐私的计算机交易方法
CN114006702B (zh) * 2021-11-01 2023-05-16 山东大学 一种零知识证明分割电路及信息验证方法
US20230206216A1 (en) * 2021-12-23 2023-06-29 Pangee, Inc. Blockchain bridge systems, methods, and storage media for trading non- fungible token
US20230245112A1 (en) * 2022-02-02 2023-08-03 International Business Machines Corporation Non-interactive token certification and verification
CN114793228A (zh) * 2022-03-29 2022-07-26 上海万向区块链股份公司 基于零知识证明防止商户作恶的数据源筛选方法和***
GB202205173D0 (en) * 2022-04-08 2022-05-25 Nchain Licensing Ag Statement proof and verification
GB2620357A (en) * 2022-04-08 2024-01-10 Nchain Licensing Ag Statement proof and verification
CN114978545B (zh) * 2022-05-23 2023-08-01 西安电子科技大学 面向异构联盟链的跨链原语生成方法以及相关装置
CN115499135B (zh) * 2022-09-14 2024-04-12 山东大学 一种基于对称密码的环签名方法及***
CN115550073A (zh) * 2022-11-30 2022-12-30 安徽中科晶格技术有限公司 可监管隐身地址构造方法
CN116562874B (zh) * 2023-04-27 2024-01-02 北京交通大学 一种基于零知识证明的隐私保护跨链交易验证方法
CN116389164B (zh) * 2023-05-26 2023-09-12 建信金融科技有限责任公司 数据的检测方法及装置
CN117391726A (zh) * 2023-12-06 2024-01-12 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 一种基于区块链的可信能源数据交易方法

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08160857A (ja) 1994-11-30 1996-06-21 Hitachi Ltd 楕円曲線に基づく認証方法及び認証システム
US6282295B1 (en) 1997-10-28 2001-08-28 Adam Lucas Young Auto-recoverable and auto-certifiable cryptostem using zero-knowledge proofs for key escrow in general exponential ciphers
US7444512B2 (en) * 2003-04-11 2008-10-28 Intel Corporation Establishing trust without revealing identity
WO2005034421A2 (en) 2003-10-03 2005-04-14 Matsushita Electric Industrial Co., Ltd. Information transfer system, encryption device, and decryption device using elliptic curve
US8112626B1 (en) 2006-01-20 2012-02-07 Symantec Corporation Method and apparatus to provide public key authentication with low complexity devices
WO2008022158A2 (en) * 2006-08-14 2008-02-21 The Regents Of The University Of California System for non-interactive zero-knowledge proofs
GB201309702D0 (en) * 2013-05-30 2013-07-17 Certivox Ltd Security
EP3146670B8 (en) * 2014-05-22 2021-09-22 Analog Devices, Inc. Network authentication system with dynamic key generation
US11055707B2 (en) 2014-06-24 2021-07-06 Visa International Service Association Cryptocurrency infrastructure system
WO2016200885A1 (en) 2015-06-08 2016-12-15 Blockstream Corporation Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction
WO2017079652A1 (en) 2015-11-05 2017-05-11 Pulsifer Allen Cryptographic transactions system
US10243738B2 (en) * 2015-12-04 2019-03-26 Microsoft Technology Licensing, Llc Adding privacy to standard credentials
US20170243193A1 (en) * 2016-02-18 2017-08-24 Skuchain, Inc. Hybrid blockchain
JP6851386B2 (ja) * 2016-02-23 2021-03-31 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーンにおけるエンティティの効率的な移転のための方法およびシステム
US11017388B2 (en) 2016-03-25 2021-05-25 International Business Machines Corporation Cryptographically assured zero-knowledge cloud service for composable atomic transactions
PT3440823T (pt) * 2016-04-05 2020-12-04 Zamna Tech Limited Método e sistema para gestão de informações pessoais dentro de sistemas informáticos independentes e redes digitais
GB201607476D0 (en) * 2016-04-29 2016-06-15 Eitc Holdings Ltd Operating system for blockchain IOT devices
CN107438002B (zh) * 2016-05-27 2022-02-11 索尼公司 基于区块链的***以及***中的电子设备和方法
US10972448B2 (en) 2016-06-20 2021-04-06 Intel Corporation Technologies for data broker assisted transfer of device ownership
GB201611948D0 (en) 2016-07-08 2016-08-24 Kalypton Int Ltd Distributed transcation processing and authentication system
IT201600076089A1 (it) * 2016-07-20 2018-01-20 St Microelectronics Srl Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unita' di generazione, apparato elettronico e prodotto informatico
FR3059802B1 (fr) * 2016-12-07 2018-11-09 Safran Identity & Security Procede de generation d'une signature electronique d'un document associe a un condensat
CN106911470B (zh) * 2017-01-23 2020-07-07 北京航空航天大学 一种比特币交易隐私增强方法
CN106878022B (zh) * 2017-02-15 2019-12-24 中钞***产业发展有限公司杭州区块链技术研究院 在区块链上签名、验证的方法及装置
EP3596680A4 (en) 2017-03-15 2020-12-30 Nuid, Inc. PROCEDURES AND SYSTEMS FOR UNIVERSAL STORAGE AND ACCESS TO USER-DEFINED ACCESS DATA FOR TRANSINSTITUTIONAL DIGITAL AUTHENTICATION
SG11201912538QA (en) 2017-06-30 2020-01-30 Visa Int Service Ass Method, system, and computer program product for determining solvency of a digital asset exchange
US11030681B2 (en) * 2017-07-21 2021-06-08 International Business Machines Corporation Intermediate blockchain system for managing transactions
EP3662635A4 (en) * 2017-07-31 2021-04-28 Chronicled, Inc. SYSTEM, METHOD AND DEVICE FOR SECURE AND CONFIDENTIAL DETENTION TRANSACTION USING ZERO KNOWLEDGE PROTOCOL
US20190213584A1 (en) * 2018-01-11 2019-07-11 Mastercard International Incorporated Method and system for tokenized replacement of crypto currency addresses
US11049128B1 (en) * 2018-02-07 2021-06-29 Worldpay, Llc Decentralized computer systems and methods for using a debit network as an intermediary between distributed ledgers
US11310060B1 (en) * 2018-02-15 2022-04-19 Blockstream Corporation Atomic cross-chain swaps using equivalent secret values
JP2021518685A (ja) * 2018-03-23 2021-08-02 エヌチェーン ホールディングス リミテッドNchain Holdings Limited データの交換のためのコンピュータ実装されたシステム及び方法
US11496309B2 (en) * 2018-06-27 2022-11-08 International Business Machines Corporation Method for performing a disjunctive proof for two relations
RU2735439C2 (ru) 2018-11-27 2020-11-02 Алибаба Груп Холдинг Лимитед Система и способ для защиты информации
US11151558B2 (en) 2018-12-12 2021-10-19 American Express Travel Related Services Company, Inc Zero-knowledge proof payments using blockchain
US11475444B2 (en) * 2019-04-25 2022-10-18 Consensys Software Inc. Systems and methods for anonymous cryptocurrency transactions
FR3097093A1 (fr) * 2019-06-07 2020-12-11 Stmicroelectronics S.R.L. Procédé et dispositif de calcul sur courbes elliptiques par des dispositifs à ressources limitées
US20230091686A1 (en) * 2021-09-21 2023-03-23 International Business Machines Corporation Digital asset platform with hsm verification

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DANEZIS, G. ET AL.: "Pinocchio Coin: Building Zerocoin from a Succinct Pairing-based Proof System", PETSHOP'13: PROCEEDINGS OF THE FIRST ACM WORKSHOP ON LANGUAGE SUPPORT FOR PRIVACY-ENHANCING TECHNOLO, JPN7023000222, November 2013 (2013-11-01), pages 27 - 30, ISSN: 0004971136 *
WAHBY, R. S. ET AL.: "Double-efficietnt zkSNARKs without trusted setup", CRYPTOLOGY EPRINT ARCHIVE, vol. Paper 2017/1132 ver:20180209:012456, JPN6023002210, 9 February 2018 (2018-02-09), pages 1 - 29, ISSN: 0004971137 *

Also Published As

Publication number Publication date
EP3769468A1 (en) 2021-01-27
EP3769467A1 (en) 2021-01-27
US20240078541A1 (en) 2024-03-07
WO2019180588A1 (en) 2019-09-26
EP4221077A1 (en) 2023-08-02
US20210028939A1 (en) 2021-01-28
US12014364B2 (en) 2024-06-18
WO2019180589A1 (en) 2019-09-26
JP2021518688A (ja) 2021-08-02
JP2024045358A (ja) 2024-04-02
US11995648B2 (en) 2024-05-28
US20210119769A1 (en) 2021-04-22
US20240185236A1 (en) 2024-06-06
JP2021518687A (ja) 2021-08-02
EP3769466A1 (en) 2021-01-27
CN111886829A (zh) 2020-11-03
JP2024045359A (ja) 2024-04-02
JP7361706B2 (ja) 2023-10-16
CN111886831A (zh) 2020-11-03
WO2019180590A1 (en) 2019-09-26
US20210027294A1 (en) 2021-01-28
JP2023171896A (ja) 2023-12-05
CN111886830A (zh) 2020-11-03
US11797984B2 (en) 2023-10-24
EP3769467B1 (en) 2024-02-28

Similar Documents

Publication Publication Date Title
JP7361706B2 (ja) ゼロ知識証明を可能にするためのコンピュータ実装されたシステム及び方法
JPWO2019180588A5 (ja)
CN107967557B (zh) 基于区块链的可修改信誉评价***及方法、电子支付***
CN109314636B (zh) 用于从区块链中安全提取数据的密码方法和***
CN111316615B (zh) 使用调解器计算机***确保计算机程序正确执行的***和方法
Partala et al. Non-interactive zero-knowledge for blockchain: A survey
JP7453911B2 (ja) 暗号材料を安全に共有するためのシステム及び方法
EP3718069A1 (en) Blockchain system for confidential and anonymous smart contracts
JP2021529397A (ja) ブロックチェーンアドレスおよび所有者の検証のためのシステムおよび方法
EP3966998B1 (en) Hash function attacks
CN108418783A (zh) 一种保护区块链智能合约隐私的方法、介质
EP3973661B1 (en) Knowledge proof
Chin et al. A sealed-bid auction with fund binding: Preventing maximum bidding price leakage
KR102494873B1 (ko) 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 거래 수행장치
Xu et al. Blockchain‐Based Trust Auction for Dynamic Virtual Machine Provisioning and Allocation in Clouds
Quesnelle An analysis of anonymity in the zcash cryptocurrency
RU2722285C1 (ru) Способ проверки подлинности изделий
Li et al. Implementation and preliminary evaluation of an auditable confidentiality mechanism for DeFi
Sahu et al. zkFi: Privacy-Preserving and Regulation Compliant Transactions using Zero Knowledge Proofs
Mohammad Decision Analytics Using Permissioned Blockchain" Commledger"

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230124

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230627

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20231003