JP2023182741A - 検証可能な計算のためのcライクなスマートコントラクトの算術的強化 - Google Patents
検証可能な計算のためのcライクなスマートコントラクトの算術的強化 Download PDFInfo
- Publication number
- JP2023182741A JP2023182741A JP2023173507A JP2023173507A JP2023182741A JP 2023182741 A JP2023182741 A JP 2023182741A JP 2023173507 A JP2023173507 A JP 2023173507A JP 2023173507 A JP2023173507 A JP 2023173507A JP 2023182741 A JP2023182741 A JP 2023182741A
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic
- source code
- circuit
- arithmetic circuit
- blockchain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 58
- 230000014509 gene expression Effects 0.000 claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 14
- 238000012795 verification Methods 0.000 claims description 19
- 230000006870 function Effects 0.000 claims description 15
- 238000011156 evaluation Methods 0.000 claims description 12
- 238000007781 pre-processing Methods 0.000 claims description 12
- 230000006835 compression Effects 0.000 claims description 5
- 238000007906 compression Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 13
- 238000007792 addition Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 8
- 238000013515 script Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 239000013259 porous coordination polymer Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241001619348 Idris Species 0.000 description 1
- 241001025261 Neoraja caerulea Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 238000012546 transfer Methods 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
-
- 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
-
- 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/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)
- Strategic Management (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Power Engineering (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Development 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)
- Mathematical Analysis (AREA)
- Algebra (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)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【課題】高水準ソースコードを該ソースコード内に表された機能を表現する算術回路に変換するシステム及び方法を提供する。【解決手段】検証可能な計算のためのCライクなスマートコントラクトの算術的強化を提供する方法は、高水準ソースコード(例えば、スマートコントラクト)の部分を処理して、ソースコード内に表された機能のうち少なくとも一部を表現する1つ以上の算術ゲートを含む算術回路を生成するステップを含む。前記処理は、ソースコード内に提供された1つ以上の定数を評価して、ブール及び/又は算術演算子を含む1つ以上の式を生じさせる。前記算術回路は、算術ゲートに接続されたnビットワイヤを含み、ハードウェア及び/又はソフトウェア回路を提供するため、かつ、プロセッサ上で実行可能な二次プログラムを生成するために使用する。【選択図】図1
Description
本発明は、高水準ソースコードを別の形式に変換するツール、手法、及びシステム、例えばインタプリタの分野に一般に関する。本発明は、ブロックチェーン技術にさらに関し、特に、ブロックチェーンにより実現されるソリューションを構築するツールに関する。本発明は、例えばブロックチェーン上で実行するように構成されたスマートコントラクトなどの、マシン実行可能技術の改善された生成にさらに関する。
本文献において、用語「ブロックチェーン」は、電子的なコンピュータベースの分散台帳のいくつかのタイプのうち任意のものを指す。これらには、コンセンサスベースのブロックチェーン及びトランザクションチェーン技術、許可あり(permissioned)及び許可なし(un-permissioned)台帳、共有台帳、及びこれらの変形が含まれる。それは、プライベート及びパブリックブロックチェーンをさらに含む。
ブロックチェーン技術の最も広く知られている適用はビットコイン(登録商標)台帳であるが、他のブロックチェーン実装が提案され、開発されている。本開示では、簡便さ及び例示の目的でビットコインの例が参照されることがあるが、本発明は、ビットコインブロックチェーン又は関連プロトコルのいかなる特定の実装又は変形での使用にも限定されず、代替的なブロックチェーンの実装及びプロトコルが本発明の範囲内に入ることに留意されたい。
ブロックチェーンはピアツーピアの電子台帳であり、これは、ブロックから構成されるコンピュータベースの非中央集権的なシステムとして実現され、同様に、ブロックはトランザクションから構成される。各トランザクションは、ブロックチェーンシステム内の参加者間のデジタル資産の制御の移転を符号化するデータ構造であり、少なくとも1つの入力及び少なくとも1つの出力を含む。各ブロックは前のブロックのハッシュを含み、それにより、ブロックが一緒にチェーン化されて、ブロックチェーンの開始以降にそれに書き込まれた全てのトランザクションの永続的で改変不可能なレコードを作成する。
スクリプト(Script)として知られるビットコインブロックチェーンのスクリプト言語はスタックベースである。アイテムがスタックの上部へプッシュされ、あるいは上部からポップされることが可能である。例えば、OP_EQUAL演算は、スタックから上部2つのアイテムをポップし、それらを比較し、結果(例えば、等しい場合に1、等しくない場合に0)をスタックの上部にプッシュする。本実施形態のいくつかにより採用されるいくつかのスクリプト言語では、少なくとも2つのスタック、すなわちメインスタックと代替スタックが存在し得る。
トランザクションがブロックチェーンに書き込まれるためには、それは「立証され(validated)」なければならない。ネットワークノード(マイナー)が、ワークを実行して各トランザクションが有効であることを確保し、無効なトランザクションはネットワークから拒絶される。ノードは、他のノードとは異なる有効性の標準を有することができる。ブロックチェーンにおける有効性がコンセンサスベースであるため、トランザクションは、トランザクションが有効であるとノードの過半数が同意した場合、有効と考えられる。ノードにインストールされたソフトウェアクライアントは、部分的には未使用トランザクション(unspent transaction、UTXO)ロック及びアンロックスクリプト(locking and unlocking scripts)を実行することにより、UTXOを参照するトランザクションに対してこの立証作業を実行する。ロック及びアンロックスクリプトの実行がTRUEの評価であり、適用可能な場合における他の立証条件が満たされる場合、トランザクションはノードにより立証される。立証されたトランザクションは他のネットワークノードに伝搬され、すると、マイナーノードは該トランザクションをブロックチェーンに含めることを選択することができる。
ゆえに、トランザクションがブロックチェーンに書き込まれるためには、それは、i)トランザクションを受信した第1のノードにより立証され、トランザクションが立証された場合、ノードはそれをネットワーク内の他のノードに中継する、ii)マイナーにより構築された新しいブロックに追加される、iii)マイニングされる、すなわち過去のトランザクションの公開台帳に追加される、がなされなければならない。トランザクションは、十分な数のブロックがブロックチェーンに追加されてトランザクションを事実上不可逆にしたとき、確認されたと考えられる。
ブロックチェーン技術は、暗号通貨実装の使用に対して最も広く知られているが、デジタル起業家は、新しいシステムを実現するために、ビットコインが基礎とする暗号セキュリティシステムとブロックチェーンに記憶できるデータとの双方の使用を探求し始めている。ブロックチェーンが暗号通貨の領域に限定されない自動化されたタスク及び処理に使用できる場合、かなり有利であろう。このようなソリューションは、その適用においてより多目的であると同時に、ブロックチェーンの利点(例えば、イベントの永続的な改ざん防止のレコード、分散処理等)を利用することができる。
現在の研究の1つの分野は、「スマートコントラクト」の実装のためのブロックチェーンの使用である。これらは、マシン読取可能な契約又は同意の条件の履行を自動化するように設計されたコンピュータプログラムである。自然言語で書かれる従来の契約と異なり、スマートコントラクトは、入力を処理して結果を生成することができるルールを含むマシン実行可能プログラムであり、これは次いで、これら結果に依存してアクションを実行させることができる。
実施形態において、スマートコントラクトは、作成者又は何らかの他の特定のエンティティがスマートコントラクトの強制及び/又は実行に必要とされないという意味で「スマート」である。実行又は強制に人間の対話は必要とされない。すなわち、特定のエンティティとの対話はスマートコントラクト内の特定のステップで符号化できるが、スマートコントラクトはその他の方法で自動的に実行及び自己強制可能である。それは、マシン読取可能及び実行可能である。いくつかの例において、自動実行は、任意のエンティティがUTXOを消費でき、そのようにするインセンティブ(例えば、報酬)を有することを指す。このような例において、UTXOを消費できる「任意のエンティティ」は、何らかの秘密の知識を証明するよう求められることなくアンロックスクリプトを作成することができるエンティティを指すことに留意する。換言すれば、消費トランザクションは、データのソースが暗号秘密(例えば、秘密非対称鍵、対称鍵等)へのアクセスを有することを検証することなく、立証可能である。さらに、このような例において、自己強制は、ブロックチェーンネットワークの立証ノードが制約に従って消費トランザクションを強制させられることを指す。いくつかの例において、UTXOの「消費(spending)」は、UTXOを参照して有効として実行する消費トランザクションを作成することを指す。
したがって、単なる暗号通貨支払いの手段を越え、ブロックチェーン技術が使用可能な用途の周りには大きな関心がある。これには、IoTデバイスの制御、A.I.技術を組み込んだインテリジェントシステムなどが含まれる。
しかしながら、C、C++、Java(登録商標)等の高水準言語を使用するプログラミングの分野には多くの熟練者が存在するが、ブロックチェーンのアプリケーションを作成することができる人は数が比較的少ない。これは部分的には、ブロックチェーンについて比較的低水準で、メイン及びaltスタックを操作するop_codeを使用してコード化する現在の必要性のためである。特に、ブロックチェーンの実装のためのスマートコントラクトのプログラミングは、Delmolino, K.ら(2015)のStep by Step Towards Creating a Safe Smart Contract: Lessons and Insights from a Cryptocurrency Lab、及びJuels, A.ら(2013)のThe Ring of Gyges: Using Smart Contracts for Crimeで調査されているように、困難でエラーを起こしやすいことが知られている。
ブロックチェーンと共に使用できるソリューション及びアプリケーションの作成を可能にすることにより、改善されたブロックチェーン及び関連プラットフォームが提供される。算術ゲートの算出のソリューションがさらに提供される。算術回路は、プレディケート(predicate)としての又はプレディケートの実行のために構成され得る。本発明は、(従来技術開示により検証又は証明を単に提供するのと対照的に)実行可能プログラムの作成及び符号化を可能にする。
したがって、1つ以上の態様においてブロックチェーン及び分散コンピューティング技術を改善する方法及びシステムを提供することが望ましい。このような改善されたソリューションが次に考案されている。ゆえに、本発明によれば、別記の特許請求の範囲に定義される方法及びシステムが提供される。
本発明は、非中央集権的なシステムにおいてプログラマビリティを提供し、容易にするように配置されたシステム及び方法を含み得る。それは、例えば、暗号通貨システム、ブロックチェーンにより実現されるシステム、及び/又は分散計算システムでもよい。1つの観点からは、それは、エラー、時間、労力、コスト、及びプログラミング処理の間に必要とされるリソースを低減する。ゆえに、それは、技術的な問題に対する技術的なソリューションを提供する。別の観点からは、それは、エラー及びバグの低減のため、強化されたブロックチェーンソリューションを提供する。それは、ソフトウェアの完全性も保持する。
有利には、既知のインタプリタ及びコンパイラとは異なり、本発明は、アーキテクチャ非依存のソリューションを提供する。さらに、それは、実行を可能にするために仮想マシン(VM)の使用を必要としない。
本発明は、ソースコードを入力として取り込んで算術回路cを生成する、コンピュータにより実現されるシステム及び方法を提供し得る。結果として生じる回路Cは、(検証のためのプルーフとは対照的に)HLLソースコードの機能の表現であり得る。実行されると、算術回路Cは計算の結果を提供し、これは次いで検証され(verified)得る。回路Cはマシン実行可能でもよく、あるいはマシン上で実行のために処理されてもよい。ソースコードは、計算を表し又は表現し得る。
この回路は、体(field)
からの値を搬送して加算及び乗算ゲートに接続する「ワイヤ(wires)」から構成されてもよい。算術回路は、ソフトウェア、及び/又はワイヤ及び論理ゲートを有する物理回路において具現化されてもよい。ソースコードは、HLL又はGPLで書かれた機能性又は計算Pの一部又は全部を含み、あるいは表現し得る。本発明は、その計算を算術回路Cに変換するインタプリタとして記述されてもよい。算術回路C及び何らかの入力xが、実行のためにエンティティに供給されてもよい。
本発明は、ソースコード内に表された計算を、(マシン/プロセッサにより)実行可能なプレディケートに変換し、あるいは翻訳し得る。(HLL/GPL)ソースコードは、予めコンパイルされ、あるいは前処理されてもよい。
1つ以上の実施形態において、公開評価鍵(evaluation key、EK)及び公開検証鍵(verification key、VK)が、秘密値sを使用して導出され得る。本方法は、EK及びVKを使用して特定の入力xに対する計算を評価するステップを含んでもよい。出力y、1つ以上の回路ワイヤの値、及びEKが使用されて、プルーフオブコレクトネス(proof-of-correctness)πを生成することができる。プルーフπはブロックチェーンに記憶され得る。それはブロックチェーントランザクションに記憶されてもよい。本方法は、ブロックチェーントランザクションにプルーフを提供するステップを含み得る。それは、トランザクションをブロックチェーンにサブミットするステップ、及び/又はそれをブロックチェーンに記憶するステップを含んでもよい。
1つ以上の実施形態において、公開評価鍵(evaluation key、EK)及び公開検証鍵(verification key、VK)が、秘密値sを使用して導出され得る。本方法は、EK及びVKを使用して特定の入力xに対する計算を評価するステップを含んでもよい。出力y、1つ以上の回路ワイヤの値、及びEKが使用されて、プルーフオブコレクトネス(proof-of-correctness)πを生成することができる。プルーフπはブロックチェーンに記憶され得る。それはブロックチェーントランザクションに記憶されてもよい。本方法は、ブロックチェーントランザクションにプルーフを提供するステップを含み得る。それは、トランザクションをブロックチェーンにサブミットするステップ、及び/又はそれをブロックチェーンに記憶するステップを含んでもよい。
本方法は、ブロックチェーンに記憶されたプルーフを検証するステップを含み得る。それは、1つ以上のパーティ(parties)により検証されてもよい。有利には、それは、証明者(prover)にパーティの各々と別個に対話するよう求めることなく複数のパーティにより検証され得る。これは、従来技術と比較してより効率的及び迅速なソリューションを提供する。
ブロックチェーンネットワーク(例、ビットコイン)内のノードの全部又は一部がトランザクションを検証し得る。検証は、公開検証鍵VK及びプルーフπを使用してスマートコントラクトを検証するために実行されてもよい。
本発明の一利点は、マイナーが既知の従来のブロックチェーンプロトコルに従ってトランザクションを検証することである。検証処理は、ネットワーク内でのマイナーの役割の一部である。したがって、本発明は、検証が必要な既存の動作の一部として実行されるため、技術的利点に対してノードによりなされる労力を使用することができる。これは、従来技術と比較して効率的な配置を提供する。
いくつかの実施形態において、本発明は、図1に示すように、DSLで符号化されたスマートコントラクトから二次算術プログラム(quadratic arithmetic program、QAP)へのワークフローの一部を形成し得る。
図2に示すように、ドメイン固有言語(Domain Specific Language、DSL)スマートコントラクトは、高水準言語コントラクトに変換され得る。DSLスマートコントラクトは、正確なセマンティクスを有するフォーマルな言語で書かれてもよい。DSLスマートコントラクトは、条件のセットを含み得る。DSLスマートコントラクトの結果は、条件のセットの履行に依存してもよい。
HLLプリコンパイラ(プリプロセッサとも呼ばれ得る)は、HLLコントラクトにより参照される外部ライブラリを組み込んで、HLL前処理(HLL pre-processed)コントラクトを生成し得る。HLLプリコンパイラは、図2ではCプリコンパイラとして参照され得る。HLLコントラクトは、図2ではC言語コントラクトとして参照され得る。
次いで、HLL前処理コントラクト(すなわち、ソースコード)は、本発明の一実施形態により算術回路に変形され得る。この算術回路は、QAP多項式が導出される縮小算術回路を生成するように最適化されてもよい。
前処理変換は、ソフトウェアプログラム(図2ではCプリコンパイラと呼ばれるプログラム)により実行されてもよく、これは、実行の結果として、DSLで書かれたDSLスマートコントラクトなどの条件のセットを受信し、DSLコードをHLLコントラクトなどのHLLソースコードに翻訳する。これは、図2では「C言語前処理コントラクト」として参照され得る。それは、本明細書では単に「ソースコード」と呼ばれることもある。HLLコントラクトは、DSLスマートコントラクトで定義されたコントラクトを含むC++プログラムなどのHLLプログラムでもよい。HLLプリコンパイラは、HLLコントラクト及び必要な外部ライブラリを処理してスタンドアロンのHLL前処理コントラクト(すなわち、ソースコード)を生成するコンピュータ実行可能プログラムでもよい。
外部ライブラリは、呼び出しによりHLLコントラクトにより利用される予め書かれたサブルーチン、関数、クラス、コンテナ、値、及び/又は変数型の集合でもよい。例えば、外部ライブラリを呼び出すことにより、HLLコントラクトは、そのライブラリの機能を、該機能自体を実装する必要なく得る。HLL前処理コントラクトは、式及び演算子のセットを含んでもよい。演算子は、算術演算子(例えば、加算(+)、乗算(*)等)、比較演算子(例えば、未満(<)、等値(==)、以上(>=)等)、条件ステートメント(例えば、if‐then(?,:))、又は論理演算子(例えば、AND(&&)、OR(||)、NOT(!)、XOR
等)を含んでもよい。いくつかの実施形態において、メイン関数(エントリポイント)は、予め定義された名前及びフォーマットを有する。
算術回路は、変数のセットにわたる有向非巡回グラフ(directed acyclic graph)DAGでもよい。ゼロの入次数(indegree)を有するDAGのあらゆるノードは、変数(例えば、xi)を表現する入力ゲートでもよく、DAGのあらゆる他のノードは、合計ゲート(+)又は積ゲート(×)でもよい。あらゆるゲート(ノード)は1の出次数(outdegree)を有し得るため、その基礎をなすグラフは有向ツリーであり得る。算術回路は、複雑さの2つの尺度、すなわちサイズと深さを有し得る。いくつかの例において、算術回路の「サイズ」は、算術回路内のゲート数に基づいてもよい。いくつかの例において、算術回路の「深さ」は、算術回路内の最長有向パスの長さに基づいてもよい。
算術回路が生成された後、それは縮小され得る。
算術回路が生成された後、それは縮小され得る。
本発明による、コンピュータにより実現される方法は、ソースコードの部分を処理して(実行可能な)算術回路を生成するステップを含み得る。ソースコードは、高水準プログラミング言語で書かれてもよく、算術回路は、ソースコード内に表されたいくつかの機能又は計算を表現するように構成された1つ以上の算術ゲートを含んでもよい。
これは、HLLソースコードを算術回路に変換しない従来技術で知られるコンパイラ及び解釈とは対照的である。
算術回路は、プロセッサ上で実行されてもよい。この回路は、ブロックチェーントランザクションに提供されてもよい。
これは、HLLソースコードを算術回路に変換しない従来技術で知られるコンパイラ及び解釈とは対照的である。
算術回路は、プロセッサ上で実行されてもよい。この回路は、ブロックチェーントランザクションに提供されてもよい。
これは、計算又は論理回路の検証を教示し、かつ/あるいは(ゼロ知識)証明の出力に至る従来技術の開示とは対照的である。例えば、Pinocchioシステムは、一般的な計算を検証するゼロ知識証明を生成する。「Communications of the ACM」、Vol.59、No.2、2016 Parno Bらの「Pinocchio: Nearly Practical Verifiable Computations」、103-112(Parno)。ゆえに、Pinocchioなどの従来技術のいずれかの検証システムが検証の目的で本発明と共に使用でき、本発明は、従来技術を超える機能性及び結果を提供する。
したがって、本発明は、計算を表現及び/又は提供するマシン実行可能出力を提供する。これは、次いで検証され得る。これは、例えば、検証スクリプトをコンパイルして計算を実行するように構成された(別個の)プログラムを立証する、ゆえに2パートの処理を含むPinocchioシステムとは対照的である。代わりに、本発明は、1パートのアプローチ、すなわち算術回路への高水準計算それ自体のコンパイルを使用する。ゆえに、本発明は、上記従来技術とはかなり異なるアプローチを使用して異なる技術的問題を解決する。
好ましくは、ソースコードはスマートコントラクトである。ソースコードは、上記のように前処理されてもよい。
好ましくは、処理するステップは、ソースコード内に提供される1つ以上の定数を評価するサブステップを含む。これは、ブール及び/又は算術演算子を含む1つ以上の式を提供し得る。
本方法は、算術回路を使用してハードウェア及び/又はソフトウェア回路を提供するステップをさらに含んでもよい。算術回路は、算術ゲートに接続されたnビットワイヤを含んでもよい。算術回路は、アーキテクチャ非依存である。すなわち、それは、特定のハードウェア又はソフトウェアのアーキテクチャ又はプラットフォームでの動作又は使用に対して配置されない。それは、仮想マシンの使用を必要としない。これは、アーキテクチャ特有であるか又はVMの使用を必要とする従来技術のコンパイラ及びインタプリタとは対照的である。
本方法は、算術回路を使用してハードウェア及び/又はソフトウェア回路を提供するステップをさらに含んでもよい。算術回路は、算術ゲートに接続されたnビットワイヤを含んでもよい。算術回路は、アーキテクチャ非依存である。すなわち、それは、特定のハードウェア又はソフトウェアのアーキテクチャ又はプラットフォームでの動作又は使用に対して配置されない。それは、仮想マシンの使用を必要としない。これは、アーキテクチャ特有であるか又はVMの使用を必要とする従来技術のコンパイラ及びインタプリタとは対照的である。
本方法は、ソースコードを前処理して1つ以上の定数を決定するステップをさらに含んでもよい。前処理するステップは、
コメントを削除するステップ、
ヘッダファイルからソースファイルにヘッダ宣言をインポートするステップ、
複数のソースファイルをマージするステップ、
ディレクティブ及びマクロを解決し、あるいは評価するステップ
のうち1つ以上を含んでもよい。
コメントを削除するステップ、
ヘッダファイルからソースファイルにヘッダ宣言をインポートするステップ、
複数のソースファイルをマージするステップ、
ディレクティブ及びマクロを解決し、あるいは評価するステップ
のうち1つ以上を含んでもよい。
本方法は、ソースコード内に宣言された全てのグローバル変数を検出するステップをさらに含んでもよく、グローバル変数は、関数、構造体若しくはクラス、定数、及び/又は実行のエントリポイントに関する。
本方法は、シンボル(識別子)のテーブルを生成して、ソースコード内に提供される各シンボル(すなわち、識別子)をソースコード内に提供される宣言情報に関連づけるステップをさらに含んでもよい。テーブル内のシンボルは、グローバル及び/又はローカルシンボルであり得る。
本方法は、シンボル(識別子)のテーブルを生成して、ソースコード内に提供される各シンボル(すなわち、識別子)をソースコード内に提供される宣言情報に関連づけるステップをさらに含んでもよい。テーブル内のシンボルは、グローバル及び/又はローカルシンボルであり得る。
本方法は、1つ以上の入力変数に適用される論理及び/又は算術演算の組み合わせとして1つ以上のアウト変数を表す算術及び/又は論理式を結果としてもたらすソースコードの行ごとの(line-by-line)評価を実行するステップをさらに含んでもよい。
これは、型を復号するステップ、式を復号するステップ、式を評価するステップ、及び/又は上記機能により必要とされるデータ構造のためのメモリを割り振るステップをさらに含んでもよい。
これは、型を復号するステップ、式を復号するステップ、式を評価するステップ、及び/又は上記機能により必要とされるデータ構造のためのメモリを割り振るステップをさらに含んでもよい。
本方法は、式の算術及び/又は論理演算を算術ゲートにマッピングするステップをさらに含んでもよい。マッピングするステップは、ワイヤ拡張を実行するサブステップ、及び/又はワイヤ圧縮を実行するサブステップを含んでもよい。
本方法は、算術回路を使用して、回路の記述を提供する多項式のセットを含む二次プログラムを生成するステップをさらに含んでもよい。この方法は、1つ以上の入力を使用する2次プログラムの実行のために2次プログラムをエンティティに提供するステップをさらに含んでもよい。
本方法は、算術回路を使用して、回路の記述を提供する多項式のセットを含む二次プログラムを生成するステップをさらに含んでもよい。この方法は、1つ以上の入力を使用する2次プログラムの実行のために2次プログラムをエンティティに提供するステップをさらに含んでもよい。
本発明は、上述の方法ステップのいずれかを実現又は実行するように配置されたシステムをさらに提供し得る。システムは、ソースコードの処理を実行するように配置された翻訳又は変換コンポーネント(すなわち、インタプリタ/コンパイラ)を含み得る。(ゼロ知識)証明の生成のためのコンパイラが当該分野において知られているが(例えば、上述の「Pinocchio: Nearly Practical Verifiable Computations」(Parno)を参照する)、これらは本発明のように算術回路へコンパイルしない。本発明は、回答のプルーフ又は検証でなく回答を生成する。
コンピュータにより実現されるシステムが、
プロセッサと、
プロセッサによる実行の結果として、当該システムに本願で記載又は請求される発明/方法の1つ以上の実施形態のうち任意の実施形態のコンピュータにより実現される方法を実行させる実行可能命令を含むメモリと、を含む。該命令は、ソースコードの処理を実行するように構成された翻訳又は変換コンポーネント(すなわち、インタプリタ/コンパイラ)を提供する命令を含み得る。
プロセッサと、
プロセッサによる実行の結果として、当該システムに本願で記載又は請求される発明/方法の1つ以上の実施形態のうち任意の実施形態のコンピュータにより実現される方法を実行させる実行可能命令を含むメモリと、を含む。該命令は、ソースコードの処理を実行するように構成された翻訳又は変換コンポーネント(すなわち、インタプリタ/コンパイラ)を提供する命令を含み得る。
非一時的コンピュータ読取可能記憶媒体が、コンピュータシステムのプロセッサにより実行された結果としてコンピュータシステムに本願で記載又は請求される発明/方法の1つ以上の実施形態を少なくとも実行させる実行可能命令を記憶する。
本発明のこれら及び他の態様が、本明細書に記載した実施形態から明らかであり、それらを参照して明らかにされるであろう。次に、本発明の一実施形態が、単なる例として、添付の図面を参照して説明される。
本発明の例示的な使用及び実施形態に関与する検証可能な計算及びアクタのプロトコルを示す。これらのアクタは、クライアント、ワーカ(「証明者」としても知られる)、及び検証者である。
本発明の一実施形態によるDSLコントラクトから二次算術プログラム(QAP)への翻訳処理を示す。
本発明の一実施形態による算術回路の一例を示す。
本発明の一実施形態による回路表現を含むパケット(ヘッダ+ボディ)の高水準記述を示す。
以下で説明される例のとおり「Check if variable <a> is even」のステートメントを表現する4ビットワイヤエキスパンダの一実装を示す。
本発明の一例示的な実装によるビルディングブロックを示し、このビルディングブロックは条件ステートメントを実現する。
本発明の一実施形態による、定数生成器モジュールが算術回路により使用される定数の作成をどのように担うかを示す。使用される例では、3つの定数(C1、C2、及びC3)に加えてデフォルトのイチ(1)及びゼロ(0)の値が生成される。
種々の実施形態が実現され得るコンピューティング環境を示す概略図である。
[概要]
次に、一実施形態により、本発明がどのように動作実現され得るかの例示を提供する。この例では、高水準言語コントラクト(例えば、C/C++言語)を算術ゲートを含む回路に変換するように構成されたインタプリタの可能な実装について説明する。しかしながら、本発明は、他のHLL言語を翻訳するように構成されてもよい。この変換を容易にするために、特定の構造又はビルディングブロック(building blocks)が使用可能である。1つ以上の実施形態において、この表現は、分散された検証可能な計算を提供することができる包括的なパイプラインの構築の最初のステップとみなすことができる。
次に、一実施形態により、本発明がどのように動作実現され得るかの例示を提供する。この例では、高水準言語コントラクト(例えば、C/C++言語)を算術ゲートを含む回路に変換するように構成されたインタプリタの可能な実装について説明する。しかしながら、本発明は、他のHLL言語を翻訳するように構成されてもよい。この変換を容易にするために、特定の構造又はビルディングブロック(building blocks)が使用可能である。1つ以上の実施形態において、この表現は、分散された検証可能な計算を提供することができる包括的なパイプラインの構築の最初のステップとみなすことができる。
この例で提示されるビルディングブロックは、本発明の実施形態により取り扱われる全ての可能な高水準言語構造の網羅的なリストであることは意図されない。さらに、提示される例の代替的な実装が提供され得る。これらは当業者のスコープの範囲内に入る。
次に、本発明の一例示的な実施形態を提供する。ただし、これは、本発明が使用され得る適用の一例であることに留意することが重要である。当業者は、本発明が他の文脈及び適用において有利に使用され得ることを理解するであろう。本発明は、スマートコントラクト又は金融商品に関する使用に限定されない。
[本発明の例示的な実施形態及び例示的なユースケース]
例えば、ユーザがドメイン固有言語(DSL)を使用して金融商品のコントラクトを生成することを可能にするプロトコルを考える。ひとたびコントラクトが生成されると、その実行は信頼されていないパーティ(「ワーカ(workers)」又は「証明者」と呼ばれる)にアウトソーシングでき、その正しさはパブリックに検証できる。プロトコルは、
・完全性、すなわち、正当な検証者(honest verifier)はプロトコルが正しく守られる場合に出力の有効性を確信する
・健全性、すなわち、不正な(cheating)証明者は出力の真正性(authenticity)について正当な検証者に確信させることができない
・ゼロ知識性、すなわち、不正な検証者は出力の有効性以外何も習得しない
を確保する暗号プリミティブを利用する。
例えば、ユーザがドメイン固有言語(DSL)を使用して金融商品のコントラクトを生成することを可能にするプロトコルを考える。ひとたびコントラクトが生成されると、その実行は信頼されていないパーティ(「ワーカ(workers)」又は「証明者」と呼ばれる)にアウトソーシングでき、その正しさはパブリックに検証できる。プロトコルは、
・完全性、すなわち、正当な検証者(honest verifier)はプロトコルが正しく守られる場合に出力の有効性を確信する
・健全性、すなわち、不正な(cheating)証明者は出力の真正性(authenticity)について正当な検証者に確信させることができない
・ゼロ知識性、すなわち、不正な検証者は出力の有効性以外何も習得しない
を確保する暗号プリミティブを利用する。
プロトコルの主な利点は以下のとおりである。
・参加者間の通信が要求されないため、中間者攻撃が防止される
・ブロックチェーン技術の使用に起因して、悪意のあるノードがデータを改ざんすることが困難になる。
・信頼されたハードウェアデバイスなどの信頼されたサードパーティが回避される。
・コントラクトの立証がコードの再実行を意味しない。計算は、ネットワーク内のあらゆるノードにより複製されるわけではない。代わりに、正当な実行のプルーフがパブリックブロックチェーンに記憶され、立証目的にのみ使用される。
・参加者間の通信が要求されないため、中間者攻撃が防止される
・ブロックチェーン技術の使用に起因して、悪意のあるノードがデータを改ざんすることが困難になる。
・信頼されたハードウェアデバイスなどの信頼されたサードパーティが回避される。
・コントラクトの立証がコードの再実行を意味しない。計算は、ネットワーク内のあらゆるノードにより複製されるわけではない。代わりに、正当な実行のプルーフがパブリックブロックチェーンに記憶され、立証目的にのみ使用される。
このようなシステムは、種々のタイプのタスク及び製品に対応する種々のタイプのスマートコントラクトを処理することができ、金融の適用又は使用に限定されない。その非中央集権的及び分散された性質に起因して、(ビットコイン)ブロックチェーンは、2つ以上のパーティ間の合意を解決するのに十分適した環境を提供する。
このようなシステムは、非中央集権的な暗号通貨システムにおいてプログラマビリティを提供し、容易にする必要がある。しかしながら、当技術分野では、スマートコントラクトプログラミングはエラーを起こしやすい処理であることが認識されている。Delmolino, K.ら(2015)のStep by Step Towards Creating a Safe Smart Contract: Lessons and Insights from a Cryptocurrency Lab、及びJuels, A.ら(2013)のThe Ring of Gyges: Using Smart Contracts for Crimeを参照する。
したがって、スマートコントラクトをプログラマにより書き込む及び読み取ることをより容易にするDSLを使用することができ、それによりエラーを低減させ、プログラミング処理の間の時間、労力、コスト、及びリソースを低減させることは有利であろう。理想的には、専門家でないプログラマが、いかなる暗号も実装する必要なくコントラクトを書くことができるであろう。代わりに、コンパイラ/インタプリタが、ソースコードをユーザとブロックチェーンとの間の暗号プロトコルに自動的にコンパイルする。これらは、本発明により解決される技術的問題の内にある。このような利点は、プルーフの検証及び生成に関する従来技術の手法では提供されない。
このフレームワークは、最先端の暗号的に検証可能な計算を使用し(Gennaro, R.ら(2013)のQuadratic Span Programs and Succint NIZKs without PCPsを参照する)、正しい関数評価を確保する。すなわち、機密情報を取得した敵対者は、検証可能な計算の使用のおかげで結果を操作することができない。このモデルは、ブロックチェーン技術を使用してプルーフオブコレクトネスを記憶し、「構築による正しさ(correct-by-construction)」の暗号アプローチをスマートコントラクトと組み合わせる。
この例では、高水準言語コントラクト(例えば、C/C++言語)を算術ゲートを含む回路に変換できる翻訳コンポーネントの実装に焦点を合わせる。結果として生じる回路は、(検証目的のプルーフとは対照的に)HLLソースコードのマシン実行可能表現である。この変換を容易にするために、特定の構造又はビルディングブロックが使用される。例において、本発明が使用されて、分散された検証可能な計算システムを実現するように構成されたパイプラインの構築の最初のステップを提供することができる。しかしながら、本発明はこのユースケースに限定されず、より広い範囲の適用及び文脈で実施するために使用できることを再度指摘することに留意する。
例示的な実装を説明するために、検証可能な計算のためのフレームワークの概要を提供し、続いて、本発明によるスマートコントラクトの回路表現の導入を提供する。
[例示的な使用:検証可能な計算:フレームワーク]
問題文。クライアントは、計算P及び入力xの仕様を信頼されていない証明者(ワーカ)に送信する。ワーカは出力yを計算し、それをクライアントに返す。y=P(x)の場合、正しい証明者は正しさの証明書を生成し、yの正しさを(クライアントだけでなく)誰にでも確信させることができるべきである。そうでない場合、検証者は高い確率でyを拒絶するべきである。
問題文。クライアントは、計算P及び入力xの仕様を信頼されていない証明者(ワーカ)に送信する。ワーカは出力yを計算し、それをクライアントに返す。y=P(x)の場合、正しい証明者は正しさの証明書を生成し、yの正しさを(クライアントだけでなく)誰にでも確信させることができるべきである。そうでない場合、検証者は高い確率でyを拒絶するべきである。
プロトコルは、検証者にとってローカルでP(x)を実行するより安価であるべきであり、あるいはプロトコルは、検証者が自身で実行できない計算Pを取り扱うべきである。さらに、ワーカの挙動の正しさについての仮定は必要とされない。
データアクセス。システムに、2つの区別可能な非中央集権的なデータベースが存在する。(i)DHT ‐ オフチェーンデータがDHTに記憶される。データはノードにわたり十分にランダム化され、高い可用性を確保するように複製される。(ii)公開台帳 ‐ 正しい実行のプルーフがブロックチェーンに記憶され、監査されることが可能である。
プロトコル。プロトコルにより必要とされるステップを図1に示す。計算Pは回路Cにより表現される。クライアントが入力xを供給し、ワーカが入力xに対して回路を実行し、出力がyであると主張する。証明者は、{C,x,y}に対する有効なトランスクリプトを取得することが期待される。{C,x,y}に対する有効なトランスクリプトは、以下のような回路ワイヤへの値の割り当てである。
・入力ワイヤに割り当てられる値はxのものである
・中間値はCにおける各ゲートの正しいオペレーションに対応する
・出力ワイヤに割り当てられる値はyである
主張された出力が正しくない、すなわちy≠P(x)の場合、{C,x,y}に対する有効なトランスクリプトは存在しない。
・入力ワイヤに割り当てられる値はxのものである
・中間値はCにおける各ゲートの正しいオペレーションに対応する
・出力ワイヤに割り当てられる値はyである
主張された出力が正しくない、すなわちy≠P(x)の場合、{C,x,y}に対する有効なトランスクリプトは存在しない。
セットアップフェーズは、正確なセマンティクスを有するフォーマルな言語でコントラクトを書くことを含む。本発明によれば、インタプリタは、入力としてソースコードを取り込み、体
からの値を搬送して加算及び乗算ゲートに接続するワイヤを含む算術回路Cを生成する。いくつかの実施形態において、英国特許出願第1718505.9号に記載されているような算術回路最適化手法が利用されて、スマートコントラクトの結果の決定の間に必要な必要とされるリソースを低減させてもよい。
回路Cから、システムは2次プログラムQを生成し、すなわち、Qは、元の回路Cの完全な記述を提供する多項式のセットを含む。次いで、全ての証明者及び検証者により使用されるパブリックパラメータが生成される。
公開評価鍵EK及び公開検証鍵VKが、クライアントにより選択された秘密値sを使用して導出される。ワーカは、これらの公開情報を使用して、特定の入力xに対する計算を評価する。出力y、内部回路ワイヤの値、及びEKが使用されて、プルーフオブコレクトネスπを生成する。プルーフπはブロックチェーンに記憶され、証明者にこれらのエンティティの各々と別個に対話するよう求めることなく複数のパーティにより検証されることが可能である。
全てのビットコインノードは、公開検証鍵VK及びプルーフπを使用して支払トランザクションを立証し、ゆえにコントラクトを立証することができる。
[スマートコントラクト及び回路表現]
ドメイン固有言語(DSL)がスマートコントラクトを実現するために必要とされ、例えばアクタラスモデリング言語(Actulus Modeling Language、AML)、デジタル資産モデリング言語(Digital Asset Modeling Language、DAML)、金融商品マークアップ言語(Financial Products Markup Language、FpML)などであるが、例示の簡潔さのため、本明細書では、高水準言語(High Level Language、HLL)、Cなどの、より大きい範囲の型、演算子、及び構造を提供することができるより一般的な言語の使用について説明する。しかしながら、本発明は、専用ツールを使用して異なるDSL言語をC(又は別のHLL)に変換するように構成可能である。
ドメイン固有言語(DSL)がスマートコントラクトを実現するために必要とされ、例えばアクタラスモデリング言語(Actulus Modeling Language、AML)、デジタル資産モデリング言語(Digital Asset Modeling Language、DAML)、金融商品マークアップ言語(Financial Products Markup Language、FpML)などであるが、例示の簡潔さのため、本明細書では、高水準言語(High Level Language、HLL)、Cなどの、より大きい範囲の型、演算子、及び構造を提供することができるより一般的な言語の使用について説明する。しかしながら、本発明は、専用ツールを使用して異なるDSL言語をC(又は別のHLL)に変換するように構成可能である。
本明細書で使用される例において、インタプリタは、Cで書かれたソースコードを処理する。本発明は、他の高水準言語(「汎用言語」(GPL)とも呼ばれ得る)と共に動作するように適合可能である。汎用プログラミング言語の例には、Ada、ALGOL、アセンブリ言語、BASIC、Boo、C、C++、C#、Clojure、COBOL、Crystal、D、Dart、Elixir、Erlang、F#、Fortran、Go、Harbour、Haskell、Idris、Java、JavaScript(登録商標)、Julia、Lisp、Lua、Modula‐2、NPL、Oberon、Objective‐C、Pascal、Perl、PHP、Pike、PL/I、Python、Ring、RPG、Ruby、Rust、Scala、Simula、Swift(登録商標)、及びTclが含まれる。
高水準言語の論理回路への翻訳のための包括的なパイプラインを図2に示す。本発明に従い、図2の点線ボックスで強調されたモジュールに焦点を合わせる。
・コントラクト及び必要な外部ライブラリを含む高水準Cプログラムが一緒にリンクされ、スタンドアロンの前処理コントラクトを作成する。この段階では、Cプリコンパイラが、全ての必要なリソースが利用可能であることのチェックを担う。プリプロセッサディレクティブがさらに評価される。
・定数式が評価され、全てのシンボルが登録される。結果は、加算(+)、乗算(*)、比較(<)、等値(==)、条件ステートメント(?,:)、論理演算子(and、or、not、xor)などのCライクな演算子の式のセットである。予め定義された名前及びフォーマットを有するメイン関数が必要とされる。算術回路(図3参照)は、基本算術ゲート、例えば加算及び乗算に接続されたnビットのワイヤを有するシンボルを表現することにより構築される。
・二次算術プログラム(QAP)における多項式は、Gennaro, R.ら(2013)のQuadratic Span Programs and Succinct NIZKs Without PCPsで紹介されているように、算術回路のルートにおけるその評価の観点で定義される。
・コントラクト及び必要な外部ライブラリを含む高水準Cプログラムが一緒にリンクされ、スタンドアロンの前処理コントラクトを作成する。この段階では、Cプリコンパイラが、全ての必要なリソースが利用可能であることのチェックを担う。プリプロセッサディレクティブがさらに評価される。
・定数式が評価され、全てのシンボルが登録される。結果は、加算(+)、乗算(*)、比較(<)、等値(==)、条件ステートメント(?,:)、論理演算子(and、or、not、xor)などのCライクな演算子の式のセットである。予め定義された名前及びフォーマットを有するメイン関数が必要とされる。算術回路(図3参照)は、基本算術ゲート、例えば加算及び乗算に接続されたnビットのワイヤを有するシンボルを表現することにより構築される。
・二次算術プログラム(QAP)における多項式は、Gennaro, R.ら(2013)のQuadratic Span Programs and Succinct NIZKs Without PCPsで紹介されているように、算術回路のルートにおけるその評価の観点で定義される。
図3は算術回路の一例を示す。各ワイヤは体Fからのものであり、全ての演算は体F上で実行される。この回路は、y=x1+x2・x3・(x3+x4)を計算する。回路の最終出力は合計であるため、さらなる乗算ゲート(定数イチを乗算する)が必要とされる。
[C言語インタプリタ]
本発明の一例示的な実施形態に従い、次に、プリプロセッサディレクティブ、条件文、算術及びビット単位ブール演算子、グローバル関数を含むCプログラミング言語に対して定義された命令のサブセットを認識することができるインタプリタについて説明する。当業者に容易に理解されるように、配列及び構造体のサポートが付加的な論理なしにさらに提供され得る。
本発明の一例示的な実施形態に従い、次に、プリプロセッサディレクティブ、条件文、算術及びビット単位ブール演算子、グローバル関数を含むCプログラミング言語に対して定義された命令のサブセットを認識することができるインタプリタについて説明する。当業者に容易に理解されるように、配列及び構造体のサポートが付加的な論理なしにさらに提供され得る。
インタプリタは、以下の「算術プリミティブの生成」と題されたセクションで提示される乗算、加算、及び特定のビルディングブロックを使用して、式を算術ゲート言語へ強化する。各ワイヤは、指定されたビット幅を有する。1ビット幅の場合、ワイヤは二値変数を表現する。
[ブロックチェーンでの実装のためのCライクなプログラムの算術的強化]
次に、Cソースコードで表された機能を表現する算術回路の構築の処理について詳述する。処理の各段階で、予期されない挙動(例えば、欠落したシンボル、誤ったシンタックス、又は未知の演算子)は、適切なコードエラーと共にプログラム実行の即時終了を結果としてもたらす。
次に、Cソースコードで表された機能を表現する算術回路の構築の処理について詳述する。処理の各段階で、予期されない挙動(例えば、欠落したシンボル、誤ったシンタックス、又は未知の演算子)は、適切なコードエラーと共にプログラム実行の即時終了を結果としてもたらす。
[前処理]
図2に示すように、スマートコントラクトは複数のファイル及びライブラリから構成され得る。プロトコルの最初のステップは、コントラクトを実現するために必要とされる命令のフルセットを含む単一のソースファイルの作成を含む。個々のサブステップが以下のように列挙され得る。
・全てのコメントが除去される。
・ヘッダ宣言がヘッダファイルからソースファイルにインポートされる。
・全てのソースファイルがマージされる。
・プリプロセッサCディレクティブ及びマクロが解決され、あるいは評価される。これらは、#defineディレクティブ及び条件付き#ifdefディレクティブを含む。
図2に示すように、スマートコントラクトは複数のファイル及びライブラリから構成され得る。プロトコルの最初のステップは、コントラクトを実現するために必要とされる命令のフルセットを含む単一のソースファイルの作成を含む。個々のサブステップが以下のように列挙され得る。
・全てのコメントが除去される。
・ヘッダ宣言がヘッダファイルからソースファイルにインポートされる。
・全てのソースファイルがマージされる。
・プリプロセッサCディレクティブ及びマクロが解決され、あるいは評価される。これらは、#defineディレクティブ及び条件付き#ifdefディレクティブを含む。
このステップの終わりに、全てのプリプロセッサ定数の実際の値が分からなければならない。ソースコードで使用される変数の値は、コントラクトの入力の値のみに依存しなければならない。さらに、ソースコード中のエントリポイントの宣言は、以下のシンタックスを有さなければならない。
出力は、特定のコントラクトに依存して異なる型の変数で表現できる。上記の場合、単一の出力が、算術演算の結果に単に接続される。
[整数及び実数]
この例示的な実施形態において、簡潔さのため、(符号付き又は符号なし)整数間の演算のみが利用可能であると仮定する。この仮定が除去される場合、回路ビルディングブロック(「算術プリミティブの生成」のセクションを参照)は拡大されなければならない。したがって、実数間の演算は、整数間の演算に変換されなければならない。以下のコントラクトの部分について考える。
「従業員の平均給与が32.5Kドルより高いかをチェックする」
この例示的な実施形態において、簡潔さのため、(符号付き又は符号なし)整数間の演算のみが利用可能であると仮定する。この仮定が除去される場合、回路ビルディングブロック(「算術プリミティブの生成」のセクションを参照)は拡大されなければならない。したがって、実数間の演算は、整数間の演算に変換されなければならない。以下のコントラクトの部分について考える。
「従業員の平均給与が32.5Kドルより高いかをチェックする」
[シンボルのグローバルテーブルの作成]
コンピュータ科学において、シンボルのテーブルは、ソースコード中の各識別子(シンボル)をその宣言に関する情報に関連づけるためにコンパイラ/インタプリタにより使用されるデータ構造である。この第2のステップでは、インタプリタは、ソースファイル内に宣言された全てのグローバルシンボルを検出する。
・関数
・構造体(又はクラス)
注:クラス(C++などのOOP言語)の使用は、public、protected、及びprivateセクションのスコープをチェックするためのさらなる論理を要する。
・定数
(グローバル変数も許可されるが、推奨されない。contract(...)関数のスコープは、独立したブラックボックスとして扱われるべきである。その挙動は、外部変数に依存すべきではない。)
コンピュータ科学において、シンボルのテーブルは、ソースコード中の各識別子(シンボル)をその宣言に関する情報に関連づけるためにコンパイラ/インタプリタにより使用されるデータ構造である。この第2のステップでは、インタプリタは、ソースファイル内に宣言された全てのグローバルシンボルを検出する。
・関数
・構造体(又はクラス)
注:クラス(C++などのOOP言語)の使用は、public、protected、及びprivateセクションのスコープをチェックするためのさらなる論理を要する。
・定数
(グローバル変数も許可されるが、推奨されない。contract(...)関数のスコープは、独立したブラックボックスとして扱われるべきである。その挙動は、外部変数に依存すべきではない。)
これらのシンボルの各々に対して、それらの識別子の内部宣言を表現するローカルシンボルの階層が構築される。この段階の終わりに、テーブル内の各グローバルシンボル(名前、型、及び値)は、さらなる処理のために直接アドレス指定されてもよい。
[コントラクトのエントリポイントの検出]
グローバルシンボルの1つは、コントラクト(「前処理」セクションのContract関数)のエントリポイントでなければならない。そのパラメータの名前、数、及び型は、予期されたシンタックスに対してチェックされる。全ての入力構造がコントラクト内で使用され、全ての出力構造がコントラクトのいくつかの部分にリンクされることをチェックするのに、さらなる論理が存在してもよい。
グローバルシンボルの1つは、コントラクト(「前処理」セクションのContract関数)のエントリポイントでなければならない。そのパラメータの名前、数、及び型は、予期されたシンタックスに対してチェックされる。全ての入力構造がコントラクト内で使用され、全ての出力構造がコントラクトのいくつかの部分にリンクされることをチェックするのに、さらなる論理が存在してもよい。
[行ごとの評価]
各コード行は独立して分析される。識別子の内部宣言を表現するローカルシンボルは、シンボルのグローバルテーブルの階層に含まれる。より詳細には、この段階は以下のタスクを担う。
・構造体及び配列、基本型(ブール、整数等)及びポインタの宣言を含む、型の復号。
・式の復号、例えば、単項又は二項演算、定数、識別子、データ構造、及び関数呼び出し。
・式の評価、すなわち、入力値に依存しない(数値)式の評価。
・メモリ割り振り、すなわち、コントラクト機能により必要とされるデータ構造のための一時的なストレージ割り振り。
各コード行は独立して分析される。識別子の内部宣言を表現するローカルシンボルは、シンボルのグローバルテーブルの階層に含まれる。より詳細には、この段階は以下のタスクを担う。
・構造体及び配列、基本型(ブール、整数等)及びポインタの宣言を含む、型の復号。
・式の復号、例えば、単項又は二項演算、定数、識別子、データ構造、及び関数呼び出し。
・式の評価、すなわち、入力値に依存しない(数値)式の評価。
・メモリ割り振り、すなわち、コントラクト機能により必要とされるデータ構造のための一時的なストレージ割り振り。
この段階は、空間的(すなわち、使用されるメモリ)及び時間的(すなわち、演算子の優先順位)の観点から算術式の全てのステートメントをリンクする。したがって、各出力変数は、入力変数に適用される論理及び算術演算の組み合わせとして表される。
[陽的演算式の作成]
「行ごと」セクションで定義されたデータ構造を使用し、一般的な算術/論理式eは、以下のシンタックスに従って陽的(explicit)形式で表現されるように折り畳まれる。
OPN(OPN-1(...(OP1(OP0))...))
「行ごと」セクションで定義されたデータ構造を使用し、一般的な算術/論理式eは、以下のシンタックスに従って陽的(explicit)形式で表現されるように折り畳まれる。
OPN(OPN-1(...(OP1(OP0))...))
このシンタックスに従い、任意の演算子OPi+1が演算子OPiの後にeに適用される。
例えば、次のコードを所与として、
陽的な式eは以下のとおり表現できる。
out0=(?(<15(ADD(ADD(ADD in0 in1)in0)in1))50(MUL(MUL in0 in1)in1))
out0=(?(<15(ADD(ADD(ADD in0 in1)in0)in1))50(MUL(MUL in0 in1)in1))
「算術プリミティブの生成」のセクションで説明されるように、式eは、コントラクト機能を表現するために必要な算術プリミティブを作成することに使用される。
[算術プリミティブの生成]
この段階で、インタプリタは、式eを生成するために使用される演算と、回路上でこれらの機能性を実現するために必要とされる構造との間の、1対1のマッピングを行う準備ができている。
この段階で、インタプリタは、式eを生成するために使用される演算と、回路上でこれらの機能性を実現するために必要とされる構造との間の、1対1のマッピングを行う準備ができている。
回路を作成するために必要な重要なパラメータは、ビット幅nbit、すなわち、符号付き(又は符号なし)整数を表現するために使用されるビット数である。異なるコンピュータアーキテクチャは、異なるnbit値により特徴づけられる。クライアントがワーカの好適なビット幅値を知らない場合、その値は任意に選択され、図4に示されるように、さらなる情報と共に回路のヘッダに指定される。(コンパイルが特定のターゲットアーキテクチャに対して実行されるのと同様に、ビット幅値を知ることは、回路のより効率的な実装及び実行を結果としてもたらし得る。)
バージョンフィールドは、回路内の特定のビルディングブロックを作成するために使用される特定のアルゴリズムに関する重要な情報を与える。例示的な実装では、符号付き整数の2の補数2進表現が選択された。
[加算及び乗算演算]
加算及び乗算演算は、回路内の加算及び乗算ゲートに1対1でマッピングされる。2つのnビットワイヤ入力を所与として、加算ワイヤ出力はn+1ビットを必要とし、乗算ワイヤ出力は2nビットを必要とする。例えば、2つのnbitワイヤa及びb間の乗算は以下のように表現できる。
MUL[ida idb]TO[idc]
加算及び乗算演算は、回路内の加算及び乗算ゲートに1対1でマッピングされる。2つのnビットワイヤ入力を所与として、加算ワイヤ出力はn+1ビットを必要とし、乗算ワイヤ出力は2nビットを必要とする。例えば、2つのnbitワイヤa及びb間の乗算は以下のように表現できる。
MUL[ida idb]TO[idc]
(回路内のあらゆる算術又はブールワイヤxが、値idxにより一義的に識別可能である。二値変数については、値ゼロからカウントを開始する。)結果cは、2nbitビットで自動的に表現される。
[ブール演算]
ブールゲートのフルセットは、算術ゲートを使用して計算できる。2つのブール値a及びbを所与として、以下の等価が有効である。
・AND(a,b)=ab
・NAND(a,b)=1-ab
・OR(a,b)=1-(1-a)(1-b)
・NOR(a,b)=(1-a)(1-b)
・XOR(a,b)=(1-a)b+(1-b)a
ブールゲートのフルセットは、算術ゲートを使用して計算できる。2つのブール値a及びbを所与として、以下の等価が有効である。
・AND(a,b)=ab
・NAND(a,b)=1-ab
・OR(a,b)=1-(1-a)(1-b)
・NOR(a,b)=(1-a)(1-b)
・XOR(a,b)=(1-a)b+(1-b)a
XOR演算子以外、各ブールゲートは1つの乗算しか必要としない。全ての算術演算が1ビット幅ワイヤで実行される。
nビット幅入力に対するビット単位ブール演算は、n個の1ビット乗算(ANDに対して)又は加算(ORに対して)を必要とする。最下位(least significative)出力ビットから始めて、次いで各要素が2を乗算され、次の要素に加算されて、結果として生じるnビット整数値を構築する(「ワイヤ圧縮」のセクションを参照)。
[ワイヤ拡張]
ワイヤ拡張は、通常、算術ワイヤaをnaビット出力ワイヤに翻訳するために使用され、naは、aで表すことができる最大値の2を底とする対数である。例えば、以下のコントラクトの部分について考える。
「Check if variable <a> is even」
ワイヤ拡張は、通常、算術ワイヤaをnaビット出力ワイヤに翻訳するために使用され、naは、aで表すことができる最大値の2を底とする対数である。例えば、以下のコントラクトの部分について考える。
「Check if variable <a> is even」
na=4の場合、このステートメントは、図5に示すようにワイヤ拡張を使用して実現される。a0がaの最下位ビットを表現すると仮定すると、ステートメントの出力はa0自体に等しい。この回路ビルディングブロックは以下のように表現できる。
EXPAND[ida]TO[ida3 ida2 ida1 ida0]
EXPAND[ida]TO[ida3 ida2 ida1 ida0]
回路をより詳細に見ると、aの1ビットのみがさらなる処理に必要とされ、残りの1ビットワイヤは除去できることが明らかである。インタプリタは、コントラクトの残りで使用される個々の1ビットワイヤのみを生成してもよい。図5は、「Check if variable <a> is even」のステートメントを表現する4ビットワイヤエキスパンダの一実装を示す。
インタプリタは、最適化されたワイヤエキスパンダに特定のシンタックスを適用する。
EXPAND[ida]TO[0->ida0]
EXPAND[ida]TO[0->ida0]
すなわち、最下位1ビットワイヤ(すなわち、識別子番号ゼロ)のみが取り込まれ、それに識別子ida0が割り当てられる。naが大きいほど、最適化はより効果的であり得る。(この文脈では、最適化は、算術回路を表現するために使用される低水準ディレクティブを記憶又は伝送するための空間を節減する可能性として定義される。)
このビルディングブロックは定数による加算と乗算で構成され、したがってQAP多項式のサイズは影響を受けない(Genaro R.ら(2013)のQuadratic Span Programs and Succinct NIZKs With PCPsを参照)。na=256であり、範囲[ida0,ida255]の識別子が連続していると仮定すると、このビルディングブロックを表現するための最適化された方法は以下のとおりである。
COMPRESS[ida0:ida255]TO[ida]
COMPRESS[ida0:ida255]TO[ida]
次いで、結果として生じるワイヤaはidaにより識別される。
[否定演算]
否定演算は2つの変数を比較するために必要であり、なぜならば、それらの差が値ゼロと比較できるためである。nビットワイヤの否定は、定数-1による乗算として実現できる。この定数は、以下のように表現されなければならない。
否定演算は2つの変数を比較するために必要であり、なぜならば、それらの差が値ゼロと比較できるためである。nビットワイヤの否定は、定数-1による乗算として実現できる。この定数は、以下のように表現されなければならない。
[ゼロ相当演算(Equal To Zero Operation)]
nbitビットワイヤaに対するこのビルディングブロックは、以下のように実現できる。
・nbitビットに対するワイヤ拡張(a0, ...,anbit-1)
・各1ビットワイヤを否定する(ai→bi)
・結果として生じるbiワイヤを乗算する、すなわち、
nbitビットワイヤaに対するこのビルディングブロックは、以下のように実現できる。
・nbitビットに対するワイヤ拡張(a0, ...,anbit-1)
・各1ビットワイヤを否定する(ai→bi)
・結果として生じるbiワイヤを乗算する、すなわち、
したがって、a=0の場合及びその場合に限り、1ビット変数c=1である。
[ゼロ比較演算(Compare To Zero Operation)]
「より大きい」演算は、簡素な等式ルールを使用して「より小さい」演算に変形できる。2の補数表現において、この演算は、2つの符号付き整数間の差が正か又は負か(あるいは、「以下」演算の場合にはゼロに等しいか)をチェックすることに対応する。差c=a-bの符号の判別は、2進表現における最上位(most significative)ビットxにより与えられる。負の数はx=1により特徴づけられ、正の数はx=0により特徴づけられる。
EXPAND[idc]TO[nbit-1 -> x]
「より大きい」演算は、簡素な等式ルールを使用して「より小さい」演算に変形できる。2の補数表現において、この演算は、2つの符号付き整数間の差が正か又は負か(あるいは、「以下」演算の場合にはゼロに等しいか)をチェックすることに対応する。差c=a-bの符号の判別は、2進表現における最上位(most significative)ビットxにより与えられる。負の数はx=1により特徴づけられ、正の数はx=0により特徴づけられる。
EXPAND[idc]TO[nbit-1 -> x]
比較のタイプ(正対負)に依存して、2進値xは否定される必要がある。
[条件ステートメント]
高水準言語の条件ステートメントは、次の形式で表すことができる。
IF(Sc) Sa ELSE Sb
高水準言語の条件ステートメントは、次の形式で表すことができる。
IF(Sc) Sa ELSE Sb
ステートメントScはコントラクトの入力に依存するため、分岐Sa及びSbの双方が回路に実装されなければならない。論理フローを図6に示す。ステートメントScの(二値)出力に依存して、ステートメントSa又はステートメントSbが実行される。2進演算x+1は、xを否定するために使用される。
[定数の生成]
定数値は回路の入力ワイヤに依存しない。mul-by-const-c形式の専用の単項乗算ゲートを使用し、以下のさらなる回路を提供して、コントラクトにより必要とされる定数値を生成する。
・定数ゼロは、入力ワイヤに0を乗算することにより計算される。
(コントラクトは少なくとも1つの入力を有さなければならない。したがって、識別子1の入力(例えば、図7のin1)が使用されて定数ゼロを生成することができる。)
・定数イチは、定数ゼロに1を加算することにより計算される。
・任意のさらなる定数ciが、定数イチに対してmul-by-const-ciを使用することにより計算される。
定数値は回路の入力ワイヤに依存しない。mul-by-const-c形式の専用の単項乗算ゲートを使用し、以下のさらなる回路を提供して、コントラクトにより必要とされる定数値を生成する。
・定数ゼロは、入力ワイヤに0を乗算することにより計算される。
(コントラクトは少なくとも1つの入力を有さなければならない。したがって、識別子1の入力(例えば、図7のin1)が使用されて定数ゼロを生成することができる。)
・定数イチは、定数ゼロに1を加算することにより計算される。
・任意のさらなる定数ciが、定数イチに対してmul-by-const-ciを使用することにより計算される。
定数ゼロ及びイチは常に回路に追加されるため、k個の任意の定数の実装はk+2個のゲートを必要とする。この処理を図7に示す。本発明の一実施形態により提供される定数生成器(generator)モジュールは、算術回路により使用される定数の作成を担う。この例において、3つの定数(C1、C2、及びC3)に加えてデフォルトのイチ(1)及びゼロ(0)の値が生成される。
定数は、2の補数の標準で規定される既知のビット幅を有する。
次に、図8を参照し、本開示の少なくとも1つの実施形態を実施するために使用され得るコンピューティングデバイス2600の例示的な簡略ブロック図が提供される。種々の実施形態において、コンピューティングデバイス2600は、上で例示及び説明されたシステムのうち任意のものを実現するために使用されてもよい。例えば、コンピューティングデバイス2600は、データサーバ、ウェブサーバ、ポータブルコンピューティングデバイス、パーソナルコンピュータ、又は任意の電子コンピューティングデバイスとしての使用に対して構成されてもよい。図8に示すように、コンピューティングデバイス2600は、1つ以上のレベルのキャッシュメモリ及びメモリコントローラを有する1つ以上のプロセッサ(集合的に2602とラベル付けされている)を含み得、該プロセッサは、メインメモリ2608及び永続ストレージ2610を含むストレージサブシステム2606と通信するように構成され得る。メインメモリ2608は、図示のように、ダイナミックランダムアクセスメモリ(DRAM)2618及び読取専用メモリ(ROM)2620を含むことができる。ストレージサブシステム2606及びキャッシュメモリ2602は、本開示に記載されるトランザクション及びブロックに関連づけられた詳細などの情報の記憶のために使用され得る。プロセッサ2602は、本開示に記載される任意の実施形態のステップ又は機能を提供するために利用され得る。
プロセッサ2602は、1つ以上のユーザインターフェース入力デバイス2612、1つ以上のユーザインターフェース出力デバイス2614、及びネットワークインターフェースサブシステム2616と通信することもできる。
バスサブシステム2604は、コンピューティングデバイス2600の種々のコンポーネント及びサブシステムが意図されたとおり互いに通信することを可能にする機構を提供し得る。バスサブシステム2604は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態が複数のバスを利用してもよい。
ネットワークインターフェースサブシステム2616は、他のコンピューティングデバイス及びネットワークへのインターフェースを提供し得る。ネットワークインターフェースサブシステム2616は、他のシステムからデータを受信し、コンピューティングデバイス2600から他のシステムにデータを送信するためのインターフェースとして機能してもよい。例えば、ネットワークインターフェースサブシステム2616は、データ技術者がデバイスをネットワークに接続することを可能にし得、それにより、データ技術者は、データセンタなどの遠隔地にいる間にデバイスにデータを送信し、デバイスからデータを受信することができ得る。
ユーザインターフェース入力デバイス2612は、キーボードなどの1つ以上のユーザ入力デバイス;一体型マウス、トラックボール、タッチパッド、又はグラフィックスタブレットなどのポインティングデバイス;スキャナ;バーコードスキャナ;ディスプレイに組み込まれたタッチスクリーン;音声認識システム、マイクロフォンなどのオーディオ入力デバイス;及び他タイプの入力デバイスを含んでもよい。一般に、用語「入力デバイス」の使用は、情報をコンピューティングデバイス2600に入力する全ての可能なタイプのデバイス及び機構を含むことが意図される。
1つ以上のユーザインターフェース出力デバイス2614は、表示サブシステム、プリンタ、又はオーディオ出力デバイスなどの非視覚的ディスプレイ等を含んでもよい。表示サブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイなどのフラットパネルデバイス、又は投影若しくは他の表示装置でもよい。一般に、用語「出力デバイス」の使用は、コンピューティングデバイス2600から情報を出力する全ての可能なタイプのデバイス及び機構を含むことが意図される。1つ以上のユーザインターフェース出力デバイス2614が使用されて、例えば、ユーザインターフェースを提示し、説明された処理及びその変形を実行するアプリケーションとのユーザ対話を、そのような対話が適切であり得るときに容易にしてもよい。
ストレージサブシステム2606は、本開示の少なくとも1つの実施形態の機能を提供し得る基本プログラミング及びデータ構造を記憶するコンピュータ読取可能記憶媒体を提供し得る。アプリケーション(プログラム、コードモジュール、命令)は、1つ以上のプロセッサにより実行されたとき、本開示の1つ以上の実施形態の機能を提供してもよく、ストレージサブシステム2606に記憶されてもよい。これらのアプリケーションモジュール又は命令は、1つ以上のプロセッサ2602により実行されてもよい。ストレージサブシステム2606は、本開示に従って使用されるデータを記憶するリポジトリをさらに提供してもよい。例えば、メインメモリ2608及びキャッシュメモリ2602は、プログラム及びデータの揮発性ストレージを提供することができる。永続ストレージ2610は、プログラム及びデータの永続的(不揮発性)ストレージを提供することができ、フラッシュメモリ、1つ以上のソリッドステートドライブ、1つ以上の磁気ハードディスクドライブ、関連するリムーバブルメディアを備えた1つ以上のフロッピーディスクドライブ、関連するリムーバブルメディアを備えた1つ以上の光学ドライブ(例えば、CD‐ROM又はDVD又はBlue‐Ray)ドライブ、及び他の同様の記憶媒体を含んでもよい。このようなプログラム及びデータには、本開示に記載される1つ以上の実施形態のステップを実行するプログラムと、本開示に記載されるトランザクション及びブロックに関連づけられたデータを含むことができる。
コンピューティングデバイス2600は、ポータブルコンピュータデバイス、タブレットコンピュータ、ワークステーション、又は以下に記載される任意の他のデバイスを含む種々のタイプのものでもよい。さらに、コンピューティングデバイス2600は、1つ以上のポート(例えば、USB、ヘッドフォンジャック、ライトニングコネクタ等)を通じてコンピューティングデバイス2600に接続され得る別のデバイスを含んでもよい。コンピューティングデバイス2600に接続され得るデバイスは、光ファイバコネクタを受け入れるように構成された複数のポートを含んでもよい。したがって、このデバイスは、光信号を、処理のために、デバイスをコンピューティングデバイス2600に接続するポートを通じて伝送され得る電気信号に変換するように構成されてもよい。コンピュータ及びネットワークの絶えず変化する性質に起因して、図8に示されるコンピューティングデバイス2600の説明は、デバイスの好適な実施形態を例示する目的で特定の例としてのみ意図される。図8に示すシステムより多くの又は少ないコンポーネントを有する多くの他の構成が可能である。
上述の実施形態は、発明を限定するのでなく例示しており、当業者は、別記の特許請求の範囲により定義される発明の範囲から逸脱することなく多くの代替的な実施形態を設計可能であることに留意されたい。特許請求の範囲においては、括弧内に付されたいかなる参照符号も、特許請求の範囲を限定するものと解釈されてはならない。語「含んでいる」及び「含む」などは、任意の請求項又は明細書全体に列挙されたもの以外の要素又はステップの存在を除外しない。本明細書において、「含む」は、「含める、又は、から構成される」ことを意味し、「含んでいる」は、「含めている、又は、から構成されている」ことを意味する。要素の単数の参照は、そのような要素の複数の参照を除外するものではなく、その逆もまた同様である。発明は、いくつかの区別可能な要素を含むハードウェアを用いて、及び適切にプログラムされたコンピュータを用いて実現されてもよい。いくつかの手段を列挙するデバイスクレームにおいては、これらの手段のうちいくつかは、1つの同じアイテムのハードウェアにより具現化されてもよい。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組み合わせが利するように使用できないことを示すものではない。
本明細書で引用される刊行物、特許出願、及び特許を含む全ての参照文献は、各参照文献が参照により援用されるよう個々及び具体的に示され、かつその全体を本明細書に明示されているのと同程度、本明細書で参照により援用される。これには、英国特許出願番号第GB1719998.5号、第GB1718505.9号、第GB1720768.9号が含まれる。
Claims (17)
- コンピュータにより実現される方法であって、
算術回路を生成するためにソースコードの部分を処理するステップであり、
前記ソースコードは高水準プログラミング言語で書かれ、
前記算術回路は、前記ソースコード内に表された機能の一部又は全部を表現するように構成された1つ以上の算術ゲートを含み、前記算術回路は、算術ゲートに接続されたnビットワイヤを含み、1つ以上の回路ワイヤの出力と公開評価鍵EKが、プルーフオブコレクトネスを生成するために使用される、ステップ、
を含む方法。 - 前記プルーフオブコレクトネスは、ブロックチェーン上に記憶される、請求項1に記載の方法。
- 前記公開評価鍵EKは、秘密値を使用して導出される、請求項1に記載の方法。
- 公開検証鍵が、秘密値を使用して導出される、請求項1に記載の方法。
- 前記算術回路を使用してハードウェア及び/又はソフトウェア回路を提供するステップ、
をさらに含む請求項1に記載の方法。 - 前記算術回路は、算術ゲートに接続されたnビットワイヤを含む、
請求項1に記載の方法。 - 前記算術回路はアーキテクチャ非依存である、請求項1に記載の方法。
- 当該方法は、前記ソースコードを前処理して1つ以上の定数を決定するステップをさらに含み、前記前処理するステップは、
コメントを除去するステップと、
ヘッダファイルからソースファイルにヘッダ宣言をインポートするステップと、
複数のソースファイルをマージするステップと、
ディレクティブ及びマクロを解決し、あるいは評価するステップと、
のうち1つ以上を含む、請求項1に記載の方法。 - 当該方法は、前記ソースコード内に宣言された全てのグローバル変数を検出するステップをさらに含み、グローバル変数は、関数、構造体若しくはクラス、定数、及び/又は実行のエントリポイントに関する、請求項1に記載の方法。
- 当該方法は、
シンボルのテーブルを生成して、前記ソースコード内に提供された各シンボル(すなわち、識別子)を前記ソースコード内に提供された宣言情報に関連づけるステップであり、前記テーブル内のシンボルはグローバル及び/又はローカルシンボルである、ステップ
をさらに含む、請求項1に記載の方法。 - 当該方法は、1つ以上の入力変数に適用される論理及び/又は算術演算の組み合わせとして1つ以上のアウト変数を表す算術及び/又は論理式をもたらす前記ソースコードの行ごとの評価を実行するステップをさらに含む、請求項1に記載の方法。
- 前記行ごとの評価は、
型の復号、
式の復号、
式の評価、及び/又は
前記機能により必要とされるデータ構造のためのメモリの割り振り
のサブステップを含む、請求項11に記載の方法。 - 前記式の前記算術及び/又は論理演算を算術ゲートにマッピングするステップ、
をさらに含む請求項11に記載の方法。 - 前記マッピングするステップは、
ワイヤ拡張を実行するサブステップ、及び/又は
ワイヤ圧縮を実行するサブステップ
を含む、請求項13に記載の方法。 - 前記算術回路を使用して、前記回路の記述を提供する多項式のセットを含む二次プログラムを生成するステップ、
をさらに含む請求項1に記載の方法。 - 1つ以上の入力を使用する前記二次プログラムの実行のために前記二次プログラムをエンティティに提供するステップ、
をさらに含む請求項15に記載の方法。 - 請求項1に記載のステップを実行するように構成された、コンピュータにより実現されるシステムであって、好ましくは当該システムは、前記ソースコードの処理を実行するように構成されたインタプリタを含む、システム。
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 | ||
GBGB1719998.5A GB201719998D0 (en) | 2017-11-30 | 2017-11-30 | Computer-Implemented system and method |
GB1719998.5 | 2017-11-30 | ||
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 |
GBGB1806444.4A GB201806444D0 (en) | 2018-04-20 | 2018-04-20 | Computer-implemented system and method |
GB1806444.4 | 2018-04-20 | ||
PCT/IB2018/058437 WO2019092545A1 (en) | 2017-11-09 | 2018-10-29 | Arithmetic enhancement of c-like smart contracts for verifiable computation |
JP2020524517A JP2021502636A (ja) | 2017-11-09 | 2018-10-29 | 検証可能な計算のためのcライクなスマートコントラクトの算術的強化 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020524517A Division JP2021502636A (ja) | 2017-11-09 | 2018-10-29 | 検証可能な計算のためのcライクなスマートコントラクトの算術的強化 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023182741A true JP2023182741A (ja) | 2023-12-26 |
Family
ID=64100702
Family Applications (10)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020524430A Active JP7234229B2 (ja) | 2017-11-09 | 2018-10-29 | 最適化された検証可能な計算のための実行可能命令を簡略化するためのシステム |
JP2020524541A Active JP7221954B2 (ja) | 2017-11-09 | 2018-10-29 | 変更から検証鍵を保護し、正当性のプルーフの有効性を確かめるためのシステム |
JP2020524517A Pending JP2021502636A (ja) | 2017-11-09 | 2018-10-29 | 検証可能な計算のためのcライクなスマートコントラクトの算術的強化 |
JP2020524532A Active JP7208989B2 (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 (8)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020524430A Active JP7234229B2 (ja) | 2017-11-09 | 2018-10-29 | 最適化された検証可能な計算のための実行可能命令を簡略化するためのシステム |
JP2020524541A Active JP7221954B2 (ja) | 2017-11-09 | 2018-10-29 | 変更から検証鍵を保護し、正当性のプルーフの有効性を確かめるためのシステム |
JP2020524517A Pending JP2021502636A (ja) | 2017-11-09 | 2018-10-29 | 検証可能な計算のためのcライクなスマートコントラクトの算術的強化 |
JP2020524532A Active JP7208989B2 (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 | 最適化された検証可能な計算のための実行可能命令を簡略化するためのシステム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023176820A Pending JP2023179687A (ja) | 2017-11-09 | 2023-10-12 | 分散コンピューティングシステム及び方法 |
Country Status (9)
Country | Link |
---|---|
US (8) | US11635950B2 (ja) |
EP (7) | EP3707623A1 (ja) |
JP (10) | JP7234229B2 (ja) |
KR (5) | KR20200080265A (ja) |
CN (6) | CN111345005A (ja) |
SG (5) | SG11202004147RA (ja) |
TW (1) | TWI806918B (ja) |
WO (5) | WO2019092543A1 (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 |
EP3707623A1 (en) | 2017-11-09 | 2020-09-16 | Nchain Holdings Limited | System for simplifying executable instructions for optimised verifiable computation |
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 |
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 |
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 |
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 | 杭州宇链科技有限公司 | 一种采集可信数据的模组以及数据传输方法 |
JPWO2021166782A1 (ja) * | 2020-02-21 | 2021-08-26 | ||
US11792022B2 (en) | 2020-02-21 | 2023-10-17 | International Business Machines Corporation | Resolution of conflicting data |
US11188316B2 (en) * | 2020-03-09 | 2021-11-30 | International Business Machines Corporation | Performance optimization of class instance comparisons |
CN111506783B (zh) * | 2020-04-08 | 2023-12-22 | 百度在线网络技术(北京)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
CA3091660A1 (en) * | 2020-08-31 | 2021-11-03 | Polymath Inc. | Method, system, and medium for blockchain-enabled atomic settlement |
CN111768187A (zh) * | 2020-08-31 | 2020-10-13 | 支付宝(杭州)信息技术有限公司 | 一种部署智能合约的方法、区块链节点和存储介质 |
CN112132576B (zh) * | 2020-09-07 | 2021-08-06 | 易宝支付有限公司 | 基于区块链通信的支付信息处理方法及区块链信息平台 |
US11029920B1 (en) * | 2020-10-21 | 2021-06-08 | Chariot Technologies Lab, Inc. | Execution of a conditional statement by an arithmetic and/or bitwise unit |
US11456871B2 (en) * | 2020-11-03 | 2022-09-27 | Provide Technologies, Inc. | System and method for autonomous mapping of enterprise identity |
KR102346292B1 (ko) * | 2020-11-11 | 2022-01-03 | 엘에스웨어(주) | 키 정보를 이용한 트랜잭션 분류 시스템 및 방법 |
KR102346293B1 (ko) * | 2020-12-08 | 2022-01-03 | 엘에스웨어(주) | 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템 및 수행방법 |
GB2602010A (en) * | 2020-12-15 | 2022-06-22 | Nchain Holdings Ltd | Generating and validating blockchain transactions |
CN113222747B (zh) * | 2020-12-31 | 2024-01-26 | 上海零数众合信息科技有限公司 | 一种区块链隐私交易方法 |
KR102594655B1 (ko) * | 2021-01-11 | 2023-10-27 | 충남대학교 산학협력단 | 동적 연산을 통한 검증이 가능한 영지식 증명 시스템 및 증명 방법 |
US20220417044A1 (en) * | 2021-06-25 | 2022-12-29 | Prateek GOEL | System and method to manage large data in blockchain |
CN113469690B (zh) * | 2021-07-23 | 2024-03-26 | 佳乔(深圳)投资有限公司 | 一种基于区块链的交易结算方法 |
CN113610474B (zh) * | 2021-08-16 | 2023-09-22 | 傲林科技有限公司 | 一种基于事件网的库存管理方法和管理系统 |
US20230298064A1 (en) * | 2022-01-26 | 2023-09-21 | Seek Xr, Inc. | Systems and methods for facilitating redemption of unique digital asset utility |
GB2618106A (en) * | 2022-04-27 | 2023-11-01 | Nchain Licensing Ag | Messaging protocol for compact script transactions |
US11818207B1 (en) * | 2022-07-08 | 2023-11-14 | T-Mobile Innovations Llc | Methods and systems for ledger based content delivery using a mobile edge computing (MEC) server |
CN114978514B (zh) * | 2022-07-27 | 2022-11-01 | 杭州友恭科技有限公司 | 密钥管理方法、系统、装置、电子装置和存储介质 |
US11792259B1 (en) | 2022-09-28 | 2023-10-17 | T-Mobile Innovations Llc | Methods and systems for distributing rendering across devices in a customer premise |
CN115801288B (zh) * | 2023-01-10 | 2023-04-18 | 南方科技大学 | 一种基于区块链和零知识证明的验证方法、系统及设备 |
CN116610362B (zh) * | 2023-04-27 | 2024-02-23 | 合芯科技(苏州)有限公司 | 一种处理器指令集译码方法、系统、设备和存储介质 |
US11882216B1 (en) * | 2023-06-08 | 2024-01-23 | Auradine, Inc. | End-to-end hardware acceleration for ZKP from witness generation to proof generation |
Family Cites Families (115)
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 |
US6711717B2 (en) * | 2001-10-11 | 2004-03-23 | California Institute Of Technology | Method and system for compiling circuit designs |
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 |
EP1964305B1 (en) * | 2005-12-13 | 2014-07-30 | Koninklijke Philips N.V. | Secure threshold decryption protocol computation |
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 |
US20100067686A1 (en) | 2006-10-30 | 2010-03-18 | Kazuhiro Minematsu | Shared key block cipher apparatus, its method, its program and recording medium |
FR2918525A1 (fr) | 2007-07-06 | 2009-01-09 | France Telecom | Procede asymetrique de chiffrement ou de verification de signature. |
WO2009064122A1 (en) | 2007-11-18 | 2009-05-22 | Lg Electronics Inc. | Methods of joint coding in mobile communication system |
US8336036B2 (en) | 2008-11-21 | 2012-12-18 | Korea University Industrial & Academic Collaboration Foundation | System and method for translating high programming level languages code into hardware description language code |
US8165287B2 (en) | 2008-12-30 | 2012-04-24 | King Fahd University Of Petroleum & Minerals | Cryptographic hash functions using elliptic polynomial cryptography |
FR2947404B1 (fr) | 2009-06-30 | 2011-12-16 | Sagem Securite | Cryptographie par parametrisation sur une courbe elliptique |
US8189775B2 (en) | 2010-02-18 | 2012-05-29 | King Fahd University Of Petroleum & Minerals | Method of performing cipher block chaining using elliptic polynomial cryptography |
US8667301B2 (en) * | 2010-04-01 | 2014-03-04 | Apple Inc. | Obfuscating transformations on data array content and addresses |
JP5700041B2 (ja) | 2010-04-27 | 2015-04-15 | 日本電気株式会社 | 符号化装置、誤り訂正符号構成方法およびそのプログラム |
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. |
JP6429785B2 (ja) * | 2012-11-07 | 2018-11-28 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 演算子のないコンパイラ |
US9306738B2 (en) * | 2012-12-21 | 2016-04-05 | Microsoft Technology Licensing, Llc | Managed secure computations on encrypted data |
CN105074717A (zh) * | 2013-01-16 | 2015-11-18 | 迈克菲公司 | 在网络环境中的恶意脚本语言代码的检测 |
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 |
EP3073670B1 (en) | 2015-03-27 | 2020-09-02 | Black Gold Coin, Inc. | A system and a method for personal identification and verification |
JP6364132B2 (ja) * | 2015-03-31 | 2018-07-25 | ナスダック, インコーポレイテッドNasdaq, Inc. | ブロックチェーン取引記録のシステムおよび方法 |
WO2016155804A1 (en) | 2015-03-31 | 2016-10-06 | Nec Europe Ltd. | 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 | 阿里巴巴集团控股有限公司 | 分布式流计算系统、方法和装置 |
WO2017008829A1 (en) | 2015-07-10 | 2017-01-19 | Nec Europe Ltd. | A method and a system for reliable computation of a program |
US10366204B2 (en) * | 2015-08-03 | 2019-07-30 | Change Healthcare Holdings, Llc | System and method for decentralized autonomous healthcare economy platform |
US20170091726A1 (en) * | 2015-09-07 | 2017-03-30 | NXT-ID, Inc. | Low bandwidth crypto currency transaction execution and synchronization method and system |
MX2018003750A (es) * | 2015-09-30 | 2018-07-06 | Sekisui Chemical Co Ltd | Pelicula intercalar para vidrio laminado y vidrio laminado. |
US20180331832A1 (en) | 2015-11-05 | 2018-11-15 | Allen Pulsifer | Cryptographic Transactions System |
US20170132621A1 (en) | 2015-11-06 | 2017-05-11 | SWFL, Inc., d/b/a "Filament" | Systems and methods for autonomous device transacting |
US10048952B2 (en) | 2015-11-11 | 2018-08-14 | Oracle International Corporation | Compiler optimized data model evaluation |
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 |
EP3380984A4 (en) * | 2015-11-24 | 2019-07-31 | Ben-Ari, Adi | SYSTEM AND METHOD FOR THE PROTECTION OF DATA BY INTELLIGENT BLOCKCHAIN CONTRACT |
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 |
WO2017111973A1 (en) * | 2015-12-22 | 2017-06-29 | Intel Corporation | Efficient and secure sharing of large data repositories |
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 |
BR112018016819A2 (pt) * | 2016-02-23 | 2018-12-26 | Nchain Holdings Ltd | método e sistemas para proteger um recurso digital controlado utilizando uma tabela de dispersão e livro-razão distribuídos e um blockchain |
WO2017145010A1 (en) | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | 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 |
US11170371B2 (en) | 2016-03-03 | 2021-11-09 | Nec Corporation | Method for managing data in a network of nodes |
US11017387B2 (en) | 2016-03-24 | 2021-05-25 | International Business Machines Corporation | Cryptographically assured zero-knowledge cloud services for elemental transactions |
US11017388B2 (en) | 2016-03-25 | 2021-05-25 | International Business Machines Corporation | Cryptographically assured zero-knowledge cloud service for composable atomic transactions |
US10839096B2 (en) | 2016-03-28 | 2020-11-17 | International Business Machines Corporation | Cryptographically provable zero-knowledge content distribution network |
AU2017240796A1 (en) | 2016-03-31 | 2018-10-25 | Clause, Inc. | System and method for creating and executing data-driven legal contracts |
EP3440823B1 (en) | 2016-04-05 | 2020-09-02 | Zamna Technologies 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 |
WO2017178956A1 (en) | 2016-04-11 | 2017-10-19 | nChain Holdings Limited | A method for secure peer-to-peer communication on a blockchain |
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 |
EP4102431A1 (en) * | 2016-04-29 | 2022-12-14 | nChain Licensing AG | Implementing logic gate functionality using a blockchain |
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 |
EP3707623A1 (en) | 2017-11-09 | 2020-09-16 | Nchain Holdings Limited | System for simplifying executable instructions for optimised verifiable computation |
US10715317B2 (en) * | 2017-12-12 | 2020-07-14 | International Business Machines Corporation | Protection of confidentiality, privacy and financial fairness in a blockchain based decentralized identity management system |
US20210342490A1 (en) * | 2020-05-04 | 2021-11-04 | Cerebri AI Inc. | Auditable secure reverse engineering proof machine learning pipeline and methods |
US11226799B1 (en) * | 2020-08-31 | 2022-01-18 | International Business Machines Corporation | Deriving profile data for compiler optimization |
CN113779578B (zh) * | 2021-09-13 | 2024-01-19 | 支付宝(杭州)信息技术有限公司 | 移动端应用的智能混淆方法和系统 |
-
2018
- 2018-10-29 EP EP18797157.7A patent/EP3707623A1/en active Pending
- 2018-10-29 CN CN201880073019.5A patent/CN111345005A/zh active Pending
- 2018-10-29 CN CN201880072678.7A patent/CN111345004B/zh active Active
- 2018-10-29 JP JP2020524430A patent/JP7234229B2/ja active Active
- 2018-10-29 KR KR1020207014203A patent/KR20200080265A/ko not_active Application Discontinuation
- 2018-10-29 EP EP22170376.2A patent/EP4092953A1/en active Pending
- 2018-10-29 CN CN201880072692.7A patent/CN111406379A/zh active Pending
- 2018-10-29 US US16/762,475 patent/US11635950B2/en active Active
- 2018-10-29 JP JP2020524541A patent/JP7221954B2/ja active Active
- 2018-10-29 EP EP18796783.1A patent/EP3707852B1/en active Active
- 2018-10-29 CN CN202311496467.5A patent/CN117640170A/zh active Pending
- 2018-10-29 US US16/762,461 patent/US20210377041A1/en active Pending
- 2018-10-29 KR KR1020207014209A patent/KR20200086284A/ko not_active Application Discontinuation
- 2018-10-29 WO PCT/IB2018/058433 patent/WO2019092543A1/en unknown
- 2018-10-29 SG SG11202004147RA patent/SG11202004147RA/en unknown
- 2018-10-29 KR KR1020207014108A patent/KR20200086282A/ko not_active Application Discontinuation
- 2018-10-29 WO PCT/IB2018/058434 patent/WO2019092544A1/en unknown
- 2018-10-29 US US16/762,471 patent/US11658801B2/en active Active
- 2018-10-29 WO PCT/IB2018/058432 patent/WO2019092542A1/en unknown
- 2018-10-29 JP JP2020524517A patent/JP2021502636A/ja active Pending
- 2018-10-29 SG SG11202004146WA patent/SG11202004146WA/en unknown
- 2018-10-29 WO PCT/IB2018/058437 patent/WO2019092545A1/en unknown
- 2018-10-29 JP JP2020524532A patent/JP7208989B2/ja active Active
- 2018-10-29 SG SG11202004148PA patent/SG11202004148PA/en unknown
- 2018-10-29 CN CN201880072801.5A patent/CN111316595A/zh active Pending
- 2018-10-29 EP EP18796782.3A patent/EP3707871B1/en active Active
- 2018-10-29 US US16/762,466 patent/US11575511B2/en active Active
- 2018-10-29 EP EP18797158.5A patent/EP3707855A1/en active Pending
- 2018-10-29 EP EP23216404.6A patent/EP4312403A3/en active Pending
- 2018-10-29 SG SG11202004149UA patent/SG11202004149UA/en unknown
- 2018-10-29 KR KR1020207014213A patent/KR20200079503A/ko not_active Application Discontinuation
- 2018-11-01 EP EP18800333.9A patent/EP3707856A1/en active Pending
- 2018-11-01 SG SG11202004153UA patent/SG11202004153UA/en unknown
- 2018-11-01 KR KR1020207014106A patent/KR20200086281A/ko not_active Application Discontinuation
- 2018-11-01 US US16/762,490 patent/US20210192514A1/en active Pending
- 2018-11-01 CN CN201880072729.6A patent/CN111316594A/zh active Pending
- 2018-11-01 WO PCT/IB2018/058583 patent/WO2019092561A1/en unknown
- 2018-11-01 JP JP2020524561A patent/JP2021502747A/ja active Pending
- 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 |
---|---|---|
JP2023182741A (ja) | 検証可能な計算のためのcライクなスマートコントラクトの算術的強化 | |
Steffen et al. | zkay: Specifying and enforcing data privacy in smart contracts | |
Wahby et al. | Efficient RAM and control flow in verifiable outsourced computation | |
US10699269B1 (en) | System and method for smart contract publishing | |
Chin et al. | Leo: A programming language for formally verified, zero-knowledge applications | |
US20230109846A1 (en) | Computer-implemented systems and methods for serialisation of arithmetic circuits | |
Wen et al. | Practical Security Analysis of Zero-Knowledge Proof Circuits. | |
US11513815B1 (en) | Defining data storage within smart contracts | |
TWI837103B (zh) | 電腦實施方法及系統 | |
CN113986250B (zh) | 零知识证明电路优化方法、装置、终端设备及存储介质 | |
US11657391B1 (en) | System and method for invoking smart contracts |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231005 |