JP2021502747A - 分散コンピューティングシステム及び方法 - Google Patents
分散コンピューティングシステム及び方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 57
- 238000012795 verification Methods 0.000 claims abstract description 63
- 238000004364 calculation method Methods 0.000 claims abstract description 45
- 238000011156 evaluation Methods 0.000 claims description 21
- 230000015654 memory Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 abstract description 10
- 238000010200 validation analysis Methods 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 20
- 238000013515 script Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 13
- 230000009471 action Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000008094 contradictory effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007850 degeneration Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 241000238876 Acari Species 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000013259 porous coordination polymer Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/423—Preprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, 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/401—Transaction verification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, 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/405—Establishing or using transaction specific rules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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)は回路内の乗算ゲートの数に等しい。
好ましくは、当該方法は、プルーフの要素が整合係数(matching coefficient)を使用して構築されていることを検証するステップをさらに含んでもよい。一実施形態において、整合係数は、以下のようにVmid(s)P、Wmid(s)Q、及びYmid(s)Pについて確認される。
好ましくは、当該方法は、プルーフの項に対する可除性(divisibility)要件を検証するステップをさらに含んでもよい。一実施形態において、検証エンティティは、以下を確認することにより可除性要件が満たされることを確認する。
ワーカコンピュータシステムは、回路の入力及び出力値に対応するI/O値のセットを提供し得る。一実施形態において、I/Oデータは、ワーカコンピュータシステムにより評価される関数の入力及び出力である。
回路は、乗算ゲートへのその寄与(contributions)をモデル化された1つ以上の加算ゲートを含んでもよい。一実施形態において、回路は乗算及び加算ゲートのセットとして見なすことができ、これにおいて、回路はd個の乗算ゲートに接続されたm個のワイヤを含み、加算ゲートは乗算ゲートへのそれらの寄与をモデル化される。
計算は、ビットコイントランザクション立証の一部でもよく、あるいは、さらなる実施形態において、計算は、ブロックチェーントランザクション立証の一部でもよい。
計算が正しいことを検証することは、少なくとも、プルーフ、検証鍵、及びI/O値のセットを検証コンピュータシステムに提供し、検証コンピュータシステムから計算が正しいとの指標を受信することにより達成されてもよい。一実施形態において、指標は、検証コンピュータシステムに関連づけられた鍵で生成されたデジタル署名などの、計算が正しいことの暗号的に検証可能な指標でもよい。
検証コンピュータシステムは、ブロックチェーンノード又はビットコインノードでもよい。
さらに、プロセッサと、実行可能命令を含むメモリと、を含むシステムであって、実行可能命令はプロセッサによる実行の結果として、請求される方法のうちいずれかを当該システムに実行させる、システムを提供することが望ましい。
さらに、コンピュータシステムの1つ以上のプロセッサによる実行の結果として、請求される方法のうちいずれかをコンピュータシステムに少なくとも実行させる実行可能命令を記憶した非一時的コンピュータ読取可能記憶媒体を提供することが望ましい。
本発明のこれら及び他の態様が、本明細書に記載した実施形態から明らかであり、それらを参照して明らかにされるであろう。次に、本発明の一実施形態が、単なる例として、添付の図面を参照して説明される。
種々の実施形態が実現され得るブロックチェーン環境を示す。
一実施形態による、クライアントコンピュータシステム及びワーカコンピュータシステムにより実行された場合にプルーフπ及び検証鍵VKを使用してワーカにより実行されたワークをクライアントが検証することを可能にする処理の一例を示すスイム図である。
一実施形態による算術関数を表現する回路の一例を示す。
一実施形態による、クライアントコンピュータシステムにより実行された場合に検証鍵VKを決定する処理の一例を示すフローチャートである。
一実施形態による、クライアントコンピュータシステムにより実行された場合にプルーフπを使用してワーカコンピュータシステムにより実行された計算を検証する処理の一例を示すフローチャートである。
種々の実施形態が実現され得るコンピューティング環境を示す。
分散コンピューティング環境において、単一のタスクは複数のサブタスクに分割されることがあり、該サブタスクは、実行のために複数のコンピュータシステム間で分散されることがある。複数のコンピュータシステムの各々は、サブタスクのうち1つ以上を実行し得る。種々の例において、個々のコンピュータシステムにより生成された結果は、元の単一のタスクに対する結果を生成するために協調コンピュータシステムにより蓄積され、集約される。したがって、多くの実施形態において、協調コンピュータシステムは、サブタスクの各々が正しく実行され、それにより元の単一タスクに対して生成された結果が正しいと決定することに関心を有する。これは、サブタスクが分散された個々のコンピュータシステムが協調コンピュータシステムにより完全に信頼されていない場合、特に問題になる。本文献に記載のシステム及び方法により、検証コンピュータシステムは、他のコンピュータシステムが信頼されていないコンピュータシステムの可能性があるとしても、他のコンピュータシステムにより実行されたワーク(work)を暗号的に検証することができる。これは、協調コンピュータシステムが、必ずしも信頼されてはいないより広範なコンピュータシステムのセットにワークを分散させることを可能にし、なぜならば、生成されるワークは、分散されたサブタスクを再現することなく暗号的に検証できるからである。
本文献は、種々の例を用いて、信頼されていないワーカコンピュータシステムのワークが検証され得る処理について説明する。いくつかの実施形態において、ワーカコンピュータシステムに分散されるワークは、論理回路の一部として見なすことができ、その回路の一部又は全部に関連づけられたワークの検証は、検証者(verifier)が論理回路に関連する他のサブタスクを進めることを可能にする。いくつかの実装において、サブタスクの性能及び検証に関連する情報は、ブロックチェーンを使用して交換される。しかしながら、本明細書に記載の方法は、検証エンティティが1つ以上の信頼されていないコンピュータシステムにより実行されたワークを確認するよう要求される任意の分散コンピューティング環境に適用可能である。
本文献では、以下の表記が用いられることがある。数学的な群は、二重打ちの
の文字、例えば、
を用いて表現されることがあり、群の生成元は、スクリプト文字、例えば、
により示されることがある。例えば、群
を所与として、
の場合、
ことが示され得る。
二重打ちの
の文字は、体(fields)を表現するために使用されることがある。例えば、
は、特性pの有限体を表現するために使用されることがあり、
は、
の次数kの拡張体をあらわすために使用されることがあり、kは非ゼロの整数である。非ゼロの要素からなるサブセット
は、
として書かれることもある。別の例において、素数pについて、
である。Eが有限体
上の楕円曲線である別の例において、
の位数rのアーベル部分群は、
として書かれることもある。集合Xからランダムにサンプリングされる要素xは、
として表現されることがある。表記の
は、効率的な計算可能な双線形写像を表現するために使用されることがあり、
は、同じ素数位数(prime order)rの巡回群である。
は加法群であり、
は乗法群である。算術演算はrを法として実行される。
本文献は、二次算術プログラム(Quadratic Arithmetic Program)(「QAP」)を使用する1つ以上の実施形態について説明する。種々の実施形態において、一般的な計算は、素数位数rの体
上で、多項式演算のセットへ符号化される。一例において、QAPは、
を含み、次数deg(vi),deg(wi),deg(yi)<deg(t)=dの、
の多項式を有する。前の例を参照すると、QAPは、Qのサイズがmである(mは内部ワイヤの数を表す)こと、及びQの次数がtの次数dであることを列挙することにより記述されてもよく、dは乗算ゲートの数である。別の例において、
をQAPとする。タプル(a0,...,am)は、tが
を割り切る場合、Qの解である。多項式{vi}m i=0は各乗算ゲートへの左入力を符号化し、多項式{wi}m i=0は各乗算ゲートへの右入力を符号化し、多項式{yi}m 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は、一実施形態による、クライアントコンピュータシステム及びワーカコンピュータシステムにより実行された場合にプルーフπ及び検証鍵VKを使用してワーカにより実行されたワークをクライアントが検証することを可能にする処理の一例を示すスイム図である。処理200の一部又は全部(又は記載された任意の他のプロセス、又はこれらの処理の変形及び/又は組み合わせ)は、実行可能命令及び/又は他のデータで構成された1つ以上のコンピュータシステムの制御下で実行でき、1つ以上のプロセッサ上で集合的に実行する実行可能命令として実現されてもよい。実行可能命令及び/又は他のデータは、非一時的コンピュータ読取可能記憶媒体に記憶できる(例えば、磁気、光、又はフラッシュ媒体に永続的に記憶されたコンピュータプログラム)。
例えば、処理200の一部又は全部は、1つ以上のコンピューティングデバイスにより(例えば、データセンター内のサーバにより、クライアントコンピューティングデバイスにより、計算リソースサービスプロバイダの分散システム内の複数のコンピューティングデバイスにより、又は図6のコンピューティングデバイス600などの任意の適切な電子クライアントデバイスにより)実行できる。
種々の実施形態において、クライアントコンピュータシステムは、ワーカコンピュータシステムにより実行されるべき計算をサブミットする。ワーカコンピュータシステムは、クライアントコンピュータシステムにより完全に信頼されていなくてもよく、したがって、ワーカコンピュータシステムは、クライアントコンピュータシステム又は別の信頼された検証コンピュータシステムが、ワーカコンピュータシステムにより実行された算出が正しいことを検証することを可能にする情報を提供する。多くの例において、クライアントは、ワーカコンピュータシステムを完全に信頼せず、したがって、クライアントコンピュータシステムを満足させるために、ワーカコンピュータシステムは、計算が正しく実行されたことをクライアントコンピュータシステムが証明することを可能にする情報をサブミットする。いくつかの実施形態において、ワーカコンピュータシステムにより行われるワークの検証は、クライアントコンピュータシステムにより信頼された検証コンピュータシステムにより行われる。
種々の実施形態において、公開検証鍵パラメータVK、プルーフπ、及びI/Oデータが、信頼されていないワーカコンピュータシステムにより提供される正しい計算の主張された(alleged)プルーフを検証するために使用される。種々の実施形態において、検証コンピュータシステムは、クライアントコンピュータシステム及び信頼されていないワーカコンピュータシステムから検証処理で使用される材料を収集し、クライアントコンピュータシステムの代わりに検証を実行する。一実施形態において、信頼されていないワーカコンピュータシステムにより実行される計算の検証はトランザクションの立証の間に生じ、したがって、検証コンピュータシステムは、任意のビットコインノード又はブロックチェーンノードでもよい。
処理はブロック202で始まり、クライアントコンピュータシステムが、ワーカコンピュータシステムにより評価されるべき関数を識別する。ブロック204において、クライアントコンピュータシステムが、ワーカコンピュータシステムにサブミットされる関数のための評価鍵EKを構築する。ブロック206において、クライアントコンピュータシステムが、ワーカコンピュータシステムにより実行されたワークを検証するために使用できる検証鍵VKを生成する。ブロック208において、クライアントコンピュータシステムが、関数及び評価鍵EKをワーカコンピュータシステムにサブミットする。
上記実施形態において、iは回路の内部ワイヤへのインデックスを表現し、deg(t)は多項式t(x)の次数であり、deg(t)は回路内の乗算ゲートの数に等しい。図3に示す回路では、公開評価鍵EKは以下のとおりである。
ブロック210において、ワーカコンピュータシステムが、クライアントコンピュータシステムから評価鍵EK及び実行されるべき関数を記述した情報を受信する。ワーカコンピュータシステムは、クライアントコンピュータシステムにより要求された関数を評価し、ワーカコンピュータシステムにより実行された算出を検証するために使用可能なプルーフπを構築する(212)。ブロック214において、ワーカコンピュータシステムが、プルーフπ及び算出のI/Oデータをクライアントコンピュータシステムに提供する。一実施形態において、I/Oデータは、ワーカコンピュータシステムにより評価される関数の入力及び出力である。
ブロック216において、クライアントコンピュータシステムが、ワーカコンピュータシステムからI/Oデータ及びプルーフπを受信する。ブロック218において、クライアントコンピュータシステムが、VK、π、及び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個のワイヤを含み、加算ゲートは乗算ゲートへのそれらの寄与をモデル化される。
入力/出力ワイヤ上の割り当て(a1,a2,...,aN)が有効であることを証明する検証エンティティでは、多項式p(x)が根(x1,x2,...xd)を有する、すなわちp(xi)i=1...d=0であるように、内部ワイヤ上の割り当てに対応する係数(aN+1,...am)が存在することを証明すれば十分である。多項式p(x)は、ゲート式及びワイヤ値を符号化する。したがって、多項式h(x)が存在し、p(x)=h(x)・t(x)であり、ここで、
である。
VK、π、及び(a1,a2,...,aN)である一実施形態において、検証コンピュータシステムは、t(x)がp(x)を割り切り、ゆえに(xN+1,...,xm)=f(x0,...,xN)であることを以下のように検証する。最初、検証コンピュータシステムは、以下を確認することにより3つのα項をチェックする。
図3は、一実施形態による算術関数を表現する回路の一例を示す。図3に示す回路は、関数302、すなわち、
f(a1,a2,a3,a4)=a1+a2a3(a3+a4)
を表す。
f(a1,a2,a3,a4)=a1+a2a3(a3+a4)
を表す。
回路では、各ワイヤ値は、素体位数体(prime field order field)
からのものであり、全ての演算は上記体上で実行される。多項式は、その評価の観点で3つの乗算ゲート304、308、及び312において定義される。加算ゲート306及び310は、乗算ゲートへのそれらの寄与をモデル化される。回路は、出力値314を生成する。
入力値a1,a2,a3,a4が回路に割り当てられると、ワーカコンピュータシステムは対応する出力値を決定する。例えば、入力
に対して、ワーカは、回路を評価して、各乗算ゲート304、308、312の出力値に対応する集合(a5,a6,a7)を得る(
である)。1に設定されたダミー入力ワイヤa0が回路に追加される。回路内の各乗算ゲート304、308、及び312に対して、区別可能な根値
が選択される。ゆえに、図3の回路では、3つの値をランダムに選択し、
であり、ターゲット多項式t(x)を
t(x)=(x−x5)(x−x6)(x−x7)
に設定する。
であり、ターゲット多項式t(x)を
t(x)=(x−x5)(x−x6)(x−x7)
に設定する。
一実施形態において、多項式{vi(x)}は乗算ゲートの左入力を表現し、多項式{wi(x)}は乗算ゲートの右入力を表現し、多項式{yi(x)}は回路の出力値を表現する。図3に示す例示的な回路では、多項式{vi(x)}、{wi(x)}、{yi(x)}の陽的な式は次のとおりである。
一実施形態において、P及びQは、
の生成元であり、それにより、
である。さらに、非対称ペアリング、すなわち、
を考え、
は
の(位数rの)部分群としてとられる。鍵生成手順は、ランダムな要素、すなわち、
を含む。
一実施形態において、公開検証鍵は、各々が異なる構成要素を表すサブシーケンスを有するビットシーケンスとして実現されるが、構成要素を公開検証鍵に符号化する異なる方法が、本開示の範囲内であると考えられる。
ここで、(h0,h1,h2,h3)はワーカにより評価された多項式h(x)の係数であり、h(x)=h0+h1x+h2x2+h3x3である。一実施形態において、プルーフは、各々がプルーフの異なる構成要素を表すサブシーケンスを有するビットシーケンスとして実現されるが、構成要素をプルーフに符号化する異なる方法が、本開示の範囲内であると考えられる。要素の集合χは、公開評価鍵EKに属する。
一実施形態において、以下の式は、主張されたプルーフπを検証するために使用される。検証鍵VK、プルーフπ、IO値ai={a0,a1,a2,a3,a4,a7}を所与として、検証アルゴリズムは、rvVmid(s)P、rwWmid(s)Q、及びryYmid(s)Pが評価鍵EKからの要素を使用して構築されていることを最初チェックする。すなわち、プロトコルは、以下の式(1)〜(3)を最初検証する。
次に、検証コンピュータシステムは、同じ係数amid={a5,a6}がVmid(s)P、Wmid(s)Q、及びYmid(s)Pにおいて使用されているかをチェックする。一実施形態において、検証コンピュータシステムは、以下の式(4)を検証することによりこれを達成する。
さらに、検証コンピュータシステムは、コミットメント(commitments)からの項を組み合わせてプルーフ項h(x)に対する可除性チェックを行う。すなわち、検証コンピュータシステムは、
であることを、以下の
を確認することにより証明する。
図4は、一実施形態による、クライアントコンピュータシステムにより実行された場合に検証鍵VKを決定する処理の一例を示すフローチャートである。処理400の一部又は全部(又は記載された任意の他のプロセス、又はこれらの処理の変形及び/又は組み合わせ)は、実行可能命令及び/又は他のデータで構成された1つ以上のコンピュータシステムの制御下で実行でき、1つ以上のプロセッサ上で集合的に実行する実行可能命令として実現されてもよい。実行可能命令及び/又は他のデータは、非一時的コンピュータ読取可能記憶媒体に記憶できる(例えば、磁気、光、又はフラッシュ媒体に永続的に記憶されたコンピュータプログラム)。
例えば、処理400の一部又は全部は、1つ以上のコンピューティングデバイスにより(例えば、データセンター内のサーバにより、クライアントコンピューティングデバイスにより、計算リソースサービスプロバイダの分散システム内の複数のコンピューティングデバイスにより、又は図6のコンピューティングデバイス600などの任意の適切な電子クライアントデバイスにより)実行できる。
種々の実施形態において、クライアントコンピュータシステムは、ワーカコンピュータシステムにより実行されるべき計算をサブミットする。ワーカコンピュータシステムは、クライアントコンピュータシステムにより完全に信頼されていなくてもよく、したがって、ワーカコンピュータシステムは、クライアントコンピュータシステム又は別の信頼された検証コンピュータシステムが、ワーカコンピュータシステムにより実行された算出が正しいことを検証することを可能にする情報を提供する。多くの例において、クライアントは、ワーカコンピュータシステムを完全に信頼せず、したがって、クライアントコンピュータシステムを満足させるために、ワーカコンピュータシステムは、ワーカコンピュータシステムにより実行された計算が正しかったことをクライアントコンピュータシステムが証明することを可能にする情報をクライアントコンピュータシステムに提供する。種々の実施形態において、公開検証鍵パラメータVK、プルーフπ、及びI/Oデータが、ワーカコンピュータシステムにより提供される正しい計算の主張されたプルーフを検証するために使用される。フローチャート400は、検証鍵VKを生成する処理を示す。
一実施形態において、ブロック402において、クライアントコンピュータシステムが、信頼されていないワーカコンピュータシステムにより実行されるべき関数Fを識別する。関数Fは、n個の値を入力として取る。クライアントコンピュータシステムは、関数に対応する回路のモデルを生成し、この回路は、乗算ゲート及び加算ゲートのセットから構成される。ブロック404において、クライアントコンピュータシステムが、回路内の乗算ゲートを識別する。
一実施形態において、ブロック406において、クライアントコンピュータシステムが、回路内の各乗算ゲートの出力に対応する根値をランダムに選択する。m個の乗算ゲートを有する回路では、クライアントコンピュータシステムはm個の根値(xn+1...xn+m)を選択する。
一実施形態において、ブロック408において、クライアントコンピュータシステムが、選択された根値(xn+1...xn+m)を使用して回路に対応するターゲット多項式t(x)=(x−xn)(x−xn+1)...(x−xn+m)を決定する。ブロック410において、クライアントコンピュータシステムが、乗算ゲートの左入力{vi(x)}、乗算ゲートの右入力{wi(x)}、及び乗算ゲートの出力値{yi(x)}を決定する。
一実施形態において、ブロック412において、クライアントコンピュータシステムが、ry=rv・rwであるように素数位数rの体からの退化(degeneration)のためのランダム要素rv,rw,s,αv,αw,αy,β,γを選択する。
一実施形態において、ブロック414において、クライアントコンピュータシステムが、公開検証鍵VKを決定する。P及びQを
の生成元とし、それにより、
であるようにする。(i)非対称ペアリング、すなわち、
を考え、(ii)
は
の(位数rの)部分群としてとられることに留意されたい。生成元
を所与として、ランダムな
を使用して生成される検証鍵VKは以下のとおりである。
202〜214で実行される動作のうち1つ以上が、並列を含む種々の順序及び組み合わせで実行されてもよいことに留意する。
開示の実施形態を説明する文脈において、別段規定されない限り、「命令」が援助なしには通常実行しない動作(例えば、データの伝送、算出等)を実行する実行可能命令(コード、アプリケーション、エージェントなどとも呼ばれる)に関する表現の使用は、命令がマシンにより実行され、それにより指定された動作をマシンに実行させることを示すことに留意する。
図5は、一実施形態による、クライアントコンピュータシステムにより実行された場合にプルーフπを使用してワーカコンピュータシステムにより実行された計算を検証する処理の一例を示すフローチャートである。処理500の一部又は全部(又は記載された任意の他のプロセス、又はこれらの処理の変形及び/又は組み合わせ)は、実行可能命令及び/又は他のデータで構成された1つ以上のコンピュータシステムの制御下で実行でき、1つ以上のプロセッサ上で集合的に実行する実行可能命令として実現されてもよい。実行可能命令及び/又は他のデータは、非一時的コンピュータ読取可能記憶媒体に記憶できる(例えば、磁気、光、又はフラッシュ媒体に永続的に記憶されたコンピュータプログラム)。
例えば、処理500の一部又は全部は、1つ以上のコンピューティングデバイスにより(例えば、データセンター内のサーバにより、クライアントコンピューティングデバイスにより、計算リソースサービスプロバイダの分散システム内の複数のコンピューティングデバイスにより、又は図6のコンピューティングデバイス600などの任意の適切な電子クライアントデバイスにより)実行できる。
種々の実施形態において、クライアントコンピュータシステムは、ワーカコンピュータシステムにより実行されるべき計算をサブミットする。ワーカコンピュータシステムは、クライアントコンピュータシステムにより完全に信頼されていなくてもよく、したがって、ワーカコンピュータシステムは、クライアントコンピュータシステム又は別の信頼された検証コンピュータシステムが、ワーカコンピュータシステムにより実行された算出が正しいことを検証することを可能にする情報を提供する。多くの例において、クライアントは、ワーカコンピュータシステムを完全に信頼せず、したがって、クライアントコンピュータシステムを満足させるために、ワーカコンピュータシステムは、ワーカコンピュータシステムにより実行された計算が正しかったことをクライアントコンピュータシステムが証明することを可能にする情報をクライアントコンピュータシステムに提供する。種々の実施形態において、公開検証鍵パラメータVK、プルーフπ、及びI/Oデータが、ワーカコンピュータシステムにより提供される正しい計算の主張されたプルーフを検証するために使用される。フローチャート500は、ワーカコンピュータシステムにより提供されるプルーフπを使用して、ワーカコンピュータシステムにより実行された算出を検証する処理を示す。
一実施形態において、ブロック504において、クライアントコンピュータシステムは、ワーカコンピュータシステムにより実行されたワークが正しいことを確認する処理を開始する。クライアントコンピュータシステムは、rvVmid(s)P、rwWmid(s)Q、及びryYmid(s)Pが評価鍵EKからの要素を使用して構築されていることを以下のように確認する。
上記のチェックが成功した場合、クライアントコンピュータシステムは、ワーカコンピュータシステムにより実行された算出が正しいと決定し、ワークコンピュータシステムにより提供された結果は、クライアントコンピュータシステムにより信頼できる。
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つの同じアイテムのハードウェアにより具現化できる。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組み合わせが利するように使用できないことを示すものではない。
[要約]
本開示において説明及び示唆される手法は、公開検証鍵パラメータVK及びI/Oデータを使用して第三者により提供されるプルーフπを検証することにより、計算の分野、具体的には第三者コンピュータシステムにより実行される計算の正しさを確認する分野を改善する。さらに、本開示において説明及び示唆される手法は、信頼されていない第三者コンピュータシステムのネットワークにわたり計算を分散可能にすることにより、コンピューティングシステムの機能を改善する。さらに、本開示において説明及び示唆される手法は、必然的にコンピュータ技術に根ざし、コントラクトを論理回路としてモデル化することにより、デジタルコントラクトの性能の検証で特に生じる問題を克服する。
本開示において説明及び示唆される手法は、公開検証鍵パラメータVK及びI/Oデータを使用して第三者により提供されるプルーフπを検証することにより、計算の分野、具体的には第三者コンピュータシステムにより実行される計算の正しさを確認する分野を改善する。さらに、本開示において説明及び示唆される手法は、信頼されていない第三者コンピュータシステムのネットワークにわたり計算を分散可能にすることにより、コンピューティングシステムの機能を改善する。さらに、本開示において説明及び示唆される手法は、必然的にコンピュータ技術に根ざし、コントラクトを論理回路としてモデル化することにより、デジタルコントラクトの性能の検証で特に生じる問題を克服する。
Claims (15)
- 提供されたタスクの結果を提供するよう競争することが可能な独立したコンピュータシステムのセットにタスクを提供するステップであり、前記タスクは実行すべき計算を指定する、ステップと、
検証コンピュータシステムにおいて、前記計算が前記独立したコンピュータシステムのセット内のワーカコンピュータシステムにより正しく実行されることを検証するステップであり、前記計算は、少なくとも
評価鍵を生成し、
前記評価鍵を前記ワーカコンピュータシステムに提供し、
前記ワーカコンピュータシステムからプルーフを受信し、前記プルーフは前記評価鍵に少なくとも部分的に基づき、
検証鍵を生成し、
前記プルーフ及び前記検証鍵を使用して前記計算が正しいことを検証すること
により、乗算ゲートのセットを有する回路に基づく、ステップと、
を含む、コンピュータにより実現される方法。 - 前記検証鍵は、前記乗算ゲートへの入力及び前記乗算ゲートの出力に基づく、請求項1に記載のコンピュータにより実現される方法。
- 前記プルーフは、前記乗算ゲートの中間出力のセットに少なくとも部分的に基づく、請求項1又は2に記載のコンピュータにより実現される方法。
- 前記プルーフは、公開評価鍵に少なくとも部分的に基づく、請求項1乃至3のうちいずれか1項に記載のコンピュータにより実現される方法。
- 前記プルーフ及び前記検証鍵は、異なる群を生成する第1の生成元及び第2の生成元に少なくとも部分的に基づく、請求項1乃至4のうちいずれか1項に記載のコンピュータにより実現される方法。
- 前記プルーフの要素が前記評価鍵の要素と矛盾しないことを検証するステップ、をさらに含む請求項1乃至5のうちいずれか1項に記載のコンピュータにより実現される方法。
- 前記プルーフの要素が整合係数を使用して構築されていることを検証するステップ、をさらに含む請求項1乃至6のうちいずれか1項に記載のコンピュータにより実現される方法。
- 前記プルーフの項に対する可除性要件を検証するステップ、をさらに含む請求項1乃至7のうちいずれか1項に記載のコンピュータにより実現される方法。
- 前記ワーカコンピュータシステムは、前記回路の入力及び出力値に対応するI/O値のセットを提供する、請求項1乃至8のうちいずれか1項に記載のコンピュータにより実現される方法。
- 前記回路は、前記乗算ゲートへのその寄与をモデル化された1つ以上の加算ゲートを含む、請求項1乃至9のうちいずれか1項に記載のコンピュータにより実現される方法。
- 前記計算は、ビットコイントランザクション立証の一部である、請求項1乃至10のうちいずれか1項に記載のコンピュータにより実現される方法。
- 前記計算が正しいことを検証することは、少なくとも、
前記プルーフ、前記検証鍵、及びI/O値のセットを検証コンピュータシステムに提供し、
前記計算が正しいとの指標を前記検証コンピュータシステムから受信すること
により達成される、請求項1乃至11のうちいずれか1項に記載のコンピュータにより実現される方法。 - 前記検証コンピュータシステムはブロックチェーンノードである、請求項1乃至12のうちいずれか1項に記載のコンピュータにより実現される方法。
- システムであって、
プロセッサと、
前記プロセッサにより実行された結果として当該システムに請求項1乃至13のうちいずれか1項に記載のコンピュータにより実現される方法を実行させる実行可能命令を含むメモリと、
を含むシステム。 - コンピュータシステムのプロセッサにより実行された結果として前記コンピュータシステムに請求項1乃至13のうちいずれか1項に記載のコンピュータにより実現される方法を少なくとも実行させる実行可能命令を記憶した非一時的コンピュータ読取可能記憶媒体。
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)
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)
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)
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 |
-
2018
- 2018-10-29 EP EP18797158.5A patent/EP3707855A1/en active Pending
- 2018-10-29 US US16/762,461 patent/US20210377041A1/en active Pending
- 2018-10-29 WO PCT/IB2018/058432 patent/WO2019092542A1/en unknown
- 2018-10-29 WO PCT/IB2018/058434 patent/WO2019092544A1/en unknown
- 2018-10-29 KR KR1020207014203A patent/KR20200080265A/ko not_active Application Discontinuation
- 2018-10-29 SG SG11202004149UA patent/SG11202004149UA/en unknown
- 2018-10-29 CN CN202311496467.5A patent/CN117640170A/zh active Pending
- 2018-10-29 EP EP18796783.1A patent/EP3707852A1/en active Pending
- 2018-10-29 WO PCT/IB2018/058437 patent/WO2019092545A1/en unknown
- 2018-10-29 JP JP2020524532A patent/JP7208989B2/ja active Active
- 2018-10-29 CN CN201880073019.5A patent/CN111345005A/zh active Pending
- 2018-10-29 EP EP18796782.3A patent/EP3707871B1/en active Active
- 2018-10-29 CN CN201880072678.7A patent/CN111345004B/zh active Active
- 2018-10-29 SG SG11202004146WA patent/SG11202004146WA/en unknown
- 2018-10-29 EP EP18797157.7A patent/EP3707623A1/en active Pending
- 2018-10-29 JP JP2020524517A patent/JP2021502636A/ja active Pending
- 2018-10-29 US US16/762,471 patent/US11658801B2/en active Active
- 2018-10-29 JP JP2020524430A patent/JP7234229B2/ja active Active
- 2018-10-29 SG SG11202004147RA patent/SG11202004147RA/en unknown
- 2018-10-29 EP EP23216404.6A patent/EP4312403A3/en active Pending
- 2018-10-29 KR KR1020207014209A patent/KR20200086284A/ko not_active Application Discontinuation
- 2018-10-29 US US16/762,475 patent/US11635950B2/en active Active
- 2018-10-29 US US16/762,466 patent/US11575511B2/en active Active
- 2018-10-29 JP JP2020524541A patent/JP7221954B2/ja active Active
- 2018-10-29 WO PCT/IB2018/058433 patent/WO2019092543A1/en unknown
- 2018-10-29 KR KR1020207014108A patent/KR20200086282A/ko not_active Application Discontinuation
- 2018-10-29 EP EP22170376.2A patent/EP4092953A1/en active Pending
- 2018-10-29 SG SG11202004148PA patent/SG11202004148PA/en unknown
- 2018-10-29 KR KR1020207014213A patent/KR20200079503A/ko not_active Application Discontinuation
- 2018-10-29 CN CN201880072801.5A patent/CN111316595A/zh active Pending
- 2018-10-29 CN CN201880072692.7A patent/CN111406379A/zh active Pending
- 2018-11-01 CN CN201880072729.6A patent/CN111316594A/zh active Pending
- 2018-11-01 SG SG11202004153UA patent/SG11202004153UA/en unknown
- 2018-11-01 JP JP2020524561A patent/JP2021502747A/ja active Pending
- 2018-11-01 WO PCT/IB2018/058583 patent/WO2019092561A1/en unknown
- 2018-11-01 US US16/762,490 patent/US20210192514A1/en active Pending
- 2018-11-01 EP EP18800333.9A patent/EP3707856A1/en active Pending
- 2018-11-01 KR KR1020207014106A patent/KR20200086281A/ko not_active Application Discontinuation
- 2018-11-08 TW TW107139662A patent/TWI806918B/zh active
-
2020
- 2020-05-08 ZA ZA2020/02575A patent/ZA202002575B/en unknown
-
2023
- 2023-01-06 JP JP2023000947A patent/JP2023036962A/ja active Pending
- 2023-02-02 JP JP2023014319A patent/JP2023052834A/ja active Pending
- 2023-02-03 US US18/105,672 patent/US20230269070A1/en active Pending
- 2023-02-22 JP JP2023026258A patent/JP7477674B2/ja active Active
- 2023-04-03 US US18/130,373 patent/US20230318804A1/en active Pending
- 2023-04-13 US US18/134,276 patent/US20230318805A1/en active Pending
- 2023-10-05 JP JP2023173507A patent/JP2023182741A/ja active Pending
- 2023-10-12 JP JP2023176820A patent/JP2023179687A/ja active Pending
Patent Citations (4)
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)
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
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 |