JP2020526811A - ブロックチェーンスクリプトにおける制御フロー - Google Patents

ブロックチェーンスクリプトにおける制御フロー Download PDF

Info

Publication number
JP2020526811A
JP2020526811A JP2019568229A JP2019568229A JP2020526811A JP 2020526811 A JP2020526811 A JP 2020526811A JP 2019568229 A JP2019568229 A JP 2019568229A JP 2019568229 A JP2019568229 A JP 2019568229A JP 2020526811 A JP2020526811 A JP 2020526811A
Authority
JP
Japan
Prior art keywords
script
blockchain
transaction
code
control flow
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019568229A
Other languages
English (en)
Inventor
スティーヴン ライト,クレイグ
スティーヴン ライト,クレイグ
サヴァナ,ステファヌ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nchain Holdings Ltd
Original Assignee
Nchain Holdings Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GBGB1710974.5A external-priority patent/GB201710974D0/en
Priority claimed from GBGB1710971.1A external-priority patent/GB201710971D0/en
Priority claimed from GBGB1710967.9A external-priority patent/GB201710967D0/en
Application filed by Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of JP2020526811A publication Critical patent/JP2020526811A/ja
Priority to JP2023079779A priority Critical patent/JP7535359B2/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/451Code distribution
    • G06F8/452Loops
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Stored Programmes (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本発明は、ブロックチェーントランザクション(Tx)を生成するためのコンピュータにより実施される方法(及び対応するシステム)を提供する。これは、Bitcoinブロックチェーン又は別のブロックチェーンプロトコルのためのトランザクションであってよい。当該方法は、ソフトウェアリソースを用いて、少なくとも1つのデータアイテムを受信し、生成し、又は導出し、次に、少なくとも1つのコード部分を、前記トランザクションに関連付けられたスクリプトに少なくとも1回挿入するステップを含む。前記スクリプトが実行されると、前記コード部分は、制御フローメカニズムの機能を提供し、制御フローメカニズムの動作は、前記少なくとも1つのデータアイテムにより制御され又は影響される。一実施形態では、コードは、1回より多く、前記スクリプトにコピーされ/挿入される。前記制御フローメカニズムは、while又はforループのようなループ、又はswitch文のような選択制御メカニズムであり得る。したがって、本発明は、より複雑なブロックチェーンスクリプトの生成を可能にし、スクリプトがブロックチェーン上で実施されたときどのように実行するかを制御する。これはまた、ブロックチェーントランザクションのアウトプットがどのように又はいつアンロックされるかに対する制御を提供する。

Description

本発明は、概して、ブロックチェーン技術に関し、特に、ブロックチェーンを介して複雑な機能を実施することに関する。有利なことに、本発明は、ブロックチェーントランザクションに、通常は制御フロー構造により提供される機能を含めることを可能にするメカニズムを提供する。したがって、本発明は、ブロックチェーンスクリプト、したがってブロックチェーンプロトコル自体の、能力及び機能を拡張し、基礎にある既存のプロトコルを変更する必要がない。本発明に従い生成されるトランザクションは、コンピュータにより実施されるプロセスの活動を有効にし、影響を与え、及び指示する制御メカニズムとして使用可能である。本発明は、限定ではないが、自動処理の実装及び制御に適する。
本願明細書では、ブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳及びそれらの変形を含むがこれらに限定されない、総意に基づく電子、コンピュータに基づく分散型台帳の全ての形式を包含するために、用語「ブロックチェーン」を使用する。最も広く知られているブロックチェーン技術の用途はBitcoin台帳であるが、他のブロックチェーンの実装が提案され開発されている。ビットコインは便宜上及び説明を目的として本願明細書において言及されるが、本発明はビットコインのブロックチェーンと共に使用することに限定されず、代替のブロックチェーンの実装及びプロトコルが本発明の範囲に含まれることに留意すべきである。
ブロックチェーンは、ブロックにより構成される、コンピュータに基づく非集中型の分散型システムとして実装される総意に基づく電子台帳である。また、ブロックはトランザクションにより構成される。各トランザクションは、ブロックチェーンシステム内で参加者間のデジタルアセットの制御の移転を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、ブロックは共にチェーンになって、その発端からブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能なレコードを生成する。トランザクションは、そのインプット及びアウトプットに組み込まれたスクリプトとして知られる小さなプログラムを含む。スクリプトは、トランザクションのアウトプットがどのように及び誰によりアクセス可能かを指定する。ビットコインプラットフォーム上で、これらのスクリプトは、スタックに基づくスクリプト言語を用いて記述される。
トランザクションがブロックチェーンに書き込まれるために、「検証され」なければならない。ネットワークノード(マイナー)は、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。ノードにインストールされたソフトウェアクライアントは、自身のロック及びアンロックスクリプトを実行することにより、この検証作業を未使用トランザクション(UTXO)に対して実行する。ロック及びアンロックスクリプトの実行が真と評価した場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、i)トランザクションを受信した第1ノードにより検証され、トランザクションが検証された場合に、ノードは該トランザクションをネットワーク内の他のノードに中継し、ii)マイナーにより構築された新しいブロックに追加し、iii)マイニングされ、つまり過去のトランザクションの公開台帳に追加されなければならない。
ブロックチェーン技術は、暗号通貨実装の使用で最も広く知られているが、デジタル起業家が、新しいシステムを実装するために、Bitcoinの基づく暗号通貨セキュリティシステム、及びブロックチェーンに格納可能なデータの両方の使用を探索し始めている。ブロックチェーンが、暗号通貨の領域に限定されない自動タスク及びプロセスのために使用できれば、非常に有利である。このようなソリューションは、それらの用途において一層多様でありながら、ブロックチェーンの利点(例えば、永久的、イベントの耐タンパレコード、分散プロセス、等)を利用できる。
本発明によると、添付の請求の範囲に定められるようなコンピュータにより実装されるシステム及び/又は方法が提供される。
本発明は、コンピュータにより実施される方法を提供し得る。本発明は、ブロックチェーントランザクション(Tx)の生成を有効にし又はそれに適するよう構成される方法として記載され得る。追加又は代替として、本発明は、ブロックチェーントランザクションに関連付けられたアウトプットがアンロック(使用)可能か否かを制御する又はそれに影響を与えるトランザクション(Tx)スクリプトの実行を制御する方法として記載され得る。したがって、本発明は、暗号化処理を制御する又はそれに影響を与える方法である。本発明は、ブロックチェーンネットワークを介してリソースの移転又は交換を制御するとしても記載され得る。本発明は、セキュリティ上の弱点に対する回復力を危険に晒すことなく、チューリング完全機能をブロックチェーンスクリプト内で又はそれにより提供可能にする又は有効にするセキュリティ技術を提供するとしても記載され得る。したがって、本発明は、プロトコルのセキュリティ上の弱点に対するセキュリティ及び保護を保ちながら、より高機能且つ技術的に優れた方法でブロックチェーンネットワークに渡り移転及び交換を実行することが可能なので、改良ブロックチェーンを提供する。
当該方法は、ソフトウェアリソースを用いて、少なくとも1つのデータアイテムを受信し又は生成し又は導出するステップを含んでよい。データアイテムは、「信号」、「値」、「パラメータ」、又は「入力」とも呼ばれてよい。データアイテムは、信号として受信されてよい。これは、オフチェーンソースから受信されてよい。したがって、データアイテムは、コードがスクリプトに何回コピーされ又は挿入されるかを決定するために使用されてよく、スクリプトの外部で決定され及び/又は生成されてよい。これは、計算リソースにより計算結果として生成されてよい。これは、乱数又は疑似乱数生成部の使用により生成されてよい。
本発明は、少なくとも1回、少なくとも1つのコード部分を、ブロックチェーントランザクションに関連付けられた又はそのためのスクリプトに挿入するステップを含んでよい。その結果、スクリプトが実行されると、該スクリプトは、制御フローメカニズムの機能を提供する。コード部分は、予め指定され又は予め記述されてよい。これは、コンピュータに基づくリソースに格納されてよく、スクリプトに挿入される前に記憶装置から読み出されてよい。
スクリプトは、トランザクションの部分を形成する及び/又はトランザクションを用いて移転されるべき暗号通貨の一部をロック/アンロックするために使用できるという点で、トランザクションに関連付けられてよい。
方法は、ブロックチェーントランザクションを生成するステップを含んでよい。当該方法は、前記トランザクションをブロックチェーンネットワークへ提出するステップを含んでよい。当該方法は、トランザクションを用いて、ネットワーク上のあるノード又はパーティから別のノード又はパーティへ、リソース又はリソースの制御を移転するステップを含んでよい。
制御フローメカニズムの動作/実行は、少なくとも1つのデータアイテムにより制御され又は影響されてよい。望ましくは、スクリプトは、少なくとも1つのコード部分の挿入に従うチューリング完全構造(例えば、ループ、再帰的ジャンプ、高レベル制御構造)を含まなくてよい。望ましくは、少なくとも1つのコード部分の少なくとも1回の挿入に従い、スクリプトは、機能的に制約された(チューリング不完全)言語を使用するブロックチェーン上の実行と互換性がある。これは、Bitcoinプロトコル又はその変形を実装するブロックチェーンにより使用されるScript言語であってよい。
スクリプトは、ブロックチェーントランザクションのインプット又はアウトプットに関連付けられてよい。トランザクションは、ブロックチェーンプロトコルに従い生成されてよい。これは、Bitcoinプロトコルであってよい。スクリプトは、Scriptプログラミング言語又は別のスタックに基づくスクリプト言語で記述されてよい。スクリプトは、機能的に制約された(代替として「チューリング不完全」と呼ばれてよい)言語で記述されてよい。言語は、言語がループ及び/又はジャンプ反復のような1つ以上の制御フローメカニズムを元々サポートしないという意味で、機能的に制約されてよい。
当該方法は、前記少なくとも1つのコード部分を前記スクリプトに1回より多く、及び/又は前記スクリプト内の1つより多くの位置に挿入する及び/又はコピーするステップ、を含んでよい。
当該方法は、前記少なくとも1つのデータアイテムを用いて、前記少なくとも1つのコード部分が前記スクリプトに何回挿入/コピーされるかを決定するステップ、を含んでよい。
前記制御フローメカニズムは、for又はwhileループのようなループ、又はswitch/Case文のような選択制御メカニズムであってよい。
前記少なくとも1つのデータアイテムは、高レベル言語(High Level Language:HLL)からのコードをブロックチェーントランザクションスクリプトに変換するよう構成されるコンパイラから導出されてよい。
前記コード部分は、前記スクリプトの実行により少なくとも1回インクリメントされるカウンタ又はインデックスを含み、前記カウンタ又はインデックスは前記スクリプトの前記実行を制御し又は影響を与えるために使用されてよい。
前記カウンタ又はインデックスは、2つのスタックに基づくデータ構造に格納された及び/又は該データ構造から読み出された値を用いてインクリメントされ又は操作されてよい。
本発明は、本願明細書に記載の任意の実施形態の方法を実施するよう構成されるコンピュータにより実装されるシステムも提供し得る。方法に関連して記載された任意の態様又は特徴は、対応するシステムにも適用してよい。システムは、少なくとも1つのコンピュータに基づくリソースを含んでよい。当該システムは、1つ以上のブロックチェーンノードを含んでよい。
本発明は、システムであって、プロセッサと、前記プロセッサによる実行の結果として前記システムに本願明細書に記載のコンピュータにより実施される方法の任意の実施形態を実行させる実行可能命令を含むメモリと、を含むシステムも提供する。
本発明は、実行可能命令を格納した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、前記コンピュータシステムに本願明細書に記載のコンピュータにより実施される方法の実施形態を少なくとも実行させる、非一時的コンピュータ可読記憶媒体も提供する。
本発明の上述の及び他の態様は、本願明細書に記載される実施形態から明らかであり、それらの実施形態を参照して教示される。本発明の実施形態は、単なる例として添付の図面を参照して以下に説明される。
従来知られているような、分散ブロックチェーンネットワークの簡易図を提供する。 本発明による一実施形態を示すフローチャートを示す。 本発明に従い使用され得るブロックチェーンに関連付けられた例示的なネットワークを示す。
Bitcoinネットワークは、図1に示されるように、ブロックチェーン実装の一例である。Bitcoinは、Scriptとして知られるスクリプト言語を利用する。Scriptは、比較的簡単なプログラムの生成のための、オペコード(op_code)として知られるプリミティブ演算子又はコマンドのセットを使用するForthのような言語である。Scriptは、プログラム実行中のデータアイテム(変数及び定数)の一時的記憶のために、スタックとして知られるデータ構造を使用する。アイテムは、スタックにプッシュされ、1つが他のアイテムの上に置かれ、逆の順序で取り出される(popped off)。標準的に、スタックにプッシュされたアイテムは、後に、それらを次の演算のオペランドとして使用するために取り出される。Scriptプログラムが終了するとき、スタックの一番上に残された値は戻り値である。
Forthのような他のスタックに基づく言語で知られているように、更なるスタックにアクセスすることは時に便利である。Scriptでは、この第2スタックはaltスタックとして知られており、第1スタックは主スタックとして知られている。Altスタックは、標準的に、スクリプト実行中にデータを一時的に格納するために使用される。
しかしながら、Forthと対照的に、Scriptは、ループのような複雑な制御フロー文を実行するビルトインシンタックスを特徴としない。制御フロー文は、プログラムが実行する方法に影響し及び指示する(つまり、制御する)ために使用されるプログラミングメカニズムである。実行するときにロジックがどのパスを取るかを決定するために、特定値が使用される。これらの値は、プログラム中にハードコードされ、又はランタイムに動的入力として提供され得る。次に、値は、決定処理において使用され得る(例えば、値b以下の値か?、文字列x="Hello World!"か?)。制御フロー文の例は、whileループ、forループ、及びswitch−case文を含む。
スクリプトのこのようなメカニズムの禁止は、意図的なセキュリティ機能である。つまり、複雑な制御メカニズムは、潜在的に、サービス拒否(Denial−of−Service:DOS又はDDOS)攻撃のようなセキュリティ上の弱点に対して脆弱なブロックチェーンネットワークに委ねる。しかしながら、プログラマは、Scriptコードが記述可能な方法に関して制約されるというトレードオフがある。例えば、ソースコードにループを含めることができない。これは、一部の者にScriptをチューリング不完全であると説明させる(他の者はこの定義に意義を唱えるが)。1つの知られているBitcoinの代替である、Ethereumは、チューリング完全言語をそのプロトコルに固有機能として組み込むことにより、この制約を克服しようと試みた。しかしながら、記述のときに、Ethereumは少なくとも1つの深刻なセキュリティ上の弱点に苦しんだ。
したがって、Scriptのような機能的に制約されたブロックチェーンスクリプト言語により提供されるセキュリティと、ブロックチェーンプラットフォームにより、より複雑な機能を実行したいという要求との間のトレードオフを解決する技術的ソリューションを提供する必要がある。理想的には、これは、例えばソフトウェアリソースによる自動化により符号化処理を促進する方法で達成され得る。
本発明は、少なくともこの問題のためのソリューションを提供し、それにより、複雑な制御フローメカニズムの機能が達成でき、又はブロックチェーン上で機能的に制約されたスクリプト言語を用いて少なくともエミュレートできる機能を可能にする。(Scriptのチューリング完全に関する分野における論争により、私達は、ここで、このような言語を「チューリング不完全」ではなく、「機能的に制約された」として参照することがあるが、用語は同義的に使用されることがある)。私達がここで使用する例は、単に説明を目的とし、forループ及びswitch−case制御シーケンスの両者のエミュレーションを可能にするソリューションを提示する。当業者は、他の種類の制御フローメカニズムが本発明により提供され得ることを理解するだろう。
本発明に従い使用可能な処理は、図2のフローチャートに示される。本発明によると、トランザクション(Tx)スクリプトの中でロジックがどのように制御されるべきかに関して決定が行われる。例えば、これは、反復ごとにループ本体(body)の中で実行されるべき文(ステートメント)又はswitch構成の中のオプション(case)毎に実行されるべきステートメントの事前決定であり得る。これらは、スクリプト/トランザクションの生成の間に、後の読み出しのためにコード部分として格納され得る。
一旦生成され又は受信されると、決定は、次に、ブロックチェーントランザクションのスクリプトのためにコードを生成するために使用される。これは、アンロックスクリプト、Redeemスクリプト、又はアンロックスクリプト言語であり得る。特に、コード部分は、スクリプトに所望の回数だけ、スクリプト内の適切な位置に挿入される。
コード部分は、例えば、ループのインスタンスを実行するコード、又はswitchコマンドシーケンス内のオプションであってよい。コード部分は、必要に応じてスクリプト内で繰り返される。その結果、1つ以上のステートメントが、データアイテムの値及び/又は条件の評価に基づき実行される可能性がある。例えば、if(i<3) Then <execute body of loop>、又はif(i==2) Then <execute statement(s) and break out of switch>である。
スクリプトコードの生成は手動で実行できる。しかしながら、本発明の好適な実施形態では、コード(及びトランザクション全体)は、自動処理により、つまりプロセッサ上で実行する適切に構成されたソフトウェアリソース又はエージェントにより生成される。
このような実施形態では、ソフトウェアエージェントは、データアイテムを受信する又は生成するために構成される。データアイテムは、コード部分がスクリプト内で提供される必要のある回数を決定するために使用可能なインプット又は信号である。同じ又は別のデータアイテムが、評価中に、例えばループを制御する条件内での使用により、又はswitch−caseがテストされる値としての使用により、スクリプトの実行を制御するために使用できる。
さらに、コード部分は、事前決定され、メモリに格納できる。ソフトウェアエージェントがスクリプトを生成する必要のあるとき、コード部分は、メモリからアクセスされ、スクリプトに必要な回数だけ挿入され、したがって上述のデータアイテムを用いる関連する制御条件をテストするために適応され得る。
したがって、ソフトウェアエージェントは、関連データアイテムを受信し、該データアイテムを、実行のときに必要に応じて、複雑な制御フロー機能をエミュレートするためのコードを含むトランザクションスクリプトを生成するために使用できる。このスクリプトは、ブロックチェーントランザクションの生成において使用可能である。次にブロックチェーントランザクションは、検証及び伝搬のためにネットワークに提出されてよい。
したがって、本発明は、ブロックチェーントランザクションのインプット/アウトプットに関連付けられたスクリプトの実行する方法を制御するために使用できる。実際に、これは、トランザクション(Tx)に関連付けられたアウトプットが使用可能か否か、また、ブロックチェーン上のアセット(例えば、暗号通貨の一部、トークン、等)の暗号化所有権があるエンティティから別のエンティティへと転送可能か否か、を制御する。別の意味では、本発明は、暗号化処理を制御し、又はそれに影響を与える。
以下に、上述の概念及び技術を分析し及び説明するために、例が提供される。
<使用例1:forループのエミュレーション>
本例では、私達は、言語により本来サポートされるかのように、forループの動作をエミュレートするScriptに基づく演算シーケンスを提供する。
ループは以下の形式である。
Figure 2020526811
K及びNは、それぞれ、区間I=[K:N]の下限及び上限とする。演算シーケンスは、以下の形式を取る。
Figure 2020526811
留意すべきことに、ループのインスタンスを表す枠が複数回、つまりP回、P>N、提供される。また、ループ本体のコード<EXECUTE STATEMENTS>は、主スタック又はaltスタックのいずれの状態も変更すべきではない。
<ループの例1:0〜2のループ>
以下の例では、私達は、枠内のコードが3回コピーされると仮定する。本例では、私達は、<EXECUTE STATEMENTS>が2回実行されることを検証する。
以下のコード片を検討する。
Figure 2020526811
スタックはこれと同様に見えるべきである(左の列が主スタックであり、右の列がaltスタックである)。
Figure 2020526811
<使用例2:switch−caseコマンドシーケンスのエミュレーション>
本例では、私達は、switchコマンドシーケンスのBitcoin Scriptエミュレーションを記載する。私達は、以下の種類のコマンドシーケンスをエミュレートすることを望む。
Figure 2020526811
ここで、Xを、私達がチェックしたい値とする。Bitcoin Script言語のシンタックスを用いて記述すると、switch caseコードは以下の通りになる。
Figure 2020526811
(例1)
インプット信号はOP_2である。私達は、コードが<EXECUTE STATEMENTS 2>のみを実行することをチェックし、私達はコードが3個の文を含むと仮定する。
Figure 2020526811
<ブロックチェーンネットワーク>
図3を参照すると、図3は、ブロックチェーンに関連付けられた例示的なネットワークをブロック図形式で示す。該ネットワークは、ここではブロックチェーンネットワーク100として参照されてよく、本発明の実装のために利用されてよい。ブロックチェーンネットワーク100は、他の会員からの招待無しに又は承認無しに誰でも参加し得るピアツーピア開放型会員制ネットワークである。ブロックチェーンプロトコルの下でブロックチェーンネットワーク100が動作し、該ブロックチェーンプロトコルのインスタンスを実行する分散型電子装置は、ブロックチェーンネットワーク100に参加してよい。このような分散型電子装置は、ノード102と呼ばれてよい。ブロックチェーンプロトコルは、例えばBitcoinプロトコル、又は他の暗号通貨であってよい。
ブロックチェーンプロトコルを実行し、ブロックチェーンネットワーク100のノード102を形成する電子装置は、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバのようなコンピュータ、スマートフォンのようなモバイル装置、スマートウォッチのようなウェアラブルコンピュータ、又は他の電子装置を含む様々な種類であってよい。
ブロックチェーンネットワーク100のノード102は、有線及び無線通信技術を含み得る適切な通信技術を用いて互いに結合される。多くの場合、ブロックチェーンネットワーク100は、少なくとも部分的にインターネット上で実施され、ノード102の幾つかは、地理的に離散した位置に置かれてよい。
ノード102は、ブロックチェーン上の全てのトランザクションのグローバル台帳を維持する。該トランザクションはブロックにグループ化され、各ブロックはチェーンの中の前のブロックのハッシュを含む。グローバル台帳は、分散台帳であり、各ノード102はグローバル台帳の完全コピー又は部分コピーを格納してよい。グローバル台帳に影響を与えるノード102によるトランザクションは、他のノード102により検証される。その結果、グローバル台帳の有効性が維持される。Bitcoinプロトコルを使用することのような、ブロックチェーンネットワークの実装及び動作の詳細は、当業者に理解される。
各トランザクションは、標準的に、1つ以上のインプット及び1つ以上のアウトプットを有する。インプット及びアウトプットに埋め込まれるスクリプトは、トランザクションのアウトプットがどのように及び誰によりアクセス可能かを指定する。トランザクションのアウトプットは、トランザクションの結果として価値が移転されるアドレスであってよい。価値は、次に、未使用トランザクションアウトプット(UTXO)として該アウトプットアドレスに関連付けられる。後続のトランザクションは、次に、該価値を使用する又は分散させるために、該アドレスをインプットとして参照してよい。
ノード102は、ネットワークルーティングからウォレットサービスまで、多数の異なる機能を満たすことができ、ロバスト且つセキュアな分散パブリック台帳を維持する。「フルノード(Full nodes)」は、ブロックチェーンの完全な最新のコピーを有し、したがって、パブリック台帳上の任意のトランザクション(使用又は未使用)を検証できる。「軽量ノード(Lightweight nodes)」(又はSPV)は、ブロックチェーンのサブセットを維持し、「簡易支払検証」技術を用いてトランザクションを検証できる。軽量ノードは、各ブロック内のトランザクションではなく、ブロックのヘッダだけをダウンロードする。これらのノードは、したがって、それらのトランザクションを検証するピアに依存する。「マイニングノード」は、フル又は軽量ノードであり、ブロックチェーン上のトランザクションを検証し及び新しいブロックを生成することを担う。「ウォレットノード」は、標準的に軽量ノードであり、ユーザのウォレットサービスを扱う。ノード102は、TCP/IP(Transmission Control Protocol)のようなコネクション指向プロトコルを用いて互いに通信する。
留意すべきことに、上述の実施形態は、本発明を限定するのではなく、当業者は添付の請求項により定められる本発明の範囲から逸脱することなく多数の代替の実施形態を考案できる。請求項中、括弧内に記載された如何なる参照符号も、請求項を制限すると見なされるべきではない。用語「有する(comprising又はcomprises)」等は、全体としていかなる請求項中に及び明細書に列挙された以外の要素又はステップの存在を排除するものではない。本願明細書において、「有する(comprises)」は「含む(includes)又は構成される(consists of)」を意味し、「有する(comprising)」は「含む(including)又は構成される(including of)」を意味する。要素の単数の参照は、該要素の複数の存在を排除するものではなく、逆も同様である。本発明は、複数の別個の要素を有するハードウェアにより又は適切にプログラムされたコンピュータにより、実施され得る。複数の手段を列挙している装置の請求項では、これらの複数の手段は、1つの同一のハードウェア要素により実装することができる。特定の量が相互に異なる従属請求項に記載されるという事実は、これらの量の組合せが有利に用いることができないことを示すものではない。

Claims (14)

  1. コンピュータにより実施される方法であって、
    少なくとも1つのデータアイテムを受信し、生成し、又は導出するステップと、
    少なくとも1つのコード部分を少なくとも1回、ブロックチェーントランザクションに関連付けられたスクリプトに挿入するステップであって、その結果、前記スクリプトが実行されると、制御フローメカニズムの機能を提供し、前記制御フローメカニズムの動作は、前記少なくとも1つのデータアイテムにより制御され又は影響される、ステップと、
    を含む方法。
  2. 前記スクリプトは、前記ブロックチェーントランザクションのインプット又はアウトプットに関連付けられる、請求項1に記載の方法。
  3. 前記トランザクションは、ブロックチェーンプロトコルに従い又はブロックチェーンプロトコルと共に使用するために生成される、請求項1又は2に記載の方法。
  4. 前記プロトコルはBitcoinプロトコル又はBitcoinプロトコルの変形である、請求項3に記載の方法。
  5. 前記少なくとも1つのコード部分を前記スクリプトに1回より多く、及び/又は前記スクリプト内の1つより多くの位置に挿入する及び/又はコピーするステップ、を含む請求項1乃至4のいずれかに記載の方法。
  6. 前記少なくとも1つのデータアイテムを用いて、前記少なくとも1つのコード部分が前記スクリプトに何回挿入/コピーされたかを決定するステップ、を含む請求項1乃至5のいずれかに記載の方法。
  7. 前記制御フローメカニズムは、forループのようなループ、又はswitch文のような選択制御メカニズムである、請求項1乃至6のいずれかに記載の方法。
  8. 前記少なくとも1つのデータアイテムは、高レベル言語(HLL)からのコードをブロックチェーントランザクションスクリプトに変換するよう構成されるコンパイラから導出される、請求項1乃至7のいずれかに記載の方法。
  9. 前記コード部分は、前記スクリプトの実行により少なくとも1回インクリメントされるカウンタ又はインデックスを含み、前記カウンタ又はインデックスは前記スクリプトの前記実行を制御し又は影響を与えるために使用される、請求項1乃至8のいずれかに記載の方法。
  10. 前記カウンタ又はインデックスは、2つのスタックに基づくデータ構造に格納された及び/又は該データ構造から読み出された値を用いてインクリメントされ又は操作される、請求項9に記載の方法。
  11. 前記スクリプトは機能的に制約された言語で記述される、請求項1乃至10のいずれかに記載の方法。
  12. 請求項1乃至11のいずれかに記載の方法を実施するよう構成されたコンピュータにより実装されるシステム。
  13. 実行されると、請求項1乃至11のいずれか一項に記載の方法を実行するようプロセッサを構成するコンピュータ実行可能命令を含むコンピュータ可読記憶媒体。
  14. 電子装置であって、
    インタフェース装置と、
    前記インタフェース装置に結合されたプロセッサと、
    前記プロセッサに結合されたメモリであって、前記メモリは、実行されると、請求項1乃至11のいずれか一項に記載の方法を実行するよう前記プロセッサを構成するコンピュータ実行可能命令を格納している、メモリと、
    を含む電子装置。
JP2019568229A 2017-07-07 2018-07-05 ブロックチェーンスクリプトにおける制御フロー Pending JP2020526811A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023079779A JP7535359B2 (ja) 2017-07-07 2023-05-15 ブロックチェーンスクリプトにおける制御フロー

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
GBGB1710974.5A GB201710974D0 (en) 2017-07-07 2017-07-07 Computer-implemented system and method
IBPCT/IB2017/054113 2017-07-07
GB1710971.1 2017-07-07
GB1710967.9 2017-07-07
IB2017054110 2017-07-07
GB1710974.5 2017-07-07
IB2017054113 2017-07-07
GBGB1710971.1A GB201710971D0 (en) 2017-07-07 2017-07-07 Computer-implemented system and method
IB2017054114 2017-07-07
IBPCT/IB2017/054110 2017-07-07
GBGB1710967.9A GB201710967D0 (en) 2017-07-07 2017-07-07 Computer-implemented system and method
IBPCT/IB2017/054114 2017-07-07
PCT/IB2018/054969 WO2019008531A1 (en) 2017-07-07 2018-07-05 METHOD FOR CONTROLLING STREAM EXECUTION OF A GENERATED SCRIPT OF A BLOCK CHAIN TRANSACTION

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023079779A Division JP7535359B2 (ja) 2017-07-07 2023-05-15 ブロックチェーンスクリプトにおける制御フロー

Publications (1)

Publication Number Publication Date
JP2020526811A true JP2020526811A (ja) 2020-08-31

Family

ID=63077923

Family Applications (8)

Application Number Title Priority Date Filing Date
JP2019568229A Pending JP2020526811A (ja) 2017-07-07 2018-07-05 ブロックチェーンスクリプトにおける制御フロー
JP2019569887A Active JP7317722B2 (ja) 2017-07-07 2018-07-05 ブロックチェーンコンパイラ
JP2019568221A Active JP7220678B2 (ja) 2017-07-07 2018-07-05 ブロックチェーン上で高レベル演算を提供する方法及びシステム
JP2023012689A Active JP7503670B2 (ja) 2017-07-07 2023-01-31 ブロックチェーン上で高レベル演算を提供する方法及びシステム
JP2023064745A Active JP7476390B2 (ja) 2017-07-07 2023-04-12 ブロックチェーンコンパイラ
JP2023079779A Active JP7535359B2 (ja) 2017-07-07 2023-05-15 ブロックチェーンスクリプトにおける制御フロー
JP2024066569A Pending JP2024096926A (ja) 2017-07-07 2024-04-17 ブロックチェーンコンパイラ
JP2024093389A Pending JP2024116281A (ja) 2017-07-07 2024-06-10 ブロックチェーン上で高レベル演算を提供する方法及びシステム

Family Applications After (7)

Application Number Title Priority Date Filing Date
JP2019569887A Active JP7317722B2 (ja) 2017-07-07 2018-07-05 ブロックチェーンコンパイラ
JP2019568221A Active JP7220678B2 (ja) 2017-07-07 2018-07-05 ブロックチェーン上で高レベル演算を提供する方法及びシステム
JP2023012689A Active JP7503670B2 (ja) 2017-07-07 2023-01-31 ブロックチェーン上で高レベル演算を提供する方法及びシステム
JP2023064745A Active JP7476390B2 (ja) 2017-07-07 2023-04-12 ブロックチェーンコンパイラ
JP2023079779A Active JP7535359B2 (ja) 2017-07-07 2023-05-15 ブロックチェーンスクリプトにおける制御フロー
JP2024066569A Pending JP2024096926A (ja) 2017-07-07 2024-04-17 ブロックチェーンコンパイラ
JP2024093389A Pending JP2024116281A (ja) 2017-07-07 2024-06-10 ブロックチェーン上で高レベル演算を提供する方法及びシステム

Country Status (8)

Country Link
US (9) US11307835B2 (ja)
EP (6) EP4300290A3 (ja)
JP (8) JP2020526811A (ja)
KR (1) KR102608500B1 (ja)
CN (3) CN110869905B (ja)
SG (1) SG11201912227YA (ja)
WO (3) WO2019008533A1 (ja)
ZA (1) ZA201908552B (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11307835B2 (en) 2017-07-07 2022-04-19 nChain Holdings Limited Method for controlling the flow execution of a generated script of a blockchain transaction
GB201811263D0 (en) * 2018-07-10 2018-08-29 Netmaster Solutions Ltd A method and system for managing digital using a blockchain
US12061452B2 (en) 2018-08-24 2024-08-13 Tyco Fire & Security Gmbh Building management system with blockchain ledger
US10964145B2 (en) * 2018-08-24 2021-03-30 Sensormatic Electronics, LLC Access control system using blockchain ledger
CN111949315A (zh) * 2019-05-16 2020-11-17 富士通株式会社 用于区块链账本数据的管理装置和方法
US10699269B1 (en) 2019-05-24 2020-06-30 Blockstack Pbc System and method for smart contract publishing
US11657391B1 (en) 2019-05-24 2023-05-23 Hiro Systems Pbc System and method for invoking smart contracts
US11513815B1 (en) * 2019-05-24 2022-11-29 Hiro Systems Pbc Defining data storage within smart contracts
US10783082B2 (en) * 2019-08-30 2020-09-22 Alibaba Group Holding Limited Deploying a smart contract
GB201913143D0 (en) * 2019-09-12 2019-10-30 Nchain Holdings Ltd Running a program from a blockchain
US11516147B2 (en) * 2019-10-02 2022-11-29 Red Hat, Inc. Blockchain-based dynamic storage provisioner
US11436677B2 (en) 2019-12-09 2022-09-06 Eris Digital Holdings, Llc Electronic trading and settlement system for blockchain-integrated cryptographic difficulty-based financial instruments
US11314729B2 (en) * 2020-02-20 2022-04-26 International Business Machines Corporation Multi-candidate data structure for transaction validation
US20220066746A1 (en) * 2020-08-31 2022-03-03 Jpmorgan Chase Bank, N.A. Systems and methods for graphical programming and deployment of distributed ledger applications
CN113031931A (zh) * 2021-03-04 2021-06-25 嘉兴丰鸟科技有限公司 一种基于脚本交叉编译的Python安全扩展方法
US11902426B2 (en) * 2021-06-26 2024-02-13 Ceremorphic, Inc. Efficient storage of blockchain in embedded device
KR102460351B1 (ko) * 2021-06-29 2022-10-31 주식회사 퓨처에셋파이넨셜 파일코인 채굴 생산성 향상 장치 및 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램
GB2618052A (en) * 2021-12-07 2023-11-01 Nchain Licensing Ag Blockchain script engine
US11658833B1 (en) 2022-12-06 2023-05-23 Citibank, N.A. Systems and methods for conducting cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs
US11770263B1 (en) 2022-12-06 2023-09-26 Citibank, N.A. Systems and methods for enforcing cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs comprising shared digital signature requirements
CN118118444B (zh) * 2024-04-28 2024-07-12 之江实验室 一种基于可编程交换机的计算功能抽象方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61182138A (ja) * 1984-11-21 1986-08-14 ノビツクス Forth特定言語マイクロプロセサ
JP2006107339A (ja) * 2004-10-08 2006-04-20 Matsushita Electric Ind Co Ltd プログラム処理装置
US20150074655A1 (en) * 2013-04-18 2015-03-12 Facebook, Inc. Eliminating redundant reference count operations in intermediate representation of script code
WO2017024071A1 (en) * 2015-08-03 2017-02-09 PokitDok, Inc. System and method for decentralized autonomous healthcare economy platform

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01243162A (ja) * 1988-03-17 1989-09-27 Internatl Business Mach Corp <Ibm> プログラム供給方法
JP3032031B2 (ja) * 1991-04-05 2000-04-10 株式会社東芝 ループ最適化方法及び装置
US5774726A (en) * 1995-04-24 1998-06-30 Sun Microsystems, Inc. System for controlled generation of assembly language instructions using assembly language data types including instruction types in a computer language as input to compiler
US5761652A (en) * 1996-03-20 1998-06-02 International Business Machines Corporation Constructing balanced multidimensional range-based bitmap indices
US6760905B1 (en) 2000-09-21 2004-07-06 Curl Corporation Lazy compilation of template-generated classes in dynamic compilation execution environments
US7168059B2 (en) * 2001-04-20 2007-01-23 Bryan Darrell Bowyer Graphical loop profile analysis
US6948160B2 (en) 2001-05-31 2005-09-20 Sun Microsystems, Inc. System and method for loop unrolling in a dynamic compiler
JP4490084B2 (ja) * 2003-12-03 2010-06-23 安川情報システム株式会社 プログラム開発システムにおけるプログラム作成方法
CA2608796C (en) 2005-03-31 2013-09-03 Georgetown University Free thyroxine and free triiodothyronine analysis by mass spectrometry
CN100487652C (zh) * 2005-04-02 2009-05-13 华为技术有限公司 脚本语言的自动机方法
US7861222B2 (en) * 2007-06-13 2010-12-28 Microsoft Corporation Discoscript: a simplified distributed computing scripting language
JP5179822B2 (ja) * 2007-09-27 2013-04-10 株式会社日立ソリューションズ 携帯電話、携帯電話スクリプト開発・実行システム
US8533666B2 (en) * 2008-10-17 2013-09-10 Microsoft Corporation Interactive design environments to visually model, debug and execute resource oriented programs
US8370811B2 (en) * 2009-07-16 2013-02-05 Accenture Global Services Limited Modularizing and aspectizing graphical user interface directed test scripts
US10466989B2 (en) 2011-09-02 2019-11-05 Microsoft Technology Licensing, Llc. Fast presentation of markup content having script code
CN102999370A (zh) * 2011-09-16 2013-03-27 腾讯科技(深圳)有限公司 脚本的执行方法及系统
US8997070B2 (en) * 2011-12-15 2015-03-31 Sap Se Extension mechanism for scripting language compiler
US10417314B2 (en) * 2012-06-14 2019-09-17 Open Text Sa Ulc Systems and methods of a script generation engine
WO2014022326A1 (en) * 2012-07-31 2014-02-06 Microsoft Corporation Multilingual build integration for compiled applications
US8869122B2 (en) 2012-08-30 2014-10-21 Sybase, Inc. Extensible executable modeling
US9684499B2 (en) 2013-06-30 2017-06-20 Dropbox, Inc. Systems and methods for facilitating installation of software applications
KR102156371B1 (ko) 2013-11-27 2020-09-15 한국전자통신연구원 네이티브 빌드 기반의 임베디드 소프트웨어 개발 환경을 지원하기 위한 임베디드 소프트웨어 개발 도구 제공 방법 및 장치
CN107210931B (zh) 2015-01-02 2020-09-29 希斯泰克公司 控制基础架构
CN104484192B (zh) * 2015-01-07 2017-11-14 南威软件股份有限公司 一种复杂多分支结构代码自动生成的方法
US9892021B2 (en) 2015-03-18 2018-02-13 Sap Se Injection of code modifications in a two session debug scripting environment
US10812274B2 (en) * 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US9735958B2 (en) 2015-05-19 2017-08-15 Coinbase, Inc. Key ceremony of a security system forming part of a host computer for cryptographic transactions
US20160342977A1 (en) 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
JP6636058B2 (ja) 2015-07-02 2020-01-29 ナスダック, インコーポレイテッドNasdaq, Inc. 分散トランザクションデータベースにおける出所保証のシステムおよび方法
JP6547466B2 (ja) 2015-07-06 2019-07-24 富士通株式会社 コンパイラ装置、コンパイル方法およびコンパイラプログラム
US20170011460A1 (en) * 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
EP3125489B1 (en) * 2015-07-31 2017-08-09 BRITISH TELECOMMUNICATIONS public limited company Mitigating blockchain attack
WO2017027407A1 (en) 2015-08-07 2017-02-16 Kinestral Technologies, Inc. Electrochromic device assemblies
DE112016003692T5 (de) * 2015-08-13 2018-04-26 Intel IP Corporation CIoT-Architektur für effiziente Datenübertragung
US9569206B1 (en) 2015-09-29 2017-02-14 International Business Machines Corporation Creating optimized shortcuts
EP3173962A1 (en) * 2015-11-25 2017-05-31 Gemalto Sa Method to generate a secure code
JP6833861B2 (ja) 2016-02-23 2021-02-24 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーンシステム内におけるフィードバックを統合したエージェントベースチューリング完全なトランザクション
US20170287090A1 (en) 2016-03-31 2017-10-05 Clause, Inc. System and method for creating and executing data-driven legal contracts
US10720232B2 (en) 2016-04-13 2020-07-21 Accenture Global Solutions Limited Distributed healthcare records management
US10180900B2 (en) * 2016-04-15 2019-01-15 Red Hat Israel, Ltd. Recordation of user interface events for script generation
GB2564200A (en) 2016-04-29 2019-01-09 Nchain Holdings Ltd Implementing logic gate functionality using a blockchain
CN106296191A (zh) * 2016-08-13 2017-01-04 深圳市樊溪电子有限公司 一种区块链功耗感知的PoW共识机制
CN106598579B (zh) 2016-12-06 2020-12-25 北京果仁宝科技有限公司 区块链上集成动态类型编程语言方法和装置
CN106598549B (zh) * 2016-12-08 2019-02-01 天津米游科技有限公司 一种基于区块链的智能合约系统及实现方法
CN106778343A (zh) * 2016-12-12 2017-05-31 武汉优聘科技有限公司 一种基于区块链的涉及隐私数据的数据共享方法
US10871948B1 (en) 2017-03-30 2020-12-22 Wells Fargo Bank, N.A. Smart contract blockchain abstraction API
US10235280B2 (en) 2017-04-10 2019-03-19 Fmr Llc Automated script creation and source code generation for testing mobile devices
US10963790B2 (en) * 2017-04-28 2021-03-30 SparkCognition, Inc. Pre-processing for data-driven model creation
US11307835B2 (en) 2017-07-07 2022-04-19 nChain Holdings Limited Method for controlling the flow execution of a generated script of a blockchain transaction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61182138A (ja) * 1984-11-21 1986-08-14 ノビツクス Forth特定言語マイクロプロセサ
JP2006107339A (ja) * 2004-10-08 2006-04-20 Matsushita Electric Ind Co Ltd プログラム処理装置
US20150074655A1 (en) * 2013-04-18 2015-03-12 Facebook, Inc. Eliminating redundant reference count operations in intermediate representation of script code
WO2017024071A1 (en) * 2015-08-03 2017-02-09 PokitDok, Inc. System and method for decentralized autonomous healthcare economy platform

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"evm-opcode-gas-costs", [オンライン], JPN6022022706, 12 April 2017 (2017-04-12), ISSN: 0004792993 *

Also Published As

Publication number Publication date
ZA201908552B (en) 2023-06-28
JP2023100981A (ja) 2023-07-19
US11922149B2 (en) 2024-03-05
US20240231777A1 (en) 2024-07-11
JP2020526814A (ja) 2020-08-31
CN110870249A (zh) 2020-03-06
JP7317722B2 (ja) 2023-07-31
US20240211222A1 (en) 2024-06-27
US11868745B2 (en) 2024-01-09
WO2019008531A1 (en) 2019-01-10
US20210081185A1 (en) 2021-03-18
CN110869906B (zh) 2024-10-18
US20200174762A1 (en) 2020-06-04
EP4300290A3 (en) 2024-02-21
JP2023052782A (ja) 2023-04-12
CN110869905B (zh) 2024-08-13
KR20200021993A (ko) 2020-03-02
JP2024116281A (ja) 2024-08-27
KR102608500B1 (ko) 2023-12-04
WO2019008533A1 (en) 2019-01-10
CN110869905A (zh) 2020-03-06
US20230246811A1 (en) 2023-08-03
JP7503670B2 (ja) 2024-06-20
EP3649548A1 (en) 2020-05-13
EP3649759A1 (en) 2020-05-13
WO2019008532A1 (en) 2019-01-10
US20230057419A1 (en) 2023-02-23
EP4325351A3 (en) 2024-04-03
US11941381B2 (en) 2024-03-26
JP2023089127A (ja) 2023-06-27
JP7476390B2 (ja) 2024-04-30
US20220350579A1 (en) 2022-11-03
EP4300290A2 (en) 2024-01-03
EP4328739A2 (en) 2024-02-28
US11797278B2 (en) 2023-10-24
CN110869906A (zh) 2020-03-06
JP2024096926A (ja) 2024-07-17
SG11201912227YA (en) 2020-01-30
EP4328739A3 (en) 2024-04-03
JP2020526810A (ja) 2020-08-31
US11416226B2 (en) 2022-08-16
EP4325351A2 (en) 2024-02-21
US20240168735A1 (en) 2024-05-23
EP3649547A1 (en) 2020-05-13
JP7220678B2 (ja) 2023-02-10
US11307835B2 (en) 2022-04-19
JP7535359B2 (ja) 2024-08-16
US20200195442A1 (en) 2020-06-18

Similar Documents

Publication Publication Date Title
JP7535359B2 (ja) ブロックチェーンスクリプトにおける制御フロー
JP7095049B2 (ja) ブロックチェーンシステム内におけるフィードバックを統合したエージェントベースチューリング完全なトランザクション
US11900364B2 (en) Implementing logic gate functionality using a blockchain
CN109691015B (zh) 一种区块链上的动态访问控制方法及系统
KR20190111037A (ko) 컨소시엄 블록체인에 의한 스마트 계약 업그레이드 방법 및 시스템
Liu et al. Smacs: smart contract access control service
Chen et al. {MAGE}: Mutual attestation for a group of enclaves without trusted third parties
Duan et al. Multiple‐Layer Security Threats on the Ethereum Blockchain and Their Countermeasures
Cao et al. A survey on security in consensus and smart contracts
CN113469811A (zh) 区块链交易处理方法及装置
KR102247233B1 (ko) 다중 레이어 기반 스마트 컨트랙트 감사 방법 및 그 장치
Seifi et al. Analysis of two authorization protocols using Colored Petri Nets
Stampernas Blockchain technologies and smart contracts in the context of the Internet of Things
Shamili et al. Design and Implementation Considerations of POA Network Architecture in the Ethereum Blockchain
Hijazi et al. Verification of web content integrity: Detection and recovery security approach using colored petri nets
Seifi et al. Analysis of object-specific authorization protocol (OSAP) using coloured Petri Nets
Wickström Distributed IoT Security using an Ethereum-based Blockchain Infrastructure
Brighente et al. The Ethereum Blockchain: Implementation and Security Aspects
Asare Blockchain Technology and Vulnerability Exploits on Smart Contracts
Deshpande et al. Demystifying Reentrancy Attacks on Smart Contracts Understanding Types and Mitigations
Parisi et al. Smart Contract Security
Adeyeye et al. Improving Remote Method Invocation via Method Authorization and Elimination of Registry: An Exploration of Java and Haxe

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210608

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220607

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230117