JP2023100981A - ブロックチェーンスクリプトにおける制御フロー - Google Patents
ブロックチェーンスクリプトにおける制御フロー Download PDFInfo
- Publication number
- JP2023100981A JP2023100981A JP2023079779A JP2023079779A JP2023100981A JP 2023100981 A JP2023100981 A JP 2023100981A JP 2023079779 A JP2023079779 A JP 2023079779A JP 2023079779 A JP2023079779 A JP 2023079779A JP 2023100981 A JP2023100981 A JP 2023100981A
- Authority
- JP
- Japan
- Prior art keywords
- script
- blockchain
- transaction
- data item
- 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
Links
- 238000013515 script Methods 0.000 title claims abstract description 74
- 238000000034 method Methods 0.000 claims abstract description 40
- 230000007246 mechanism Effects 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 241000700566 Swinepox virus (STRAIN KASZA) Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- 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/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- 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
-
- 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
- G06F8/452—Loops
-
- 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/51—Source to source
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/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/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/3297—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 time stamps, e.g. generation of time stamps
-
- 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/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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial 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文のような選択制御メカニズムである。【選択図】図2
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に基づく演算シーケンスを提供する。
本例では、私達は、言語により本来サポートされるかのように、forループの動作をエミュレートするScriptに基づく演算シーケンスを提供する。
留意すべきことに、ループのインスタンスを表す枠が複数回、つまりP回、P>N、提供される。また、ループ本体のコード<EXECUTE STATEMENTS>は、主スタック又はaltスタックのいずれの状態も変更すべきではない。
<ループの例1:0~2のループ>
以下の例では、私達は、枠内のコードが3回コピーされると仮定する。本例では、私達は、<EXECUTE STATEMENTS>が2回実行されることを検証する。
以下の例では、私達は、枠内のコードが3回コピーされると仮定する。本例では、私達は、<EXECUTE STATEMENTS>が2回実行されることを検証する。
<使用例2:switch-caseコマンドシーケンスのエミュレーション>
本例では、私達は、switchコマンドシーケンスのBitcoin Scriptエミュレーションを記載する。私達は、以下の種類のコマンドシーケンスをエミュレートすることを望む。
本例では、私達は、switchコマンドシーケンスのBitcoin Scriptエミュレーションを記載する。私達は、以下の種類のコマンドシーケンスをエミュレートすることを望む。
<ブロックチェーンネットワーク>
図3を参照すると、図3は、ブロックチェーンに関連付けられた例示的なネットワークをブロック図形式で示す。該ネットワークは、ここではブロックチェーンネットワーク100として参照されてよく、本発明の実装のために利用されてよい。ブロックチェーンネットワーク100は、他の会員からの招待無しに又は承認無しに誰でも参加し得るピアツーピア開放型会員制ネットワークである。ブロックチェーンプロトコルの下でブロックチェーンネットワーク100が動作し、該ブロックチェーンプロトコルのインスタンスを実行する分散型電子装置は、ブロックチェーンネットワーク100に参加してよい。このような分散型電子装置は、ノード102と呼ばれてよい。ブロックチェーンプロトコルは、例えばBitcoinプロトコル、又は他の暗号通貨であってよい。
図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つの同一のハードウェア要素により実装することができる。特定の量が相互に異なる従属請求項に記載されるという事実は、これらの量の組合せが有利に用いることができないことを示すものではない。
100 ブロックチェーンネットワーク
102 ノード
102 ノード
Claims (11)
- コンピュータにより実施される方法であって、
少なくとも1つのデータアイテムを受信し、生成し、又は導出するステップと、
少なくとも1つのコード部分を少なくとも1回、ブロックチェーントランザクションに関連付けられたスクリプトに挿入するステップであって、その結果、前記スクリプトが実行されると、制御フローメカニズムの機能を提供し、前記制御フローメカニズムの動作は、前記少なくとも1つのデータアイテムにより制御され又は影響される、ステップと、
前記少なくとも1つのコード部分を前記スクリプトに1回より多く、及び/又は前記スクリプト内の1つより多くの位置に挿入する及び/又はコピーするステップと、
を含み、
前記制御フローメカニズムの機能は、少なくとも、前記少なくとも1つのデータアイテムを用いて、前記少なくとも1つのコード部分を前記スクリプトに挿入する又はコピーする回数を決定することにより、前記スクリプト内で有効になり又はエミュレートされ、
前記スクリプトは機能的に制約されたスタックに基づくスクリプト言語で記述され、
前記コード部分は、前記スクリプトの実行により少なくとも1回インクリメントされるカウンタ又はインデックスを含み、前記カウンタ又はインデックスは前記スクリプトの前記実行を制御し又は影響を与えるために使用される、方法。 - 前記スクリプトは、前記ブロックチェーントランザクションのインプット又はアウトプットに関連付けられる、請求項1に記載の方法。
- 前記ブロックチェーントランザクションは、ブロックチェーンプロトコルに従い又はブロックチェーンプロトコルと共に使用するために生成される、請求項1又は2に記載の方法。
- 前記ブロックチェーンプロトコルはBitcoinプロトコル又はBitcoinプロトコルの変形である、請求項3に記載の方法。
- 前記少なくとも1つのデータアイテムを用いて、前記少なくとも1つのコード部分が前記スクリプトに何回挿入/コピーされたかを決定するステップ、を含む請求項1乃至4のいずれかに記載の方法。
- 前記制御フローメカニズムは、forループのようなループ、又はswitch文のような選択制御メカニズムである、請求項1乃至5のいずれかに記載の方法。
- 前記少なくとも1つのデータアイテムは、高レベル言語(HLL)からのコードをブロックチェーントランザクションスクリプトに変換するよう構成されるコンパイラから導出される、請求項1乃至6のいずれかに記載の方法。
- 前記カウンタ又はインデックスは、2つのスタックに基づくデータ構造に格納された及び/又は該データ構造から読み出された値を用いてインクリメントされ又は操作される、請求項1に記載の方法。
- 請求項1乃至8のいずれかに記載の方法を実施するよう構成されたコンピュータにより実装されるシステム。
- 実行されると、請求項1乃至8のいずれか一項に記載の方法を実行するようプロセッサを構成するコンピュータ実行可能命令を含むコンピュータ可読記憶媒体。
- 電子装置であって、
インタフェース装置と、
前記インタフェース装置に結合されたプロセッサと、
前記プロセッサに結合されたメモリであって、前記メモリは、実行されると、請求項1乃至8のいずれか一項に記載の方法を実行するよう前記プロセッサを構成するコンピュータ実行可能命令を格納している、メモリと、
を含む電子装置。
Applications Claiming Priority (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IBPCT/IB2017/054114 | 2017-07-07 | ||
IBPCT/IB2017/054110 | 2017-07-07 | ||
GBGB1710967.9A GB201710967D0 (en) | 2017-07-07 | 2017-07-07 | Computer-implemented system and method |
IB2017054114 | 2017-07-07 | ||
IB2017054113 | 2017-07-07 | ||
GBGB1710971.1A GB201710971D0 (en) | 2017-07-07 | 2017-07-07 | Computer-implemented system and method |
GB1710974.5 | 2017-07-07 | ||
GB1710971.1 | 2017-07-07 | ||
GB1710967.9 | 2017-07-07 | ||
GBGB1710974.5A GB201710974D0 (en) | 2017-07-07 | 2017-07-07 | Computer-implemented system and method |
IBPCT/IB2017/054113 | 2017-07-07 | ||
IB2017054110 | 2017-07-07 | ||
JP2019568229A JP2020526811A (ja) | 2017-07-07 | 2018-07-05 | ブロックチェーンスクリプトにおける制御フロー |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019568229A Division JP2020526811A (ja) | 2017-07-07 | 2018-07-05 | ブロックチェーンスクリプトにおける制御フロー |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023100981A true JP2023100981A (ja) | 2023-07-19 |
Family
ID=63077923
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019568229A Pending JP2020526811A (ja) | 2017-07-07 | 2018-07-05 | ブロックチェーンスクリプトにおける制御フロー |
JP2019568221A Active JP7220678B2 (ja) | 2017-07-07 | 2018-07-05 | ブロックチェーン上で高レベル演算を提供する方法及びシステム |
JP2019569887A Active JP7317722B2 (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 Pending JP2023100981A (ja) | 2017-07-07 | 2023-05-15 | ブロックチェーンスクリプトにおける制御フロー |
JP2024066569A Pending JP2024096926A (ja) | 2017-07-07 | 2024-04-17 | ブロックチェーンコンパイラ |
Family Applications Before (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019568229A Pending JP2020526811A (ja) | 2017-07-07 | 2018-07-05 | ブロックチェーンスクリプトにおける制御フロー |
JP2019568221A Active JP7220678B2 (ja) | 2017-07-07 | 2018-07-05 | ブロックチェーン上で高レベル演算を提供する方法及びシステム |
JP2019569887A Active JP7317722B2 (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 | ブロックチェーンコンパイラ |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2024066569A Pending JP2024096926A (ja) | 2017-07-07 | 2024-04-17 | ブロックチェーンコンパイラ |
Country Status (8)
Country | Link |
---|---|
US (9) | US11416226B2 (ja) |
EP (6) | EP3649548A1 (ja) |
JP (7) | JP2020526811A (ja) |
KR (1) | KR102608500B1 (ja) |
CN (3) | CN110870249A (ja) |
SG (1) | SG11201912227YA (ja) |
WO (3) | WO2019008532A1 (ja) |
ZA (1) | ZA201908552B (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3649548A1 (en) | 2017-07-07 | 2020-05-13 | 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 |
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 | 富士通株式会社 | 用于区块链账本数据的管理装置和方法 |
US11657391B1 (en) | 2019-05-24 | 2023-05-23 | Hiro Systems Pbc | System and method for invoking smart contracts |
US10699269B1 (en) | 2019-05-24 | 2020-06-30 | Blockstack Pbc | System and method for smart contract publishing |
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 |
WO2021119210A1 (en) * | 2019-12-09 | 2021-06-17 | 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 | 之江实验室 | 一种基于可编程交换机的计算功能抽象方法及装置 |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3587591T2 (de) | 1984-11-21 | 1994-04-28 | Harris Corp | Mikroprozessor für Forth-ähnliche Sprache. |
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 | 安川情報システム株式会社 | プログラム開発システムにおけるプログラム作成方法 |
JP2006107339A (ja) * | 2004-10-08 | 2006-04-20 | Matsushita Electric Ind Co Ltd | プログラム処理装置 |
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 |
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 |
US9152400B2 (en) * | 2013-04-18 | 2015-10-06 | Facebook, Inc. | Eliminating redundant reference count operations in intermediate representation of script code |
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 | 한국전자통신연구원 | 네이티브 빌드 기반의 임베디드 소프트웨어 개발 환경을 지원하기 위한 임베디드 소프트웨어 개발 도구 제공 방법 및 장치 |
CA3128834C (en) | 2015-01-02 | 2023-11-14 | Systech Corporation | Control infrastructure |
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 |
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 |
US10366204B2 (en) | 2015-08-03 | 2019-07-30 | Change Healthcare Holdings, Llc | System and method for decentralized autonomous healthcare economy platform |
JP2018528461A (ja) | 2015-08-07 | 2018-09-27 | キネストラル・テクノロジーズ・インコーポレイテッドKinestral Technologies,Inc. | エレクトロクロミック素子組立体 |
WO2017027071A1 (en) * | 2015-08-13 | 2017-02-16 | Intel IP Corporation | Ciot architecture for efficient data transmission |
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 |
EP3764589A1 (en) | 2016-02-23 | 2021-01-13 | Nchain Holdings Limited | Agent-based turing complete transactions integrating feedback within a blockchain system |
WO2017173399A1 (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 |
SG10202010720VA (en) | 2016-04-29 | 2020-12-30 | 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 |
EP3649548A1 (en) | 2017-07-07 | 2020-05-13 | Nchain Holdings Limited | Method for controlling the flow execution of a generated script of a blockchain transaction |
-
2018
- 2018-07-05 EP EP18749552.8A patent/EP3649548A1/en not_active Ceased
- 2018-07-05 EP EP23208507.6A patent/EP4325351A3/en active Pending
- 2018-07-05 JP JP2019568229A patent/JP2020526811A/ja active Pending
- 2018-07-05 KR KR1020207001661A patent/KR102608500B1/ko active IP Right Grant
- 2018-07-05 WO PCT/IB2018/054970 patent/WO2019008532A1/en unknown
- 2018-07-05 US US16/629,295 patent/US11416226B2/en active Active
- 2018-07-05 SG SG11201912227YA patent/SG11201912227YA/en unknown
- 2018-07-05 US US16/629,287 patent/US11797278B2/en active Active
- 2018-07-05 WO PCT/IB2018/054969 patent/WO2019008531A1/en unknown
- 2018-07-05 EP EP23213682.0A patent/EP4328739A3/en active Pending
- 2018-07-05 EP EP18749140.2A patent/EP3649759A1/en not_active Ceased
- 2018-07-05 US US16/629,291 patent/US11307835B2/en active Active
- 2018-07-05 CN CN201880045600.6A patent/CN110870249A/zh active Pending
- 2018-07-05 JP JP2019568221A patent/JP7220678B2/ja active Active
- 2018-07-05 WO PCT/IB2018/054971 patent/WO2019008533A1/en unknown
- 2018-07-05 JP JP2019569887A patent/JP7317722B2/ja active Active
- 2018-07-05 CN CN201880045587.4A patent/CN110869905A/zh active Pending
- 2018-07-05 CN CN201880045599.7A patent/CN110869906A/zh active Pending
- 2018-07-05 EP EP23197250.6A patent/EP4300290A3/en active Pending
- 2018-07-05 EP EP18749139.4A patent/EP3649547A1/en not_active Ceased
-
2019
- 2019-12-20 ZA ZA2019/08552A patent/ZA201908552B/en unknown
-
2022
- 2022-04-18 US US17/723,381 patent/US11922149B2/en active Active
- 2022-08-13 US US17/887,445 patent/US11868745B2/en active Active
-
2023
- 2023-01-26 US US18/101,977 patent/US11941381B2/en active Active
- 2023-01-31 JP JP2023012689A patent/JP7503670B2/ja active Active
- 2023-04-12 JP JP2023064745A patent/JP7476390B2/ja active Active
- 2023-05-15 JP JP2023079779A patent/JP2023100981A/ja active Pending
- 2023-11-28 US US18/521,958 patent/US20240168735A1/en active Pending
-
2024
- 2024-01-24 US US18/421,885 patent/US20240231777A1/en active Pending
- 2024-02-21 US US18/583,677 patent/US20240211222A1/en active Pending
- 2024-04-17 JP JP2024066569A patent/JP2024096926A/ja active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2023100981A (ja) | ブロックチェーンスクリプトにおける制御フロー | |
JP7384965B2 (ja) | ブロックチェーンシステム内におけるフィードバックを統合したエージェントベースチューリング完全なトランザクション | |
Seijas et al. | Scripting smart contracts for distributed ledger technology | |
Suciu et al. | Comparative analysis of distributed ledger technologies | |
CN111052165A (zh) | 使用区块链的并发状态机处理 | |
KR20200094618A (ko) | 스마트 컨트랙트 유사도 분석을 이용한 소스 코드 감사 방법 및 그 장치 | |
Liu et al. | Smacs: smart contract access control service | |
Duan et al. | Multiple‐Layer Security Threats on the Ethereum Blockchain and Their Countermeasures | |
Wang et al. | Towards saving blockchain fees via secure and cost-effective batching of smart-contract invocations | |
CN113469811A (zh) | 区块链交易处理方法及装置 | |
KR102247233B1 (ko) | 다중 레이어 기반 스마트 컨트랙트 감사 방법 및 그 장치 | |
CN110807195A (zh) | 一种智能合约的发布方法、发布平台装置及发布*** | |
Mazurek | Ethver: Formal verification of randomized ethereum smart contracts | |
Shamili et al. | Design and Implementation Considerations of POA Network Architecture in the Ethereum Blockchain | |
Khan et al. | Dynamic Analysis for the Detection of Locked Ether Smart Contracts | |
Baby et al. | A review analysis on smart contract vulnerabilities using 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 | |
Parthasarathi et al. | Tackle the smart contract vulnerabilities | |
Petrosino et al. | dRAIN: A distributed Reliable Architecture for IoT Networks | |
Beksultanova et al. | Smart contracts and security basics | |
Brighente et al. | The Ethereum Blockchain: Implementation and Security Aspects | |
Mast | A Framework for the Implementation and Comparison of Authenticated Data Structures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230515 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240604 |