JP2023036962A - ブロックチェーン上に検証鍵を記録するためのシステム - Google Patents
ブロックチェーン上に検証鍵を記録するためのシステム Download PDFInfo
- Publication number
- JP2023036962A JP2023036962A JP2023000947A JP2023000947A JP2023036962A JP 2023036962 A JP2023036962 A JP 2023036962A JP 2023000947 A JP2023000947 A JP 2023000947A JP 2023000947 A JP2023000947 A JP 2023000947A JP 2023036962 A JP2023036962 A JP 2023036962A
- Authority
- JP
- Japan
- Prior art keywords
- script
- computer
- blockchain
- verification key
- implemented method
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 136
- 238000013515 script Methods 0.000 claims abstract description 190
- 238000000034 method Methods 0.000 claims abstract description 66
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 230000015654 memory Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 abstract description 15
- 230000006870 function Effects 0.000 description 26
- 238000011156 evaluation Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000005065 mining Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000013598 vector Substances 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
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000006243 chemical reaction 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
- 230000001419 dependent effect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002452 interceptive effect Effects 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
- 238000005259 measurement Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000013259 porous coordination polymer Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 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
- 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
-
- 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
- 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/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/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)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】ブロックチェーン上での安全な転送及び交換を可能にする方法システム及び記憶媒体を提供する。【解決手段】方法は、ブロックチェーントランザクションに関連付けられるリディームスクリプトを取得するステップと、コマンドの第2セットと、複数の要素が検証鍵を集合的に形成し、1つ以上のサブセットが検証鍵の各要素を集合的に含む、前記複数の要素の1つ以上のサブセットと、コマンドの第1セット及び1つ以上の暗号ハッシュ値を含む第1スクリプトと、第2スクリプトを生成するコンピュータに関連付けられる識別子とを含む、第2スクリプトを生成するステップと、1つ以上の暗号ハッシュ値が検証鍵の1つ以上のサブセットに一致するという決定に関連して、コマンドの第1セット及び第2セットを実行することに部分的に基づいて、コンピュータが検証鍵へのアクセスを有することの証明書を生成するステップと、を含む。【選択図】図4
Description
本発明は、一般に、コンピュータ実装されるセキュリティ及び/又は検証技術に関する。また、ブロックチェーン機能を拡張又は強化するためのソリューション、より具体的には、匿名又はほぼ匿名のデジタルトランザクションを実装することにも関する。本発明は、完全性(プロトコルに正しく従う場合、正当な検証者は出力の有効性を確信することになる)、健全性(不正な証明者は、出力の確実性が真実であることを正当な検証者に確信させることはできない)及び/又はゼロ知識(出力が有効である場合、不正な検証者はこの事実以外の何も学習しない)の暗号的に検証可能な保証を利用し、かつ/又はそれらから利益を得ることができるプロトコルにおける使用に特に適しているが、これらに限定されない。本明細書で説明される様々なプロトコルは、ブロックチェーン上に検証鍵を記録するのに適していてよく、作業者(worker)は正しい(例えばクライアントによって発行された)検証鍵Vkの所有を証明することができる。本発明は、暗号技術及び数学技術を利用して、ブロックチェーンネットワーク上で行われる電子転送に関連してセキュリティを実施することができる。
本明細書において、「ブロックチェーン」という用語は、いくつかのタイプの電子的なコンピュータベースの分散台帳のいずれかを指してよい。これらは、コンセンサスベースのブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳及びそれらの変形を含む。最も広く知られているブロックチェーン技術の用途はビットコイン台帳であるが、他のブロックチェーンの実装が提案され、開発されている。便宜性及び例示の目的のために、ビットコインが、本明細書で説明される技術の有益な用途として参照され得るが、ビットコインは、本開示で説明される技術が適用され得る多くの用途の1つに過ぎない。しかしながら、本発明は、ビットコインブロックチェーンでの使用に限定されず、非商業的用途を含む代替的なブロックチェーン実装及びプロトコルも本発明の範囲内に含まれることに留意されたい。例えば本開示に記載される技術は、エンティティが正しい又は適切な検証鍵Vkの所有を証明することができる、エンティティの検証鍵の記録に関してビットコインと同様の制限を有する他のブロックチェーン実装を利用する利点を提供するであろう。本明細書に記載されるように、ビットコインは、Bitcoin Cash及びBitcoin Classicのような、任意のブロックチェーンベースのブロックチェーンネットワークを指すことに留意されたい。
ブロックチェーンは、ブロックにより構成される、コンピュータベースの非集中型の分散システムとして実装されるピアツーピア電子台帳であり、ブロックはトランザクション及び他の情報により構成され得る。いくつかの例において、「ブロックチェーントランザクション」は、データ及び条件のセットを含むフィールド値の構造化されたコレクションを符号化する入力メッセージを指し、この場合、条件のセットを満たすことは、フィールドのセットがブロックチェーンデータ構造に書き込まれるための前提条件である。例えばビットコインでは、各トランザクションは、ブロックチェーンシステムの参加者間のデジタル資産の制御の移転を符号化し、少なくとも1つの入力及び少なくとも1つの出力を含む、データ構造である。いくつかの実施形態において、「デジタル資産」は、使用権に関連付けられるバイナリデータを指す。デジタル資産の例は、ビットコイン、イーサ、ライトコインを含む。いくつかの実装において、デジタル資産の制御を移転することは、デジタル資産の少なくとも一部を第1エンティティから第2エンティティに再関連付けすることによって実行され得る。ブロックチェーンの各ブロックは、ブロックが一緒にチェーン化されることになり、その始めからブロックチェーンに書き込まれたすべてのトランザクションの永続的で変更不能なレコードを作成するように、以前のブロックのハッシュを含んでよい。
いくつかの例において、「スタックベースのスクリプト言語」は、様々なスタックベース又はスタック指向の実行モデル及びオペレーションをサポートするプログラミング言語を指す。すなわち、スタックベースのスクリプト言語は、スタックを利用してもよい。スタックでは、値をスタックの先頭(top)にプッシュすることができ、あるいはスタックの先頭からポップすることができる。スタックに対して実行される様々なオペレーションの結果、1つ以上の値を、スタックの先頭へプッシュすること又はスタックの先頭からポップすることになり得る。例えばOP_EQUALオペレーションは、スタックから上位2つのアイテムをポップし、それらを比較し、結果(例えば等しい場合は1、等しくない場合は0)をスタックの先頭にプッシュする。OP_PICKのようにスタックに対して実行される他のオペレーションは、スタックの先頭以外の位置からアイテムを選択することを可能にすることがある。本実施形態のいくつかで用いられるいくつかのスクリプト言語では、少なくとも2つのスタック、すなわち、メインスタックと代替スタックが存在し得る。スクリプト言語のいくつかのオペレーションは、あるスタックの先頭から別のスタックの先頭にアイテムを移動させることができる。例えばOP_TOALTSTACKは、メインスタックの先頭から代替スタックの先頭に値を移動させる。スタックベースのスクリプト言語は、場合によっては、厳密な後入先出(LIFO)方式のオペレーションのみに限定されないことに留意されたい。例えばスタックベースのスクリプト言語は、スタック内のn番目のアイテムを先頭にコピー又は移動させるオペレーション(例えばそれぞれ、ビットコインにおけるOP_PICK及びOP_ROLL)をサポートしてもよい。スタックベースのスクリプト言語で書かれたスクリプトは、ベクトル、リスト又はスタックのような任意の適切なデータ構造を使用して実装することができる論理スタック上にプッシュされ得る。
トランザクションがブロックチェーンに書き込まれるためには、「検証(validate)」されなければならない。ネットワークノード(マイニングノード)は、各トランザクションが有効であることを保証するための作業を実行し、無効なトランザクションはネットワークから拒絶される。ノードは、他のノードとは異なる有効性の標準を有することができる。ブロックチェーンの有効性はコンセンサスベースであるので、トランザクションが有効であることに大多数のノードが同意した場合、トランザクションは有効であるとみなされる。ノードにインストールされているソフトウェアクライアントは、UTXOのロッキングスクリプト及びアンロッキングスクリプトを実行することにより、部分的に未使用トランザクション(UTXO:unspent transaction)を参照するトランザクションに対するこの検証作業を実行する。ロッキングスクリプト及びアンロッキングスクリプトの実行がTRUEに評価され、適用可能である場合に他の検証条件が満たされる場合、トランザクションはノードによって検証される。検証されたトランザクションは、他のネットワークノードに伝搬され、そこで、マイニングノードは、トランザクションをブロックチェーンに含めるように選択することができる。したがって、トランザクションがブロックチェーンに書き込まれるためには、i)トランザクションは、該トランザクションを受け取った最初のノードによって検証されなければならず、トランザクションが検証された場合、ノードはトランザクションをネットワーク内の他のノードに中継し;ii)トランザクションは、マイニングノードによって構築された新しいブロックに追加されなければならず;iii)マイニングされなければならない、すなわち、過去のトランザクションの公開台帳に追加されなければならない。トランザクションを実質的に不可逆にするために、十分な数のブロックがブロックチェーンに追加されると、トランザクションは確認されたとみなされる。
ブロックチェーン技術は、暗号通貨実装の使用について最も広く知られているが、デジタル起業家達は、新たなシステムを実装するために、ビットコインが基づいている暗号セキュリティシステムと、ブロックチェーン上に格納することができるデータとの双方の使用を探求し始めている。暗号通貨の領域に限定されない自動化タスク及びプロセスにブロックチェーンを使用することができれば非常に有利であろう。そのようなソリューションは、それらの用途はより多方面にわたるが、ブロックチェーンの利点(例えば永続性、イベントの改ざん防止レコード、分散処理等)を利用することができるであろう。
本開示は、1つ以上のブロックチェーンベースのコンピュータプログラムの技術的側面を説明する。ブロックチェーンベースのコンピュータプログラムは、ブロックチェーントランザクション内に記録される機械読取可能で実行可能なプログラムであってよい。ブロックチェーンベースのコンピュータプログラムは、結果を生成するために入力を処理することができ、次いで、それらの結果に依存してアクションを実行させることができるルールを含んでよい。現在の研究の1つの分野は、「スマートコントラクト」の実装のためのブロックチェーンベースのコンピュータプログラムの使用である。自然言語で書かれる伝統的な契約とは異なり、スマートコントラクトは、機械読み取り可能な契約又は合意の条件の実行を自動化するように設計されるコンピュータプログラムであってよい。
ブロックチェーンに関連する関心のある別の領域は、ブロックチェーンを介して実世界のエンティティを表し、転送するための「トークン」(又は「カラードコイン」)の使用である。潜在的に機密又は秘密のアイテムを、識別可能な意味又は値を有しないトークンによって表すことができる。したがって、トークンは、実世界のアイテムがブロックチェーンから参照されることを可能にする識別子として機能する。
実施形態において、特定のエンティティとの対話を、スマートコントラクトの特定のステップで符号化することができるが、スマートコントラクトは、そうでなければ、自動的に実行され、自己強制される可能性がある。それは、機械読み取り可能かつ実行可能である。いくつかの例では、自動実行は、UTXOの移転を可能にするために成功裏に実行されるスマートコントラクトの実行を指す。なお、このような例では、UTXOの移転送を可能にする「エンティティ」は、何らかの秘密の知識を証明することを必要とされることなく、アンロッキングスクリプトを作成することができるエンティティを指すことに留意されたい。言い換えると、データのソース(例えばアンロッキングトランザクションを作成したエンティティ)が暗号秘密(例えば秘密の非対称鍵、対称鍵等)へのアクセスを有することを確かめることなく、アンロッキングトランザクションを検証することができる。また、このような例では、自己強制とは、制約に応じてアンロッキングトランザクションを強制させているブロックチェーンネットワークの検証ノードを指す。いくつかの例では、UTXOを「アンロック」すること(UTXOの「消費(spending)」としても知られる)は、技術的な意味で使用されており、UTXOを参照して、有効として実行するアンロッキングトランザクションを作成することを指す。
ブロックチェーントランザクションの出力は、ロッキングスクリプトと、ビットコイン等のデジタル資産の所有権に関する情報を含む。ロッキングスクリプトは、障害(encumbrance)とも呼ばれることがあり、UTXOを移転するために満足する必要がある条件を指定することにより、デジタル資産を「ロック」する。例えばロッキングスクリプトは、関連するデジタル資産をアンロックするために、特定のデータがアンロッキングスクリプトで提供されることを必要とする可能性がある。ロッキングスクリプトは、ビットコインでは「scriptPubKey」としても知られる。デジタル資産をアンロックするためにデータの提供を当事者に要求する技術は、ロッキングスクリプト内部にデータのハッシュを埋め込むことを伴う。しかしながら、これは、ロッキングスクリプトが作成される時点でデータが未定である(例えば未知で固定されていない)場合に問題を提示する。
本発明は、検証方法/システムとして、かつ/又はブロックチェーントランザクションの検証を制御するための制御方法/システムとして説明され得る。いくつかの実施形態では、検証されたブロックチェーントランザクションの結果、ブロックチェーン上のトランザクションの記録をもたらし、これは、いくつかの用途では、ブロックチェーンを介したデジタル資産の交換又は移転をもたらすことがある。デジタル資産は、ブロックチェーンによって管理されるリソースの単位であってよい。デジタル資産は、実施形態によっては、暗号通貨として使用され得るが、デジタル資産は、実施形態によっては、他のコンテキストにおいて追加的又は代替的に使用可能であるように企図される。本発明は、デジタル資産の制御に適用可能であるが、本質的に技術的であり、デジタル資産の移転を必ずしも伴わずに、ブロックチェーンデータ構造を利用する他のコンテキストで使用できることに留意されたい。
したがって、ブロックチェーン上での安全な転送及び交換を可能にするように構成されるシステム及び方法を提供することが望ましい。好ましくは、これは公開ブロックチェーンであるが、必ずしもそうではない。(例えば)ブロックチェーントランザクションにおけるデジタル資産の受信者に関連する情報のような、転送/通信に関する情報が不明瞭である、匿名のデジタル転送及び/又は通信を実装することが更に望ましい。プロトコルに従って、適切な資格証明書が提示されない限り、メタデータを読むこと及び/又は修正することができないように、ブロックチェーン上のメタデータを読む/書くための資格証明書権限を提供することが更に望ましい。したがって、本発明は、強化された検証及び/又はセキュリティを提供する。
このような改善されたソリューションが、現在では考案されている。
したがって、本発明によれば、添付の特許請求の範囲で定義されるようなシステム及び方法が提供される。
本発明は、セキュリティ方法/システムとして説明され得る。あるいはまた、本発明は、検証方法/システムとして説明され得る。本発明は、完全性、健全性及び/又はゼロ知識の暗号的に検証可能な保証に関連する(がこれに限定されない)利点を提供することができる。あるいはまた、本発明は、エンティティが正しい又は適切な検証鍵Vkの所有を証明することができる、ブロックチェーンにおける検証鍵の記録を可能にするか又は少なくとも容易にすることができる。あるいはまた、本発明は、分散計算の性能を制御するための制御メカニズムを提供し、効率及びセキュリティを向上させるものとして説明され得る。
本発明によると、コンピュータ実施方法が提供されてよく、該コンピュータ実施方法は:ブロックチェーントランザクションに関連付けられるリディームスクリプト(redeem script)を取得する取得ステップであって、第1スクリプトが、コマンドの第1セットと、1つ以上の暗号ハッシュ値とを含む取得ステップと;コマンドの第2セットと、複数の要素の1つ以上のサブセットであって、複数の要素が検証鍵を集合的に形成し、1つ以上のサブセットが検証鍵の各要素を集合的に含む、前記複数の要素の1つ以上のサブセットと、第1スクリプトと、第2スクリプトを生成するコンピュータシステムに関連付けられる識別子とを含む、第2スクリプトを生成する生成ステップと;1つ以上の暗号ハッシュ値が検証鍵の1つ以上のサブセットに一致するという決定に関連して、コマンドの第1セット及びコマンドの第2セットを実行することに少なくとも部分的に基づいて、コンピュータシステムが検証鍵へのアクセスを有することの証明書を生成するステップと;を含む。
複数の要素のうちのある要素は、楕円曲線上の点であってよい。
コマンドの第1セット及びコマンドの第2セットは集合的に、検証鍵の1つ以上のサブセットのうちのあるサブセットに少なくとも部分的に基づいて、1つ以上の暗号ハッシュ値のうちの第1暗号ハッシュ値がハッシュ出力に一致するかどうかを判断する命令を含んでよい。
ハッシュ出力は、SHA-256及びRIPEMD-160のような暗号ハッシュアルゴリズムを使用して、例えばSHA-256と、次いでRIPEMD-160を使用して入力を連続的にハッシュすることによって生成されてよい。
好ましくは、方法は、検証鍵の1つ以上のサブセットを識別することと、検証鍵の1つ以上のサブセットの各サブセットについて、1つ以上の暗号ハッシュ値は、各対応する暗号ハッシュ値を含む。
好ましくは、方法は、生成された証明書を検証することを条件として、トランザクションによって妨げられた(encumbered)デジタル資産の制御をコンピュータシステムに移転するステップを更に含んでよい。
好ましくは、方法は、第1スクリプトを第2コンピュータシステムから取得するステップを更に含んでよく、第2コンピュータシステムは、デジタル資産の少なくとも一部を寄与した。
トランザクションは、ビットコインベースのプロトコルに従うP2SHトランザクションのような、Pay-to-Script-Hash(P2SH)トランザクションであってよい。
好ましくは、検証鍵の少なくとも一部は、512バイト以上のサイズであり、520以下のサイズである。場合によっては、検証鍵のすべてが、512バイト以上のサイズであり、520以下のサイズである。
好ましくは、第1スクリプトは、58バイト以上のサイズであり、104バイト以下のサイズであり、第2スクリプトは、1628バイト以上のサイズであり、1650バイト以下のサイズである。
トランザクションは、ブロックチェーンプロトコルに従う標準のトランザクションであってよい。
1つ以上のサブセットはちょうど1つのサブセットであってよく、1つのサブセットは検証鍵を含む。
第1スクリプトは、コンピュータシステムに関連付けられる公開鍵を更に含んでよく、コンピュータシステムに関連付けられる識別子は、公開鍵に対応する秘密鍵を使用して生成されるデジタル署名であってよく、コンピュータシステムが検証鍵へのアクセスを有することの証明書は、少なくとも部分的にデジタル署名及び公開鍵に更に基づいてよい。
また、プロセッサと、該プロセッサによる実行の結果として、システムに、特許請求に係る方法のいずれかを実行させる実行可能命令を含むメモリとを含むシステムを提供することが望ましい。
また、コンピュータシステムのプロセッサによる実行の結果として、コンピュータシステムに、特許請求に係る方法のいずれかを少なくとも実行させる実行可能命令を格納している非一時的コンピュータ読取可能記憶媒体を提供することが望ましい。本発明の方法に関連して上述される任意の特徴は、対応システムにも適用され得る。
本発明のこれら及び他の態様は、本明細書で説明される実施形態から明らかになり、実施形態に関連して解明されるであろう。本発明の実施形態は、次に単なる例示として、添付の図面に関連して説明される:
まず、本開示の一実施形態によるブロックチェーンに関連付けられる例示のブロックチェーンネットワーク100示す図1を参照する。本実施形態では、例示のブロックチェーンネットワーク100は、ピアツーピア分散電子デバイスとして実装されるブロックチェーンノードを含み、その各々が、少なくとも部分的にノード102のオペレータ間で合意されるブロックチェーンプロトコルに従うオペレーションを実行するソフトウェア及び/又はハードウェアのインスタンスを実行する。いくつかの例において、「ノード」は、ブロックチェーンネットワークの間で分散されるピアツーピア電子デバイスを指す。ブロックチェーンプロトコルの一例がビットコインプロトコルである。
いくつかの実施形態において、ノード102は、(例えばデータセンター内のサーバによって、クライアントコンピューティングデバイス(例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン等)によって、コンピューティングリソースサービスプロバイダの分散システム内の複数のコンピューティングデバイスによって、あるいは図8のコンピューティングデバイス800のような任意の適切な電子クライアントデバイスによって)任意の適切なコンピューティングデバイスから構成され得る。いくつかの実施形態において、ノード102は、トランザクション104のように提案されたトランザクションを表すデータメッセージ又はオブジェクトを受け取るための入力を有する。ノードは、いくつかの実施形態では、ノードが維持する情報について、例えばトランザクション104の状態の情報についてクエリ可能である。
図1に示されるように、ノード102のいくつかは、ノード102のうちの1つ以上の他のノードに通信可能に結合される。このような通信結合は、有線又は無線通信のうちの1つ以上を含むことができる。実施形態において、ノード102は各々、ブロックチェーン内のすべてのトランザクションの「台帳」の少なくとも一部を維持する。このようにして、台帳は分散台帳となる。台帳に影響を与えるノードによって処理されるトランザクションは、台帳の完全性が維持されるように、他のノードのうちの1つ以上によって検証可能である。
どのノード102が他のどのノードと通信することができるかに関しては、メッセージが、ブロックチェーンプロトコルが転送すべきことを示すメッセージであると想定して、ノード間で渡されるメッセージが例示のブロックチェーンネットワーク100全体(又はその何らかの重要な部分)に伝搬することができるように、例示のブロックチェーンネットワーク100内のノードの各々が、ノード102のうちの1つ以上の他のノードと通信することができることで十分である。1つのそのようなメッセージは、ノード102のうちの1つ、例えばノード102Aによる、提案されたトランザクションの公開であってよく、これは、次いでパス106のようなパスに沿って伝搬するであろう。別のそのようなメッセージは、ブロックチェーンに含めるために提案された新たなブロックの公開であってよい。
一実施形態において、ノード102のうちの少なくともいくつかは、暗号問題を解決することのように複雑な計算を実行するマイニングノードである。暗号問題を解決するマイニングノードは、ブロックチェーンのための新たなブロックを作成し、その新たなブロックをノード102のうちの他のノードにブロードキャストする。ノード102のうちの他のノードは、マイニングノードの作業を確認し、確認時に、(例えばブロックチェーンの分散台帳にブロックを追加することによって)ブロックをブロックチェーン内に受け入れる。いくつかの例では、ブロックはトランザクションのグループであり、しばしば、タイムスタンプと前のブロックの「フィンガープリント」(例えばハッシュ)でマークされる。このようにして、各ブロックは前のブロックにリンクされるようになってよく、それによりブロックチェーン内のブロックをリンクする「チェーン」が生成される。実施形態において、有効なブロックは、ノード102の合意によってブロックチェーンに追加される。また、いくつかの例では、ブロックチェーンは、検証されたブロックのリストを含む。
一実施形態において、ノード102のうちの少なくともいくつかは、本開示で説明されるように、トランザクションを検証する検証ノードとして動作する。いくつかの例では、トランザクションは、デジタル資産(例えば複数のビットコイン)の所有権のプルーフと、デジタル資産の所有権/制御を受け入れる又は移転するための条件を提供するデータを含む。いくつかの例において、「アンロッキングトランザクション」は、前のトランザクションのUTXOによって示されるデジタル資産の少なくとも一部を、ブロックチェーンアドレスに関連付けられるエンティティに再関連付けする(例えば所有権又は制御を移転する)ブロックチェーントランザクションを指す。いくつかの例において、「前のトランザクション」は、アンロッキングトランザクションによって参照されているUTXOを含むブロックチェーントランザクションを指す。いくつかの実施形態では、トランザクションは、所有権又は制御が移転され得る(「アンロックされる」)前に満たさなければならない条件で該トランザクションを妨げる「ロッキングスクリプト」を含む。
いくつかの実施形態では、ブロックチェーンアドレスは、デジタル資産の少なくとも一部の制御が移転/再関連付けされているエンティティに関連付けられる英数字の文字列である。いくつかの実施形態で実装されるいくつかのブロックチェーンプロトコルでは、エンティティに関連付けられる公開鍵とブロックチェーンアドレスとの間に1対1の対応が存在する。いくつかの実施形態において、トランザクションの検証は、ロッキングスクリプト及び/又はアンロッキングスクリプトで指定された1つ以上の条件の検証を含む。トランザクション104の検証が成功すると、検証ノードはトランザクション104をブロックチェーンに追加し、それをノード102に分配する。
本発明の例示的な適用に関連して本明細書で説明されるシステム及び方法は、ブロックチェーンシステムにおけるロッキングトランザクションの実行に関する。ロッキングトランザクションは、アンロッキングトランザクションを検証することができる制約を初期化するトランザクションを指してよい。本発明は、いくつかの例示的な用途において、トランザクションを安全に列挙して交換するために使用され得る。スマートコントラクトのコンテキストでは、作業者によって公開された回路の正しい実行のプルーフの公開記録(例えばブロックチェーンに記録される)と検証鍵を有することが有利である可能性があり、それによって、誰か(例えばブロックチェーンのノード)が計算とプルーフの有効性を検証することを可能にする。しかしながら、ブロックチェーン上にデータの大きなブロック(例えば複数の楕円曲線点を含み得る大きな鍵)を記録することには課題がある。例えばビットコインベースのブロックチェーンネットワークでは、標準トランザクションを利用するプロトコルは、全体として1650バイト以下のサイズのロッキングスクリプト及びアンロッキングスクリプトに制約される可能性があり、リディームスクリプト(redeem script)(利用される場合)は、520バイト以下のサイズに制限される可能性がある。
検証可能な計算は、計算のプルーフの生成を可能にする技術である。例示的な実施形態では、このような技術をクライアントによって利用して、入力xに対する関数fの評価を、本明細書で作業者と呼ばれる別のコンピューティングエンティティにアウトソースすることができる。場合によって、クライアントは計算上制限されており、クライアントは関数の評価を実行することが実行不可能となる(例えばクライアントが利用可能な計算リソースを使用する計算の期待されるランタイムは、最大許容しきい値を超える)が、そうである必要はなく、クライアントは、一般に言うと、計算ランタイムや計算コスト(例えば関数の評価を実行する計算リソースを割り当てるための経済的コスト)等の任意の適切な基準に基づいて、入力xに対する関数fの評価を委任してよい。
作業者は、一実施形態において、図1及び図8に関連して説明されるもののような、本開示の他の箇所でより詳細に説明されるブロックチェーンノードのような任意の適切なコンピューティングエンティティである。一実施形態では、作業者(例えばブロックチェーンノード)は、入力xに対して関数fを評価し、上述のクライアント及び/又はブロックチェーンネットワークの他のノードのような他のコンピューティングエンティティによって確かめることができる出力yと出力yの正当性のプルーフπを生成する。プルーフは、引数とも呼ばれることがあるが、実際の計算よりも速く確かめることができ、したがって、上述の作業者によって生成された出力の正当性を決定するために、入力xに対して関数fを再計算する代わりに、プルーフの正当性を確かめることによって、計算オーバーヘッドを低減することができる(例えば電力オーバーヘッドと、電源投入及び実行する計算リソースに関連付けられるコストを低減する)。ゼロ知識検証可能計算では、作業者は、該作業者が特定の特性を有する入力を知っているという証明書をクライアントに提供する。
知識のゼロ知識証明(zero-knowledge proof of knowledge)の有効な変形は、zk-SNARK(Succcinct Non-interactive ARgument of Knowledge)である。一実施形態では、全てのペアリングベースのzk-SNARKsは、作業者が一般的なグループオペレーションを使用して複数のグループ要素を計算し、検証者が複数のペアリング積方程式を使用してプルーフをチェックするプロセスを含む。一実施形態では、線形対話型証明は有限のフィールドにわたって機能し、作業者及び検証者のメッセージは、フィールド要素のベクトルを決定するために使用可能な情報を含むか、符号化するか又は他の方法で含む。
一実施形態において、本明細書で説明されるシステム及び方法は、ブロックチェーンのマイニングノードが、計算(例えば入力xに対する関数fの評価)を1回実行し、出力の正当性を確かめるために使用できるプルーフを生成することを可能にし、ここで、プルーフの正当性を評価することは、関数を評価することよりも計算コストが低い。このコンテキストでは、オペレーション及びタスクのコスト(すなわち、どのくらい高価か)は、オペレーション又はタスクを実行する計算の複雑さを指し得る。一実施形態では、計算の複雑さは、ソートアルゴリズムを実行する平均計算コスト又は最悪ケースの計算コストを指す-例えばヒープソートアルゴリズム及びクイックソートアルゴリズムは両方ともo(n logn)の平均計算コストを有するが、クイックソートは、o(n2)の最悪ケースの計算コストを有し、一方、ヒープソートは、o(n logn)の最悪ケースの計算コストを有する。一実施形態では、入力xにおける関数fを評価する平均計算コスト及び/又は最悪ケースの計算コストは、プルーフの正当性を評価するコストよりも悪い。したがって、本明細書で説明されるシステム及び方法の使用は非常に有利であり、例えばより計算コストの高いコントラクトを実行することを可能にし得る。なぜなら、そのようなコントラクトは、そのようなコンタクトはブロックチェーンを比例的に検証するために必要な時間を増加させないからである。更なる利点は、検証者システムの電力消費の低減を含んでよく、それにより、検証者コンピュータシステムの効率を改善し、プルーフの正当性を評価する際に、そのような検証者コンピュータシステムを実行することに関連付けられるエネルギーコストを低減することができる。現在、スマートコントラクトはすべてのノードにおいて実行されて、検証されなければならない-この制約はスマートコントラクトの複雑さを制限する。本明細書で説明される方法及びシステムを使用して、正当性のプルーフを生成するためにコントラクトを一度実行することによってブロックチェーンの効率を改善し、作業者によって提供される正当性のプルーフ及びクライアントによって提供される検証鍵に基づいて、ブロックチェーンのすべてのノードがコントラクトの有効性を確かめることができるシステムを実装することができる。このようにして、ブロックチェーンのノードによって集合的に実行することができ、かつ/又は計算コストがより高いスマートコントラクトの計算を可能にするスマートコントラクトのスループットを増加させることによって、ブロックチェーンの効率が改善される。
一実施形態では、検証鍵Vk又はその一部は、ゼロ知識プロトコルのセットアップ段階で生成され、かつプルーフπとともに使用される、公開パラメータ及び入力/出力データから抽出でき、作業者によって提供される正当性計算の主張されたプルーフ(alleged proof)を確かめる。例えば上記及び下記でより詳細に説明されるように、ロッキングスクリプトを許容するシステム及び方法は、検証鍵Vkを変更から保護し、プルーフπの有効性をチェックし、トランザクション検証中にブロックチェーン上でゼロ知識プロトコルの実行を可能にする。したがって、本開示は、ブロックチェーン上で検証鍵を記録するのに適したシステム及び方法を提示し、この場合、作業者は、オペレーションのセットの実行(例えばスマートコントラクトの実行)のためにデジタル資産を取り返すために、(例えばクライアントによって発行された)正しい検証鍵Vkの所有を証明することができる。
図2は、様々な実施形態に従って、プロトコルを実装するために利用され得るコンピューティング環境200を示している。プロトコルは、正当性のプルーフを格納し、「correct-by-construction」暗号手法とスマートコントラクトを組み合わせるために、ブロックチェーン技術を用いて実装されてよい。一実施形態では、公的な検証可能な計算スキームは、3つ段階、すなわちセットアップ段階、計算段階及び検証段階を含む。
セットアップ段階は、計算タスクの実行をアウトソースするためにプロセスの一部として実行され得る。クライアントは、以下で言及されるように、計算タスクの実行を作業者に委任する顧客又はクライアントコンピュータシステムのようなエンティティを指してよく、これは、異なるコンピュータシステムであってもよい。クライアントは、一般的に言うと、これらに限定されないが、計算リソース、計算リソースの欠如、タスクを実行するためにクライアントコンピュータシステムを利用することに関連付けられる経済的コスト、タスクを実行するためにクライアントコンピュータシステムを利用することに関連付けられるエネルギーコスト(例えば電力のためにバッテリに依存するモバイルデバイス又はラップトップは、作業者を利用して計算集約的タスクを実行し、それにより、電力を節約し、バッテリ駆動型デバイスの使用を延長し得る)等の様々な理由により、計算タスクの実行を委任してよい。
一実施形態において、セットアップ段階は、クライアント、顧客、組織の従業員又は他の任意の適切なエンティティが、正確な意味を有する正式な言語でコントラクトを書くことを含む。コントラクトは、C又はJava(登録商標)のような高水準プログラミング言語で書かれてもよい。一般的に言うと、コントラクトは、コンピュータシステムによって操作できるフォーマットに変換される又は変換することができる任意の言語又はシンタックスで表現され得る。一実施形態では、限定された目的で、ドメイン固有の言語がタイプセーフティを提供してよく、制限された表現度が利用されてよい。生成されるソースコードは、コントラクトの正確な説明であってよい。
コンパイラ202は、コンピュータシステムの1つ以上のプロセッサによって実行されると、システムにソースコード206を入力として取らせ、回路を生成する実行可能なコードを含む、任意のハードウェア、ソフトウェア又はそれらの組合せであってよい。コンパイラ202は、バイナリコードのような機械読取可能フォーマットにコンパイルされた命令に基づいて命令を実行又は実施するコンピュータプログラムを指してよい。コンパイラ202が図示されているが、インタプリタ、アセンブラ及び他の適切なソフトウェア及び/又はハードウェアコンポーネントを利用してソースコードを回路に変換してもよいことに留意されたい。一実施形態では、回路は、フィールドFから値を運び、論理及び/又は算術ゲートに接続するワイヤを備える算術回路である。一実施形態では、回路Cは、システムによって使用されて、元の回路Cの完全な説明を提供する多項式のセットを含む二次プログラムQ 208を生成する。
一実施形態において、コンパイラ202は、これらに限定されないが、プリプロセッサ命令、スタティックイニシャライザ、グローバル及びローカル関数、ブロックスコープ変数、アレイ、データ構造、ポインタ、関数呼び出し、関数演算子(例えばファンクタ)、条件及びループ、算術及びビットワイズのブール演算子を含む、C又はJava(登録商標)といったプログラミング言語の実質的なサブセットを認識することができる。一実施形態において、コンパイラ202は、プログラミング言語の規格によるコマンドのセット全体はサポートしない(これは、場合によっては、再帰的アルゴリズムを禁止することのように、特定のタイプのアルゴリズムがスマートコントラクトで実行されることを防止するよう意図されることがある)。一実施形態において、コンパイラは、ソースコードの表現を算術ゲート言語に拡張し、算術回路を生成する。回路の実装は、過去に、「ZERO-Knowledge Contingent Payments Revisited:Attacks and Payments for Services」においてCampanelli,M.等(2017)により、「Circuits of Basic Functions Suitable For MPC and FHE」において、Tillich,S.及びSmart,Bにより考えられている。算術回路は、コンパイラ202又は他の任意の適切なハードウェア、ソフトウェア又はそれらの組合せ(例えば図2に図示されていないソフトウェアモジュール)によって、二次算術問題(QAP:Quadratic Arithmetic Problem)を構築するために利用されてよい。二次プログラム(quadratic program)は、一実施形態に従って、クライアント(例えば鍵生成及び検証)及び作業者(例えば計算及びプルーフ生成)のための暗号ルーチンのセットにコンパイルされる。いくつかの実施形態では、英国特許出願第1718505.9号に記載されるような算術回路最適化技術が、労働者がスマートコントラクトの結果を決定するために必要なリソースを減らすために利用されてよい。
一実施形態では、鍵生成器204は、コンピュータシステムの1つ以上のプロセッサによって実行されると、システムに二次プログラムを形成する評価鍵及び検証鍵を生成させる実行可能コードを含むハードウェア、ソフトウェア又はそれらの組合せである。二次プログラムとしての計算を符号化するための技術は、Gennaro,R.等(2013)による「Quadratic Span Programs and Succinct NIZKs without PCPs」において考えられている。一実施形態では、二次算術問題(QAP) Qは、フィールドF上の回路Cを符号化し、m+1多項式のセットを含む:
V={vk(x)},W={wk(x)},Y={yk(x)}
ここで、0≦k≦mである。ターゲット多項式t(x)も定義される。Fのn個の要素を入力として取り、n'個の要素を出力とする関数fとし、N=n+n'を所与とすると、Qは、{c1,...,cN}∈FNがfの入力と出力のグループの有効な割り当てであり、係数のリスト{cN+1,...,cm}が存在する場合、t(x)がp(x)を除算するように、fを計算する:
したがって、実施形態においてh(x)・t(x)=p(x)のような何らかの多項式h(x)が存在しなければならない。Qのサイズはmであり、その次数(degree)はt(x)の次数である。
V={vk(x)},W={wk(x)},Y={yk(x)}
ここで、0≦k≦mである。ターゲット多項式t(x)も定義される。Fのn個の要素を入力として取り、n'個の要素を出力とする関数fとし、N=n+n'を所与とすると、Qは、{c1,...,cN}∈FNがfの入力と出力のグループの有効な割り当てであり、係数のリスト{cN+1,...,cm}が存在する場合、t(x)がp(x)を除算するように、fを計算する:
一実施形態では、算術回路のQAPを構築することは、回路内の各乗算ゲートgに対して、任意のルートrg∈Fを選択することと、
となるようにターゲット多項式を定義することとを含む。一実施形態では、インデックスk∈{1...m}は、回路の各入力及び乗算ゲートからの各出力に関連付けられる。Vにおける多項式は、各ゲートへの左入力を符号化し、Wは各ゲートへの右入力を符号化し、Yは出力を符号化する。例えばk番目のワイヤがゲートgへの左入力の場合、vk(rg)=1であり、そうでなければvk(rg)=0である。したがって、特定のゲートg及びそのルートrgについて、前述の式を次のように簡略化することができる:
ゲートの出力値は、その入力の積に等しい。可分性チェックは、p(rg)=0となるように、t(x)の各ゲートgとルートrgに対して1つずつ、deg(t(x))分離チェック(separate checks)に分解される。加算ゲートと乗算定数ゲート(multiplication-by-constant gates)はQAPのサイズ又は次数に寄与しない。
一実施形態では、QAPは、フィールドFp上で定義され、ここで、pは、大きい素数(large prime)である。一実施形態では、Fp上のQAPが、加算及び乗算モジュロpに関して表すことができる任意の関数を効率的に計算することが望ましい。算術分割ゲートは、[0,2k-1]内であることが知られている算術ワイヤa∈Fpをk個のバイナリ出力ワイヤに変換するよう設計されることがある。したがって、ブール関数は、算術ゲートを用いて表現できることになる。例えばNAND(a,b)=1-abである。各埋め込みブールゲートには1つの乗算演算のみかかる。さらに、分割(split)のような新しいゲートは、スタンドアロンとして定義でき、他のゲートとともに構成できる。[0,2k-1]内にあることが知られている入力a∈Fpを所与として、分割ゲートは、ΣkΣ2i-1ai=aのようなaの2進数a1,...,akを保持する、k個のワイヤを出力し、各aiは0又は1のいずれかである。
最終的に、すべての証明者及び検証者によって使用される公開パラメータは、セットアップ段階の一部としてシステムによって生成される。評価鍵EK及び検証鍵VKは、クライアントによって選択された秘密値を使用して導出されることに留意されたい。鍵生成器204は、鍵生成アルゴリズムに関連して二次算術プログラム(QAP)を利用して、評価鍵EK210及び検証鍵VK212を生成することができる。
一実施形態では、計算タスクを実行することは、作業者による入力216に対する関数の計算(すなわち、f(x)を評価するプロセス)を含む。実施形態において、作業者は、クライアントが計算タスクを委任することができる任意の適切なコンピュータシステムである。入力216は、一実施形態では、作業者に関連付けられる秘密鍵を使用して生成されたデジタル署名のような、作業者の身元を証明する情報を含む。一実施形態では、作業者は、成功した計算の結果として、クライアントがデジタル資産を転送するコンピュータシステムである。クライアントは、一実施形態において、入力x及び評価鍵EKを作業者に提供し、作業者は、計算ルーチンに対して評価モジュール214を使用して、出力yを計算し(すなわち、y=f(x)であり、入力はxであり、関数はfである)、評価鍵EK210を使用して、正当性のプルーフ218を生成する。評価モジュールは、一実施形態では、コンピュータシステムの1つ以上のプロセッサによって実行されると、コンピュータシステムに、QAP208の内部回路ワイヤの値を評価させ、QAPの出力yを生成させる命令を含むハードウェア及び/又はソフトウェアである。
一実施形態では、二次プログラムの各多項式vk(x)∈Fは、双線形グループ内の要素gvk(s)にマッピングされ、ここで、sは、クライアントによって選択された秘密値であり、gは、グループの生成器であり、Fは、gの離散対数のフィールドである。一実施形態では、所与の入力に対して、作業者は回路を評価して、二次プログラムの係数ciに対応する内部回路ワイヤの出力及び値を得る。したがって、作業者は、v(s)=Σk∈{m}ck・vk(s)を評価してgv(s)を取得し;w(s)及びy(s)を計算し;h(x)=p(x)/t(x)=Σdhi・xiを計算し;評価鍵内のhi及びgs(i)項を使用してgh(s)を計算する。一実施形態では、正当性のプルーフ218は、(gv(s)、gw(s)、gy(s)、gh(s))を含み、検証者は双線形マップを使用して、p(s)=h(s)・t(s)をチェックする。一実施形態では、プルーフπは、後に使用するためにブロックチェーン222上に格納されるか、あるいは証明者がこれらの各々と別々に対話することを必要とせずに、複数の当事者によって確認され得る。一実施形態では、正当性のプルーフの回路ストレージの評価は、トランザクションのロッキングスクリプトによって妨げられているリソース(例えばデジタル資産)をアンロックするために実行され得る。
一実施形態では、プルーフπはブロックチェーンネットワークにブロードキャストされ、検証者220はプルーフを検証するために使用される。一実施形態では、検証者220は、ブロックチェーンのノードのような計算エンティティである。場合によって、プルーフを確認するコンピューティングエンティティは、評価鍵EK及び検証鍵VKを生成する同じコンピューティングエンティティであることに更に留意されたい。一実施形態では、ブロックチェーンのノードは、検証鍵VKとプルーフπを使用して支払いトランザクションを検証することができ、確認が成功した場合にコントラクトを検証することができる。プロトコルの1つの要件は、検証鍵VKを知っているとしても、作業者は不正確なプルーフを提供できないことである。したがって、このプロトコルでは、共通参照文字列(CRS:common reference string)は、少なくとも評価鍵EK及び検証鍵VKを公開するクライアント又は信頼できる第三者によって生成される。一実施形態では、公開された検証鍵VKは、任意の計算エンティティによって計算を確認するために使用され得る。いくつかの実施形態では、検証段階は、英国特許出願第1719998.5号に記載された技術に従うことができる、計算の検証に使用される要素を格納するブロックチェーンスクリプト(例えばビットコインベースのネットワーク)を使用して実行される。
本明細書で説明される技術を使用して、クライアントは、ブロックチェーントランザクションの受信者の身元等のトランザクションデータを部分的に難読化することができる。一実施形態では、アンロッキングスクリプトは、受信者のアドレス及び受信者の公開鍵を公開しない。しかしながら、場合によっては、トランザクションの値(例えば転送されるデジタル資産の量)が、ブロックチェーンネットワークのノードに対して可視であることがある。一実施形態では、上述及び下述される暗号技術は、クライアントによって、ロッキングスクリプトを二次算術プログラムへ変換し、作業者が算術プログラムを解いてプルーフを生成するために利用される。
一般的に言うと、クライアントは、カウンターパーティ又は作業者に支払うために、P2PK及びP2PKHのような標準トランザクション(例えばビットコインベースのブロックチェーンネットワークで定義される標準トランザクション)を使用することができる。例えば一実施形態では、クライアントは、P2PKロッキングスクリプトを算術回路に変換し、回路から導出されたパズルを含む支払いトランザクションをブロードキャストする。カウンターパーティ又は作業者は、回路を受け取り、適切な入力(例えばクライアントと作業者との間の共有秘密又は作業者の秘密鍵を使用して生成されたデジタル署名等、作業者の身元を証明する情報)を提供し、回路を実行して正当性のプルーフπを生成する。一実施形態では、プルーフは、リソース(例えばデジタル資産)をアンロックするために使用され、さらに、カウンターパーティ又は作業者を識別する情報(例えばカウンターパーティ又は作業者に関連付けられる公開鍵及び/又はデジタル署名)が、難読化されたフォーマットでブロックチェーンに記録されない場合があり得る。
実施形態において、検証鍵及び対応するプルーフは、上述及び/又は下述される技術に従って生成される。したがって、検証者は、該検証者が、複数の楕円曲線乗算(例えば各公開入力変数に対して1つ)と5つのペアチェックを計算し、そのうちの1つが追加のペアリング乗算を含むように、検証鍵VKとプルーフπを与えられる:
検証鍵VK、プルーフπ及び(a1,a2,...,aN)を所与とすると、t(x)がp(x)を分割すること、したがって、(xN+1,...,xm)=f(x0,...,xN)を確かめるために、検証者は、以下に従って進む。最初に、3つのα項:
のすべてをチェックする。ここで、
及び
である。次いで、検証者は、項β:
及び
をチェックする。最終的に、検証者は、可分性要件をチェックする:
ここで、
及び
である。
図3は、検証可能な計算の性能を調整するための図300を示している。クライアント302、作業者304及び検証者306は、ブロックチェーンネットワークのノードであってよい。クライアント302は、任意の適切なコンピュータシステムであってよく、コンピュータシステムの1つ以上のプロセッサによって実行されると、コンピュータシステムにスマートコントラクト308を受け取らせる実行可能コードを含んでよい。一実施形態では、スマートコントラクト308は、C、C++又はJava(登録商標)のようなソースコードのような高水準プログラミング言語で符号化される。一実施形態では、コンパイラ、インタプリタ及び/又はアセンブラのようなソフトウェアを利用して、スマートコントラクト308を、フィールド
からの値を担持し、加算及び乗算ゲートに接続する「ワイヤ」からなる算術回路310に変換し得る。算術回路は、物理的ワイヤによって接続される一連の物理ゲート(例えば7400シリーズのゲート、フリップフロップ、バッファ、デコーダ、マルチプレクサ等のトランジスタ-トランジスタ論理(TTL)集積回路を使用する)を含む物理回路によって実装することができる論理回路を指してよいことに留意されたい。
一実施形態において、クライアント302は、算術回路310及び該回路への入力312を作業者304に提供する。回路310を使用して、元の回路の完全な説明を提供する多項式のセットを含む二次プログラムQを生成してもよい。いずれの場合も、作業者304は、入力312において回路C又は二次プログラムQを実行して、1つ以上の出力314を生成してよい。いくつかの実施形態では、作業者(すなわち、証明者)は、入力ワイヤに割り当てられた値がxのそれらであり、中間値が、C内の各ゲートの正しいオペレーションに対応し、出力ワイヤに割り当てられた値がyであるように、回路ワイヤへの値の割り当てである{C,x,y}についての有効なトランスクリプトを出力として取得することが期待され;請求された出力が正しくない(すなわち、y≠P(x))である場合には{C,x,y}についての有効なトランスクリプトが存在しない。実施形態において、作業者は、回路ワイヤの値のサブセットを提供することが期待され、回路ワイヤの値の選択されたサブセットは、作業者に事前には知られていない。
実施形態において、出力y、内部回路ワイヤの値(又はそのサブセット)及び評価鍵EKは、正当性のプルーフ316を生成するために使用される。プルーフπは、ブロックチェーン上に格納されることができ、作業者304が複数の当事者と別個に対話することを必要とせずに、それらの複数の当事者によって検証されることができる。このようにして、検証者306は、公開検証鍵VKとプルーフπを使用して支払いトランザクションを検証することができ、それによりコントラクトを検証することができる。場合によっては、クライアント302は、検証に失敗した場合、支払いトランザクションによって妨げられているデジタル資産を取り戻してよい。
ブロックチェーンネットワーク上に検証鍵を記録するためのシステム及び方法が、本明細書で説明される。多くの場合、ブロックチェーンシステム又はネットワークは、上記のような通常の(標準的な)トランザクションに使用される。本開示の実施形態によれば、知識のゼロ知識の簡潔な非対話型引数(zk-SNARK)の実装を適用することによって、スマートコントラクトの作成及び処理のための提供システムを提供することが可能である。
一実施形態において、トランザクションは、それらの入力及び出力に埋め込まれたスクリプトとして知られる小さなプログラムを含み、これは、トランザクションの出力がどのようにして誰によってアクセスされ得るかを指定する。ビットコインプラットフォームでは、これらのスクリプトはスタックベースのスクリプト言語を使用して書かれる。ブロックチェーンは更に、ブロック内に格納することができるデータ量の最大データ閾値に関連する制約を課してよく、プロトコルは、最大許容サイズに関連する鍵のサイズ(例えば複数の楕円曲線点を符号化する検証鍵Vk)に基づいて選択されてよい。例えばビットコインベースのプロトコルでは、ロッキングスクリプトとアンロッキングスクリプトの合計サイズは、一実施形態では、1650バイトを超えず、また、リディームスクリプトのサイズは520バイトを超えない。一実施形態では、アンロッキングスクリプト及び/又はリディームスクリプトは、検証鍵を符号化することに加えて命令(例えばオペコード)を含み、(例えばデジタル署名を検証することによって)作業者が検証鍵を所有していることを検証するための追加の命令及び/又はデータを更に含んでもよい。したがって、特に、実施形態において、より大きなセキュリティ及び/又はセキュリティの暗号的保証を提供し得る、より大きな鍵サイズの使用に関連して、上述の機能の一部又は全部を提供するスクリプトを生成することは難しい。
一実施形態では、ロッキングトランザクションの一部として、クライアントは、評価及び検証鍵を含む共通参照文字列(CRS)を公開する。一実施形態では、CRS={EK,VK}であるが、前述のように、共通参照文字列は、任意の追加の適切な情報を含むことができることに留意されたい。評価鍵EKのサイズは、検討中の回路のサイズに少なくとも部分的に基づいている(例えば評価鍵EKを構成する要素の数は、回路の内部ゲートの数に対応し、かつ/又はそれに比例する)。検証鍵のサイズは、一実施形態では、入力及び出力のみに依存する。多くの場合、プルーフの公開記録(例えば証明者/作業者によって公開される、プルーフオブワーク又は正しい実行のプルーフ)及び対応する検証鍵VKを有することが有用であり-したがって、プルーフ及び検証鍵VKへのアクセスを有する任意のエンティティは、計算及びプルーフの有効性を検証することができる。一実施形態では、検証者306は、ブロックチェーンのノードのような任意の適切なエンティティである。いくつかの実施態様において、検証者306及びクライアント302は、同一のコンピュータシステムであることに更に留意されたい。言い換えると、いくつかの実施形態では、ブロックチェーンネットワークへのアクセスを有する任意のコンピュータシステムは、主張される証明者/作業者によって提供される計算及びプルーフの有効性を決定する検証プロセスを実行することができる。
いくつかのシステムでは、作業者の身元が分かっており、クライアントは作業者にコントラクトディレクトリの実行の支払いをすることができる。一実施形態では、クライアントは、作業者に関連付けられるアドレスを取得し、作業者に関連付けられるアドレスにデジタル資産を転送することによって、作業者に直接支払う。
様々な実施形態によると、図4は、ブロックチェーン上に検証鍵を記録するのに適した、ブロックチェーンプロトコルに従うデータ構造の図400を示しており、ここでは、作業者は、オペレーションのセットの実行(例えばスマートコントラクトの実行)のためにデジタル資産を引き換える(redeem)ために、(例えばクライアントによって発行された)正しい検証鍵VKの所有を証明することができる。さらに、いくつかの実施態様において、プロトコルは、コントラクトの実行に対する報酬を引き換える際に、正当性のプルーフを含めることを可能にする。一実施形態では、プロトコルは、既存のブロックチェーンプロトコルに従って実装される-例えば本明細書で説明されるシステム及び方法は、ビットコインプロトコルに対する修正を必要とせずに、既存のビットコインネットワークにおいて実装されることができる。
一実施形態では、ブロックチェーンシステムは、様々なタイプのトランザクションをサポートする。一実施形態では、サポートされるトランザクション(例えば標準トランザクション)は、ビットコインベースのシステムに従ったPay-to-Script-Hash(P2SH)トランザクションのようなスクリプトハッシュベースのトランザクションである。一般的に言うと、スクリプトハッシュベースのトランザクションは、任意のトランザクションを指し、この場合、アンロッキングスクリプトの有効性を確認することは、指定された暗号ハッシュ値に一致するスクリプトを提供することを含む。例えばビットコインベースのP2SHトランザクションでは、アンロッキングスクリプトは、リディームスクリプトを含み、ロッキングスクリプトは、アンロッキングスクリプトによって供給されるリディームスクリプトのハッシュが、指定された値に一致するという、少なくとも1つの条件を含む。例えばビットコインベースのシステムでは、ロッキングスクリプトは、以下に基づいて記述されてよい:
OP_HASH160 <20-byte hash of redeem script> OP_EQUAL
OP_HASH160 <20-byte hash of redeem script> OP_EQUAL
一実施形態では、図4に示す図400は、検証鍵を符号化するのに適した構造の概要を示しており、この場合、作業者は、正しい検証鍵VKの所有を証明することができる。アンロッキングスクリプト402及びリディームスクリプト404は、Pay-To-Script-Hash(P2SH)トランザクションに従って説明されるものに従って実装されてよい。場合によっては、ブロックチェーンプロトコルは、アンロッキングスクリプト402及び対応するロッキングスクリプトに対して最大合計サイズを強制し、かつ/又はリディームスクリプト404に対して最大合計サイズを強制する。例えばビットコインベースのシステムでは、P2SH標準トランザクションのリディームスクリプトは520バイト以下でなければならない。
アンロッキングスクリプト402は、対応するロッキングスクリプトに置かれる条件のセットを満たすデータパラメータの集合を含む。P2SHトランザクションでは、ロッキングスクリプトは典型的に、ハッシュ値を含み、アンロッキングスクリプトがリディームスクリプトを含むことを要し、この場合、リディームスクリプトのハッシュは、ロッキングスクリプトで符号化されたハッシュ値と一致する。したがって、一実施形態では、ロッキングスクリプトは、制約のセットに少なくとも部分的に基づいてハッシュ値を符号化し、アンロッキングスクリプト内で提示されたリディームスクリプトが制約のセットを符号化することを要求することにより、条件のセットを間接的に符号化する。
具体的に言うと、図4に示されるアンロッキングスクリプト402は、デジタル署名406と、検証鍵VKの1つ以上のサブセット(例えば第1サブセット412及び最後のサブセット416)と、リディームスクリプト404と、実行された場合に、作業者が検証鍵VKを所有していることの暗号的に検証可能な保証を提供する追加のオペコード(本開示全体を通じてコマンド、オペレーション、関数及び命令とも呼ばれる)を含む。一実施形態では、デジタル署名406は、作業者の秘密鍵を使用して生成され、デジタル署名406の真正性は、作業者に関連付けられる公開鍵408を使用して暗号的に検証可能である。作業者に関連付けられる公開鍵408は、リディームスクリプト404内で符号化されてよい。したがって、デジタル署名406は、作業者が検証鍵VKを所有していることの証明書として作用する。
検証鍵VKは、一実施形態では、複数の要素
を含み、各要素は楕円曲線上の点である。検証鍵VKの要素は、1つ以上のサブセットに分割されてよい。例えば図4において、図400は、少なくとも2つのサブセット、すなわち、第1サブセット412と最後のサブセット416が存在する例を示している-楕円は、第1サブセットと最後のサブセットとの間に追加のサブセットが存在してもよいことを示すが、必ずしもがそうである必要はない-例えば第2サブセットが最後のサブセット416である2つのサブセットが存在してもよい。実施形態において、このコンテキストで説明される各サブセットは、任意の他のサブセットと重複しない-言い換えると、要素
が1つのサブセット内にある場合、それは、いずれの他のサブセットのメンバーでもない。さらに、一実施形態において、検証鍵VKの各要素は、正確に1つのサブセットのメンバー内にある。
場合によっては、検証鍵VKは、複数の重複しないサブセットに分割されず、代わりに、アンロッキングスクリプト402内の単一ブロック(すなわち、その全体)として符号化され、単一ハッシュが、リディームスクリプト404内で符号化されることに留意されたい。アンロッキングスクリプトは、図4の説明に関連して上述及び下述される実施形態と同様の方法で機能し、この場合、ただ1つのハッシュ値が、検証鍵VK全体をハッシュする出力に対して比較される。
アンロッキングスクリプト402の上述の説明を続けると、アンロッキングスクリプトは、リディームスクリプト410を更に含んでよい。一実施形態では、リディームスクリプトは、対応するロッキングスクリプト内で符号化された値に一致するハッシュ出力を生成するパラメータのセットである。一実施形態では、ロッキングスクリプト、アンロッキングスクリプト及びリディームスクリプトは、2ステップのプロセスで利用され、この場合、第1ステップ中に、リディームスクリプトがロッキングスクリプトに対してチェックされて、リディームスクリプトがロッキングスクリプトの条件を満たすかどうかを判断する。このロッキングスクリプトの条件は、リディームスクリプトのハッシュが所定の値に一致するという条件を含んでよい。一実施形態では、OP_HASH160オペコードが利用され、これは、入力をまずSHA-256でハッシュ化し、次にRIPEMD-160でハッシュ化してハッシュ出力を生成する。一実施形態では、OP_HASH160オペレーションのハッシュ出力は、サイズが20バイト(0x14バイト)である。
上述のように、アンロッキングスクリプト402は、オペコードを更に含んでよく、この場合、アンロッキングスクリプト402は、実行されると、作業者が検証鍵VKを所有していることを暗号的に検証可能な保証を提供するコマンド及びデータを含む。例えば検証鍵VKが2つのサブセットに分割される実施形態では、1つのそのようなアンロッキングスクリプトは、これは、ビットコインベースのシステムによって利用されるようなスタックベースのスクリプト言語に従って、命令及びデータ(角括弧内)を使用して示される、以下の方法で説明されてもよい:
OP_PUSHDATA1 <length of signature> <signature> OP_PUSHDATA1 <byte-length of VK1> VK1 OP_PUSHDATA1 <byte-length of VK2> VK2 OP_PUSHDATA1 <length of redeem script> <redeem script>
ここで、上述のように、コマンド(例えば「OP_PUSHDATA1」)は角括弧を用いずに記述され、データは角括弧を用いて記述される(例えば「<length of signature>」は、デジタル署名406のバイト単位のサイズに対応する1バイトの整数である)。VK1という表記は、検証鍵VKの第1サブセットを指し、VK2は、検証鍵VKの第2サブセットを指し、これにより、検証鍵VK=VK1||VK2及び
及び
となる。場合によっては、検証鍵VKの様々なサブセットは、同じサイズを有する(例えばすべて又は一部のサブセットが、検証鍵VKの同じ数の要素を含む)が、そうである必要はないことに留意されたい。加えて、<redeem script>は、以下で説明される例示のリディームスクリプトのような、リディームスクリプトの関数及びデータを指す。
OP_PUSHDATA1 <length of signature> <signature> OP_PUSHDATA1 <byte-length of VK1> VK1 OP_PUSHDATA1 <byte-length of VK2> VK2 OP_PUSHDATA1 <length of redeem script> <redeem script>
ここで、上述のように、コマンド(例えば「OP_PUSHDATA1」)は角括弧を用いずに記述され、データは角括弧を用いて記述される(例えば「<length of signature>」は、デジタル署名406のバイト単位のサイズに対応する1バイトの整数である)。VK1という表記は、検証鍵VKの第1サブセットを指し、VK2は、検証鍵VKの第2サブセットを指し、これにより、検証鍵VK=VK1||VK2及び
一実施形態では、リディームスクリプト404は、ロッキングスクリプト内で符号化された1つ以上の条件を満たすために利用される。例えばロッキングスクリプトは、ハッシュ値と、アンロッキングスクリプトがルーチンを含むという条件を含んでよく、この場合、ルーチン上のハッシュ出力は、ロッキングスクリプトに含まれるハッシュ値に一致する出力値となる。ルーチンは、一実施形態では、リディームスクリプト404である。一実施形態では、リディームスクリプト404は、検証鍵VKのサブセットごとに、対応するハッシュ値と、作業者に関連付けられる公開鍵414と、実行された場合には、作業者が検証鍵VKを所有していることの暗号的に検証可能な保証を提供する追加のオペコード(本開示全体を通じてコマンド、オペレーション、関数及び命令とも呼ばれる)を含む。一実施形態では、リディームスクリプト404は、アンロッキングスクリプト402のコンテキストで実行される。一実施形態では、リディームスクリプトで符号化されたハッシュ値は、検証鍵VKの対応するサブセットがアンロッキングスクリプト402で現れるのと逆の順序で符号化される。例えば第1サブセット412がアンロッキングスクリプト402に最初に現れる場合、次いで、対応する第1ハッシュ414が、リディームスクリプト404に現れる最後のハッシュ値である。同様に、検証鍵の最後のサブセットに対応するハッシュ418は、検証鍵の他のサブセットのハッシュに対して、リディームスクリプト内に最初に現れる。このコンテキストでは、順序は、ハッシュ値の相対的順序を指すが、リディームスクリプト404内に符号化される他のデータ及び他のコマンドに対する順序を暗示するものでも、課するものではないことに留意されたい。前述の例を続けると、適切なリディームスクリプトは以下のように説明される:
OP_HASH160 <HVK1> OP_EQUALVERIFY OP_HASH160 <HVK2> OP_EQUALVERIFY <PubKey worker> OP_CHECKSIG
ここで、上述のように、コマンド(例えば「OP_HASH160」)は角括弧を用いずに記述され、データは角括弧を用いて記述される(例えば<HVK1>は、OP_HASH160オペレーションをVK1に適用した結果に対応する20バイトの値である)。一実施形態では、リディームスクリプトは、クライアントによって作業者に提供される。リディームスクリプト404は、一実施形態では、暗号化攻撃(cryptographic attack)を容易にして検証鍵VKを決定するために使用可能な検証鍵VKの値に関するいずれの情報も直接提供しないことに留意されたい。
OP_HASH160 <HVK1> OP_EQUALVERIFY OP_HASH160 <HVK2> OP_EQUALVERIFY <PubKey worker> OP_CHECKSIG
ここで、上述のように、コマンド(例えば「OP_HASH160」)は角括弧を用いずに記述され、データは角括弧を用いて記述される(例えば<HVK1>は、OP_HASH160オペレーションをVK1に適用した結果に対応する20バイトの値である)。一実施形態では、リディームスクリプトは、クライアントによって作業者に提供される。リディームスクリプト404は、一実施形態では、暗号化攻撃(cryptographic attack)を容易にして検証鍵VKを決定するために使用可能な検証鍵VKの値に関するいずれの情報も直接提供しないことに留意されたい。
一実施形態では、ブロックチェーンプロトコルは、アンロッキングスクリプト402の最大サイズを1650バイトまでと定義する。ブロックチェーンプロトコルは、スタック上でプッシュすることができるデータの最も大きな全体のチャンクとして、最大520バイトのサイズを更に定義してもよい。一実施形態では、検証鍵の要素は、各々32ビットサイズである。したがって、上述の制約に従ったアンロッキングスクリプト402は、以下を含み得る:
したがって、上述のアンロッキングスクリプト及びリディームスクリプトは、各要素が32バイトのサイズである45個の要素を有する検証鍵VKを符号化するために利用され得る。
図5は、本開示で説明される様々な実施形態に従ったロッキングトランザクションの図500を示す。実施形態において、第1当事者502及び第2当事者504は、任意の適切な方法でコントラクトの条件に合意する。例えば両当事者は、オフラインでの契約条件のセット(例えば両当事者の代表者間の対面交渉、電話、電子メール又は任意の他の適切な通信媒体)に合意し得る。一実施形態では、契約条件はプログラム的に合意される-例えばコンピュータシステムは、契約(例えば履行価格(fulfilment price))についてのオファーを評価し、そのオファーを受け入れるかどうかを決定するためのパラメータを有するように構成される。例えば第1当事者と第2当事者は、第1当事者が、第2当事者が支払いに合意する価格の代価のトークンを第2当事者に売却し、発行することに合意する。一実施形態では、トークンは、物理的資産(例えば消費財及びサービス)、デジタル資産及びそれらの任意の組合せのために引き換えられ得る。
一実施形態では、第1当事者は、2つの入力(例えば入力508及び510)と2つの出力(例えば出力512及び514)を含むロッキングトランザクション506を作成し、署名がどのように検証されるべきか(例えばOP_CHECKSIGを使用する)に関する指示(indication)でそれらに署名する。一実施形態では、この指示は、動作モードの表示と、誰が支払うことができるか(例えば誰でも(anyone)支払うことができる)を示す修飾子を含む。一実施形態では、入力及び出力は、SIGHASH_SINGLE及びSIGHASH_ANYONECANPAYで署名される。一実施形態では、入力は、公称値(nominal value)のトランザクション量(例えば少数のサトシ(satoshi))を含み、出力は、作業者のためのデジタル資産(その価値は、コントラクトの価値等の様々な要因に基づいて選択され得る)及びコントラクトの価値(例えば第2当事者504が、コントラクト条件に従って、第1当事者502に支払うことに同意する金額)を含むトランザクション量を含む。
一般的に言うと、動作モードは、ロッキングトランザクションの様々なフィールドのどのフィールドが、かつ/又はどのように署名されているかの指示を提供し得る。例えば第1動作モード(例えばSIGHASH_ALL)では、すべての署名可能なパラメータが署名されている。一実施形態では、これは、入力スクリプトを除くトランザクションのすべてのフィールドを含む。サポートされ得る動作モードの第2の例は、出力が署名されない動作モード(例えばSIGHASH_NONE)である-したがって、他のエンティティは、それらの入力シーケンス番号を変更することによってトランザクションを修正することができる。サポートされ得る動作モードの更に別の例は、入力が署名されるが、シーケンス番号がブランクであるモードである(例えばSIGHASH_SINGLE)。一実施形態では、一部の又はすべての動作モードがサポートされる。さらに、動作モードに加えて、単一の出力(又はより一般的には、出力の任意のサブセット)のみが署名されており、他の出力が任意のものであることに関して、別個の指示(例えばSIGHASH_ANYONECANPAY)が行われてもよい。
次に、ロッキングトランザクション506が第2当事者504に提供される。ロッキングトランザクションは、ロッキングトランザクションが正しいことを確認する第2当事者によって受け取られる。このコンテキストにおいて、ロッキングトランザクションの正当性とは、当事者間の事前の合意を正確に反映しているロッキングトランザクションを指し、正当性の検証は、例えばトークンに符号化された価格が当事者間で合意された費用(agreed-upon cost)であることと、コントラクトの条件が事前に合意された形式であることを確かめることを含む。一実施形態では、ロッキングトランザクションの正当性を判断することは、デジタル署名の真正性を確かめることを含む。
ロッキングトランザクションが正しいと判断すると、第2当事者504は、デジタル資産(例えば両当事者間の合意条件の一部として合意された支払い)及び作業者がコントラクトの実行のために支払うデジタル資産を含むことができる、新しい入力516を追加する。また、第2当事者504は、共通参照文字列を制約し、SIGHASH_SINGLE又はSIGHASH_ALLで署名する出力518を追加してよく、それを(例えばブロックチェーンネットワークに)ブロードキャストする。ロッキングトランザクションがブロードキャストされると、第1当事者がコントラクトの所有者とみなされ得る。一実施形態では、鍵(例えばCRSの一部として含まれる検証鍵VK及び評価鍵EK)は、フィールドFを使用して生成される。ここで、
は、フィールド及び対応する算術回路Cにおける関数であり、ここで、Q=(t(x),V,W,Y)は、サイズmで次数dの対応する二次算術プログラム(例えばQAP)である。加えて、実施形態において、
は、双線形マッピングであり、gは、
の生成器である。このコンテキストで説明される表現は、明瞭性のために選択される加法的表現(additive representation)であるが、他の表現(例えば指数関数的表現)が、本開示に従った実施形態のコンテキストで使用されてもよいことに留意されたい
一実施形態では、評価鍵EK及び検証鍵VKは、ランダム値又は疑似ランダム値
を選択すること及び
を設定することによって構築される。言い換えると、一般的には:<a>=a・gである。したがって、評価鍵EKは、
と定義され、検証鍵VKは、
と定義される。ここで、N=Nin+Nout、すなわち入力と出力の数である。一実施形態では、ペアリングマッピングを有する非対称ペアリングは、
と定義され、giは、
の生成器である。この場合、VKは以下のように定義される:
ここで、ry=rv・rwである
上述のように、評価鍵EKと検証鍵VKはグループ要素で構成される。十分に高いカーディナリティ(cardinality)の任意のグループが適しているが、明確化の目的のために、本明細書で議論されるグループは楕円曲線であることに留意されたい。
一実施形態では、ペアリング関数の楕円曲線ベースの実装が存在する。一実施形態では、ブロックチェーンネットワークの暗号化は、secp256k1楕円曲線のような楕円曲線に基づく。いくつかの実施形態では、ブロックチェーンにおいて鍵を割り当てるために必要とされる空間の量を決定及び/又は推定することが可能である。上述したように、検証鍵VKの要素のサブセットは、回路のサイズに関係せず、そのようなフィールドに必要とされる空間は、回路のサイズに依存しない。
場合によっては、標準ブロックチェーントランザクションの最大サイズは、ブロックの最大サイズに対応する。様々なブロックチェーンシステムは、ビットコインベースのシステムのように、様々な上限を有してもよく、例えば標準トランザクションは、定義された最大ブロックサイズが1MBであり、最大標準トランザクションサイズが100KBである。ビットコインベースのシステムのようなブロックチェーンシステムでは、リディームスクリプトのサイズは520バイト以下である。リディームスクリプトの最大サイズは、一実施形態では、標準トランザクションの条件に依然として適合しているが、スタック上でプッシュできるデータの最大の全体的なチャンクである。アンロッキング入力スクリプト及びロッキングスクリプト(例えばP2PK、P2PH及び他)における上限は、一実施形態では、1650バイトである。一実施形態では、これは、スクリプトが15個の公開鍵を格納するか又は他の方法で符号化することと同等である。一実施形態では、アンロッキングスクリプトは、入力スクリプト又は署名スクリプト(例えばScriptSig)と呼ばれ、出力スクリプト又はscriptPubKeyと呼ばれ得る以前のロッキングスクリプトに置かれた条件を満たすデータパラメータの集合を含む。
したがって、一実施形態では、リディームスクリプト及び対応する入力スクリプトは、可能な最大量のデータが添付されるように配置され、リディームスクリプト、対応する入力スクリプト及び/又は他のデータの配置は、少なくとも部分的に最大サイズに基づく。一実施形態では、アンロッキングスクリプトは、デジタル署名を含むか又は他の方法で符号化する。一実施形態では、図4は、ビットコインベースのシステムの標準タイプのトランザクションに従う署名を含む、最大の可能なアンロッキング及びロッキングスクリプトの構造を示す。一実施形態では、図4に示される構造は、ブロックチェーンシステムの制約内で可能な最大量のデータ(例えば標準トランザクションの最大サイズ)を添付するために利用されるが、他の実施形態では、その構造は、添付されるデータの最大量よりも少ない構造など、任意の他の適切な方法で定義されることに留意されたい。
一実施形態では、データは、標準トランザクションに加えて及び/又は標準トランザクションの代わりに、非標準トランザクションに記録される。一実施形態では、ハードコードされたスクリプト長は、10キロバイト(KB)であり、ブロックチェーンのマイニングノードのセットは、そうでなければ非標準とみなされるスマート・トランザクションのためのトランザクションを受け入れる。言い換えると、いくつかの実施形態は、スマート・トランザクションとして識別可能な非標準トランザクションを利用し、ブロックチェーンネットワークの1つ以上のノードは、このようなトランザクションを受け入れる。
図6は、少なくとも1つの実施形態による、リディームスクリプトを生成するためのプロセス600を説明するフローチャートを示す。プロセス600は、例えば図3に関連して本開示の他の箇所で説明されるクライアントのような、任意の適切なコンピュータシステムによって実行されてよい。一実施形態では、リディームスクリプトは、図4に関連して説明されているもののように他の実施形態のコンテキストで生成される。回路C及び秘密に基づいて、クライアントは、プロセス600を実行することによって、検証鍵VKを含む共通参照文字列CRSを決定する。一実施形態では、プロセスは、種々の関数を実行する種々のサブルーチンに依存するプロトコルに従う。例えばno_TX(ARG)関数は、実施形態においてバイト(例えばビット)への変換を有する引数ARGのサイズをバイト単位で又は任意の適切な測定単位で測定するために使用される。一実施形態では、この関数を使用して、作成すべきロッキングスクリプトの数を決定する602。一実施形態では、no_TX(ARG)関数は、ARG入力パラメータのバイトサイズを測定し、データ量を標準スクリプトに格納できる場合には1を返し、ARGが標準トランザクションにおけるスクリプトの最大サイズを超える場合には、関数ARGの入力に対応するデータ量を収容するのに必要とされる、出力(スクリプト)に必要なトランザクション数を返す。一実施形態では、関数は単に、入力ARGに対応するデータ量が、標準トランザクションにおけるスクリプトの最大サイズを超えるかどうかの指示、例えばTRUE又はFALSEのブール指示又はそれらの任意の同等物(例えばFALSE指示に等しい0の整数値及びTRUE指示に等しいゼロ以外の値)を返す。一実施形態では、(例えば上述のような)no_TX()サブルーチンに検証鍵VKを入力として供給することは、何回ロッキングトランザクションを作成するべきかを決定するのに利用可能な情報を提供する。
の値は、圧縮された鍵のサイズとして参照されてよい。例えば検証鍵VKは、複数の32ビットサブシーケンスに分割されてもよい。
は、<k>の特定の表現であってよく、例えば
は、<k>の16進数の同等物とすることができる。
システムは、実施形態に従って、検証鍵を複数の要素に直列化(serialize)する604。一般的に言うと、データを直列化することは、データを、例えば何らかの規格又はプロトコルによって設定された長さに従って、より小さなチャンクに分割することを意味する。例えば検証鍵VKは、32ビットのチャンクに分けられてよく、すなわち、
である。一実施形態では、チャンクサイズは、圧縮された鍵のような鍵のサイズに少なくとも部分的に基づいて選択される。一実施形態では、直列化(ARG)関数は、ARG入力を、規格又はプロトコルによって設定される長さに従ってより小さなデータシーケンスに分割する-例えば一実施形態では、直列化(ARG)関数は、データのシーケンスを、連続する32バイトのサブシーケンスに直列化するが、他の実施形態では、サブシーケンスは、任意の適切なプロトコルによって定義されるように、異なる固定/可変長とすることができる。
一般的に言うと、システムは、検証鍵の要素の少なくともサブセットを選択する606。一実施形態では、サブセットは、閾値サイズを超えない合計サイズ(例えばビットコインベースのシステムのスタックオブジェクトに対する520バイトの制限)を有する連続サブセット(例えば上記の例で記載されるもののような)である。一実施形態では、サブセットは、規定されたサイズ制限内に適合する多くの検証鍵VK要素を順次選択することによって決定される。
一実施形態では、システムは、各ロッキングトランザクションに対して、ルールのセットに従って、対応するアンロッキングスクリプトに含まれるべき鍵のセットを割り当てる。一実施形態では、プロトコルは、スタックにプッシュされ得るデータオブジェクトのサイズの上限を有する-例えばビットコインでは、520バイトが、ブロックに対して許容可能な最大サイズである。したがって、検証鍵VKが520バイト以下のサイズの場合(すなわち、システムが、複数のサブセットに分割することなく検証鍵を符号化できると判断した場合)。一実施形態では、システムは、選択された要素に対してハッシュを計算する608。選択された要素は、上述したように、検証鍵VK全体であってもよい。一実施形態では、OP_HASH160のようなオペコードがサブセットをハッシュするために利用される。一実施形態では、オブジェクトのハッシュ化は、SHA-256及びRIPEMD-160のような複数の暗号ハッシュアルゴリズムを利用してハッシュ出力HVKを生成し、以下のリディームスクリプトのようなリディームスクリプト内で符号化される:
OP_HASH160 <HVK> OP_EQUALVERIFY <PubKey worker> OP_CHECKSIG
OP_HASH160 <HVK> OP_EQUALVERIFY <PubKey worker> OP_CHECKSIG
もちろん、他のハッシュアルゴリズム及び対応するハッシュ化オペコードが、様々な実施形態において利用されてもよい。リディームスクリプトは、作業者が検証鍵VKを所有していることの証明書を提供するアンロッキングスクリプトに関連して実行されると、対応するロッキングスクリプトによって妨げられているデジタル資産をアンロックするために使用可能である。したがって、対応するアンロッキングスクリプトが、計算されたハッシュに少なくとも部分的に基づいて一致する1つ以上のパラメータを含む、という1つ以上の条件を有するリディームスクリプトが生成される610。実施態様において、リディームスクリプトは更に、出力スクリプトが、リディームスクリプト内で符号化された公開鍵に対応する作業者の秘密鍵を使用して生成されたデジタル署名を含む、という条件を含む。
一実施形態では、システムは、検証鍵VKが、スタック上のデータブロックの許容可能な最大サイズを超えていると判断し、検証鍵VKを2つ以上のサブセットに分割する。一実施形態では、システムは、例えばプロトコルのサイズ制限内で符号化され得る最大数のチャンクを計算することによって、各サブセットに含まれるべきチャンクの数を決定する。一実施形態では、システムは、最大数のチャンク又は符号化されていない残りのチャンクの数を有する各サブセットを符号化する。例えば各チャンク
が32バイトであり、
であるビットコインベースのシステムにおいて、検証鍵VKが、第1サブセット
及び第2サブセット
のような少なくとも2つのサブセットに分割される。この例では、VK1は、ビットコインベースのシステムの最大スタックデータブロックサイズ内で許容可能な最大数のチャンク(すなわち、スタック上でプッシュできるデータの最大の全体チャンクとして、最大520バイトサイズ内で許容可能な最大数のチャンクである、16×32=512バイト)を含むことに留意されたい。一実施形態では、サブセットVK1、VK2等は各々、入力として暗号ハッシュアルゴリズムに提供されてハッシュ出力を生成し、ハッシュ出力は、リディームスクリプトの条件として符号化され、この場合、有効なアンロッキングスクリプトが検証鍵VK又はその一部を供給する。一例として、
及び第2サブセット
である例において、適切なリディームスクリプトは以下のように記述されてよい:
OP_HASH160 <HVK2> OP_EQUALVERIFY OP_HASH160 <HVK1> OP_EQUALVERIFY <PubKey worker> OP_CHECKSIG
ここで、
であり、
である。一実施形態において、システムは、第1ハッシュ<HVK1>を生成して、第2ハッシュ<HVK2>が、検証鍵要素の第2サブセットVK2から生成されるべきであると決定する。
OP_HASH160 <HVK2> OP_EQUALVERIFY OP_HASH160 <HVK1> OP_EQUALVERIFY <PubKey worker> OP_CHECKSIG
ここで、
第3の例として、図4に関連して説明された実施形態を考える。この場合、アンロッキングスクリプトの最大サイズは1650バイトであり、データのブロックの最大サイズは520バイトである。システムは検証鍵のサイズを最大化し、
第1サブセット
第2サブセット
及び第3サブセット
を選択する。対応するハッシュ<HVK1>、<HVK2>及び<HVK3>が計算され、ロッキングスクリプトが計算されたハッシュに一致するパラメータを含むという条件が、例えば以下のように生成される:
OP_HASH160 <HVK3> OP_EQUALVERIFY OP_HASH160 <HVK2> OP_EQUALVERIFY OP_HASH160 <HVK1> OP_EQUALVERIFY <PubKey worker> OP_CHECKSIG
OP_HASH160 <HVK3> OP_EQUALVERIFY OP_HASH160 <HVK2> OP_EQUALVERIFY OP_HASH160 <HVK1> OP_EQUALVERIFY <PubKey worker> OP_CHECKSIG
ハッシュが生成されるたびに、システムは、追加サブセットを識別してハッシュすべきであるかどうかを判断してよい612。一実施形態では、システムは、検証鍵VKの各要素が、アンロッキングスクリプトの一部としてそれぞれの要素を供給する作業者に基づいて満たされる、リディームスクリプト内に対応する条件を有するという決定に基づいて、追加のサブセットは必要ないと判断する。一実施形態では、システムは、リディームスクリプトを使用して、対応するロッキングスクリプトを生成することができる作業者等に対して、リディームスクリプトを利用可能にする614。
作業者(例えば<PubKey worker>に関連付けられるエンティティ)に対する支払いを引き換える(redeem)するために、作業者は、一実施形態において、正しい検証鍵VKの所有を実証する。一実施形態では、正しい検証鍵VKの所有についての任意の適切な証明書がシステムによって使用可能であり、この場合、カウンターパーティは、所有されると称される作業者の証明書を暗号的に確かめることができる。一実施形態では、作業者は、各ロッキングスクリプトに対して、アンロッキングスクリプトを作成し、このアンロッキングスクリプトは、リディームスクリプトの作成の場合と同様に、直列化された検証鍵VKの長さに依存して異なる。
直列化された検証鍵VKの長さが十分に小さいカーディナリティ(例えば分割することなく検証鍵全体をスタック上にプッシュすることができるほど十分にVKが小さい)の場合、作業者はアンロッキングスクリプトを作成する:
OP_PUSHDATA1 <length of signature> <signature> OP_PUSHDATA1 <byte-length of VK> VK OP_PUSHDATA1 <length of redeem script> <redeem script>
OP_PUSHDATA1 <length of signature> <signature> OP_PUSHDATA1 <byte-length of VK> VK OP_PUSHDATA1 <length of redeem script> <redeem script>
そうでなければ、直列化された検証鍵の長さが適用可能な閾値を超える場合、作業者はVKを2つ以上のサブセットに分割する。例えば
が32バイトであるビットコインベースのプロトコルの場合、
及び
であり、アンロッキングスクリプト:
OP_PUSHDATA1 <length of signature> <signature> OP_PUSHDATA1 <byte-length of VK1 > VK1 OP_PUSHDATA1 <byte-length of VK2> VK2 OP_PUSHDATA1 <length of redeem script> <redeem script>
を作成する。
OP_PUSHDATA1 <length of signature> <signature> OP_PUSHDATA1 <byte-length of VK1 > VK1 OP_PUSHDATA1 <byte-length of VK2> VK2 OP_PUSHDATA1 <length of redeem script> <redeem script>
を作成する。
第3の例として、図4に関連して説明された実施形態を考える。この場合、アンロッキングスクリプトの最大サイズは1650バイトであり、データのブロックの最大サイズは520バイトである。作業者はVKを3つのサブセット:
及び
に分割し、アンロッキングスクリプト:
OP_PUSHDATA1 <length of signature> <signature> OP_PUSHDATA1 <byte-length of VK1> VK1 OP_PUSHDATA1 <byte-length of VK2> VK2 OP_PUSHDATA1 <byte-length of VK3> VK3 OP_PUSHDATA1 <length of redeem script> <redeem script>
を作成する。
OP_PUSHDATA1 <length of signature> <signature> OP_PUSHDATA1 <byte-length of VK1> VK1 OP_PUSHDATA1 <byte-length of VK2> VK2 OP_PUSHDATA1 <byte-length of VK3> VK3 OP_PUSHDATA1 <length of redeem script> <redeem script>
を作成する。
本開示で説明される実施形態に対する種々の拡張が、明示的に議論されたものに加えて企図される。一実施形態では、ビットコインベースのプロトコルのようなプロトコルを使用して、本明細書で説明されるシステム及び方法を実装する-場合によっては、既存のプロトコルが、追加の機能性をサポートするように拡張されてもよい。
例えば実施形態において、出力は、複数の移転(transfers)に分割される-例えば出力は、2つの部分、すなわち、一方は第1グループG1に属する要素の部分と、他方は第2グループG2のための要素の部分に分割される。したがって、この例では、作業者の公開鍵に支払いを行う2つの入力(スクリプトに含まれる各グループからのグループ要素の16進数表現)が存在する。対称ペアリングのためのこのプロトコルのステップは、2つの入力の各々に対して繰り返される。一実施形態では、プロトコルは、それに応じて検証鍵を継ぎ合わせるように拡張される。
第2の例として、鍵(例えばグループG1及びG2からそれぞれ生じる要素の順序で)は、そのまま維持され、プロトコル(例えば既存のビットコインベースのプロトコル)は鍵を符号化及び復号し、例えばハッシュマップ又は他の任意の適切なデータ構造の使用を通して、グループ要素の32バイト表現がどのグループに属するかを分離するために拡張される。一実施形態では、既存のプロトコルの上で実行されるソフトウェア(例えばブロックチェーンネットワークのノードのセットの少なくともサブセットによって使用されるプロトコルの拡張)は、鍵を符号化及び復号し、グループ要素の32バイトの16進数表現がどのグループに属するかを分離するために使用される。
一実施形態では、図7は、プロトコルが、コントラクトを実行するためにデジタル資産を引き換えるときに計算704のプルーフを含むように修正された実施形態の図700を示す。例えばビットコインベースのプロトコルは、コントラクトを実行するためにデジタル資産を引き換えるときに計算のプルーフを含むことをサポートするように拡張される。一実施形態では、計算のプルーフは、固定数の要素を含み、固定長特性を有する。図7は、ブロックチェーンにおいて計算のプルーフをどのように記録するかの1つのそのような例を示しており、ここでは、第1データブロック702(例えば第1データブロック Data1)は、該第1データブロック702が計算704のプルーフに対応する要素を含むように分割され、それらの要素は、対応する公開鍵に対する署名チェックのためのスペースを作るために、アルトスタック(alt stack)(例えばOP_TOALTSTACKのようなコマンドを使用して)にプッシュされる。一実施形態では、検証鍵に対応する要素の第1バッチは、「Data1」708とラベル付けされたブロック内にある。データブロックサイズの注釈は純粋に例示的なものであることに留意されたい。
更なる強化が、本開示の範囲内で考えられる。他の箇所で論じられたように、本明細書で説明されるようなプロトコルは、確認された鍵のハッシュ値(例えばHASH160(VK))及び検証鍵VK自体を読み取り、ロッキングのトランザクション識別子及び作業者が引き換えるトランザクション(workers redeeming transactions)それぞれに関連してその2つを公開する、追加のサポートを用いて強化され得る。したがって、このようにして、作業者によって公開された正当性のプルーフを後に確かめるエンティティは、鍵がクライアントによって最初に公開されたものであるという保証を用いて、そのようにすることができる。
一実施形態では、本明細書で説明されるプロトコル(例えばビットコインベースのプロトコル)は、(例えば上述の方法で)正当性のプルーフに対するチェックを実行する追加のオペコード、コマンド又はステートメントで拡張される。一実施形態では、OP_CHECKPOCオペコードがサポートされ、トランザクション入力に対する署名が有効であることをOP_CHECKSIGがチェックする方法と同様の方法で、正当性のプルーフ、検証鍵、入力(u)及び出力(y)に対して作用する。一実施形態では、OP_CHECKPOCは、TRUE又はFALSEの値、1又は0の値等を返し、正当性のプルーフが確認されたかどうかを示す。
図8は、本開示の少なくとも1つの実施形態を実施するために使用することができるコンピューティングデバイス800の例示的な簡略化されたブロック図である。様々な実施形態において、コンピューティングデバイス800を使用して、上記で図示及び説明されたシステムのいずれかを実装することができる。例えばコンピューティングデバイス800は、データサーバ、ウェブサーバ、ポータブルコンピューティングデバイス、パーソナルコンピュータ又は任意の電子コンピューティングデバイスとして使用するために構成され得る。図8に図示されるように、コンピューティングデバイス800は、実施形態において、バスサブシステム804を介して複数の周辺サブシステムと通信し、動作可能に結合される1つ以上のプロセッサ802を含むことができる。いくつかの実施形態において、これらの周辺サブシステムは、メモリサブシステム808及びファイル/ディスクストレージサブシステム810を含むストレージサブシステム806と、1つ以上のユーザインタフェース入力デバイス812と、1つ以上のユーザインタフェース出力デバイス814と、ネットワークインタフェースサブシステム816を含む。このようなストレージサブシステム806は、情報の一時的又は長期的な記憶のために使用され得る。
いくつかの実施形態において、バスサブシステム804は、コンピューティングデバイス800の様々な構成要素及びサブシステムが、意図されるとおりに互いに通信することを可能にする機構を提供する。バスサブシステム804は、単一のバスとして概略的に示されているが、バスサブシステムの代替の実施形態は、複数のバスを利用する。いくつかの実施形態では、ネットワークインタフェースサブシステム816は、他のコンピューティングデバイス及びネットワークへのインタフェースを提供する。ネットワークインタフェースサブシステム816は、いくつかの実施形態では、コンピューティングデバイス800からデータを受け取り、他のシステムにデータを送信するためのインタフェースとして機能する。いくつかの実施態様において、バスサブシステム804は、詳細、検索語等のようなデータを通信するために利用される。
いくつかの実施形態において、ユーザインタフェース入力デバイス812は、キーボード等の1つ以上のユーザ入力デバイス;一体型マウス、トラックボール、タッチパッド又はグラフィックスタブレット等のポインティングデバイス;スキャナ;バーコードスキャナ;ディスプレイに組み込まれたタッチスクリーン;音声認識システム、マイクロフォン等のオーディオ入力デバイス;及び他のタイプの入力デバイスを含む。一般に、「入力デバイス」という用語の使用は、情報をコンピューティングデバイス800に入力するためのあらゆる可能なタイプのデバイス及び機構を含むように意図される。いくつかの実施形態において、1つ以上のユーザインタフェース出力デバイス814は、ディスプレイサブシステム、プリンタ又はオーディオ出力デバイス等の非視覚的ディスプレイ等を含む。いくつかの実施形態において、ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)や発光ダイオード(LED)ディスプレイ、投影装置等のフラットパネルデバイス又は他のディスプレイデバイスを含む。一般に、「出力デバイス」という用語の使用は、コンピューティングデバイス800からの情報を出力するためのあらゆる可能なタイプのデバイス及び機構を含むように意図される。1つ以上のユーザインタフェース出力デバイス814を使用して、例えばユーザインタフェースを提示し、そのような対話が適切であり得るときに、説明されたプロセス及びその変形を実行するアプリケーションとのユーザ対話を容易にすることができる。
いくつかの実施形態において、ストレージサブシステム806は、本開示の少なくとも1つの実施形態の機能を提供する基本プログラミング及びデータ構成体を記憶するためのコンピュータ読取可能記憶媒体を提供する。アプリケーション(プログラム、コードモジュール、命令)は、いくつかの実施形態において1つ以上のプロセッサによって実行されるとき、本開示の1つ以上の実施形態の機能を提供し、実施形態においては、ストレージサブシステム806に記憶される。これらのアプリケーションモジュール又は命令を、1つ以上のプロセッサ802によって実行することができる。様々な実施形態において、ストレージサブシステム806は更に、本開示に従って使用されるデータを記憶するためのリポジトリを提供する。いくつかの実施形態では、ストレージサブシステム806は、メモリサブシステム808及びファイル/ディスクストレージサブシステム810を含む。
実施形態において、メモリサブシステム808は、複数のメモリ、例えばプログラム実行中の命令及びデータの格納のためのメインランダムアクセスメモリ(RAM)818及び/又は固定命令を格納することができる読取専用メモリ(ROM)820を含む。いくつかの実施形態において、ファイル/ディスクストレージサブシステム810は、プログラムファイル及びデータファイルのための非一時的な永続的(不揮発性)ストレージを提供し、ハードディスクドライブ、関連する取り外し可能媒体とともにフロッピーディスクドライブ、コンパクトディスク読取専用メモリ(CD-ROM)ドライブ、光学ドライブ、取り外し可能媒体カートリッジ又は他の同様の記憶媒体を含むことができる。
いくつかの実施形態において、コンピューティングデバイス800は、少なくとも1つのローカルクロック824を含む。ローカルクロック824は、いくつかの実施形態では、特定の開始日から発生したティック(ticks)の数を表すカウンタであり、いくつかの実施形態では、コンピューティングデバイス800内に一体的に配置される。様々な実施形態では、ローカルクロック824は、特定のクロックパルスにおいてコンピューティングデバイス800のためのプロセッサ及びそこに含まれるサブシステム内でデータ転送を同期させるために使用され、コンピューティングデバイス800と、データセンター内の他のシステムとの間の同期オペレーションを調整するために使用され得る。別の実施形態では、ローカルクロックは、プログラム可能な間隔のタイマである。
コンピューティングデバイス800は、ポータブルコンピュータデバイス、タブレットコンピュータ、ワークステーション又は以下に説明される任意の他のデバイスを含む、様々なタイプのいずれかとすることができる。加えて、コンピューティングデバイス800は、いくつかの実施形態では、1つ以上のポート(例えばUSB、ヘッドフォンジャック、ライトニングコネクタ等)を通してコンピューティングデバイス800に接続することができる別のデバイスを含むことができる。実施形態において、このようなデバイスは、光ファイバコネクタを受け入れるポートを含む。したがって、いくつかの実施形態において、このデバイスは、光信号を、処理のためにデバイスをコンピューティングデバイス800に接続するポートを通して伝送される電気信号に変換する。コンピュータ及びネットワークの絶えず変化する性質のために、図8に示されるコンピューティングデバイス800の説明は、デバイスの好ましい実施形態を説明する目的のための特定の例としてのみ意図されている。図8に示されるシステムよりも多くの又は少ない構成要素を有する多くの他の構成も可能である。
上述の実施形態は、本発明を限定するものではなく、例示するものであり、当業者は、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく、多くの代替の実施形態を設計することができることに留意されたい。請求項において、括弧内に付したすべての引用符号は、請求項を限定するものと解釈されるべきではない。「備えた(comprising)」及び「備える(comprises)」等の用語は、いずれかの請求項又は明細書全体に列挙されるもの以外の要素又はステップの存在を除外するものではない。本明細書において、「備える」は「含む又はから構成される」を意味し、「備えた」又は「含む又はから構成された」を意味する。要素の単数形参照は、そのような要素の複数形参照を除外するものではなく、その逆もまた同様である。本発明は、いくつかの別個の要素を含むハードウェアによって及び適切にプログラムされたコンピュータによって実装されてよい。いくつかの手段を列挙するデバイスクレームにおいては、これらの手段のいくつかが、1つの同じハードウェアアイテムによって具体化されてよい。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組合せを有利に利用することができないことを示すものではない。
本明細書において引用された刊行物、特許出願及び特許を含むすべての文献は、それにより、参照によって組み込まれるように各文献を個々に具体的に示し、本明細書においてその全体を述べたものと同じ限度で、参照によって本明細書に組み込まれる。
Claims (15)
- コンピュータ実施される検証方法であって:
ブロックチェーントランザクションに関連付けられる第1スクリプトを取得する取得ステップであって、前記第1スクリプトが、
コマンドの第1セットと、
1つ以上の暗号ハッシュ値と、
を含む取得ステップと;
第2スクリプトを生成する生成ステップであって、前記第2スクリプトが、
コマンドの第2セットと、
複数の要素の1つ以上のサブセットであって、前記複数の要素が検証鍵を集合的に形成し、前記1つ以上のサブセットが前記検証鍵の各要素を集合的に含む、前記複数の要素の1つ以上のサブセットと、
前記第1スクリプトと、
前記第2スクリプトを生成するコンピュータシステムに関連付けられる識別子と、
を含む生成ステップと;
前記1つ以上の暗号ハッシュ値が前記検証鍵の1つ以上のサブセットに一致するという決定に関連して、前記コマンドの第1セット及び前記コマンドの第2セットを実行することに少なくとも部分的に基づいて、前記コンピュータシステムが前記検証鍵へのアクセスを有することの証明書を生成するステップと;
を含む、コンピュータ実施される方法。 - 前記第2スクリプトを生成する生成ステップは、
作成すべきロッキングスクリプトの数を決定するステップと、
前記検証鍵を前記複数の要素に直列化するステップと、
前記複数の要素のあるサブセットを選択するステップと、
前記複数の要素の前記選択されたサブセットのハッシュを決定するステップと、
前記第2スクリプトを生成するステップと、
を含む、請求項1に記載のコンピュータ実施される方法。 - 前記第2スクリプトは、前記決定されたハッシュに少なくとも部分的に基づいて一致する1つ以上のパラメータを含む、
請求項2に記載のコンピュータ実施される方法。 - リディームスクリプトは、出力スクリプトが、作業者の秘密鍵を使用して生成されたデジタル署名を含む、という条件を更に含む、
請求項2又は3に記載のコンピュータ実施される方法。 - 前記複数の要素のうちのある要素は、楕円曲線上の点である、
請求項1に記載のコンピュータ実施される方法。 - 前記コマンドの第1セット及び前記コマンドの第2セットは集合的に、前記検証鍵の前記1つ以上のサブセットのうちのあるサブセットに少なくとも部分的に基づいて、前記1つ以上の暗号ハッシュ値のうちの第1暗号ハッシュ値がハッシュ出力に一致するかどうかを判断する命令を含む、
請求項1乃至5のいずれかに記載のコンピュータ実施される方法。 - 前記ハッシュ出力は、少なくともSHA-256及びRIPEMD-160暗号ハッシュアルゴリズムを使用して生成される、
請求項6に記載のコンピュータ実施される方法。 - 前記第1スクリプトを取得する取得ステップは、
前記検証鍵の前記1つ以上のサブセットを識別するステップと、
前記検証鍵の前記1つ以上のサブセットの各サブセットについて、対応する暗号ハッシュ値を計算するステップと、を含み、前記1つ以上の暗号ハッシュ値が、各対応する暗号ハッシュ値を含む、
請求項1乃至7のいずれかに記載のコンピュータ実施される方法。 - 前記生成された証明書を検証することを条件として、前記トランザクションによって妨げられたデジタル資産の制御を前記コンピュータシステムに移転するステップ、
を更に含む、請求項1乃至8のいずれかに記載のコンピュータ実施される方法。 - 前記第1スクリプトを第2コンピュータシステムから取得するステップを更に含み、前記第2コンピュータシステムは、前記デジタル資産の少なくとも一部を寄与した、
請求項9に記載のコンピュータ実施される方法。 - 前記検証鍵の各要素は、前記サブセットのうちのちょうど1つ内にある、
請求項1乃至10のいずれかに記載のコンピュータ実施される方法。 - 前記1つ以上のサブセットは1つのサブセットであり、該1つのサブセットは前記検証鍵を含む、
請求項1乃至11のいずれかに記載のコンピュータ実施される方法。 - 前記第1スクリプトは、前記コンピュータシステムに関連付けられる公開鍵を更に含み、
前記コンピュータシステムに関連付けられる前記識別子は、前記コンピュータシステムに関連付けられる前記公開鍵に対応する秘密鍵を使用して生成されるデジタル署名であり、
前記コンピュータシステムが前記検証鍵へのアクセスを有することの前記証明書は、少なくとも部分的に前記デジタル署名及び前記公開鍵に更に基づく、
請求項1乃至12のいずれかに記載のコンピュータ実施される方法。 - システムにおいて、
プロセッサと;
前記プロセッサによって実行された結果として、当該システムに、請求項1乃至13のいずれかに記載のコンピュータ実施される方法を実行させる実行可能命令を含むメモリと;
を備える、システム。 - コンピュータシステムのプロセッサによって実行された結果として、前記コンピュータシステムに、請求項1乃至13のいずれかに記載のコンピュータ実施される方法を少なくとも実行させる実行可能命令を格納している非一時的コンピュータ読取可能記憶媒体。
Applications Claiming Priority (14)
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 | ||
GB1719998.5 | 2017-11-30 | ||
GBGB1719998.5A GB201719998D0 (en) | 2017-11-30 | 2017-11-30 | Computer-Implemented system and method |
GB1720768.9 | 2017-12-13 | ||
GBGB1720768.9A GB201720768D0 (en) | 2017-12-13 | 2017-12-13 | Computer-implemented system and method |
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/058434 WO2019092544A1 (en) | 2017-11-09 | 2018-10-29 | System for recording verification keys on a blockchain |
JP2020524532A JP7208989B2 (ja) | 2017-11-09 | 2018-10-29 | ブロックチェーン上に検証鍵を記録するためのシステム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020524532A Division JP7208989B2 (ja) | 2017-11-09 | 2018-10-29 | ブロックチェーン上に検証鍵を記録するためのシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023036962A true JP2023036962A (ja) | 2023-03-14 |
Family
ID=64100702
Family Applications (10)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020524517A Pending JP2021502636A (ja) | 2017-11-09 | 2018-10-29 | 検証可能な計算のためのcライクなスマートコントラクトの算術的強化 |
JP2020524541A Active JP7221954B2 (ja) | 2017-11-09 | 2018-10-29 | 変更から検証鍵を保護し、正当性のプルーフの有効性を確かめるためのシステム |
JP2020524532A Active JP7208989B2 (ja) | 2017-11-09 | 2018-10-29 | ブロックチェーン上に検証鍵を記録するためのシステム |
JP2020524430A Active JP7234229B2 (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 (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020524517A Pending JP2021502636A (ja) | 2017-11-09 | 2018-10-29 | 検証可能な計算のためのcライクなスマートコントラクトの算術的強化 |
JP2020524541A Active JP7221954B2 (ja) | 2017-11-09 | 2018-10-29 | 変更から検証鍵を保護し、正当性のプルーフの有効性を確かめるためのシステム |
JP2020524532A Active JP7208989B2 (ja) | 2017-11-09 | 2018-10-29 | ブロックチェーン上に検証鍵を記録するためのシステム |
JP2020524430A Active JP7234229B2 (ja) | 2017-11-09 | 2018-10-29 | 最適化された検証可能な計算のための実行可能命令を簡略化するためのシステム |
JP2020524561A Pending JP2021502747A (ja) | 2017-11-09 | 2018-11-01 | 分散コンピューティングシステム及び方法 |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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) | JP2021502636A (ja) |
KR (5) | KR20200079503A (ja) |
CN (6) | CN111345005A (ja) |
SG (5) | SG11202004149UA (ja) |
TW (1) | TWI806918B (ja) |
WO (5) | WO2019092544A1 (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 |
US11539527B2 (en) | 2019-05-29 | 2022-12-27 | International Business Machines Corporation | Peer node recovery via approximate hash verification |
US11711202B2 (en) | 2019-05-29 | 2023-07-25 | International Business Machines Corporation | Committing data to blockchain based on 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 | 百度在线网络技术(北京)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
CN111768187A (zh) * | 2020-08-31 | 2020-10-13 | 支付宝(杭州)信息技术有限公司 | 一种部署智能合约的方法、区块链节点和存储介质 |
CA3091660A1 (en) * | 2020-08-31 | 2021-11-03 | Polymath Inc. | Method, system, and medium for blockchain-enabled atomic settlement |
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 |
Family Cites Families (108)
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 |
US6732336B2 (en) * | 2001-10-11 | 2004-05-04 | 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 |
CN101331706B (zh) * | 2005-12-13 | 2012-09-05 | 皇家飞利浦电子股份有限公司 | 安全阈值解密协议计算 |
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. |
US8543885B2 (en) | 2007-11-18 | 2013-09-24 | 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. |
US9921813B2 (en) * | 2012-11-07 | 2018-03-20 | Koninklijke Philips N.V. | Compiler generating operator free code |
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 |
SI3073670T1 (sl) | 2015-03-27 | 2021-07-30 | Black Gold Coin, Inc. | Sistem in postopek za osebno identifikacijo in verifikacijo |
JP6364132B2 (ja) * | 2015-03-31 | 2018-07-25 | ナスダック, インコーポレイテッドNasdaq, Inc. | ブロックチェーン取引記録のシステムおよび方法 |
US10911235B2 (en) | 2015-03-31 | 2021-02-02 | Nec Corporation | Method for verifying information |
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 | 阿里巴巴集团控股有限公司 | 分布式流计算系统、方法和装置 |
US10936720B2 (en) | 2015-07-10 | 2021-03-02 | Nec Corporation | Method and 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 |
US20170132619A1 (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 |
US20170140408A1 (en) | 2015-11-16 | 2017-05-18 | Bank Of America Corporation | Transparent self-managing rewards program using blockchain and smart contracts |
FR3043811B1 (fr) | 2015-11-16 | 2017-11-10 | Morpho | Procede d'identification d'une entite |
WO2017090041A1 (en) * | 2015-11-24 | 2017-06-01 | Ben-Ari Adi | A 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 |
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 |
GB2561729A (en) | 2016-02-23 | 2018-10-24 | Nchain Holdings Ltd | Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system |
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 |
WO2017148527A1 (en) | 2016-03-03 | 2017-09-08 | Nec Europe Ltd. | 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 |
WO2017173399A1 (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 |
JP6920333B2 (ja) | 2016-04-11 | 2021-08-18 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | ブロックチェーン上のセキュアなピアツーピア通信の方法 |
US20170300897A1 (en) * | 2016-04-14 | 2017-10-19 | American Express Travel Related Services Company, Inc. | Systems and Methods for an Electronic Wallet Payment Tool |
US10529042B2 (en) * | 2016-04-18 | 2020-01-07 | Rs Ltd. | System and method for managing transactions in dynamic digital documents |
TWI770022B (zh) * | 2016-04-29 | 2022-07-11 | 安地卡及巴布達商區塊鏈控股有限公司 | 電腦實施之控制方法、系統及控制系統 |
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 | 杭州云象网络技术有限公司 | 一种多链场景下的区块链链间资产转移方法 |
US11362829B2 (en) | 2017-01-06 | 2022-06-14 | Koninklijke Philips N.V. | Distributed privacy-preserving verifiable computation |
JP6644195B1 (ja) | 2017-01-06 | 2020-02-12 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 認証されたデータ上のピノキオ/トリノキオ |
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 | 贵州大学 | 一种基于比特币协议的首价密封交易方法 |
WO2019033074A1 (en) * | 2017-08-11 | 2019-02-14 | Dragonchain, Inc. | SYSTEMS AND METHODS OF INTERACTION WITH DISTRIBUTED REGISTERS |
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 WO PCT/IB2018/058434 patent/WO2019092544A1/en unknown
- 2018-10-29 CN CN201880073019.5A patent/CN111345005A/zh active Pending
- 2018-10-29 JP JP2020524517A patent/JP2021502636A/ja active Pending
- 2018-10-29 US US16/762,461 patent/US20210377041A1/en active Pending
- 2018-10-29 EP EP22170376.2A patent/EP4092953A1/en active Pending
- 2018-10-29 JP JP2020524541A patent/JP7221954B2/ja active Active
- 2018-10-29 SG SG11202004149UA patent/SG11202004149UA/en unknown
- 2018-10-29 KR KR1020207014213A patent/KR20200079503A/ko not_active Application Discontinuation
- 2018-10-29 WO PCT/IB2018/058437 patent/WO2019092545A1/en unknown
- 2018-10-29 EP EP23216404.6A patent/EP4312403A3/en active Pending
- 2018-10-29 CN CN202311496467.5A patent/CN117640170A/zh active Pending
- 2018-10-29 CN CN201880072801.5A patent/CN111316595A/zh active Pending
- 2018-10-29 US US16/762,471 patent/US11658801B2/en active Active
- 2018-10-29 SG SG11202004147RA patent/SG11202004147RA/en unknown
- 2018-10-29 US US16/762,475 patent/US11635950B2/en active Active
- 2018-10-29 WO PCT/IB2018/058432 patent/WO2019092542A1/en unknown
- 2018-10-29 SG SG11202004146WA patent/SG11202004146WA/en unknown
- 2018-10-29 SG SG11202004148PA patent/SG11202004148PA/en unknown
- 2018-10-29 JP JP2020524532A patent/JP7208989B2/ja active Active
- 2018-10-29 EP EP18796783.1A patent/EP3707852A1/en active Pending
- 2018-10-29 JP JP2020524430A patent/JP7234229B2/ja active Active
- 2018-10-29 CN CN201880072692.7A patent/CN111406379A/zh active Pending
- 2018-10-29 EP EP18797157.7A patent/EP3707623A1/en active Pending
- 2018-10-29 KR KR1020207014209A patent/KR20200086284A/ko not_active Application Discontinuation
- 2018-10-29 CN CN201880072678.7A patent/CN111345004B/zh active Active
- 2018-10-29 US US16/762,466 patent/US11575511B2/en active Active
- 2018-10-29 EP EP18796782.3A patent/EP3707871B1/en active Active
- 2018-10-29 KR KR1020207014108A patent/KR20200086282A/ko not_active Application Discontinuation
- 2018-10-29 KR KR1020207014203A patent/KR20200080265A/ko not_active Application Discontinuation
- 2018-10-29 WO PCT/IB2018/058433 patent/WO2019092543A1/en unknown
- 2018-11-01 US US16/762,490 patent/US20210192514A1/en active Pending
- 2018-11-01 JP JP2020524561A patent/JP2021502747A/ja active Pending
- 2018-11-01 KR KR1020207014106A patent/KR20200086281A/ko not_active Application Discontinuation
- 2018-11-01 CN CN201880072729.6A patent/CN111316594A/zh active Pending
- 2018-11-01 EP EP18800333.9A patent/EP3707856A1/en active Pending
- 2018-11-01 WO PCT/IB2018/058583 patent/WO2019092561A1/en unknown
- 2018-11-01 SG SG11202004153UA patent/SG11202004153UA/en unknown
- 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
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7208989B2 (ja) | ブロックチェーン上に検証鍵を記録するためのシステム | |
JP7285840B2 (ja) | プルーフ検証に基づいてオフ・チェーン・データを認証するシステム及び方法 | |
CN111316615B (zh) | 使用调解器计算机系统确保计算机程序正确执行的系统和方法 | |
WO2019034984A1 (en) | GENERATION OF RANDOM NUMBERS IN A BLOCK CHAIN | |
US20220217004A1 (en) | Systems and methods for non-parallelised mining on a proof-of-work blockchain network | |
JP2022504224A (ja) | 公開鍵結合検証を含む、コンピュータにより実施されるシステム及び方法 | |
CN114026586A (zh) | 用于授予对加密资产的访问权的零知识或有支付协议 | |
TW202414256A (zh) | 基於證明驗證之認證資料饋入 | |
CN118041602A (en) | System and method for ensuring correct execution of a computer program using a mediator computer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230106 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240305 |