JP2021502636A - 検証可能な計算のためのcライクなスマートコントラクトの算術的強化 - Google Patents
検証可能な計算のためのcライクなスマートコントラクトの算術的強化 Download PDFInfo
- Publication number
- JP2021502636A JP2021502636A JP2020524517A JP2020524517A JP2021502636A JP 2021502636 A JP2021502636 A JP 2021502636A JP 2020524517 A JP2020524517 A JP 2020524517A JP 2020524517 A JP2020524517 A JP 2020524517A JP 2021502636 A JP2021502636 A JP 2021502636A
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic
- source code
- circuit
- arithmetic circuit
- contract
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/423—Preprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Abstract
Description
1つ以上の実施形態において、公開評価鍵(evaluation key、EK)及び公開検証鍵(verification key、VK)が、秘密値sを使用して導出され得る。本方法は、EK及びVKを使用して特定の入力xに対する計算を評価するステップを含んでもよい。出力y、1つ以上の回路ワイヤの値、及びEKが使用されて、プルーフオブコレクトネス(proof-of-correctness)πを生成することができる。プルーフπはブロックチェーンに記憶され得る。それはブロックチェーントランザクションに記憶されてもよい。本方法は、ブロックチェーントランザクションにプルーフを提供するステップを含み得る。それは、トランザクションをブロックチェーンにサブミットするステップ、及び/又はそれをブロックチェーンに記憶するステップを含んでもよい。
算術回路が生成された後、それは縮小され得る。
これは、HLLソースコードを算術回路に変換しない従来技術で知られるコンパイラ及び解釈とは対照的である。
算術回路は、プロセッサ上で実行されてもよい。この回路は、ブロックチェーントランザクションに提供されてもよい。
本方法は、算術回路を使用してハードウェア及び/又はソフトウェア回路を提供するステップをさらに含んでもよい。算術回路は、算術ゲートに接続されたnビットワイヤを含んでもよい。算術回路は、アーキテクチャ非依存である。すなわち、それは、特定のハードウェア又はソフトウェアのアーキテクチャ又はプラットフォームでの動作又は使用に対して配置されない。それは、仮想マシンの使用を必要としない。これは、アーキテクチャ特有であるか又はVMの使用を必要とする従来技術のコンパイラ及びインタプリタとは対照的である。
コメントを削除するステップ、
ヘッダファイルからソースファイルにヘッダ宣言をインポートするステップ、
複数のソースファイルをマージするステップ、
ディレクティブ及びマクロを解決し、あるいは評価するステップ
のうち1つ以上を含んでもよい。
本方法は、シンボル(識別子)のテーブルを生成して、ソースコード内に提供される各シンボル(すなわち、識別子)をソースコード内に提供される宣言情報に関連づけるステップをさらに含んでもよい。テーブル内のシンボルは、グローバル及び/又はローカルシンボルであり得る。
これは、型を復号するステップ、式を復号するステップ、式を評価するステップ、及び/又は上記機能により必要とされるデータ構造のためのメモリを割り振るステップをさらに含んでもよい。
本方法は、算術回路を使用して、回路の記述を提供する多項式のセットを含む二次プログラムを生成するステップをさらに含んでもよい。この方法は、1つ以上の入力を使用する2次プログラムの実行のために2次プログラムをエンティティに提供するステップをさらに含んでもよい。
プロセッサと、
プロセッサによる実行の結果として、当該システムに本願で記載又は請求される発明/方法の1つ以上の実施形態のうち任意の実施形態のコンピュータにより実現される方法を実行させる実行可能命令を含むメモリと、を含む。該命令は、ソースコードの処理を実行するように構成された翻訳又は変換コンポーネント(すなわち、インタプリタ/コンパイラ)を提供する命令を含み得る。
次に、一実施形態により、本発明がどのように動作実現され得るかの例示を提供する。この例では、高水準言語コントラクト(例えば、C/C++言語)を算術ゲートを含む回路に変換するように構成されたインタプリタの可能な実装について説明する。しかしながら、本発明は、他のHLL言語を翻訳するように構成されてもよい。この変換を容易にするために、特定の構造又はビルディングブロック(building blocks)が使用可能である。1つ以上の実施形態において、この表現は、分散された検証可能な計算を提供することができる包括的なパイプラインの構築の最初のステップとみなすことができる。
例えば、ユーザがドメイン固有言語(DSL)を使用して金融商品のコントラクトを生成することを可能にするプロトコルを考える。ひとたびコントラクトが生成されると、その実行は信頼されていないパーティ(「ワーカ(workers)」又は「証明者」と呼ばれる)にアウトソーシングでき、その正しさはパブリックに検証できる。プロトコルは、
・完全性、すなわち、正当な検証者(honest verifier)はプロトコルが正しく守られる場合に出力の有効性を確信する
・健全性、すなわち、不正な(cheating)証明者は出力の真正性(authenticity)について正当な検証者に確信させることができない
・ゼロ知識性、すなわち、不正な検証者は出力の有効性以外何も習得しない
を確保する暗号プリミティブを利用する。
・参加者間の通信が要求されないため、中間者攻撃が防止される
・ブロックチェーン技術の使用に起因して、悪意のあるノードがデータを改ざんすることが困難になる。
・信頼されたハードウェアデバイスなどの信頼されたサードパーティが回避される。
・コントラクトの立証がコードの再実行を意味しない。計算は、ネットワーク内のあらゆるノードにより複製されるわけではない。代わりに、正当な実行のプルーフがパブリックブロックチェーンに記憶され、立証目的にのみ使用される。
問題文。クライアントは、計算P及び入力xの仕様を信頼されていない証明者(ワーカ)に送信する。ワーカは出力yを計算し、それをクライアントに返す。y=P(x)の場合、正しい証明者は正しさの証明書を生成し、yの正しさを(クライアントだけでなく)誰にでも確信させることができるべきである。そうでない場合、検証者は高い確率でyを拒絶するべきである。
・入力ワイヤに割り当てられる値はxのものである
・中間値はCにおける各ゲートの正しいオペレーションに対応する
・出力ワイヤに割り当てられる値はyである
主張された出力が正しくない、すなわちy≠P(x)の場合、{C,x,y}に対する有効なトランスクリプトは存在しない。
ドメイン固有言語(DSL)がスマートコントラクトを実現するために必要とされ、例えばアクタラスモデリング言語(Actulus Modeling Language、AML)、デジタル資産モデリング言語(Digital Asset Modeling Language、DAML)、金融商品マークアップ言語(Financial Products Markup Language、FpML)などであるが、例示の簡潔さのため、本明細書では、高水準言語(High Level Language、HLL)、Cなどの、より大きい範囲の型、演算子、及び構造を提供することができるより一般的な言語の使用について説明する。しかしながら、本発明は、専用ツールを使用して異なるDSL言語をC(又は別のHLL)に変換するように構成可能である。
・コントラクト及び必要な外部ライブラリを含む高水準Cプログラムが一緒にリンクされ、スタンドアロンの前処理コントラクトを作成する。この段階では、Cプリコンパイラが、全ての必要なリソースが利用可能であることのチェックを担う。プリプロセッサディレクティブがさらに評価される。
・定数式が評価され、全てのシンボルが登録される。結果は、加算(+)、乗算(*)、比較(<)、等値(==)、条件ステートメント(?,:)、論理演算子(and、or、not、xor)などのCライクな演算子の式のセットである。予め定義された名前及びフォーマットを有するメイン関数が必要とされる。算術回路(図3参照)は、基本算術ゲート、例えば加算及び乗算に接続されたnビットのワイヤを有するシンボルを表現することにより構築される。
・二次算術プログラム(QAP)における多項式は、Gennaro, R.ら(2013)のQuadratic Span Programs and Succinct NIZKs Without PCPsで紹介されているように、算術回路のルートにおけるその評価の観点で定義される。
本発明の一例示的な実施形態に従い、次に、プリプロセッサディレクティブ、条件文、算術及びビット単位ブール演算子、グローバル関数を含むCプログラミング言語に対して定義された命令のサブセットを認識することができるインタプリタについて説明する。当業者に容易に理解されるように、配列及び構造体のサポートが付加的な論理なしにさらに提供され得る。
次に、Cソースコードで表された機能を表現する算術回路の構築の処理について詳述する。処理の各段階で、予期されない挙動(例えば、欠落したシンボル、誤ったシンタックス、又は未知の演算子)は、適切なコードエラーと共にプログラム実行の即時終了を結果としてもたらす。
図2に示すように、スマートコントラクトは複数のファイル及びライブラリから構成され得る。プロトコルの最初のステップは、コントラクトを実現するために必要とされる命令のフルセットを含む単一のソースファイルの作成を含む。個々のサブステップが以下のように列挙され得る。
・全てのコメントが除去される。
・ヘッダ宣言がヘッダファイルからソースファイルにインポートされる。
・全てのソースファイルがマージされる。
・プリプロセッサCディレクティブ及びマクロが解決され、あるいは評価される。これらは、#defineディレクティブ及び条件付き#ifdefディレクティブを含む。
この例示的な実施形態において、簡潔さのため、(符号付き又は符号なし)整数間の演算のみが利用可能であると仮定する。この仮定が除去される場合、回路ビルディングブロック(「算術プリミティブの生成」のセクションを参照)は拡大されなければならない。したがって、実数間の演算は、整数間の演算に変換されなければならない。以下のコントラクトの部分について考える。
「従業員の平均給与が32.5Kドルより高いかをチェックする」
コンピュータ科学において、シンボルのテーブルは、ソースコード中の各識別子(シンボル)をその宣言に関する情報に関連づけるためにコンパイラ/インタプリタにより使用されるデータ構造である。この第2のステップでは、インタプリタは、ソースファイル内に宣言された全てのグローバルシンボルを検出する。
・関数
・構造体(又はクラス)
注:クラス(C++などのOOP言語)の使用は、public、protected、及びprivateセクションのスコープをチェックするためのさらなる論理を要する。
・定数
(グローバル変数も許可されるが、推奨されない。contract(...)関数のスコープは、独立したブラックボックスとして扱われるべきである。その挙動は、外部変数に依存すべきではない。)
グローバルシンボルの1つは、コントラクト(「前処理」セクションのContract関数)のエントリポイントでなければならない。そのパラメータの名前、数、及び型は、予期されたシンタックスに対してチェックされる。全ての入力構造がコントラクト内で使用され、全ての出力構造がコントラクトのいくつかの部分にリンクされることをチェックするのに、さらなる論理が存在してもよい。
各コード行は独立して分析される。識別子の内部宣言を表現するローカルシンボルは、シンボルのグローバルテーブルの階層に含まれる。より詳細には、この段階は以下のタスクを担う。
・構造体及び配列、基本型(ブール、整数等)及びポインタの宣言を含む、型の復号。
・式の復号、例えば、単項又は二項演算、定数、識別子、データ構造、及び関数呼び出し。
・式の評価、すなわち、入力値に依存しない(数値)式の評価。
・メモリ割り振り、すなわち、コントラクト機能により必要とされるデータ構造のための一時的なストレージ割り振り。
「行ごと」セクションで定義されたデータ構造を使用し、一般的な算術/論理式eは、以下のシンタックスに従って陽的(explicit)形式で表現されるように折り畳まれる。
OPN(OPN−1(...(OP1(OP0))...))
out0=(?(<15(ADD(ADD(ADD in0 in1)in0)in1))50(MUL(MUL in0 in1)in1))
この段階で、インタプリタは、式eを生成するために使用される演算と、回路上でこれらの機能性を実現するために必要とされる構造との間の、1対1のマッピングを行う準備ができている。
加算及び乗算演算は、回路内の加算及び乗算ゲートに1対1でマッピングされる。2つのnビットワイヤ入力を所与として、加算ワイヤ出力はn+1ビットを必要とし、乗算ワイヤ出力は2nビットを必要とする。例えば、2つのnbitワイヤa及びb間の乗算は以下のように表現できる。
MUL[ida idb]TO[idc]
ブールゲートのフルセットは、算術ゲートを使用して計算できる。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
ワイヤ拡張は、通常、算術ワイヤaをnaビット出力ワイヤに翻訳するために使用され、naは、aで表すことができる最大値の2を底とする対数である。例えば、以下のコントラクトの部分について考える。
「Check if variable <a> is even」
EXPAND[ida]TO[ida3 ida2 ida1 ida0]
EXPAND[ida]TO[0−>ida0]
COMPRESS[ida0:ida255]TO[ida]
否定演算は2つの変数を比較するために必要であり、なぜならば、それらの差が値ゼロと比較できるためである。nビットワイヤの否定は、定数−1による乗算として実現できる。この定数は、以下のように表現されなければならない。
nbitビットワイヤaに対するこのビルディングブロックは、以下のように実現できる。
・nbitビットに対するワイヤ拡張(a0, ...,anbit−1)
・各1ビットワイヤを否定する(ai→bi)
・結果として生じるbiワイヤを乗算する、すなわち、
「より大きい」演算は、簡素な等式ルールを使用して「より小さい」演算に変形できる。2の補数表現において、この演算は、2つの符号付き整数間の差が正か又は負か(あるいは、「以下」演算の場合にはゼロに等しいか)をチェックすることに対応する。差c=a−bの符号の判別は、2進表現における最上位(most significative)ビットxにより与えられる。負の数はx=1により特徴づけられ、正の数はx=0により特徴づけられる。
EXPAND[idc]TO[nbit−1 −> x]
高水準言語の条件ステートメントは、次の形式で表すことができる。
IF(Sc) Sa ELSE Sb
定数値は回路の入力ワイヤに依存しない。mul-by-const-c形式の専用の単項乗算ゲートを使用し、以下のさらなる回路を提供して、コントラクトにより必要とされる定数値を生成する。
・定数ゼロは、入力ワイヤに0を乗算することにより計算される。
(コントラクトは少なくとも1つの入力を有さなければならない。したがって、識別子1の入力(例えば、図7のin1)が使用されて定数ゼロを生成することができる。)
・定数イチは、定数ゼロに1を加算することにより計算される。
・任意のさらなる定数ciが、定数イチに対してmul-by-const-ciを使用することにより計算される。
Claims (16)
- コンピュータにより実現される方法であって、
算術回路を生成するソースコードの部分を処理するステップであり、
前記ソースコードは高水準プログラミング言語で書かれ、
前記算術回路は、前記ソースコード内に表された機能の一部又は全部を表現するように構成された1つ以上の算術ゲートを含む、ステップ、
を含む方法。 - i)前記算術回路は前記ソースコードのマシン実行可能バージョンであり、結果を計算するように構成され、かつ/あるいは
ii)前記ソースコードはスマートコントラクトである、
請求項1に記載の方法。 - 前記処理するステップは、
前記ソースコード内に提供された1つ以上の定数を評価して、ブール及び/又は算術演算子を含む1つ以上の式を提供するステップ
を含む、請求項1又は2に記載の方法。 - 前記算術回路を使用してハードウェア及び/又はソフトウェア回路を提供するステップ、
をさらに含む請求項1乃至3のうちいずれか1項に記載の方法。 - 前記算術回路は、算術ゲートに接続されたnビットワイヤを含む、
請求項1乃至4のうちいずれか1項に記載の方法。 - 前記算術回路はアーキテクチャ非依存である、請求項1乃至5のうちいずれか1項に記載の方法。
- 当該方法は、前記ソースコードを前処理して1つ以上の定数を決定するステップをさらに含み、前記前処理するステップは、
コメントを除去するステップと、
ヘッダファイルからソースファイルにヘッダ宣言をインポートするステップと、
複数のソースファイルをマージするステップと、
ディレクティブ及びマクロを解決し、あるいは評価するステップと、
のうち1つ以上を含む、請求項1乃至6のうちいずれか1項に記載の方法。 - 当該方法は、前記ソースコード内に宣言された全てのグローバル変数を検出するステップをさらに含み、グローバル変数は、関数、構造体若しくはクラス、定数、及び/又は実行のエントリポイントに関する、請求項1乃至7のうちいずれか1項に記載の方法。
- 当該方法は、
シンボルのテーブルを生成して、前記ソースコード内に提供された各シンボル(すなわち、識別子)を前記ソースコード内に提供された宣言情報に関連づけるステップであり、前記テーブル内のシンボルはグローバル及び/又はローカルシンボルである、ステップ
をさらに含む、請求項1乃至8のうちいずれか1項に記載の方法。 - 当該方法は、1つ以上の入力変数に適用される論理及び/又は算術演算の組み合わせとして1つ以上のアウト変数を表す算術及び/又は論理式をもたらす前記ソースコードの行ごとの評価を実行するステップをさらに含む、請求項1乃至9のうちいずれか1項に記載の方法。
- 前記行ごとの評価は、
型を復号するサブステップ、
式を復号するサブステップ、
式を評価するサブステップ、及び/又は
前記機能により必要とされるデータ構造のためのメモリを割り振るサブステップ
を含む、請求項10に記載の方法。 - 前記式の前記算術及び/又は論理演算を算術ゲートにマッピングするステップ、
をさらに含む請求項10又は11に記載の方法。 - 前記マッピングするステップは、
ワイヤ拡張を実行するサブステップ、及び/又は
ワイヤ圧縮を実行するサブステップ
を含む、請求項12に記載の方法。 - 前記算術回路を使用して、前記回路の記述を提供する多項式のセットを含む二次プログラムを生成するステップ、
をさらに含む請求項1乃至13のうちいずれか1項に記載の方法。 - 1つ以上の入力を使用する前記二次プログラムの実行のために前記二次プログラムをエンティティに提供するステップ、
をさらに含む請求項14に記載の方法。 - 請求項1乃至15のうちいずれか1項に記載のステップを実行するように構成された、コンピュータにより実現されるシステムであって、好ましくは当該システムは、前記ソースコードの処理を実行するように構成されたインタプリタを含む、システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023173507A JP2023182741A (ja) | 2017-11-09 | 2023-10-05 | 検証可能な計算のためのcライクなスマートコントラクトの算術的強化 |
Applications Claiming Priority (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1718505.9A GB201718505D0 (en) | 2017-11-09 | 2017-11-09 | Computer-implemented system and method |
GB1718505.9 | 2017-11-09 | ||
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 |
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 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023173507A Division JP2023182741A (ja) | 2017-11-09 | 2023-10-05 | 検証可能な計算のためのcライクなスマートコントラクトの算術的強化 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021502636A true JP2021502636A (ja) | 2021-01-28 |
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 After (9)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 | 分散コンピューティングシステム及び方法 |
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 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08305547A (ja) * | 1995-05-11 | 1996-11-22 | Oki Electric Ind Co Ltd | Pldによるコンピュータおよびコンパイラおよびオペレーティングシステム |
JP2006505055A (ja) * | 2002-10-31 | 2006-02-09 | エス・アール・シィ・コンピューターズ・インコーポレイテッド | 高級プログラミング言語におけるプログラムをハイブリッド計算プラットフォームの統一された実行可能要素に変換するためのプロセス |
JP2011103133A (ja) * | 2003-05-30 | 2011-05-26 | Synopsys Inc | 回路設計ツール |
US20170039330A1 (en) * | 2015-08-03 | 2017-02-09 | PokitDok, Inc. | System and method for decentralized autonomous healthcare economy platform |
WO2017090041A1 (en) * | 2015-11-24 | 2017-06-01 | Ben-Ari Adi | A system and method for blockchain smart contract data privacy |
Family Cites Families (103)
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 |
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 |
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 |
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 |
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
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08305547A (ja) * | 1995-05-11 | 1996-11-22 | Oki Electric Ind Co Ltd | Pldによるコンピュータおよびコンパイラおよびオペレーティングシステム |
JP2006505055A (ja) * | 2002-10-31 | 2006-02-09 | エス・アール・シィ・コンピューターズ・インコーポレイテッド | 高級プログラミング言語におけるプログラムをハイブリッド計算プラットフォームの統一された実行可能要素に変換するためのプロセス |
JP2011103133A (ja) * | 2003-05-30 | 2011-05-26 | Synopsys Inc | 回路設計ツール |
US20170039330A1 (en) * | 2015-08-03 | 2017-02-09 | PokitDok, Inc. | System and method for decentralized autonomous healthcare economy platform |
WO2017090041A1 (en) * | 2015-11-24 | 2017-06-01 | Ben-Ari Adi | A system and method for blockchain smart contract data privacy |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230318804A1 (en) | Arithmetic enhancement of c-like smart contracts for verifiable computation | |
US11868745B2 (en) | System and method for compiling high-level language code into a script executable on a blockchain platform | |
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 | |
Chakravarty et al. | Functional blockchain contracts | |
KR20210074358A (ko) | 공개 키 조합 검증을 포함하는 컴퓨터-구현된 시스템 및 방법 | |
TWI837103B (zh) | 電腦實施方法及系統 | |
Bogdanov et al. | ZK-SecreC: a Domain-Specific Language for Zero Knowledge Proofs | |
KR102398543B1 (ko) | 영지식 증명 알고리즘이 적용된 검증 가능한 블록체인 가상머신 | |
US11657391B1 (en) | System and method for invoking smart contracts | |
MIKEK et al. | SMT Theory Arbitrage: Approximating Unbounded Constraints using Bounded Theories | |
Sharkey | Probabilistic proof-carrying code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211001 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221011 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20221220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230331 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20230606 |