JP2021502747A - 分散コンピューティングシステム及び方法 - Google Patents

分散コンピューティングシステム及び方法 Download PDF

Info

Publication number
JP2021502747A
JP2021502747A JP2020524561A JP2020524561A JP2021502747A JP 2021502747 A JP2021502747 A JP 2021502747A JP 2020524561 A JP2020524561 A JP 2020524561A JP 2020524561 A JP2020524561 A JP 2020524561A JP 2021502747 A JP2021502747 A JP 2021502747A
Authority
JP
Japan
Prior art keywords
computer system
proof
verification
computer
calculation
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
JP2020524561A
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 GBGB1718505.9A external-priority patent/GB201718505D0/en
Priority claimed from GBGB1719998.5A external-priority patent/GB201719998D0/en
Priority claimed from GBGB1720768.9A external-priority patent/GB201720768D0/en
Priority claimed from GBGB1801753.3A external-priority patent/GB201801753D0/en
Priority claimed from GBGB1805948.5A external-priority patent/GB201805948D0/en
Priority claimed from GBGB1806444.4A external-priority patent/GB201806444D0/en
Application filed by Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of JP2021502747A publication Critical patent/JP2021502747A/ja
Priority to JP2023176820A priority Critical patent/JP2023179687A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/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
    • 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
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/423Preprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/451Code distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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
    • 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
    • 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/405Establishing or using transaction specific rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/085Secret sharing or secret splitting, e.g. threshold 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/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/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • 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/34Encoding or coding, e.g. Huffman coding or error correction
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Accounting & Taxation (AREA)
  • Computing Systems (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Devices For Executing Special Programs (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Stored Programmes (AREA)

Abstract

本発明は、1つ以上の信頼されていないワーカコンピュータシステムへの計算タスクの分散を伴う分散処理システムに関する。信頼されていないワーカコンピュータシステムが要求コンピュータシステムのために算出を実行するとき、要求コンピュータシステム(又は、他の検証コンピュータシステム)は、タスクが正しく完了されたことを要求コンピュータシステムが暗号的に検証することを可能にする情報を提供される。算出を完了した後、ワーカコンピュータシステムは、プルーフ及びI/Oデータを含む情報を要求元に提供する。要求コンピュータシステムシステムは、公開検証鍵パラメータのセット、プルーフ、及びI/Oデータを使用して、信頼されていないワーカコンピュータシステムにより実行された計算が正しいことを検証し得る。いくつかの例において、ワーカにより実行される算出は、ブロックチェーントランザクションに検証に関連づけられる。例えば、信頼されていないワーカコンピュータシステムにより実行される計算の検証は、ブロックチェーンノード上のトランザクションの立証の一部として生じてもよい。

Description

本発明は、一般に分散コンピューティングシステムの動作に関し、より詳細には、第三者コンピュータシステムに分散され、第三者コンピュータシステムにより実行されるコンピューティングタスクの正しい完了を暗号的に検証する方法及びシステムに関する。本発明のいくつかの実施形態は、ブロックチェーンシステムにおける使用に特に適し得るが、これに限定されない。
本文献において、用語「ブロックチェーン」は、電子的なコンピュータベースの分散台帳のいくつかのタイプのうち任意のものを指す。これらには、コンセンサスベースのブロックチェーン及びトランザクションチェーン技術、許可あり(permissioned)及び許可なし(unpermissioned)台帳、共有台帳、及びこれらの変形が含まれる。ブロックチェーン技術の最も広く知られている適用はビットコイン(登録商標)台帳であるが、他のブロックチェーン実装が提案され、開発されている。本開示では、簡便さ及び例示の目的でビットコインの例が参照されることがあるが、本発明は、ビットコインブロックチェーンでの使用に限定されず、代替的なブロックチェーンの実装及びプロトコルが本発明の範囲内に入ることに留意されたい。例えば、本発明は、どんな制約がトランザクション内に符号化可能かに関してビットコインと同様の制限を有する他のブロックチェーン実装において有用であり得る。
ブロックチェーンはピアツーピアの電子台帳であり、これは、ブロックから構成されるコンピュータベースの非中央集権的な分散システムとして実装され、同様に、ブロックはトランザクション及び他の情報から構成される。例えば、ビットコインでは、各トランザクションは、ブロックチェーンシステム内の参加者間のデジタル資産の制御の移転を符号化するデータ構造であり、少なくとも1つの入力及び少なくとも1つの出力を含む。いくつかの実施形態において、「デジタル資産」は、使用する権利に関連づけられたバイナリデータを指す。デジタル資産の例は、ビットコイン、イーサ(ether)、及びライトコイン(Litecoin)を含む。いくつかの実装において、デジタル資産の制御の移転は、デジタル資産の少なくとも一部を第1のエンティティから第2のエンティティに再関連づけすることにより実行できる。各ブロックは前のブロックのハッシュを含み、それにより、ブロックが一緒にチェーン化されて、ブロックチェーンの開始以降にそれに書き込まれた全てのトランザクションの永続的でイミュータブルなレコードを作成する。トランザクションは、その入力及び出力に埋め込まれたスクリプトとして知られる小さいプログラムを含み、これは、トランザクションの出力に如何にして及び誰がアクセスできるかを指定する。ビットコインプラットフォームでは、これらのスクリプトはスタックベースのスクリプト言語を使用して書かれる。
一般に、トランザクションがブロックチェーンに書き込まれる前に、トランザクションは「立証される(validated)」。ネットワークノード(マイナー)が、ワークを実行して各トランザクションが有効であることを確保し、無効なトランザクションはネットワークから拒絶される。ノードは、他のノードとは異なる有効性の標準を有することができる。ブロックチェーンにおける有効性がコンセンサスベースであるため、トランザクションは、トランザクションが有効であるとノードの過半数が同意した場合、有効と考えられる。ノードにインストールされたソフトウェアクライアントは、部分的には未使用トランザクション(unspent transaction、UTXO)ロック及びアンロックスクリプト(locking and unlocking script)を実行することにより、UTXOを参照するトランザクションに対してこの立証作業を実行する。ロック及びアンロックスクリプトの実行がTRUEの評価であり、適用可能な場合における他の立証条件が満たされる場合、トランザクションはノードにより立証される。立証されたトランザクションは他のネットワークノードに伝搬され、すると、マイナーノードは該トランザクションをブロックチェーンに含めることを選択することができる。ゆえに、トランザクションがブロックチェーンに書き込まれるためには、それは、i)トランザクションを受信した第1のノードにより立証され、トランザクションが立証された場合、ノードはそれをネットワーク内の他のノードに中継する、ii)マイナーにより構築された新しいブロックに追加される、iii)マイニングされる、すなわち過去のトランザクションの公開台帳に追加される、がなされなければならない。トランザクションは、十分な数のブロックがブロックチェーンに追加されてトランザクションを事実上不可逆にしたとき、確認されたと考えられる。
ブロックチェーン技術は、暗号通貨実装の使用に対して最も広く知られているが、デジタル起業家は、新しいシステムを実現するために、ビットコインが基礎とする暗号セキュリティシステムとブロックチェーンに記憶できるデータとの双方の使用を探求し始めている。ブロックチェーンが暗号通貨の領域に限定されない自動化されたタスク及び処理に使用できる場合、かなり有利であろう。このようなソリューションは、その適用においてより多目的であると同時に、ブロックチェーンの利点(例えば、イベントの永続的な改ざん防止のレコード、分散処理等)を利用することができる。
現在の研究の1つの分野は、「スマートコントラクト」の実装のためのブロックチェーンの使用である。スマートコントラクトは、マシン読取可能フォーマットで記憶された契約又は同意の条件の実行及び/又は確認を自動化する、コンピュータにより実現されるシステムである。自然言語で書かれる従来の契約と異なり、スマートコントラクトは、結果を生成するためにコンピュータシステムにより処理できるターム及び条件のマシン読取可能記述であり、これは次いで、これら結果に依存してアクションを実行させることができる。
ブロックチェーン関連の関心のある別の分野は、ブロックチェーンを介して実世界のエンティティの移転を表現するための「トークン」(又は「カラードコイン(coloured coins)」)の使用である。潜在的に機密又は秘密のアイテムは、認識可能な意味又は値を有さないトークンにより表現できる。ゆえに、トークンは、実世界のアイテムがブロックチェーンから参照されることを可能にする識別子として機能する。
実施形態において、スマートコントラクトは、作成者又は何らかの他の特定のエンティティがスマートコントラクトの強制及び/又は実行を課されないという意味で「スマート」である。すなわち、特定のエンティティとの対話はスマートコントラクト内の特定のステップで符号化できるが、スマートコントラクトはその他の方法で自動的に実行及び自己強制可能である。それは、マシン読取可能及び実行可能である。いくつかの例において、自動実行は、任意のエンティティがUTXOをアンロックでき、そのようにするインセンティブ(例えば、報酬)を有することを指す。このような例において、UTXOをアンロックできる「任意のエンティティ」は、何らかの秘密の知識を証明するよう求められることなくアンロックスクリプトを作成することができるエンティティを指すことに留意する。換言すれば、アンロックトランザクションは、データのソースが暗号秘密(例えば、秘密非対称鍵、対称鍵等)へのアクセスを有することを検証することなく、立証可能である。さらに、このような例において、自己強制は、ブロックチェーンネットワークの立証ノードが制約に従ってアンロックトランザクションを強制させられることを指す。いくつかの例において、UTXOの「アンロック(unlocking)」は、UTXOを参照して有効として実行するアンロックトランザクションを作成することを指す。これは、トランザクションの「消費(spending)」と時に呼ばれることがある。
ブロックチェーントランザクション出力は、ロックスクリプトと、ビットコインなどのデジタル資産の所有権に関する情報を含む。ロックスクリプトは、動きの妨げ(encumbrance)と呼ばれることもあり、出力をアンロックするために満たされる必要がある条件を指定することによりデジタル資産を「ロックする」。例えば、ロックスクリプトは、関連づけられたデジタル資産をアンロックするためにアンロックスクリプト内に特定のデータが提供されることを要する場合がある。ロックスクリプトは、ビットコインにおいて「scriptPubKey」としても知られている。デジタル資産をアンロックするためにデータを提供するようパーティに要求する手法は、データのハッシュをロックスクリプト内部に埋め込むことを含む。しかし、これは、ロックスクリプトが作成されたときにデータが未決定である(例えば、分からず、固定されていない)場合に問題を提示する。
したがって、これらの態様の1つ以上において分散コンピューティングシステムを改善する方法及びシステムを提供することが望ましい。このような改善されたソリューションが次に考案されている。ゆえに、本発明によれば、別記の特許請求の範囲に定義される方法が提供される。
したがって、コンピュータにより実現される方法を提供することが望ましく、当該コンピュータにより実現される方法は、提供されたタスクの結果を提供するよう競争することが可能な独立したコンピュータシステムのセットにタスクを提供するステップであり、タスクは実行すべき計算を指定する、ステップと、検証コンピュータシステムにおいて、計算が独立したコンピュータシステムのセット内のワーカ(worker)コンピュータシステムにより正しく実行されることを検証する(verifying)ステップであり、計算は、少なくとも、評価鍵(evaluation key)を生成し、評価鍵をワーカコンピュータシステムに提供し、ワーカコンピュータシステムからプルーフ(proof)を受信することであってプルーフは評価鍵に少なくとも部分的に基づき、検証鍵(verification key)を生成し、プルーフ及び検証鍵を使用して計算が正しいことを検証することにより、乗算ゲートのセットを有する回路に基づく、ステップと、を含む。
検証鍵は、乗算ゲートのセットへの入力及び乗算ゲートのセットの出力のうち1つ以上に基づいてもよい。一実施形態において、検証鍵は公開検証鍵であり、公開検証鍵はコンピュータシステムにより公開されてもよい。
プルーフは、乗算ゲートの中間出力のセットに少なくとも部分的に基づいてもよい。一実施形態において、中間出力のセットは回路の最終出力を除外する。
証拠は、公開評価鍵に少なくとも部分的に基づいてもよい。
プルーフ及び検証鍵は、異なる群(groups)を生成する第1の生成元(generator)及び第2の生成元に少なくとも部分的に基づいてもよい。
好ましくは、当該方法は、プルーフの要素が評価鍵の要素と矛盾しない(consistent)ことを検証するステップをさらに含んでもよい。一実施形態において、評価鍵は以下のように決定されてもよく、iは回路の内部ワイヤへのインデックスを表現し、deg(t)は多項式t(x)の次数(degree)であり、deg(t)は回路内の乗算ゲートの数に等しい。
Figure 2021502747
好ましくは、当該方法は、プルーフの要素が整合係数(matching coefficient)を使用して構築されていることを検証するステップをさらに含んでもよい。一実施形態において、整合係数は、以下のようにVmid(s)P、Wmid(s)Q、及びYmid(s)Pについて確認される。
Figure 2021502747
好ましくは、当該方法は、プルーフの項に対する可除性(divisibility)要件を検証するステップをさらに含んでもよい。一実施形態において、検証エンティティは、以下を確認することにより可除性要件が満たされることを確認する。
Figure 2021502747
ワーカコンピュータシステムは、回路の入力及び出力値に対応するI/O値のセットを提供し得る。一実施形態において、I/Oデータは、ワーカコンピュータシステムにより評価される関数の入力及び出力である。
回路は、乗算ゲートへのその寄与(contributions)をモデル化された1つ以上の加算ゲートを含んでもよい。一実施形態において、回路は乗算及び加算ゲートのセットとして見なすことができ、これにおいて、回路はd個の乗算ゲートに接続されたm個のワイヤを含み、加算ゲートは乗算ゲートへのそれらの寄与をモデル化される。
計算は、ビットコイントランザクション立証の一部でもよく、あるいは、さらなる実施形態において、計算は、ブロックチェーントランザクション立証の一部でもよい。
計算が正しいことを検証することは、少なくとも、プルーフ、検証鍵、及びI/O値のセットを検証コンピュータシステムに提供し、検証コンピュータシステムから計算が正しいとの指標を受信することにより達成されてもよい。一実施形態において、指標は、検証コンピュータシステムに関連づけられた鍵で生成されたデジタル署名などの、計算が正しいことの暗号的に検証可能な指標でもよい。
検証コンピュータシステムは、ブロックチェーンノード又はビットコインノードでもよい。
さらに、プロセッサと、実行可能命令を含むメモリと、を含むシステムであって、実行可能命令はプロセッサによる実行の結果として、請求される方法のうちいずれかを当該システムに実行させる、システムを提供することが望ましい。
さらに、コンピュータシステムの1つ以上のプロセッサによる実行の結果として、請求される方法のうちいずれかをコンピュータシステムに少なくとも実行させる実行可能命令を記憶した非一時的コンピュータ読取可能記憶媒体を提供することが望ましい。
本発明のこれら及び他の態様が、本明細書に記載した実施形態から明らかであり、それらを参照して明らかにされるであろう。次に、本発明の一実施形態が、単なる例として、添付の図面を参照して説明される。
種々の実施形態が実現され得るブロックチェーン環境を示す。 一実施形態による、クライアントコンピュータシステム及びワーカコンピュータシステムにより実行された場合にプルーフπ及び検証鍵Vを使用してワーカにより実行されたワークをクライアントが検証することを可能にする処理の一例を示すスイム図である。 一実施形態による算術関数を表現する回路の一例を示す。 一実施形態による、クライアントコンピュータシステムにより実行された場合に検証鍵Vを決定する処理の一例を示すフローチャートである。 一実施形態による、クライアントコンピュータシステムにより実行された場合にプルーフπを使用してワーカコンピュータシステムにより実行された計算を検証する処理の一例を示すフローチャートである。 種々の実施形態が実現され得るコンピューティング環境を示す。
分散コンピューティング環境において、単一のタスクは複数のサブタスクに分割されることがあり、該サブタスクは、実行のために複数のコンピュータシステム間で分散されることがある。複数のコンピュータシステムの各々は、サブタスクのうち1つ以上を実行し得る。種々の例において、個々のコンピュータシステムにより生成された結果は、元の単一のタスクに対する結果を生成するために協調コンピュータシステムにより蓄積され、集約される。したがって、多くの実施形態において、協調コンピュータシステムは、サブタスクの各々が正しく実行され、それにより元の単一タスクに対して生成された結果が正しいと決定することに関心を有する。これは、サブタスクが分散された個々のコンピュータシステムが協調コンピュータシステムにより完全に信頼されていない場合、特に問題になる。本文献に記載のシステム及び方法により、検証コンピュータシステムは、他のコンピュータシステムが信頼されていないコンピュータシステムの可能性があるとしても、他のコンピュータシステムにより実行されたワーク(work)を暗号的に検証することができる。これは、協調コンピュータシステムが、必ずしも信頼されてはいないより広範なコンピュータシステムのセットにワークを分散させることを可能にし、なぜならば、生成されるワークは、分散されたサブタスクを再現することなく暗号的に検証できるからである。
本文献は、種々の例を用いて、信頼されていないワーカコンピュータシステムのワークが検証され得る処理について説明する。いくつかの実施形態において、ワーカコンピュータシステムに分散されるワークは、論理回路の一部として見なすことができ、その回路の一部又は全部に関連づけられたワークの検証は、検証者(verifier)が論理回路に関連する他のサブタスクを進めることを可能にする。いくつかの実装において、サブタスクの性能及び検証に関連する情報は、ブロックチェーンを使用して交換される。しかしながら、本明細書に記載の方法は、検証エンティティが1つ以上の信頼されていないコンピュータシステムにより実行されたワークを確認するよう要求される任意の分散コンピューティング環境に適用可能である。
本文献では、以下の表記が用いられることがある。数学的な群は、二重打ちの
Figure 2021502747
の文字、例えば、
Figure 2021502747
を用いて表現されることがあり、群の生成元は、スクリプト文字、例えば、
Figure 2021502747
により示されることがある。例えば、群
Figure 2021502747
を所与として、
Figure 2021502747
の場合、
Figure 2021502747
ことが示され得る。
二重打ちの
Figure 2021502747
の文字は、体(fields)を表現するために使用されることがある。例えば、
Figure 2021502747
は、特性pの有限体を表現するために使用されることがあり、
Figure 2021502747
は、
Figure 2021502747
の次数kの拡張体をあらわすために使用されることがあり、kは非ゼロの整数である。非ゼロの要素からなるサブセット
Figure 2021502747
は、
Figure 2021502747
として書かれることもある。別の例において、素数pについて、
Figure 2021502747
である。Eが有限体
Figure 2021502747
上の楕円曲線である別の例において、
Figure 2021502747
の位数rのアーベル部分群は、
Figure 2021502747
として書かれることもある。集合Xからランダムにサンプリングされる要素xは、
Figure 2021502747
として表現されることがある。表記の
Figure 2021502747
は、効率的な計算可能な双線形写像を表現するために使用されることがあり、
Figure 2021502747
は、同じ素数位数(prime order)rの巡回群である。
Figure 2021502747
は加法群であり、
Figure 2021502747
は乗法群である。算術演算はrを法として実行される。
本文献は、二次算術プログラム(Quadratic Arithmetic Program)(「QAP」)を使用する1つ以上の実施形態について説明する。種々の実施形態において、一般的な計算は、素数位数rの体
Figure 2021502747
上で、多項式演算のセットへ符号化される。一例において、QAPは、
Figure 2021502747
を含み、次数deg(v),deg(w),deg(y)<deg(t)=dの、
Figure 2021502747
の多項式を有する。前の例を参照すると、QAPは、Qのサイズがmである(mは内部ワイヤの数を表す)こと、及びQの次数がtの次数dであることを列挙することにより記述されてもよく、dは乗算ゲートの数である。別の例において、
Figure 2021502747
をQAPとする。タプル(a,...,a)は、tが
Figure 2021502747
を割り切る場合、Qの解である。多項式{v i=0は各乗算ゲートへの左入力を符号化し、多項式{w i=0は各乗算ゲートへの右入力を符号化し、多項式{y i=0は出力を符号化する。
まず、本開示の一実施形態によるブロックチェーンに関連づけられた例示的なブロックチェーンネットワーク100を示す図1を参照する。実施形態において、例示的なブロックチェーンネットワーク100は、ピアツーピア分散電子デバイスとして実現されたブロックチェーンノードを含み、該電子デバイスは各々、ノード102のオペレータ間で少なくとも部分的に同意されたブロックチェーンプロトコルに従うオペレーションを実行するソフトウェア及び/又はハードウェアのインスタンスを実行する。いくつかの例において、「ノード」は、ブロックチェーンネットワーク間で分散されたピアツーピア電子デバイスを指す。ブロックチェーンプロトコルの一例がビットコインプロトコルである。
いくつかの実施形態において、ノード102は、(例えば、データセンター内のサーバにより、クライアントコンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン等)により、計算リソースサービスプロバイダの分散システム内の複数のコンピューティングデバイスにより、又は図6のコンピューティングデバイス600などの任意の適切な電子クライアントデバイスにより)任意の適切なコンピューティングデバイスから構成できる。いくつかの実施形態において、ノード102は、トランザクション104などの提案されたトランザクションを表すデータメッセージ又はオブジェクトを受け取るための入力を有する。ノードは、いくつかの実施形態において、それらが維持する情報について、例えばトランザクション104の状態の情報についてクエリ可能である。
図1に示すように、ノード102のいくつかは、ノード102のうち1つ以上の他のノードに通信上結合される。このような通信結合は、有線又は無線通信のうち1つ以上を含むことができる。実施形態において、ノード102は各々、ブロックチェーン内の全てのトランザクションの「台帳」の少なくとも一部を維持する。このようにして、台帳は分散台帳となる。台帳に影響するノードにより処理されたトランザクションは、他のノードのうち1つ以上により検証可能であり、それにより、台帳の完全性が維持される。
どのノード102がどの他のノードと通信することができるかに関しては、メッセージが、ブロックチェーンプロトコルが転送すべきことを示すメッセージであると想定して、ノード間で渡されるメッセージが例示的なブロックチェーンネットワーク100(又はその何らかの重要な部分)の全体に伝搬することができるように、例示的なブロックチェーンネットワーク100内のノードの各々がノード102のうち1つ以上の他のノードと通信できることで十分である。1つのこのようなメッセージは、ノード102Aなどのノード102のうち1つによる提案されたトランザクションの公開であり得、これは次いで、パス106などのパスに沿って伝搬する。別のこのようなメッセージは、ブロックチェーンに含めるように提案された新しいブロックの公開であり得る。
一実施形態において、ノード102のうち少なくともいくつかは、暗号問題を解くなどの複雑な計算を実行するマイナーノードである。暗号問題を解くマイナーノードは、ブロックチェーンに対する新しいブロックを作成し、この新しいブロックをノード102のうち他のノードにブロードキャストする。ノード102のうち他のノードは、マイナーノードのワークを検証し、検証すると、ブロックをブロックチェーンに(例えば、それをブロックチェーンの分散台帳に追加することにより)受け入れる。いくつかの例において、ブロックはトランザクションのグループであり、しばしば、タイムスタンプと前のブロックの「フィンガープリント」(例えばハッシュ)でマークされる。このようにして、各ブロックは前のブロックにリンクされた状態になり得、それにより、ブロックチェーン内のブロックをリンクする「チェーン」を作成する。実施形態では、有効なブロックは、ノード102の合意によりブロックチェーンに追加される。また、いくつかの例において、ブロックチェーンは、立証されたブロックのリストを含む。
一実施形態において、ノード102のうち少なくともいくつかは、本開示に記載されるように、トランザクションを立証する立証ノードとして動作する。いくつかの例において、トランザクションは、デジタル資産(例えば、複数のビットコイン)の所有権のプルーフと、デジタル資産の所有権/制御を受け入れる又は移転する条件とを提供するデータを含む。いくつかの例において、「アンロックトランザクション」は、前のトランザクションの未使用トランザクション出力(unspent transaction output、UTXO)により示されるデジタル資産の少なくとも一部を、ブロックチェーンアドレスに関連づけられたエンティティに再関連づけする(例えば、所有権又は制御を移転する)ブロックチェーントランザクションを指す。いくつかの例において、「前のトランザクション」は、アンロックトランザクションにより参照されているUTXOを含むブロックチェーントランザクションを指す。いくつかの実施形態において、トランザクションは、所有権/制御が移転され(「アンロックされ」)得る前に満たされなければならない条件でトランザクションの動きを妨げる(encumbers)「ロックスクリプト」を含む。
いくつかの実施形態において、ブロックチェーンアドレスは、デジタル資産の少なくとも一部の制御が移転又は再関連づけされるエンティティに関連づけられた英数字の文字列である。いくつかの実施形態で実現されるいくつかのブロックチェーンプロトコルにおいて、エンティティに関連づけられた公開鍵とブロックチェーンアドレスとの間に1対1の対応がある。いくつかの実施形態において、トランザクションの立証は、ロックスクリプト及び/又はアンロックスクリプトで指定された1つ以上の条件を立証することを含む。トランザクション104の成功裏の立証において、立証ノードはトランザクション104をブロックチェーンに追加し、それをノード102に分散させる。
図2は、一実施形態による、クライアントコンピュータシステム及びワーカコンピュータシステムにより実行された場合にプルーフπ及び検証鍵Vを使用してワーカにより実行されたワークをクライアントが検証することを可能にする処理の一例を示すスイム図である。処理200の一部又は全部(又は記載された任意の他のプロセス、又はこれらの処理の変形及び/又は組み合わせ)は、実行可能命令及び/又は他のデータで構成された1つ以上のコンピュータシステムの制御下で実行でき、1つ以上のプロセッサ上で集合的に実行する実行可能命令として実現されてもよい。実行可能命令及び/又は他のデータは、非一時的コンピュータ読取可能記憶媒体に記憶できる(例えば、磁気、光、又はフラッシュ媒体に永続的に記憶されたコンピュータプログラム)。
例えば、処理200の一部又は全部は、1つ以上のコンピューティングデバイスにより(例えば、データセンター内のサーバにより、クライアントコンピューティングデバイスにより、計算リソースサービスプロバイダの分散システム内の複数のコンピューティングデバイスにより、又は図6のコンピューティングデバイス600などの任意の適切な電子クライアントデバイスにより)実行できる。
種々の実施形態において、クライアントコンピュータシステムは、ワーカコンピュータシステムにより実行されるべき計算をサブミットする。ワーカコンピュータシステムは、クライアントコンピュータシステムにより完全に信頼されていなくてもよく、したがって、ワーカコンピュータシステムは、クライアントコンピュータシステム又は別の信頼された検証コンピュータシステムが、ワーカコンピュータシステムにより実行された算出が正しいことを検証することを可能にする情報を提供する。多くの例において、クライアントは、ワーカコンピュータシステムを完全に信頼せず、したがって、クライアントコンピュータシステムを満足させるために、ワーカコンピュータシステムは、計算が正しく実行されたことをクライアントコンピュータシステムが証明することを可能にする情報をサブミットする。いくつかの実施形態において、ワーカコンピュータシステムにより行われるワークの検証は、クライアントコンピュータシステムにより信頼された検証コンピュータシステムにより行われる。
種々の実施形態において、公開検証鍵パラメータV、プルーフπ、及びI/Oデータが、信頼されていないワーカコンピュータシステムにより提供される正しい計算の主張された(alleged)プルーフを検証するために使用される。種々の実施形態において、検証コンピュータシステムは、クライアントコンピュータシステム及び信頼されていないワーカコンピュータシステムから検証処理で使用される材料を収集し、クライアントコンピュータシステムの代わりに検証を実行する。一実施形態において、信頼されていないワーカコンピュータシステムにより実行される計算の検証はトランザクションの立証の間に生じ、したがって、検証コンピュータシステムは、任意のビットコインノード又はブロックチェーンノードでもよい。
処理はブロック202で始まり、クライアントコンピュータシステムが、ワーカコンピュータシステムにより評価されるべき関数を識別する。ブロック204において、クライアントコンピュータシステムが、ワーカコンピュータシステムにサブミットされる関数のための評価鍵Eを構築する。ブロック206において、クライアントコンピュータシステムが、ワーカコンピュータシステムにより実行されたワークを検証するために使用できる検証鍵Vを生成する。ブロック208において、クライアントコンピュータシステムが、関数及び評価鍵Eをワーカコンピュータシステムにサブミットする。
一実施形態において、公開評価鍵Eの構築は以下のように達成される。
Figure 2021502747
上記実施形態において、iは回路の内部ワイヤへのインデックスを表現し、deg(t)は多項式t(x)の次数であり、deg(t)は回路内の乗算ゲートの数に等しい。図3に示す回路では、公開評価鍵Eは以下のとおりである。
Figure 2021502747
ブロック210において、ワーカコンピュータシステムが、クライアントコンピュータシステムから評価鍵E及び実行されるべき関数を記述した情報を受信する。ワーカコンピュータシステムは、クライアントコンピュータシステムにより要求された関数を評価し、ワーカコンピュータシステムにより実行された算出を検証するために使用可能なプルーフπを構築する(212)。ブロック214において、ワーカコンピュータシステムが、プルーフπ及び算出のI/Oデータをクライアントコンピュータシステムに提供する。一実施形態において、I/Oデータは、ワーカコンピュータシステムにより評価される関数の入力及び出力である。
ブロック216において、クライアントコンピュータシステムが、ワーカコンピュータシステムからI/Oデータ及びプルーフπを受信する。ブロック218において、クライアントコンピュータシステムが、V、π、及びI/Oデータからの要素を使用して、ワーカコンピュータシステムにより実行された計算を検証する。
202〜218で実行される動作のうち1つ以上が、並列を含む種々の順序及び組み合わせで実行されてもよいことに留意する。
開示の実施形態を説明する文脈において、別段規定されない限り、「命令」が援助なしには通常実行しない動作(例えば、データの伝送、算出等)を実行する実行可能命令(コード、アプリケーション、エージェントなどとも呼ばれる)に関する表現の使用は、命令がマシンにより実行され、それにより指定された動作をマシンに実行させることを示すことに留意する。
Gennaro, R.ら(2013)による「Quadratic Span Programs and Succinct NIZKs without PCPs」と題された論文では、二次算術プログラムに基づく検証可能な計算のプロトコルについて述べている。プロトコルでは、回路は入力としてn個の要素を取り込み、合計でN=n+n’個のIO要素(又は、I/Oデータ)のため、n’個の要素の出力を生成する。回路は乗算及び加算ゲートのセットとして見なすことができ、これにおいて、回路はd個の乗算ゲートに接続されたm個のワイヤを含み、加算ゲートは乗算ゲートへのそれらの寄与をモデル化される。
入力/出力ワイヤ上の割り当て(a,a,...,a)が有効であることを証明する検証エンティティでは、多項式p(x)が根(x,x,...x)を有する、すなわちp(xi=1...d=0であるように、内部ワイヤ上の割り当てに対応する係数(aN+1,...a)が存在することを証明すれば十分である。多項式p(x)は、ゲート式及びワイヤ値を符号化する。したがって、多項式h(x)が存在し、p(x)=h(x)・t(x)であり、ここで、
Figure 2021502747
である。
Figure 2021502747
の場合、tが
Figure 2021502747
を割り切ることを証明するために、証明者(prover)は、未知の点sにおいて商の多項式
Figure 2021502747
を計算し、双線形写像を使用してp(s)=t(s)・h(s)であることをチェックする。種々の例において、ワーカコンピュータシステムが入力(a,a,...,a)を正しく組み込むこと、及びワーカコンピュータシステムがクライアントの評価鍵Eを使用してプルーフを生成することを確保するために、さらなる検証が実行される。
Figure 2021502747
が、選択された根値の集合である場合、多項式
Figure 2021502747
は、ラグランジュ多項式の総和、すなわち、
Figure 2021502747
として表すことができる。
生成元
Figure 2021502747
について、ランダムな
Figure 2021502747
を使用して生成される検証鍵Vは、次のとおりである。
Figure 2021502747
プルーフは、以下の要素を含む。
Figure 2021502747
、π、及び(a,a,...,a)である一実施形態において、検証コンピュータシステムは、t(x)がp(x)を割り切り、ゆえに(xN+1,...,x)=f(x,...,x)であることを以下のように検証する。最初、検証コンピュータシステムは、以下を確認することにより3つのα項をチェックする。
Figure 2021502747
ここで、
Figure 2021502747
である。次いで、検証コンピュータシステムは、以下を確認することにより項βをチェックする。
Figure 2021502747
さらに、以下を確認することにより可除性要件が満たされることを確認する。
Figure 2021502747
図3は、一実施形態による算術関数を表現する回路の一例を示す。図3に示す回路は、関数302、すなわち、
f(a,a,a,a)=a+a(a+a
を表す。
回路では、各ワイヤ値は、素体位数体(prime field order field)
Figure 2021502747
からのものであり、全ての演算は上記体上で実行される。多項式は、その評価の観点で3つの乗算ゲート304、308、及び312において定義される。加算ゲート306及び310は、乗算ゲートへのそれらの寄与をモデル化される。回路は、出力値314を生成する。
入力値a,a,a,aが回路に割り当てられると、ワーカコンピュータシステムは対応する出力値を決定する。例えば、入力
Figure 2021502747
に対して、ワーカは、回路を評価して、各乗算ゲート304、308、312の出力値に対応する集合(a,a,a)を得る(
Figure 2021502747
である)。1に設定されたダミー入力ワイヤaが回路に追加される。回路内の各乗算ゲート304、308、及び312に対して、区別可能な根値
Figure 2021502747
が選択される。ゆえに、図3の回路では、3つの値をランダムに選択し、
Figure 2021502747

であり、ターゲット多項式t(x)を
t(x)=(x−x)(x−x)(x−x
に設定する。
一実施形態において、多項式{v(x)}は乗算ゲートの左入力を表現し、多項式{w(x)}は乗算ゲートの右入力を表現し、多項式{y(x)}は回路の出力値を表現する。図3に示す例示的な回路では、多項式{v(x)}、{w(x)}、{y(x)}の陽的な式は次のとおりである。
Figure 2021502747
一実施形態において、P及びQは、
Figure 2021502747
の生成元であり、それにより、
Figure 2021502747
である。さらに、非対称ペアリング、すなわち、
Figure 2021502747
を考え、
Figure 2021502747

Figure 2021502747
の(位数rの)部分群としてとられる。鍵生成手順は、ランダムな要素、すなわち、
Figure 2021502747
を含む。
図3に示す例では、公開検証鍵Vは以下のように決定され得る。
Figure 2021502747
一実施形態において、公開検証鍵は、各々が異なる構成要素を表すサブシーケンスを有するビットシーケンスとして実現されるが、構成要素を公開検証鍵に符号化する異なる方法が、本開示の範囲内であると考えられる。
プルーフπは、以下の要素を含む。
Figure 2021502747
ここで、(h,h,h,h)はワーカにより評価された多項式h(x)の係数であり、h(x)=h+hx+h+hである。一実施形態において、プルーフは、各々がプルーフの異なる構成要素を表すサブシーケンスを有するビットシーケンスとして実現されるが、構成要素をプルーフに符号化する異なる方法が、本開示の範囲内であると考えられる。要素の集合χは、公開評価鍵Eに属する。
Figure 2021502747
一実施形態において、以下の式は、主張されたプルーフπを検証するために使用される。検証鍵V、プルーフπ、IO値a={a,a,a,a,a,a}を所与として、検証アルゴリズムは、rmid(s)P、rmid(s)Q、及びrmid(s)Pが評価鍵Eからの要素を使用して構築されていることを最初チェックする。すなわち、プロトコルは、以下の式(1)〜(3)を最初検証する。
Figure 2021502747
次に、検証コンピュータシステムは、同じ係数amid={a,a}がVmid(s)P、Wmid(s)Q、及びYmid(s)Pにおいて使用されているかをチェックする。一実施形態において、検証コンピュータシステムは、以下の式(4)を検証することによりこれを達成する。
Figure 2021502747
さらに、検証コンピュータシステムは、コミットメント(commitments)からの項を組み合わせてプルーフ項h(x)に対する可除性チェックを行う。すなわち、検証コンピュータシステムは、
Figure 2021502747
であることを、以下の
Figure 2021502747
を確認することにより証明する。
図4は、一実施形態による、クライアントコンピュータシステムにより実行された場合に検証鍵Vを決定する処理の一例を示すフローチャートである。処理400の一部又は全部(又は記載された任意の他のプロセス、又はこれらの処理の変形及び/又は組み合わせ)は、実行可能命令及び/又は他のデータで構成された1つ以上のコンピュータシステムの制御下で実行でき、1つ以上のプロセッサ上で集合的に実行する実行可能命令として実現されてもよい。実行可能命令及び/又は他のデータは、非一時的コンピュータ読取可能記憶媒体に記憶できる(例えば、磁気、光、又はフラッシュ媒体に永続的に記憶されたコンピュータプログラム)。
例えば、処理400の一部又は全部は、1つ以上のコンピューティングデバイスにより(例えば、データセンター内のサーバにより、クライアントコンピューティングデバイスにより、計算リソースサービスプロバイダの分散システム内の複数のコンピューティングデバイスにより、又は図6のコンピューティングデバイス600などの任意の適切な電子クライアントデバイスにより)実行できる。
種々の実施形態において、クライアントコンピュータシステムは、ワーカコンピュータシステムにより実行されるべき計算をサブミットする。ワーカコンピュータシステムは、クライアントコンピュータシステムにより完全に信頼されていなくてもよく、したがって、ワーカコンピュータシステムは、クライアントコンピュータシステム又は別の信頼された検証コンピュータシステムが、ワーカコンピュータシステムにより実行された算出が正しいことを検証することを可能にする情報を提供する。多くの例において、クライアントは、ワーカコンピュータシステムを完全に信頼せず、したがって、クライアントコンピュータシステムを満足させるために、ワーカコンピュータシステムは、ワーカコンピュータシステムにより実行された計算が正しかったことをクライアントコンピュータシステムが証明することを可能にする情報をクライアントコンピュータシステムに提供する。種々の実施形態において、公開検証鍵パラメータV、プルーフπ、及びI/Oデータが、ワーカコンピュータシステムにより提供される正しい計算の主張されたプルーフを検証するために使用される。フローチャート400は、検証鍵Vを生成する処理を示す。
一実施形態において、ブロック402において、クライアントコンピュータシステムが、信頼されていないワーカコンピュータシステムにより実行されるべき関数Fを識別する。関数Fは、n個の値を入力として取る。クライアントコンピュータシステムは、関数に対応する回路のモデルを生成し、この回路は、乗算ゲート及び加算ゲートのセットから構成される。ブロック404において、クライアントコンピュータシステムが、回路内の乗算ゲートを識別する。
一実施形態において、ブロック406において、クライアントコンピュータシステムが、回路内の各乗算ゲートの出力に対応する根値をランダムに選択する。m個の乗算ゲートを有する回路では、クライアントコンピュータシステムはm個の根値(xn+1...xn+m)を選択する。
一実施形態において、ブロック408において、クライアントコンピュータシステムが、選択された根値(xn+1...xn+m)を使用して回路に対応するターゲット多項式t(x)=(x−x)(x−xn+1)...(x−xn+m)を決定する。ブロック410において、クライアントコンピュータシステムが、乗算ゲートの左入力{v(x)}、乗算ゲートの右入力{w(x)}、及び乗算ゲートの出力値{y(x)}を決定する。
一実施形態において、ブロック412において、クライアントコンピュータシステムが、r=r・rであるように素数位数rの体からの退化(degeneration)のためのランダム要素r,r,s,α,α,α,β,γを選択する。
一実施形態において、ブロック414において、クライアントコンピュータシステムが、公開検証鍵Vを決定する。P及びQを
Figure 2021502747
の生成元とし、それにより、
Figure 2021502747
であるようにする。(i)非対称ペアリング、すなわち、
Figure 2021502747
を考え、(ii)
Figure 2021502747

Figure 2021502747
の(位数rの)部分群としてとられることに留意されたい。生成元
Figure 2021502747
を所与として、ランダムな
Figure 2021502747
を使用して生成される検証鍵Vは以下のとおりである。
Figure 2021502747
202〜214で実行される動作のうち1つ以上が、並列を含む種々の順序及び組み合わせで実行されてもよいことに留意する。
開示の実施形態を説明する文脈において、別段規定されない限り、「命令」が援助なしには通常実行しない動作(例えば、データの伝送、算出等)を実行する実行可能命令(コード、アプリケーション、エージェントなどとも呼ばれる)に関する表現の使用は、命令がマシンにより実行され、それにより指定された動作をマシンに実行させることを示すことに留意する。
図5は、一実施形態による、クライアントコンピュータシステムにより実行された場合にプルーフπを使用してワーカコンピュータシステムにより実行された計算を検証する処理の一例を示すフローチャートである。処理500の一部又は全部(又は記載された任意の他のプロセス、又はこれらの処理の変形及び/又は組み合わせ)は、実行可能命令及び/又は他のデータで構成された1つ以上のコンピュータシステムの制御下で実行でき、1つ以上のプロセッサ上で集合的に実行する実行可能命令として実現されてもよい。実行可能命令及び/又は他のデータは、非一時的コンピュータ読取可能記憶媒体に記憶できる(例えば、磁気、光、又はフラッシュ媒体に永続的に記憶されたコンピュータプログラム)。
例えば、処理500の一部又は全部は、1つ以上のコンピューティングデバイスにより(例えば、データセンター内のサーバにより、クライアントコンピューティングデバイスにより、計算リソースサービスプロバイダの分散システム内の複数のコンピューティングデバイスにより、又は図6のコンピューティングデバイス600などの任意の適切な電子クライアントデバイスにより)実行できる。
種々の実施形態において、クライアントコンピュータシステムは、ワーカコンピュータシステムにより実行されるべき計算をサブミットする。ワーカコンピュータシステムは、クライアントコンピュータシステムにより完全に信頼されていなくてもよく、したがって、ワーカコンピュータシステムは、クライアントコンピュータシステム又は別の信頼された検証コンピュータシステムが、ワーカコンピュータシステムにより実行された算出が正しいことを検証することを可能にする情報を提供する。多くの例において、クライアントは、ワーカコンピュータシステムを完全に信頼せず、したがって、クライアントコンピュータシステムを満足させるために、ワーカコンピュータシステムは、ワーカコンピュータシステムにより実行された計算が正しかったことをクライアントコンピュータシステムが証明することを可能にする情報をクライアントコンピュータシステムに提供する。種々の実施形態において、公開検証鍵パラメータV、プルーフπ、及びI/Oデータが、ワーカコンピュータシステムにより提供される正しい計算の主張されたプルーフを検証するために使用される。フローチャート500は、ワーカコンピュータシステムにより提供されるプルーフπを使用して、ワーカコンピュータシステムにより実行された算出を検証する処理を示す。
一実施形態において、ブロック502において、クライアントコンピュータシステムが、ワーカコンピュータシステムからプルーフπ及びI/Oデータを受信する。プルーフは以下を含む。
Figure 2021502747
一実施形態において、ブロック504において、クライアントコンピュータシステムは、ワーカコンピュータシステムにより実行されたワークが正しいことを確認する処理を開始する。クライアントコンピュータシステムは、rmid(s)P、rmid(s)Q、及びrmid(s)Pが評価鍵Eからの要素を使用して構築されていることを以下のように確認する。
Figure 2021502747
ここで、
Figure 2021502747
である。
ブロック506において、クライアントコンピュータシステムが、整合係数がVmid(s)P、Wmid(s)Q、及びYmid(s)Pに使用されていることを以下のように確認する。
Figure 2021502747
ブロック508において、クライアントコンピュータシステムが、以下のように、コミットメントからの項を組み合わせてプルーフ項h(x)に対する可除性チェックを実行する。
Figure 2021502747
ここで、
Figure 2021502747
である。
上記のチェックが成功した場合、クライアントコンピュータシステムは、ワーカコンピュータシステムにより実行された算出が正しいと決定し、ワークコンピュータシステムにより提供された結果は、クライアントコンピュータシステムにより信頼できる。
502〜508で実行される動作のうち1つ以上が、並列を含む種々の順序及び組み合わせで実行されてもよいことに留意する。
開示の実施形態を説明する文脈において、別段規定されない限り、「命令」が援助なしには通常実行しない動作(例えば、データの伝送、算出等)を実行する実行可能命令(コード、アプリケーション、エージェントなどとも呼ばれる)に関する表現の使用は、命令がマシンにより実行され、それにより指定された動作をマシンに実行させることを示すことに留意する。
本文献は、ブロックチェーンの能力を強化及び拡張するシステム及び方法について説明する。種々の実施形態により、ユーザは、パブリックブロックチェーンを通じて権利を安全に列挙及び交換し、ほぼ完全な匿名のデジタルトランザクションを統合することができる。種々の実施形態が、(i)共通参照文字列(common reference string、CRS)及びワーカのプルーフ(π)の記憶問題、(ii)アンロックスクリプトとCRS、及びアンロックスクリプトとπの間の相互作用、に対するソリューション提供するために使用されてもよい。
種々の実施形態が、スマートコントラクトの安全でコンパクトな表現を提供するために使用されてもよい。スマートコントラクトは、XML派生のFpMLなどの特殊な言語を使用するフォーマット規則に従い得る。種々の実施形態が、コントラクト実行を信頼されていないパーティ(parties)にアウトソーシングするため、あるいはコントラクト実行の正しさをパブリックに検証するために使用されてもよい。コントラクトの立証は、コードの再実行を意味しない場合がある。計算は、ネットワーク内のあらゆるノードにより複製されはしない場合がある。いくつかの実施形態において、正当な実行のプルーフは、パブリックブロックチェーンに記憶され、立証目的で使用される。
図6は、本開示の少なくとも1つの実施形態を実施するために使用され得るコンピューティングデバイス600の例示的な簡略ブロック図である。種々の実施形態において、コンピューティングデバイス600は、上で例示及び説明されたシステムのうち任意のものを実現するために使用されてもよい。例えば、コンピューティングデバイス600は、データサーバ、ウェブサーバ、ポータブルコンピューティングデバイス、パーソナルコンピュータ、又は任意の電子コンピューティングデバイスとしての使用に対して構成されてもよい。図6に示すように、コンピューティングデバイス600は、実施形態において、バスサブシステム604を介して複数の周辺サブシステムと通信し、かつ動作上結合される1つ以上のプロセッサ602を含むことができる。いくつかの実施形態において、これらの周辺サブシステムは、メモリサブシステム608及びファイル/ディスクストレージサブシステム610含むストレージサブシステム606と、1つ以上のユーザインターフェース入力デバイス612と、1つ以上のユーザインターフェース出力デバイス614と、ネットワークインターフェースサブシステム616を含む。このようなストレージサブシステム606は、情報の一時的又は長期的な記憶のために使用できる。
いくつかの実施形態において、バスサブシステム604は、コンピューティングデバイス600の種々のコンポーネント及びサブシステムが意図されたとおり互いに通信することを可能にする機構を提供する。バスサブシステム604は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は複数のバスを利用する。いくつかの実施形態において、ネットワークインターフェースサブシステム616は、他のコンピューティングデバイス及びネットワークへのインターフェースを提供する。ネットワークインターフェースサブシステム616は、いくつかの実施形態において、他のシステムからデータを受信し、コンピューティングデバイス600から他のシステムにデータを送信するためのインターフェースとして機能する。いくつかの実施形態において、バスサブシステム604は、詳細、検索語等のようなデータを通信するために利用される。
いくつかの実施形態において、ユーザインターフェース入力デバイス612は、キーボードなどの1つ以上のユーザ入力デバイス;一体型マウス、トラックボール、タッチパッド、又はグラフィックスタブレットなどのポインティングデバイス;スキャナ;バーコードスキャナ;ディスプレイに組み込まれたタッチスクリーン;音声認識システム、マイクロフォンなどのオーディオ入力デバイス;及び他タイプの入力デバイスを含む。一般に、用語「入力デバイス」の使用は、情報をコンピューティングデバイス600に入力する全ての可能なタイプのデバイス及び機構を含むことが意図される。いくつかの実施形態において、1つ以上のユーザインターフェース出力デバイス614は、表示サブシステム、プリンタ、又はオーディオ出力デバイスなどの非視覚的ディスプレイ等を含む。いくつかの実施形態において、表示サブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイなどのフラットパネルデバイス、又は投影若しくは他の表示装置を含む。一般に、用語「出力デバイス」の使用は、コンピューティングデバイス600から情報を出力する全ての可能なタイプのデバイス及び機構を含むことが意図される。1つ以上のユーザインターフェース出力デバイス614が使用されて、例えば、ユーザインターフェースを提示し、説明された処理及びその変形を実行するアプリケーションとのユーザ対話を、そのような対話が適切であり得るときに容易にしてもよい。
いくつかの実施形態において、ストレージサブシステム606は、本開示の少なくとも1つの実施形態の機能性を提供する基本プログラミング及びデータ構造を記憶するコンピュータ読取可能記憶媒体を提供する。アプリケーション(プログラム、コードモジュール、命令)は、いくつかの実施形態において1つ以上のプロセッサにより実行されたとき、本開示の1つ以上の実施形態の機能性を提供し、いくつかの実施形態においてストレージサブシステム606に記憶される。これらのアプリケーションモジュール又は命令は、1つ以上のプロセッサ602により実行できる。種々の実施形態において、ストレージサブシステム606は、本開示に従って使用されるデータを記憶するリポジトリをさらに提供する。いくつかの実施形態において、ストレージサブシステム606は、メモリサブシステム608及びファイル/ディスクストレージサブシステム610を含む。
実施形態において、メモリサブシステム608は、複数のメモリ、例えばプログラム実行中の命令及びデータの記憶のためのメインランダムアクセスメモリ(RAM)618及び/又は固定命令を記憶可能な読取専用メモリ(ROM)620を含む。いくつかの実施形態において、ファイル/ディスクストレージサブシステム610は、プログラム及びデータファイルのための非一時的な永続的(不揮発性)ストレージを提供し、ハードディスクドライブ、関連する取り外し可能媒体と共にフロッピーディスクドライブ、コンパクトディスク読取専用メモリ(CD‐ROM)ドライブ、光学ドライブ、取り外し可能媒体カートリッジ、又は他の同様の記憶媒体を含むことができる。
いくつかの実施形態において、コンピューティングデバイス600は、少なくとも1つのローカルクロック624を含む。ローカルクロック624は、いくつかの実施形態において、特定の開始日から発生したティック(ticks)数を表すカウンタであり、いくつかの実施形態において、コンピューティングデバイス600内に一体的に配置される。種々の実施形態において、ローカルクロック624は、特定のクロックパルスにおいてコンピューティングデバイス600のためのプロセッサ及びそれに含まれるサブシステム内でデータ転送を同期させるために使用され、コンピューティングデバイス600とデータセンター内の他のシステムとの間の同期動作を協調させるために使用されてもよい。別の実施形態において、ローカルクロックは、プログラム可能な間隔のタイマである。
コンピューティングデバイス600は、ポータブルコンピュータデバイス、タブレットコンピュータ、ワークステーション、又は以下に説明される任意の他のデバイスを含む、様々なタイプのうち任意のものとすることができる。さらに、コンピューティングデバイス600は、いくつかの実施形態において、1つ以上のポート(例えばUSB、ヘッドフォンジャック、ライトニングコネクタ等)を通じてコンピューティングデバイス600に接続できる別のデバイスを含むことができる。実施形態において、このようなデバイスは、光ファイバコネクタを受け入れるポートを含む。したがって、いくつかの実施形態において、このデバイスは、光信号を、処理のために、デバイスをコンピューティングデバイス600に接続するポートを通して伝送される電気信号に変換する。コンピュータ及びネットワークの絶えず変化する性質に起因して、図6に示されるコンピューティングデバイス600の説明は、デバイスの好適な実施形態を例示する目的で特定の例としてのみ意図される。図6に示すシステムより多くの又は少ないコンポーネントを有する多くの他の構成が可能である。
したがって、明細書及び図面は、限定的でなく例示的な意味で解釈されるべきである。しかしながら、特許請求の範囲に記載された発明の範囲から逸脱することなく、これらに対して様々な修正及び変更がなされ得ることが明らかであろう。同様に、他の変形が本開示の範囲内である。ゆえに、開示された手法は種々の修正及び代替の構成が可能だが、そのうち特定の例示的な実施形態が図面に示され、上記で詳細に説明されている。しかしながら、発明を開示された特定の形式又は形態に限定する意図はなく、逆に、別記の特許請求の範囲に定義される発明の範囲内に入るすべての修正、代替的な構成、及び同等物をカバーする意図があることを理解されたい。
開示の実施形態を説明する文脈における(特に、下記の特許請求の範囲の文脈における)用語「一の」(“a”、“an”)及びその(“the”)並びに同様の指示物の使用は、別段示されない限り、又は文脈により明らかに矛盾しない限り、単数及び複数の双方をカバーするものと解釈されるべきである。用語「含む」、「有する」、「含める」、及び「包含する」は、別段記されない限り、オープンエンド用語(すなわち、「含むが限定されない」を意味する)と解釈されるべきである。用語「接続される」は、変更されずに物理的接続を参照するとき、介在する何かがあるとしても、部分的又は全体的に内部に含まれる、取り付けられる、又は一緒に結合されると解釈されるべきである。本開示における値の範囲の記載は、別段示されない限り、該範囲内に入る各別個の値を個々に参照する簡略化された方法として機能することを意図するに過ぎず、各別個の値はそれが個々に記載されているかのように本明細書に組み込まれる。用語「セット」(例えば、「アイテムのセット」)又は「サブセット」の使用は、別段記されない限り、又は文脈により矛盾しない限り、1つ以上のメンバを含む空でない集合と解釈されるべきである。さらに、別段記されない限り、又は文脈により矛盾しない限り、対応するセットの用語「サブセット」は、必ずしも対応するセットの適切なサブセットを示すものではないが、サブセット及び対応するセットは等しい場合がある。
形式「A、B、及びCのうち少なくとも1つ」又は「A、B、及びCのうち少なくとも1つ」のフレーズなどの結合的言語は、特に別段示されない限り、又は別段文脈により明らかに矛盾しない限り、さもなければ一般に使用される文脈で理解され、項目、用語等がA又はB又はCのいずれか、あるいはA及びB及びCのセットのうち任意の空でないサブセットであり得ることを示す。例えば、3つのメンバを有するセットの例示的な例において、結合的フレーズ「A、B、及びCのうち少なくとも1つ」及び「A、B、及びCのうち少なくとも1つ」は、以下のセット、すなわち、{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}のうち任意のものを参照する。ゆえに、そのような結合的言語は、一般に、特定の実施形態がAの少なくとも1つ、Bの少なくとも1つ、及びCの少なくとも1つが各々存在することを必要とするよう暗に示すことを意図しない。
説明された処理の動作は、別段示されない限り、又は別段文脈により明らかに矛盾しない限り、任意の適切な順序で実行できる。説明された処理(又はその変形及び/又は組み合わせ)は、実行可能命令で構成された1つ以上のコンピュータシステムの制御下で実行でき、ハードウェア又はそれらの組み合わせにより、1つ以上のプロセッサ上で集合的に実行するコード(例えば、実行可能命令、1つ以上のコンピュータプログラム、又は1つ以上のアプリケーション)として実現できる。いくつかの実施形態において、コードは、例えば、1つ以上のプロセッサにより実行可能な複数の命令を含むコンピュータプログラムの形式でコンピュータ読取可能記憶媒体に記憶できる。いくつかの実施形態において、コンピュータ読取可能記憶媒体は非一時的である。
提供されるいずれか又はすべての例、又は例示的言語(例えば、「などの」)の使用は、本発明の実施形態をより良く明らかにすることを意図するに過ぎず、別段請求されない限り、発明の範囲に制限を課すものではない。本明細書中の言語は、任意の請求されていない要素を発明の実施に対して不可欠なものとして示していると解釈されるべきではない。
本開示の実施形態は、発明を実施するために発明者に知られる最良の形態を含め、説明されている。これらの実施形態の変形が、上述の説明を読んだ当業者に明らかになるであろう。発明者は、当業者がそのような変形を適宜採用することを予期しており、発明者は、本開示の実施形態が具体的に説明された以外の方法で実施されることを意図している。したがって、本開示の範囲は、適用法により許容される本明細書と別記の特許請求の範囲に記載された対象事項のすべての修正及び同等物を含む。さらに、上述の要素の、そのすべての可能な変形における任意の組み合わせは、別段示されない限り、又は別段文脈により明らかに矛盾しない限り、本開示の範囲に包含される。
引用された刊行物、特許出願、及び特許を含む全ての参考文献は、各参考文献が参照により援用されるよう個々及び具体的に示され、かつその全体を明示されているのと同程度、本明細書で参照により援用される。
上述の実施形態は、発明を限定するのでなく例示しており、当業者は、別記の特許請求の範囲により定義される発明の範囲から逸脱することなく多くの代替的な実施形態を設計可能であることに留意されたい。特許請求の範囲においては、括弧内に付されたいかなる参照符号も、特許請求の範囲を限定するものと解釈されてはならない。語「含んでいる」及び「含む」などは、任意の請求項又は明細書全体に列挙されたもの以外の要素又はステップの存在を除外しない。本明細書において、「含む」は、「含める、又は、から構成される」ことを意味し、「含んでいる」は、「含めている、又は、から構成されている」ことを意味する。要素の単数の参照は、そのような要素の複数の参照を除外するものではなく、その逆もまた同様である。発明は、いくつかの区別可能な要素を含むハードウェアを用いて、及び適切にプログラムされたコンピュータを用いて実現できる。いくつかの手段を列挙するデバイスクレームにおいては、これらの手段のうちいくつかは、1つの同じアイテムのハードウェアにより具現化できる。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組み合わせが利するように使用できないことを示すものではない。
[要約]
本開示において説明及び示唆される手法は、公開検証鍵パラメータV及びI/Oデータを使用して第三者により提供されるプルーフπを検証することにより、計算の分野、具体的には第三者コンピュータシステムにより実行される計算の正しさを確認する分野を改善する。さらに、本開示において説明及び示唆される手法は、信頼されていない第三者コンピュータシステムのネットワークにわたり計算を分散可能にすることにより、コンピューティングシステムの機能を改善する。さらに、本開示において説明及び示唆される手法は、必然的にコンピュータ技術に根ざし、コントラクトを論理回路としてモデル化することにより、デジタルコントラクトの性能の検証で特に生じる問題を克服する。

Claims (15)

  1. 提供されたタスクの結果を提供するよう競争することが可能な独立したコンピュータシステムのセットにタスクを提供するステップであり、前記タスクは実行すべき計算を指定する、ステップと、
    検証コンピュータシステムにおいて、前記計算が前記独立したコンピュータシステムのセット内のワーカコンピュータシステムにより正しく実行されることを検証するステップであり、前記計算は、少なくとも
    評価鍵を生成し、
    前記評価鍵を前記ワーカコンピュータシステムに提供し、
    前記ワーカコンピュータシステムからプルーフを受信し、前記プルーフは前記評価鍵に少なくとも部分的に基づき、
    検証鍵を生成し、
    前記プルーフ及び前記検証鍵を使用して前記計算が正しいことを検証すること
    により、乗算ゲートのセットを有する回路に基づく、ステップと、
    を含む、コンピュータにより実現される方法。
  2. 前記検証鍵は、前記乗算ゲートへの入力及び前記乗算ゲートの出力に基づく、請求項1に記載のコンピュータにより実現される方法。
  3. 前記プルーフは、前記乗算ゲートの中間出力のセットに少なくとも部分的に基づく、請求項1又は2に記載のコンピュータにより実現される方法。
  4. 前記プルーフは、公開評価鍵に少なくとも部分的に基づく、請求項1乃至3のうちいずれか1項に記載のコンピュータにより実現される方法。
  5. 前記プルーフ及び前記検証鍵は、異なる群を生成する第1の生成元及び第2の生成元に少なくとも部分的に基づく、請求項1乃至4のうちいずれか1項に記載のコンピュータにより実現される方法。
  6. 前記プルーフの要素が前記評価鍵の要素と矛盾しないことを検証するステップ、をさらに含む請求項1乃至5のうちいずれか1項に記載のコンピュータにより実現される方法。
  7. 前記プルーフの要素が整合係数を使用して構築されていることを検証するステップ、をさらに含む請求項1乃至6のうちいずれか1項に記載のコンピュータにより実現される方法。
  8. 前記プルーフの項に対する可除性要件を検証するステップ、をさらに含む請求項1乃至7のうちいずれか1項に記載のコンピュータにより実現される方法。
  9. 前記ワーカコンピュータシステムは、前記回路の入力及び出力値に対応するI/O値のセットを提供する、請求項1乃至8のうちいずれか1項に記載のコンピュータにより実現される方法。
  10. 前記回路は、前記乗算ゲートへのその寄与をモデル化された1つ以上の加算ゲートを含む、請求項1乃至9のうちいずれか1項に記載のコンピュータにより実現される方法。
  11. 前記計算は、ビットコイントランザクション立証の一部である、請求項1乃至10のうちいずれか1項に記載のコンピュータにより実現される方法。
  12. 前記計算が正しいことを検証することは、少なくとも、
    前記プルーフ、前記検証鍵、及びI/O値のセットを検証コンピュータシステムに提供し、
    前記計算が正しいとの指標を前記検証コンピュータシステムから受信すること
    により達成される、請求項1乃至11のうちいずれか1項に記載のコンピュータにより実現される方法。
  13. 前記検証コンピュータシステムはブロックチェーンノードである、請求項1乃至12のうちいずれか1項に記載のコンピュータにより実現される方法。
  14. システムであって、
    プロセッサと、
    前記プロセッサにより実行された結果として当該システムに請求項1乃至13のうちいずれか1項に記載のコンピュータにより実現される方法を実行させる実行可能命令を含むメモリと、
    を含むシステム。
  15. コンピュータシステムのプロセッサにより実行された結果として前記コンピュータシステムに請求項1乃至13のうちいずれか1項に記載のコンピュータにより実現される方法を少なくとも実行させる実行可能命令を記憶した非一時的コンピュータ読取可能記憶媒体。
JP2020524561A 2017-11-09 2018-11-01 分散コンピューティングシステム及び方法 Pending JP2021502747A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023176820A JP2023179687A (ja) 2017-11-09 2023-10-12 分散コンピューティングシステム及び方法

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
GBGB1718505.9A GB201718505D0 (en) 2017-11-09 2017-11-09 Computer-implemented system and method
GB1718505.9 2017-11-09
GBGB1719998.5A GB201719998D0 (en) 2017-11-30 2017-11-30 Computer-Implemented system and method
GB1719998.5 2017-11-30
GBGB1720768.9A GB201720768D0 (en) 2017-12-13 2017-12-13 Computer-implemented system and method
GB1720768.9 2017-12-13
GBGB1801753.3A GB201801753D0 (en) 2018-02-02 2018-02-02 Computer-implemented system and method
GB1801753.3 2018-02-02
GB1805948.5 2018-04-10
GBGB1805948.5A GB201805948D0 (en) 2018-04-10 2018-04-10 Computer-implemented system and method
GB1806444.4 2018-04-20
GBGB1806444.4A GB201806444D0 (en) 2018-04-20 2018-04-20 Computer-implemented system and method
PCT/IB2018/058583 WO2019092561A1 (en) 2017-11-09 2018-11-01 Distributed computing system and method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023176820A Division JP2023179687A (ja) 2017-11-09 2023-10-12 分散コンピューティングシステム及び方法

Publications (1)

Publication Number Publication Date
JP2021502747A true JP2021502747A (ja) 2021-01-28

Family

ID=64100702

Family Applications (10)

Application Number Title Priority Date Filing Date
JP2020524532A Active JP7208989B2 (ja) 2017-11-09 2018-10-29 ブロックチェーン上に検証鍵を記録するためのシステム
JP2020524517A Pending JP2021502636A (ja) 2017-11-09 2018-10-29 検証可能な計算のためのcライクなスマートコントラクトの算術的強化
JP2020524430A Active JP7234229B2 (ja) 2017-11-09 2018-10-29 最適化された検証可能な計算のための実行可能命令を簡略化するためのシステム
JP2020524541A Active JP7221954B2 (ja) 2017-11-09 2018-10-29 変更から検証鍵を保護し、正当性のプルーフの有効性を確かめるためのシステム
JP2020524561A Pending JP2021502747A (ja) 2017-11-09 2018-11-01 分散コンピューティングシステム及び方法
JP2023000947A Pending JP2023036962A (ja) 2017-11-09 2023-01-06 ブロックチェーン上に検証鍵を記録するためのシステム
JP2023014319A Pending JP2023052834A (ja) 2017-11-09 2023-02-02 変更から検証鍵を保護し、正当性のプルーフの有効性を確かめるためのシステム
JP2023026258A Active JP7477674B2 (ja) 2017-11-09 2023-02-22 最適化された検証可能な計算のための実行可能命令を簡略化するためのシステム
JP2023173507A Pending JP2023182741A (ja) 2017-11-09 2023-10-05 検証可能な計算のためのcライクなスマートコントラクトの算術的強化
JP2023176820A Pending JP2023179687A (ja) 2017-11-09 2023-10-12 分散コンピューティングシステム及び方法

Family Applications Before (4)

Application Number Title Priority Date Filing Date
JP2020524532A Active JP7208989B2 (ja) 2017-11-09 2018-10-29 ブロックチェーン上に検証鍵を記録するためのシステム
JP2020524517A Pending JP2021502636A (ja) 2017-11-09 2018-10-29 検証可能な計算のためのcライクなスマートコントラクトの算術的強化
JP2020524430A Active JP7234229B2 (ja) 2017-11-09 2018-10-29 最適化された検証可能な計算のための実行可能命令を簡略化するためのシステム
JP2020524541A Active JP7221954B2 (ja) 2017-11-09 2018-10-29 変更から検証鍵を保護し、正当性のプルーフの有効性を確かめるためのシステム

Family Applications After (5)

Application Number Title Priority Date Filing Date
JP2023000947A Pending JP2023036962A (ja) 2017-11-09 2023-01-06 ブロックチェーン上に検証鍵を記録するためのシステム
JP2023014319A Pending JP2023052834A (ja) 2017-11-09 2023-02-02 変更から検証鍵を保護し、正当性のプルーフの有効性を確かめるためのシステム
JP2023026258A Active JP7477674B2 (ja) 2017-11-09 2023-02-22 最適化された検証可能な計算のための実行可能命令を簡略化するためのシステム
JP2023173507A Pending JP2023182741A (ja) 2017-11-09 2023-10-05 検証可能な計算のためのcライクなスマートコントラクトの算術的強化
JP2023176820A Pending JP2023179687A (ja) 2017-11-09 2023-10-12 分散コンピューティングシステム及び方法

Country Status (9)

Country Link
US (8) US20210377041A1 (ja)
EP (7) EP3707855A1 (ja)
JP (10) JP7208989B2 (ja)
KR (5) KR20200080265A (ja)
CN (6) CN117640170A (ja)
SG (5) SG11202004149UA (ja)
TW (1) TWI806918B (ja)
WO (5) WO2019092542A1 (ja)
ZA (1) ZA202002575B (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11783679B2 (en) 2014-04-08 2023-10-10 Micro-Gaming Ventures, LLC Location-based wagering via remote devices
US10903997B2 (en) * 2017-10-19 2021-01-26 Autnhive Corporation Generating keys using controlled corruption in computer networks
EP3707855A1 (en) 2017-11-09 2020-09-16 Nchain Holdings Limited System for securing verification key from alteration and verifying validity of a proof of correctness
CN110032568B (zh) * 2018-12-20 2020-05-12 阿里巴巴集团控股有限公司 数据结构的读取及更新方法、装置、电子设备
WO2020197514A1 (en) * 2019-03-27 2020-10-01 Koc Universitesi A distributed hash table based blockchain architecture for resource constrained environments
US11516000B2 (en) * 2019-05-29 2022-11-29 International Business Machines Corporation Approximate hash verification of unused blockchain output
US11711202B2 (en) 2019-05-29 2023-07-25 International Business Machines Corporation Committing data to blockchain based on approximate hash verification
US11539527B2 (en) 2019-05-29 2022-12-27 International Business Machines Corporation Peer node recovery via approximate hash verification
US11429738B2 (en) 2019-05-29 2022-08-30 International Business Machines Corporation Blockchain endorsement with approximate hash verification
US11570002B2 (en) 2019-05-29 2023-01-31 International Business Machines Corporation Reduced-step blockchain verification of media file
EP3754899B1 (en) * 2019-06-20 2022-03-02 Telefónica Iot & Big Data Tech, S.A. Method and system for inter-dlt networks trust enhancement
CN110445755A (zh) * 2019-07-04 2019-11-12 杭州复杂美科技有限公司 交易攻击的防御方法、设备和存储介质
GB201913143D0 (en) * 2019-09-12 2019-10-30 Nchain Holdings Ltd Running a program from a blockchain
JP7284064B2 (ja) * 2019-10-16 2023-05-30 株式会社日立製作所 コンソーシアムブロックチェーンシステム、計算機、トランザクション承認方法
CN111143859A (zh) * 2020-01-07 2020-05-12 杭州宇链科技有限公司 一种采集可信数据的模组以及数据传输方法
US11792022B2 (en) 2020-02-21 2023-10-17 International Business Machines Corporation Resolution of conflicting data
JPWO2021166782A1 (ja) * 2020-02-21 2021-08-26
US11188316B2 (en) * 2020-03-09 2021-11-30 International Business Machines Corporation Performance optimization of class instance comparisons
CN111506783B (zh) * 2020-04-08 2023-12-22 百度在线网络技术(北京)有限公司 区块链中事务请求处理方法、装置、设备和介质
CA3091660A1 (en) * 2020-08-31 2021-11-03 Polymath Inc. Method, system, and medium for blockchain-enabled atomic settlement
CN111768187A (zh) 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种部署智能合约的方法、区块链节点和存储介质
CN112132576B (zh) * 2020-09-07 2021-08-06 易宝支付有限公司 基于区块链通信的支付信息处理方法及区块链信息平台
US11029920B1 (en) * 2020-10-21 2021-06-08 Chariot Technologies Lab, Inc. Execution of a conditional statement by an arithmetic and/or bitwise unit
US11456871B2 (en) * 2020-11-03 2022-09-27 Provide Technologies, Inc. System and method for autonomous mapping of enterprise identity
KR102346292B1 (ko) * 2020-11-11 2022-01-03 엘에스웨어(주) 키 정보를 이용한 트랜잭션 분류 시스템 및 방법
KR102346293B1 (ko) * 2020-12-08 2022-01-03 엘에스웨어(주) 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템 및 수행방법
GB2602010A (en) * 2020-12-15 2022-06-22 Nchain Holdings Ltd Generating and validating blockchain transactions
CN113222747B (zh) * 2020-12-31 2024-01-26 上海零数众合信息科技有限公司 一种区块链隐私交易方法
KR102594655B1 (ko) * 2021-01-11 2023-10-27 충남대학교 산학협력단 동적 연산을 통한 검증이 가능한 영지식 증명 시스템 및 증명 방법
US20220417044A1 (en) * 2021-06-25 2022-12-29 Prateek GOEL System and method to manage large data in blockchain
CN113469690B (zh) * 2021-07-23 2024-03-26 佳乔(深圳)投资有限公司 一种基于区块链的交易结算方法
CN113610474B (zh) * 2021-08-16 2023-09-22 傲林科技有限公司 一种基于事件网的库存管理方法和管理系统
US20230298064A1 (en) * 2022-01-26 2023-09-21 Seek Xr, Inc. Systems and methods for facilitating redemption of unique digital asset utility
GB2618106A (en) * 2022-04-27 2023-11-01 Nchain Licensing Ag Messaging protocol for compact script transactions
US11818207B1 (en) * 2022-07-08 2023-11-14 T-Mobile Innovations Llc Methods and systems for ledger based content delivery using a mobile edge computing (MEC) server
CN114978514B (zh) * 2022-07-27 2022-11-01 杭州友恭科技有限公司 密钥管理方法、系统、装置、电子装置和存储介质
US11792259B1 (en) 2022-09-28 2023-10-17 T-Mobile Innovations Llc Methods and systems for distributing rendering across devices in a customer premise
CN115801288B (zh) * 2023-01-10 2023-04-18 南方科技大学 一种基于区块链和零知识证明的验证方法、系统及设备
CN116610362B (zh) * 2023-04-27 2024-02-23 合芯科技(苏州)有限公司 一种处理器指令集译码方法、系统、设备和存储介质
US11882216B1 (en) * 2023-06-08 2024-01-23 Auradine, Inc. End-to-end hardware acceleration for ZKP from witness generation to proof generation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016155804A1 (en) * 2015-03-31 2016-10-06 Nec Europe Ltd. Method for verifying information
WO2017187398A1 (en) * 2016-04-29 2017-11-02 nChain Holdings Limited Implementing logic gate functionality using a blockchain

Family Cites Families (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4667290A (en) 1984-09-10 1987-05-19 501 Philon, Inc. Compilers using a universal intermediate language
JPH03126133A (ja) 1989-10-11 1991-05-29 Matsushita Electric Ind Co Ltd コンパイラ処理方法
JPH05252336A (ja) 1992-03-04 1993-09-28 Toshiba Corp 画像形成装置
US5499191A (en) 1992-06-15 1996-03-12 Minc Incorporated Multi-level logic optimization in programmable logic devices
US5297150A (en) 1992-06-17 1994-03-22 International Business Machines Corporation Rule-based method for testing of programming segments
US8639625B1 (en) * 1995-02-13 2014-01-28 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
JPH08305547A (ja) * 1995-05-11 1996-11-22 Oki Electric Ind Co Ltd Pldによるコンピュータおよびコンパイラおよびオペレーティングシステム
US5920830A (en) 1997-07-09 1999-07-06 General Electric Company Methods and apparatus for generating test vectors and validating ASIC designs
US6519754B1 (en) * 1999-05-17 2003-02-11 Synplicity, Inc. Methods and apparatuses for designing integrated circuits
EP1283422A1 (en) 2001-08-07 2003-02-12 Lucent Technologies Inc. Testbench for the validation of a device under test
WO2003032490A2 (en) * 2001-10-11 2003-04-17 California Institute Of Technology Method and apparatus for an asynchronous pulse logic circuit
US7209555B2 (en) 2001-10-25 2007-04-24 Matsushita Electric Industrial Co., Ltd. Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device
US7085701B2 (en) * 2002-01-02 2006-08-01 International Business Machines Corporation Size reduction techniques for vital compliant VHDL simulation models
US7281017B2 (en) * 2002-06-21 2007-10-09 Sumisho Computer Systems Corporation Views for software atomization
US6983456B2 (en) * 2002-10-31 2006-01-03 Src Computers, Inc. Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms
US7178118B2 (en) * 2003-05-30 2007-02-13 Synplicity, Inc. Method and apparatus for automated circuit design
US20060149962A1 (en) 2003-07-11 2006-07-06 Ingrian Networks, Inc. Network attached encryption
US7590236B1 (en) 2004-06-04 2009-09-15 Voltage Security, Inc. Identity-based-encryption system
US7697691B2 (en) * 2004-07-14 2010-04-13 Intel Corporation Method of delivering Direct Proof private keys to devices using an on-line service
US8200700B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Systems and methods for use of structured and unstructured distributed data
US20160004820A1 (en) 2005-02-01 2016-01-07 Newsilike Media Group, Inc. Security facility for maintaining health care data pools
JP5537032B2 (ja) * 2005-12-13 2014-07-02 コーニンクレッカ フィリップス エヌ ヴェ 安全な閾値復号プロトコル計算
TW200725415A (en) 2005-12-30 2007-07-01 Tatung Co Ltd Method for automatically translating high level programming language into hardware description language
JP4547503B2 (ja) * 2006-03-07 2010-09-22 国立大学法人徳島大学 算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体
US7926040B2 (en) 2006-09-06 2011-04-12 International Business Machines Corporation Method and system for timing code execution in a korn shell script
WO2008053650A1 (en) 2006-10-30 2008-05-08 Nec Corporation Common key block encrypting device, its method, its program, and recording medium
FR2918525A1 (fr) 2007-07-06 2009-01-09 France Telecom Procede asymetrique de chiffrement ou de verification de signature.
WO2009064122A1 (en) 2007-11-18 2009-05-22 Lg Electronics Inc. Methods of joint coding in mobile communication system
US8336036B2 (en) 2008-11-21 2012-12-18 Korea University Industrial & Academic Collaboration Foundation System and method for translating high programming level languages code into hardware description language code
US8165287B2 (en) 2008-12-30 2012-04-24 King Fahd University Of Petroleum & Minerals Cryptographic hash functions using elliptic polynomial cryptography
FR2947404B1 (fr) 2009-06-30 2011-12-16 Sagem Securite Cryptographie par parametrisation sur une courbe elliptique
US8189775B2 (en) 2010-02-18 2012-05-29 King Fahd University Of Petroleum & Minerals Method of performing cipher block chaining using elliptic polynomial cryptography
WO2011136089A1 (ja) 2010-04-27 2011-11-03 日本電気株式会社 符号化装置、誤り訂正符号構成方法およびそのプログラム
WO2012126086A1 (en) 2011-03-18 2012-09-27 Certicom Corp. Secure financial transactions
US8924966B1 (en) * 2011-03-31 2014-12-30 Emc Corporation Capture/revert module for complex assets of distributed information technology infrastructure
US9569771B2 (en) 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
US8607129B2 (en) 2011-07-01 2013-12-10 Intel Corporation Efficient and scalable cyclic redundancy check circuit using Galois-field arithmetic
JP5697153B2 (ja) 2011-08-04 2015-04-08 キヤノンマーケティングジャパン株式会社 情報処理システム、携帯端末、制御方法、及びプログラム
US8745376B2 (en) 2011-10-14 2014-06-03 Certicom Corp. Verifying implicit certificates and digital signatures
US9215076B1 (en) * 2012-03-27 2015-12-15 Amazon Technologies, Inc. Key generation for hierarchical data access
US20150379510A1 (en) 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
BR112015010016A2 (pt) * 2012-11-07 2017-07-11 Koninklijke Philips Nv compilador, computador, método de compilação e programa de computador
US9306738B2 (en) * 2012-12-21 2016-04-05 Microsoft Technology Licensing, Llc Managed secure computations on encrypted data
US20140321644A1 (en) 2013-04-29 2014-10-30 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of National Defence Method and system for calculations on encrypted data
US9026978B1 (en) 2013-10-24 2015-05-05 Cadence Design Systems, Inc. Reverse interface logic model for optimizing physical hierarchy under full chip constraint
JP5842255B2 (ja) * 2013-12-12 2016-01-13 国立大学法人東京工業大学 プログラミング言語による論理回路記述から論理回路を生成するための装置及び方法
FR3018378A1 (fr) 2014-03-12 2015-09-11 Enrico Maim Systeme et procede transactionnels a architecture repartie fondees sur des transactions de transferts d'unites de compte entre adresses
US9830580B2 (en) * 2014-03-18 2017-11-28 nChain Holdings Limited Virtual currency system
US10320781B2 (en) 2016-12-08 2019-06-11 Sensoriant, Inc. System and methods for sharing and trading user data and preferences between computer programs and other entities while preserving user privacy
US9645794B2 (en) 2014-09-23 2017-05-09 Texas Instruments Incorporated Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography
US10409827B2 (en) * 2014-10-31 2019-09-10 21, Inc. Digital currency mining circuitry having shared processing logic
US20160162897A1 (en) 2014-12-03 2016-06-09 The Filing Cabinet, LLC System and method for user authentication using crypto-currency transactions as access tokens
PL3073670T3 (pl) 2015-03-27 2021-08-23 Black Gold Coin, Inc. System i sposób osobistej identyfikacji i weryfikacji
AU2016242888A1 (en) * 2015-03-31 2017-11-16 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
US20160321751A1 (en) * 2015-04-28 2016-11-03 Domus Tower, Inc. Real-time settlement of securities trades over append-only ledgers
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
JP2017004044A (ja) 2015-06-04 2017-01-05 富士通株式会社 ライセンス管理プログラム、ライセンス管理方法、およびライセンス管理システム
CN106293892B (zh) 2015-06-26 2019-03-19 阿里巴巴集团控股有限公司 分布式流计算系统、方法和装置
WO2017008829A1 (en) 2015-07-10 2017-01-19 Nec Europe Ltd. A method and a system for reliable computation of a program
US10366204B2 (en) * 2015-08-03 2019-07-30 Change Healthcare Holdings, Llc System and method for decentralized autonomous healthcare economy platform
US20170091726A1 (en) * 2015-09-07 2017-03-30 NXT-ID, Inc. Low bandwidth crypto currency transaction execution and synchronization method and system
EP3357892A4 (en) * 2015-09-30 2019-05-29 Sekisui Chemical Co., Ltd. INTERMEDIATE LAYER FOR LAMINATED GLASS AND LAMINATED GLASS
US20180331832A1 (en) 2015-11-05 2018-11-15 Allen Pulsifer Cryptographic Transactions System
US20170132621A1 (en) 2015-11-06 2017-05-11 SWFL, Inc., d/b/a "Filament" Systems and methods for autonomous device transacting
US10048952B2 (en) 2015-11-11 2018-08-14 Oracle International Corporation Compiler optimized data model evaluation
FR3043811B1 (fr) 2015-11-16 2017-11-10 Morpho Procede d'identification d'une entite
US20170140408A1 (en) 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
US10841082B2 (en) * 2015-11-24 2020-11-17 Adi BEN-ARI System and method for blockchain smart contract data privacy
US11423498B2 (en) 2015-12-16 2022-08-23 International Business Machines Corporation Multimedia content player with digital rights management while maintaining privacy of users
US9715373B2 (en) 2015-12-18 2017-07-25 International Business Machines Corporation Dynamic recompilation techniques for machine learning programs
US10044696B2 (en) 2015-12-22 2018-08-07 Mcafee, Llc Simplified sensor integrity
US9483596B1 (en) * 2016-01-08 2016-11-01 International Business Machines Corporation Multi power synthesis in digital circuit design
US10108812B2 (en) 2016-01-28 2018-10-23 Nasdaq, Inc. Systems and methods for securing and disseminating time sensitive information using a blockchain
AU2017223129A1 (en) 2016-02-23 2018-07-12 nChain Holdings Limited Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
EP4369273A2 (en) 2016-02-23 2024-05-15 nChain Licensing AG A method and system for securing computer software using a distributed hash table and a blockchain
US10387988B2 (en) 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
US11170371B2 (en) 2016-03-03 2021-11-09 Nec Corporation Method for managing data in a network of nodes
US11017387B2 (en) 2016-03-24 2021-05-25 International Business Machines Corporation Cryptographically assured zero-knowledge cloud services for elemental transactions
US11017388B2 (en) 2016-03-25 2021-05-25 International Business Machines Corporation Cryptographically assured zero-knowledge cloud service for composable atomic transactions
US10839096B2 (en) 2016-03-28 2020-11-17 International Business Machines Corporation Cryptographically provable zero-knowledge content distribution network
US20170287090A1 (en) 2016-03-31 2017-10-05 Clause, Inc. System and method for creating and executing data-driven legal contracts
WO2017175073A1 (en) 2016-04-05 2017-10-12 Vchain Technology Limited Method and system for managing personal information within independent computer systems and digital networks
US10545739B2 (en) 2016-04-05 2020-01-28 International Business Machines Corporation LLVM-based system C compiler for architecture synthesis
CN108885761B (zh) 2016-04-11 2023-09-29 区块链控股有限公司 用于区块链上的安全点对点通信的方法
US20170300897A1 (en) * 2016-04-14 2017-10-19 American Express Travel Related Services Company, Inc. Systems and Methods for an Electronic Wallet Payment Tool
US10803537B2 (en) * 2016-04-18 2020-10-13 R3 Ltd. System and method for managing transactions in dynamic digital documents
US10333705B2 (en) * 2016-04-30 2019-06-25 Civic Technologies, Inc. Methods and apparatus for providing attestation of information using a centralized or distributed ledger
US10046228B2 (en) 2016-05-02 2018-08-14 Bao Tran Smart device
US20170337319A1 (en) 2016-05-20 2017-11-23 Ecole polytechnique fédérale de Lausanne (EPFL) System and Method for Optimization of Digital Circuits with Timing and Behavior Co-Designed by Introduction and Exploitation of False Paths
CN107438002B (zh) 2016-05-27 2022-02-11 索尼公司 基于区块链的系统以及系统中的电子设备和方法
US10447478B2 (en) 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
FR3052286B1 (fr) 2016-06-06 2018-06-15 Morpho Procede de verification d'un droit d'acces d'un individu
US20180018738A1 (en) 2016-07-14 2018-01-18 Digital Asset Holdings Digital asset platform
US10417217B2 (en) 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
CN106780032A (zh) * 2016-12-16 2017-05-31 杭州云象网络技术有限公司 一种多链场景下的区块链链间资产转移方法
US11088823B2 (en) 2017-01-06 2021-08-10 Koninklijke Philips N.V. Pinocchio/Trinocchio on authenticated data
US11362829B2 (en) 2017-01-06 2022-06-14 Koninklijke Philips N.V. Distributed privacy-preserving verifiable computation
CN106790253A (zh) * 2017-01-25 2017-05-31 中钞信用卡产业发展有限公司北京智能卡技术研究院 基于区块链的认证方法和装置
CN107274184A (zh) 2017-05-11 2017-10-20 上海点融信息科技有限责任公司 基于零知识证明的区块链数据处理
CN107179932A (zh) 2017-05-26 2017-09-19 福建师范大学 基于fpga高层次综合指令的优化方法及其系统
CN107330775A (zh) * 2017-07-05 2017-11-07 贵州大学 一种基于比特币协议的首价密封交易方法
US10135607B1 (en) 2017-08-11 2018-11-20 Dragonchain, Inc. Distributed ledger interaction systems and methods
US10268829B2 (en) 2017-08-11 2019-04-23 Dragonchain, Inc. Security systems and methods based on cryptographic utility token inventory tenure
US10333710B2 (en) 2017-09-12 2019-06-25 Qed-It Systems Ltd. Method and system for determining desired size of private randomness using Tsallis entropy
US10521616B2 (en) 2017-11-08 2019-12-31 Analog Devices, Inc. Remote re-enrollment of physical unclonable functions
EP3707855A1 (en) 2017-11-09 2020-09-16 Nchain Holdings Limited System for securing verification key from alteration and verifying validity of a proof of correctness

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016155804A1 (en) * 2015-03-31 2016-10-06 Nec Europe Ltd. Method for verifying information
WO2017187398A1 (en) * 2016-04-29 2017-11-02 nChain Holdings Limited Implementing logic gate functionality using a blockchain
WO2017187396A1 (en) * 2016-04-29 2017-11-02 nChain Holdings Limited Implementing logic gate functionality using a blockchain
WO2017187399A1 (en) * 2016-04-29 2017-11-02 nChain Holdings Limited Implementing logic gate functionality using a blockchain

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BALL, M. ET AL.: "Proof of Useful Work", CRYPTOLOGY EPRINT ARCHIVE, vol. Report 2017/203 ver.20170301:001609, JPN6022047000, 1 March 2017 (2017-03-01), pages 1 - 27, ISSN: 0004915482 *
KUMARESAN, R. AND BENTOV, I.: "How to Use Bitcoin to Incentivize Correct Computations", CCS '14: PROCEEDINGS OF THE 2014 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, JPN7022005219, November 2014 (2014-11-01), pages 30 - 41, XP055565146, ISSN: 0005082157, DOI: 10.1145/2660267.2660380 *
PARNO, B. AND GENTRY, C.: "Pinocchio: Nearly Practical Verifiable Computation", 2013 IEEE SYMPOSIUM ON SECURITY AND PRIVACY, JPN6022046998, May 2013 (2013-05-01), pages 238 - 252, XP055538500, ISSN: 0005082159, DOI: 10.1109/SP.2013.47 *
SHOKER, A.: "Sustainable Blockchain through Proof of eXercise", 2017 IEEE 16TH INTERNATIONAL SYMPOSIUM ON NETWORK COMPUTING AND APPLICATIONS (NCA), JPN6022046997, 1 November 2017 (2017-11-01), pages 1 - 9, ISSN: 0005082158 *

Also Published As

Publication number Publication date
US20210192514A1 (en) 2021-06-24
EP3707871B1 (en) 2022-05-18
US11575511B2 (en) 2023-02-07
CN111316595A (zh) 2020-06-19
JP2023052834A (ja) 2023-04-12
EP3707623A1 (en) 2020-09-16
KR20200086281A (ko) 2020-07-16
WO2019092544A1 (en) 2019-05-16
KR20200079503A (ko) 2020-07-03
US11635950B2 (en) 2023-04-25
ZA202002575B (en) 2023-12-20
US20200366492A1 (en) 2020-11-19
WO2019092561A1 (en) 2019-05-16
US20210377041A1 (en) 2021-12-02
JP2021502746A (ja) 2021-01-28
CN111345004B (zh) 2023-12-01
SG11202004146WA (en) 2020-06-29
US20200348916A1 (en) 2020-11-05
JP2023182741A (ja) 2023-12-26
JP2021502634A (ja) 2021-01-28
SG11202004153UA (en) 2020-06-29
TW201923567A (zh) 2019-06-16
EP3707856A1 (en) 2020-09-16
SG11202004149UA (en) 2020-06-29
CN111316594A (zh) 2020-06-19
US11658801B2 (en) 2023-05-23
JP2021502636A (ja) 2021-01-28
JP7234229B2 (ja) 2023-03-07
SG11202004147RA (en) 2020-06-29
TW201923648A (zh) 2019-06-16
TWI806918B (zh) 2023-07-01
JP2023179687A (ja) 2023-12-19
US20200266985A1 (en) 2020-08-20
CN117640170A (zh) 2024-03-01
WO2019092542A1 (en) 2019-05-16
EP4312403A2 (en) 2024-01-31
KR20200086282A (ko) 2020-07-16
JP2023075152A (ja) 2023-05-30
WO2019092543A1 (en) 2019-05-16
CN111406379A (zh) 2020-07-10
JP7208989B2 (ja) 2023-01-19
WO2019092545A1 (en) 2019-05-16
SG11202004148PA (en) 2020-06-29
CN111345004A (zh) 2020-06-26
US20230318804A1 (en) 2023-10-05
KR20200080265A (ko) 2020-07-06
JP2023036962A (ja) 2023-03-14
EP3707855A1 (en) 2020-09-16
US20230269070A1 (en) 2023-08-24
KR20200086284A (ko) 2020-07-16
JP7477674B2 (ja) 2024-05-01
EP3707852A1 (en) 2020-09-16
US20230318805A1 (en) 2023-10-05
EP3707871A1 (en) 2020-09-16
JP2021502745A (ja) 2021-01-28
EP4092953A1 (en) 2022-11-23
JP7221954B2 (ja) 2023-02-14
CN111345005A (zh) 2020-06-26
EP4312403A3 (en) 2024-02-21

Similar Documents

Publication Publication Date Title
JP2021502747A (ja) 分散コンピューティングシステム及び方法
JP7285840B2 (ja) プルーフ検証に基づいてオフ・チェーン・データを認証するシステム及び方法
CN111989893B (zh) 用于生成和链接零知识证明的方法、系统和计算机可读装置
JP7284747B2 (ja) 分散協調を用いるスマートコントラクトの実行
JP7208990B2 (ja) メディエータコンピュータシステムを使用してコンピュータプログラムの正しい実行を確保するシステム及び方法
TW201928755A (zh) 用以安全分享密碼材料之系統及方法
JP7251035B2 (ja) 機密知識の特殊な証明を提供するシステムおよび方法
US20220217004A1 (en) Systems and methods for non-parallelised mining on a proof-of-work blockchain network
JP2023184657A (ja) 公開鍵結合検証を含む、コンピュータにより実施されるシステム及び方法
Zhang et al. Modeling and verification of the Nervos CKB block synchronization protocol in UPPAAL
Osterland Analyzing the sustainability of distributed ledger applications
US20230067629A1 (en) Cryptographic techniques for updating a distributed data structure
Arigela et al. Survey on blockchain for sharing of students' credentials in education ecosystem
Sheikh et al. Exploring the Blockchain Technology: Issues, Applications and Research Potential
Oude Roelink et al. Systematic review: Comparing zk‐SNARK, zk‐STARK, and bulletproof protocols for privacy‐preserving authentication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221108

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230613