JP7220678B2 - Method and system for providing high-level operations on blockchain - Google Patents

Method and system for providing high-level operations on blockchain Download PDF

Info

Publication number
JP7220678B2
JP7220678B2 JP2019568221A JP2019568221A JP7220678B2 JP 7220678 B2 JP7220678 B2 JP 7220678B2 JP 2019568221 A JP2019568221 A JP 2019568221A JP 2019568221 A JP2019568221 A JP 2019568221A JP 7220678 B2 JP7220678 B2 JP 7220678B2
Authority
JP
Japan
Prior art keywords
script
blockchain
scripting language
transaction
primitives
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.)
Active
Application number
JP2019568221A
Other languages
Japanese (ja)
Other versions
JP2020526810A (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 GBGB1710967.9A external-priority patent/GB201710967D0/en
Priority claimed from GBGB1710974.5A external-priority patent/GB201710974D0/en
Priority claimed from GBGB1710971.1A external-priority patent/GB201710971D0/en
Application filed by nChain Holdings Ltd filed Critical nChain Holdings Ltd
Publication of JP2020526810A publication Critical patent/JP2020526810A/en
Priority to JP2023012689A priority Critical patent/JP2023052782A/en
Application granted granted Critical
Publication of JP7220678B2 publication Critical patent/JP7220678B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/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
    • 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
    • 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
    • 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
    • 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

Description

本発明は、概して、分散台帳技術に関し、特に、Bitcoinブロックチェーン又は任意の他のブロックチェーン/暗号通貨プロトコルの変形のようなブロックチェーン技術に関する。本発明は、限定ではなく、ブロックチェーントランザクション(Tx)内のスクリプトが実行のために構成される方法を制御する際に、したがって、デジタルリソースの制御若しくは所有権がブロックチェーンネットワークを介して移転される方法を制御する際に、使用されることに適する。 The present invention relates generally to distributed ledger technology, and more particularly to blockchain technology such as the Bitcoin blockchain or any other blockchain/cryptocurrency protocol variant. The present invention is intended, without limitation, in controlling the manner in which scripts within a blockchain transaction (Tx) are configured for execution, thus controlling or otherwise transferring control or ownership of a digital resource through the blockchain network. suitable for use in controlling the way

本願明細書で、用語「ブロックチェーン」は、あらゆる形式の電子的な、コンピュータに基づく、分散台帳技術を含むよう使用される。これらは、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、サイドチェーン、及びそれらの変形を含む。最も広く知られているブロックチェーン技術の用途はBitcoin台帳であるが、他のブロックチェーンの実装が提案され開発されている。ビットコインは便宜上及び説明を目的として本願明細書において言及されるが、本発明はBitcoinのブロックチェーンの変形と共に使用することに限定されず、代替ブロックチェーン実装及びプロトコルが本発明の範囲に含まれることに留意すべきである。 The term "blockchain" is used herein to include all forms of electronic, computer-based, distributed ledger technology. These include consensus-based blockchain and transaction chain technologies, permissioned and unpermissioned ledgers, shared ledgers, sidechains, and variants thereof. The most widely known application of blockchain technology is the Bitcoin ledger, but other blockchain implementations have been proposed and developed. Although Bitcoin is referred to herein for convenience and descriptive purposes, the invention is not limited to use with blockchain variants of Bitcoin, and alternative blockchain implementations and protocols are within the scope of the invention. It should be noted that

ブロックチェーンは、ブロックにより構成される、コンピュータに基づく非集中型の分散型システムとして実装されるピアツーピア電子台帳である。また、ブロックはトランザクションにより構成される。各トランザクションは、ブロックチェーンシステム内で参加者間のデジタルアセットの制御の移転を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、ブロックは共にチェーンになって、その発端からブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能なレコードを生成する。トランザクションは、そのインプット及びアウトプットに組み込まれたスクリプトとして知られる小さなプログラムを含む。スクリプトは、トランザクションのアウトプットがどのように及び誰によりアクセス可能かを指定する。ビットコインプラットフォーム上で、これらのスクリプトは、Scriptと呼ばれるスタックに基づくスクリプト言語を用いて記述される。 A blockchain is a peer-to-peer electronic ledger implemented as a decentralized, computer-based, distributed system composed of blocks. Also, a block is composed of transactions. Each transaction is a data structure that encodes the transfer of control of a digital asset between participants within a blockchain system and includes at least one input and at least one output. Each block contains the hash of the previous block, and the blocks chain together to create a permanent, immutable record of all transactions written to the blockchain since its inception. A transaction contains a small program known as a script embedded in its inputs and outputs. Scripts specify how and by whom the output of a transaction can be accessed. On the Bitcoin platform, these scripts are written using a stack-based scripting language called Script.

トランザクションがブロックチェーンに書き込まれるために、「検証され」なければならない。ネットワークノード(マイナー)は、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。ノードにインストールされたソフトウェアクライアントは、自身のロック及びアンロックスクリプトを実行することにより、この検証作業を未使用トランザクション(UTXO)に対して実行する。ロック及びアンロックスクリプトの実行が真と評価した場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、i)トランザクションを受信した第1ノードにより検証され、トランザクションが検証された場合に、ノードは該トランザクションをネットワーク内の他のノードに中継し、ii)マイナーにより構築された新しいブロックに追加し、iii)マイニングされ、つまり過去のトランザクションの公開台帳に追加されなければならない。 In order for a transaction to be written to the blockchain, it must be "verified". Network nodes (miners) perform work to ensure that each transaction is valid, and invalid transactions are rejected from the network. A software client installed on a node performs this verification task on unspent transactions (UTXOs) by executing its own lock and unlock scripts. If the execution of the lock and unlock scripts evaluates to true, the transaction is valid and the transaction is written to the blockchain. Therefore, in order for a transaction to be written to the blockchain, the transaction must: i) be verified by the first node that received the transaction, and if the transaction is verified, the node will relay the transaction to other nodes in the network; ii) added to new blocks built by miners, and iii) mined, i.e. added to the public ledger of past transactions.

ブロックチェーン技術は、暗号通貨実装の使用で最も広く知られているが、デジタル起業家が、新しいシステムを実装するために、Bitcoinの基づく暗号通貨セキュリティシステム、及びブロックチェーンに格納可能なデータの両方の使用を探索し始めている。ブロックチェーンが、暗号通貨の領域に限定されない自動タスク及びプロセスのために使用できれば、非常に有利であり、したがってブロックチェーンに実装される技術の適用性を広げる。このようなソリューションは、それらの用途において一層多様でありながら、ブロックチェーンの利点(例えば、永久的、イベントの耐タンパレコード、分散プロセス、等)を利用できる。 Blockchain technology is most widely known for its use in cryptocurrency implementations, but digital entrepreneurs are looking to implement new systems, both Bitcoin-based cryptocurrency security systems, and data that can be stored on blockchains. are beginning to explore the use of It would be very advantageous if blockchains could be used for automated tasks and processes that are not limited to the realm of cryptocurrencies, thus broadening the applicability of technologies implemented in blockchains. Such solutions can take advantage of blockchains (e.g., permanent, tamper-resistant records of events, decentralized processes, etc.) while being more diverse in their applications.

しかしながら、このような技術の機能を向上するために、現在存在する幾つかの技術的制限を解決する必要がある。1つ以上のBitcoinプロトコルでは、例えば、プログラマのプログラムがScriptで記述されるとき、特定の演算子はプログラマに利用可能でなくてよい。セキュリティ関連の懸念事項は、プロトコルの元のバージョンの中で提供されたScriptオペコードの幾つかを、Bitcoinコミュニティにより無効にさせてしまう。これらは、乗算及び除算のような特定の算術演算を実行するための演算子を含む。したがって、現在、幾つかのプロトコルでは、Script内のこのような演算を実行する固有のメカニズムが存在せず、これは、スクリプトコードが現在達成できることに制約をもたらす。無効なオペコードを含むスクリプトは、失敗し異常終了するだろう。これは、基礎にあるブロックチェーンプロトコル等に実装される技術の機能に制限をもたらす。所望の実装が基礎にあるプロトコル内で提供されない機能を使用する必要のあるときに生じる技術的課題が存在する。プロトコルの変更は、常に望ましく又は実現可能ではない場合がある。一方で、このようなブロックチェーンプラットフォームは機能的に制約されたままである。 However, in order to improve the functionality of such technology, several technical limitations that currently exist need to be overcome. In one or more Bitcoin protocols, for example, certain operators may not be available to the programmer when the programmer's program is written in Script. Security-related concerns have caused some of the Script opcodes provided in the original version of the protocol to be overridden by the Bitcoin community. These include operators for performing certain arithmetic operations such as multiplication and division. Therefore, currently in some protocols there is no intrinsic mechanism to perform such operations within Script, which poses a constraint on what script code can currently accomplish. Scripts containing invalid opcodes will fail and abort. This poses limitations on the functionality of technologies implemented in underlying blockchain protocols and the like. There are technical challenges that arise when the desired implementation needs to use functionality not provided in the underlying protocol. Protocol changes may not always be desirable or feasible. On the one hand, such blockchain platforms remain functionally constrained.

したがって、ブロックチェーンスクリプト言語のセキュリティ及び完全性を保ちたいという要望をそのままに、スクリプトプログラマにより大きなプログラミング能力を与え並びに言語の多様性、可用性及び適用性を向上する、ソリューションを提供する必要もある。このようなソリューションは、改良されたブロックチェーンネットワークを提供し得る。これから、限定ではなく、以下を含む多数の利益が導かれ得る。 Therefore, while maintaining the desire to preserve the security and integrity of blockchain scripting languages, there is also a need to provide solutions that give script programmers greater programming power and improve language diversity, availability and applicability. Such solutions could provide improved blockchain networks. A number of benefits can be derived from this, including but not limited to the following.

・複雑なブロックチェーンに関連する移転の自動化を可能にする、
・ブロックチェーンに記録されるメタデータストリームを制御する、
・ブロックチェーンに実装される技術の機能及び用途を拡張する。
・Enables automation of complex blockchain-related transfers,
・Control the metadata stream recorded on the blockchain,
・Expand the functions and uses of technologies implemented in blockchains.

このようなソリューションの一例がここに提供される。 An example of such a solution is provided here.

本発明によると、添付の請求の範囲に定められるようなシステム及び/又は方法が提供される。 According to the present invention there is provided a system and/or method as defined in the appended claims.

本発明の実施形態は、ブロックチェーンにより実装される方法/システムを提供し得る。本発明は、制御方法/システムであってよい。これは、ブロックチェーントランザクション(Tx)に埋め込まれるスクリプトの実行を及び/又はアウトプットがアンロックされるか否かを制御するよう、及び/又はトランザクションによりあるエンティティから別のエンティティへのリソースの移転を制御するよう、構成されてよい。 Embodiments of the present invention may provide a blockchain implemented method/system. The present invention may be a control method/system. This can be used to control the execution of scripts embedded in blockchain transactions (Tx) and/or whether outputs are unlocked and/or the transfer of resources from one entity to another by a transaction. may be configured to control the

ブロックチェーンは、プロトコル及びスクリプト言語に関連付けられてよい。スクリプト言語は、スタックに基づく言語であってよい。スクリプト言語は、スクリプト言語がループ及び/又はジャンプ反復のような複雑な制御フローメカニズムを許可しないという意味で、機能的に制約されてよい。これは、Bitcoinスクリプト言語、Script、又は代替のものであってよい。 Blockchain may be associated with protocols and scripting languages. The scripting language may be a stack-based language. Scripting languages may be functionally constrained in the sense that scripting languages do not allow complex control flow mechanisms such as loop and/or jump iterations. This may be the Bitcoin scripting language, Script, or alternative.

本発明の実施形態は、ブロックチェーンスクリプトの中で演算の機能をエミュレートする又は実装するメカニズムを提供し得る。演算は、ブロックチェーンプロトコルに関連付けられたスクリプト言語により本来サポートされない演算であってよい。これは無効な演算であってよい。これは、高レベル演算と呼ばれてよい。これは、ブロックチェーンスクリプト言語のワードセット(オペコード、コマンド、命令、又は関数)に対して、高レベルであってよい。高レベル演算は、固有のプリミティブ演算又は言語本来のオペコードから除去されたレベル抽象化で機能する演算であってよい。高レベル演算は、乗算及び除算のような算術演算であってよい。このことの利点は、本発明が、この機能を便利な方法で組み込むスクリプトを記述するために使用可能であり、スクリプト言語又はブロックチェーンプロトコルを変更する必要がないことである。したがって、本発明は、改良されたブロックチェーンシステムを提供し、より機能的に複雑な、より機能的に多様なアプリケーションをブロックチェーン上で実行可能にし、及びアプリケーションのプログラミングをエラーの低減と共により容易に且つ迅速に達成可能にする。したがって、結果として、より多様な、機能的に強力且つ有用なブロックチェーンをもたらす。一方で、本発明は、より多くのブロックチェーンにより実装される技術を構築可能にする。 Embodiments of the present invention may provide mechanisms to emulate or implement the functionality of operations within blockchain scripts. The operations may be operations that are not natively supported by the scripting language associated with the blockchain protocol. This may be an invalid operation. This may be referred to as high level computation. This may be high level relative to the word set of the blockchain scripting language (opcodes, commands, instructions or functions). High-level operations may be native primitive operations or operations that work at a level of abstraction removed from the native opcodes of the language. High-level operations may be arithmetic operations such as multiplication and division. The advantage of this is that the invention can be used to write scripts that incorporate this functionality in a convenient way without the need to change the scripting language or blockchain protocol. Accordingly, the present invention provides an improved blockchain system, enabling more functionally complex, more functionally diverse applications to run on the blockchain, and making application programming easier with reduced errors. achievable quickly and easily. The result, therefore, is a more diverse, functionally powerful and useful blockchain. On the one hand, the present invention makes it possible to build more blockchain-implemented technology.

追加又は代替として、当該方法は、実行されると高レベルスクリプト言語プリミティブの機能を提供するよう、複数の(ブロックチェーン)スクリプト言語プリミティブを構成するステップであって、前記のスクリプト言語は、ブロックチェーンプロトコルに関連付けられてよい、ステップと、前記複数のスクリプト言語プリミティブを少なくとも1回、スクリプトに挿入するステップと、及び/又は、前記スクリプトをブロックチェーントランザクション(Tx)に挿入するステップと、を含んでよい。 Additionally or alternatively, the method comprises configuring a plurality of (blockchain) scripting language primitives to provide the functionality of high-level scripting language primitives when executed, said scripting language being a blockchain inserting said plurality of scripting language primitives at least once into a script; and/or inserting said script into a blockchain transaction (Tx). good.

追加又は代替として、本発明による方法は、高レベルスクリプト言語演算子の機能を実行するために構成され及び/又は選択された複数のブロックチェーンオペコード(プリミティブ)を格納するステップと、前記複数のオペコードを記憶装置から読み出すステップと、前記複数のオペコードをブロックチェーントランザクションの中のスクリプトに挿入するステップと、を含んでよい。 Additionally or alternatively, a method according to the invention comprises the steps of: storing a plurality of blockchain opcodes (primitives) configured and/or selected to perform functions of high-level scripting language operators; and inserting the plurality of opcodes into a script in a blockchain transaction.

前記複数のオペコードは「チャンク」として記載されてよい。 The plurality of opcodes may be described as a "chunk".

当該方法は、トランザクションを評価し及び/又は該トランザクションをブロックチェーンネットワークに提出するステップを含んでよい。当該方法は、前記トランザクションを実行するステップを含んでよい。 The method may include evaluating the transaction and/or submitting the transaction to the blockchain network. The method may include executing the transaction.

前記複数のスクリプト言語プリミティブの各々は、ワード、コマンド、又は関数としても知られ得る。これらは、「高レベルプリミティブ」と呼ばれてよい。便宜上、用語「オペコード」は、「スクリプト言語プリミティブ」のために使用される。複数のオペコードのうちの1つ、一部又は全部は、スクリプト言語のワード若しくは命令セットから選択されてよい。それらは、スクリプト言語に固有であってよい。 Each of the plurality of scripting language primitives may also be known as words, commands, or functions. These may be referred to as "high level primitives". For convenience, the term "opcode" is used for "scripting language primitives". One, some, or all of the opcodes may be selected from a scripting language word or instruction set. They may be scripting language specific.

高レベルスクリプト言語プリミティブは、構成されたオペコードのグループ又は選択であってよい。それらは、所望の抽象化された機能を提供するために意図的に構成されてよい。これは、参照を容易にするために、「高レベルプリミティブ」として参照されてよい。高レベルプリミティブは、算術演算又はデータコピー、論理若しくはプログラム(フロー)制御演算を実行してよい。これは、コンピュータのスタック上のメモリに残される結果を生成してよい。高レベルプリミティブは、言語の固有のワードセットに含まれない又は無効にされているオペコードの機能をエミュレート又は提供してよい。高レベルプリミティブは、言語に固有の及び/又は機能的により単純な演算を実行するより多くの基本的又は基礎的演算に分解できるという意味で「高レベル」であってよい。高レベルプリミティブは、オペコードより一層抽象化されたレベルであるが、単一の演算を実行し又は結果を生成するために構成されてよい。 High-level scripting language primitives may be groups or selections of composed opcodes. They may be intentionally configured to provide the desired abstracted functionality. This may be referred to as a "high level primitive" for ease of reference. High-level primitives may perform arithmetic operations or data copying, logic or program (flow) control operations. This may produce results that are left in memory on the computer's stack. High-level primitives may emulate or provide functionality of opcodes that are not included in the language's native word set or are overridden. High-level primitives may be "high-level" in the sense that they can be decomposed into more elementary or elementary operations that perform language-specific and/or functionally simpler operations. High-level primitives, which are a higher level of abstraction than opcodes, may be constructed to perform a single operation or produce a result.

スクリプト言語はScript言語であってよい。ブロックチェーンプロトコルは、Bitcoinプロトコルであってよい。しかしながら、他の言語及びプロトコルが、本発明の範囲内に包含されてよい。スクリプト言語は機能的に制約されてよい。用語「チューリング不完全(non-Turing complete)」は、本願明細書では、用語「機能的に制約された」と同義的に使用されることがある。言語は、言語がループ及び/又はジャンプ反復のような1つ以上の制御フローメカニズムを元々サポートしないという意味で、機能的に制約されてよい。 The scripting language may be the Script language. The blockchain protocol may be the Bitcoin protocol. However, other languages and protocols may be included within the scope of the invention. A scripting language may be functionally constrained. The term "non-Turing complete" is sometimes used herein synonymously with the term "functionally constrained." A language may be functionally constrained in the sense that the language does not natively support one or more control flow mechanisms such as loop and/or jump iterations.

当該方法は、前記複数のスクリプト言語プリミティブのうちの1つ、一部、又は全部を、前記スクリプト言語のワードセット又は命令セットから、選択するステップを更に含んでよい。 The method may further comprise selecting one, some, or all of the plurality of scripting language primitives from a word set or instruction set of the scripting language.

当該方法は、コンピュータに基づく記憶リソースに前記複数のスクリプト言語プリミティブを保存する及び/又は格納するステップ、を更に含んでよい。これは、不揮発性コンピュータメモリであってよい。当該方法は、前記複数のスクリプト言語プリミティブを前記スクリプトに挿入する前に、コンピュータに基づく記憶リソースから前記複数のスクリプト言語プリミティブを読み出すステップ、を更に含んでよい。 The method may further comprise saving and/or storing the plurality of scripting language primitives in a computer-based storage resource. This may be non-volatile computer memory. The method may further include retrieving the plurality of scripting language primitives from a computer-based storage resource prior to inserting the plurality of scripting language primitives into the script.

前記スクリプトは、アンロックスクリプト、ロックスクリプト、又はRedeemスクリプトであってよい。 The script may be an unlock script, a lock script, or a Redeem script.

スクリプトは、ブロックチェーントランザクションのインプット又はアウトプットに関連付けられてブロックチェーントランザクション(Tx)に挿入される。 A script is inserted into a blockchain transaction (Tx) associated with the input or output of the blockchain transaction.

当該方法は、ソースからインプット又は信号を受信し、前記インプット又は信号を使用して、前記複数のスクリプト言語プリミティブがスクリプトに挿入される回数を制御するステップ、を更に含んでよい。 The method may further include receiving input or signals from a source and using the inputs or signals to control the number of times the plurality of scripting language primitives are inserted into a script.

当該方法は、前記トランザクションをブロックチェーンネットワークへ提出するステップを更に含んでよい。 The method may further comprise submitting the transaction to a blockchain network.

前記複数のスクリプト言語プリミティブは、テンプレートスクリプト及び/又はテンプレートトランザクション(Tx)に挿入される。前記テンプレートは、前記スクリプト/トランザクションの不完全バージョンであってよい。 The plurality of scripting language primitives are inserted into a template script and/or a template transaction (Tx). The template may be an incomplete version of the script/transaction.

本発明は、コンピュータにより実装されるシステムも提供する。当該システムは、上述の方法の任意の実施形態を実行するよう構成されてよい。本発明のある1つ以上の態様に関連して記載された任意の特徴は、任意の他の態様に適用可能であってよい。方法に関連して記載された任意の特徴は、対応するシステムにも適用可能であってよく、逆も同様である。 The invention also provides a computer-implemented system. The system may be configured to perform any embodiment of the method described above. Any feature described in relation to one or more aspects of the invention may be applicable to any other aspect. Any feature described in relation to the method may also be applicable to the corresponding system, and vice versa.

本発明は、システムであって、プロセッサと、前記プロセッサによる実行の結果として前記システムに本願明細書に記載のコンピュータにより実施される方法の任意の実施形態を実行させる実行可能命令を含むメモリと、を含むシステムも提供する。 The present invention provides a system comprising: a processor; a memory containing executable instructions that, upon execution by the processor, cause the system to perform any of the embodiments of the computer-implemented methods described herein; We also provide a system that includes

本発明は、実行可能命令を格納した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、前記コンピュータシステムに本願明細書に記載のコンピュータにより実施される方法の実施形態を少なくとも実行させる、非一時的コンピュータ可読記憶媒体も提供する。 The present invention is a non-transitory computer-readable storage medium containing executable instructions that, as a result of being executed by a processor of a computer system, are stored in the computer system by a computer described herein. A non-transitory computer-readable storage medium is also provided that causes at least the embodiments of the implemented method to be performed.

本発明の上述の及び他の態様は、本願明細書に記載される実施形態から明らかであり、それらの実施形態を参照して教示される。本発明の実施形態は、単なる例として添付の図面を参照して以下に説明される。 These and other aspects of the invention are apparent from and are taught with reference to the embodiments described herein. Embodiments of the invention are described below, by way of example only, with reference to the accompanying drawings.

従来知られているような、何からの暗号通貨の所有権の制御を移転するために、トランザクションがブロックチェーン上でどのように一緒にチェーンできるかを示す。It shows how transactions can be chained together on a blockchain to transfer ownership control of a cryptocurrency from anything, as it is traditionally known. 本発明の一実施形態による使用に適する、及び説明のための使用例と関連する、制御トランザクションを示す。Fig. 3 shows a control transaction suitable for use in accordance with an embodiment of the present invention and associated with an illustrative use case; ブロックチェーンに関連付けられた例示的なネットワークを示す。1 illustrates an exemplary network associated with a blockchain;

本発明は、ブロックチェーンの関連付けられたプロトコルのスクリプト言語が高レベル演算のような固有のオペコードを提供しない又はそれらが無効にされているときでも、ブロックチェーンスクリプトの中で高レベル演算の機能を実装する改良されたメカニズムを提供する。本発明は、言語の既存の低レベルオペコードの選択を利用し、それらを新規な方法で結合して、所望の機能を達成する。プリミティブオペコードの選択された結合は、所望の高レベル機能を提供するために選択され及び/又は構成される。選択された固有のオペコードの結合は、便宜上及び参照を容易にするために、「高レベル演算子」と呼ばれてよい。したがって、用語「高レベル」は、演算が、望ましくはスクリプト言語に固有であるより基礎的若しくは基本的演算に分解できることを意味するために使用されてよい。複数のオペコード又はオペコードのチャンク(chunk)は、参照、使用若しくは援用を容易にするために、ラベル又は識別子に関連付けられてよい。 The present invention enables the functionality of high-level operations in blockchain scripts even when the scripting language of the blockchain's associated protocol does not provide unique opcodes for such operations or they are disabled. Provides an improved mechanism to implement. The present invention takes advantage of the language's existing low-level opcode choices and combines them in novel ways to achieve the desired functionality. Selected combinations of primitive opcodes are selected and/or configured to provide desired high-level functions. A combination of selected unique opcodes may be referred to as a "high-level operator" for convenience and ease of reference. Thus, the term "high-level" may be used to mean that operations can be decomposed into more basic or elementary operations that are preferably specific to the scripting language. Multiple opcodes or chunks of opcodes may be associated with labels or identifiers for ease of reference, use, or incorporation.

高レベル演算子を構成するコード部分は、予め定められ又は予め選択されてよい。この文脈における「予め」は、コード部分が最終的に置かれる最終使用又は用途の前であることを意味してよい。追加又は代替として、これは、実行又は実行時間の前を意味してよい。コード部分(又は「チャンク(chuck)」)は、不揮発性メモリのようなコンピュータに基づくリソースに格納される。スクリプトが所与の目的のために必要とされるとき、格納されたオペコードは、アクセスされ、コピーされ、実行時間において所望の制御及び機能を提供するために1つ以上の選択された位置でスクリプトに挿入されることが可能である。高レベル演算子が挿入されたスクリプトは、記憶装置からアクセスされるテンプレートであってよい。したがって、機能的に複雑なブロックチェーントランザクションが、便利に且つ即座に生成でき、プログラミング時間、努力を節約し、コーディングエラーの可能性を低減する。エラーの可能性を低減することにより、本発明は、ブロックチェーントランザクションのために使用されるコードの品質を保証するメカニズムを提供する。これは、また、実行のときに、スクリプト(したがってトランザクション)の失敗数を低減する。この意味で、本発明は、ブロックチェーン上でトランザクションを実行し及びあるトランザクションのアウトプットを介して第2トランザクションのインプットへと、あるパーティから別のパーティへの移転を実行する、より効率的且つエラーの低減されたソリューションを提供する。 The code portions that make up the high-level operators may be predetermined or pre-selected. "Previously" in this context may mean prior to the final use or application in which the code portion is finally placed. Additionally or alternatively, this may mean before execution or execution time. Code portions (or "chucks") are stored in computer-based resources such as non-volatile memory. When a script is needed for a given purpose, the stored opcodes are accessed, copied, and scripted at one or more selected locations to provide the desired control and functionality at runtime. can be inserted into A script with inserted high-level operators may be a template accessed from a storage device. Thus, functionally complex blockchain transactions can be conveniently and instantly generated, saving programming time, effort, and reducing the possibility of coding errors. By reducing the possibility of errors, the present invention provides a mechanism to ensure the quality of code used for blockchain transactions. This also reduces the number of script (and thus transaction) failures during execution. In this sense, the present invention provides a more efficient and Provide a reduced error solution.

実行のとき、1つ以上の信号又はインプットをソースから受信でき、インプットは、高レベル演算子がスクリプト内で使用される回数に影響を与え又はそれを制御するために使用できる。特定の実施形態では、インプットはセンサから受信される。したがって、スクリプトは、何らかの外部又は環境因子に応答して結果が計算されるように、生成され得る。 During execution, one or more signals or inputs can be received from a source, and the inputs can be used to affect or control the number of times high-level operators are used within the script. In certain embodiments, the input is received from sensors. Thus, scripts can be generated such that results are calculated in response to some external or environmental factor.

別の利点は、既存スクリプト言語の設計、実装、又は展開が何らか補正又は変更される必要がないことである。無効な又は実装されないプリミティブ演算子の機能は、容易に且つ混乱なく、その現在の形式でブロックチェーンプロトコルに提供可能である。 Another advantage is that the design, implementation, or evolution of existing scripting languages does not need to be modified or changed in any way. Functionality of invalid or unimplemented primitive operators can be easily and undisturbed provided to the blockchain protocol in its current form.

以後、私達は、高レベルの乗算及び除算演算子のエミュレーションを可能にする本発明の実施形態によるソリューションを提示する。これらの実施形態は、演算子の所望の機能及び動作を提供する、Scriptに基づく演算シーケンスを含む。この演算子は、ブロックチェーンにより実装されるプログラムがどのように実行するかを制御するメカニズムを提供する。これらのプログラムがブロックチェーントランザクション(Tx)のインプット及びアウトプットに埋め込まれるとき、それらは、したがって、トランザクションがどのように実行されるか、したがってパーティからパーティへ暗号通貨の所有権の制御を移転するか、に影響を与え及びそれを制御するメカニズムを提供する。 Hereafter we present a solution according to embodiments of the present invention that allows emulation of high-level multiplication and division operators. These embodiments include Script-based sequences of operations that provide the desired functionality and behavior of the operators. This operator provides a mechanism to control how the program implemented by the blockchain executes. When these programs are embedded in the inputs and outputs of blockchain transactions (Tx), they therefore transfer control over how the transaction is performed and thus ownership of the cryptocurrency from party to party. or provide a mechanism to influence and control it.

<例:乗算>
本実施形態では、私達は、ブロックチェーンスクリプトの中の乗算のためのメカニズムを提供する。これは、乗算が、X及びYを掛け算したい値とするという知識を利用する。Script言語のシンタックスで記述すると、乗算演算子は以下の通りである。

Figure 0007220678000001
<Example: Multiplication>
In this embodiment, we provide a mechanism for multiplication within the blockchain script. This takes advantage of the knowledge that multiplication takes X and Y by the value you want to multiply. When described in Script language syntax, the multiplication operator is as follows.
Figure 0007220678000001

上記を実行した結果は、積がAltスタックに残されることである。

Figure 0007220678000002
The result of doing the above is that the product is left on the Alt stack.
Figure 0007220678000002

上述のコードでは、開始セグメントの目的は、より少ない加算しか実行する必要がないことを保証するために、必要に応じてオペランドを交換することである。例えば、2×3がより少ない加算しか必要しなくなるよう、3×2になる。これは、労力を削減し、時間及び計算量の観点でコード全体をより効率的にする。「交換(スワップ、swap)」セグメントは次の通りである。

Figure 0007220678000003
In the code above, the purpose of the start segment is to swap the operands as necessary to ensure that fewer additions need to be performed. For example, it becomes 3×2 so that 2×3 requires fewer additions. This reduces effort and makes the overall code more efficient in terms of time and complexity. The "exchange (swap)" segment is as follows.
Figure 0007220678000003

以下のコードの目的は、カウンタメカニズムを提供することである。

Figure 0007220678000004
The purpose of the code below is to provide a counter mechanism.
Figure 0007220678000004

カウンタの値は、加算が実行される回数を制御するために使用できる。 The value of the counter can be used to control the number of times the addition is performed.

上述の例では、点線の枠内に示されたコードは、加算を実行するためのコードである。加算は、後続の点線の枠内に示されるように繰り返される。簡単のため及び読み易さのために内容は繰り返されない。加算コードの最後にあるOP_EQUAL演算は、加算が十分な回数だけ実行されたか否かを調べるために使用される。 In the example above, the code shown within the dashed box is the code for performing the addition. The addition is repeated as shown in the dashed box that follows. For simplicity and readability the content is not repeated. The OP_EQUAL operation at the end of the addition code is used to check if the addition has been performed enough times.

二重線の枠内に示されたコードは、スタックの「一掃(cleaning up)」及び結果を返す役割を実行する。 The code shown within the double-lined box performs the role of "cleaning up" the stack and returning the result.

<動作例:乗算>
本技術を更に説明するために、私達は、以下に2つのオペランド、2及び3を用いる作業例を提供する。以下の例では、主スタック及びAltスタックの状態が示される。左の列は主スタックであり、右の列はAltスタックである。

Figure 0007220678000005
<Operation example: Multiplication>
To further illustrate the technique, we provide a working example with two operands, 2 and 3, below. In the example below, the states of the main stack and the Alt stack are shown. The left column is the main stack and the right column is the Alt stack.
Figure 0007220678000005

これは、スタックの状態を以下の通りにする(注:簡単及び明確にするために、重複はここに示されない)。

Figure 0007220678000006
This leaves the state of the stack as follows (note: duplication is not shown here for simplicity and clarity).
Figure 0007220678000006

次に、一番上のスタックアイテムが偽であるならば、以下を用いてコードの「本体(body)」を実行する。

Figure 0007220678000007
Then, if the top stack item is false, execute the "body" of code using:
Figure 0007220678000007

OP_ROT演算の使用は、上位3個のアイテムを左に回転させる。

Figure 0007220678000008
Using the OP_ROT operation rotates the top three items to the left.
Figure 0007220678000008

<例:除算>
この第2の例では、私達は、除算が減算を繰り返すことにより実行できるという知識を用いて、乗算の代わりに除算を実施する。私達は、除算演算子の動作をエミュレートする、Scriptに基づく演算シーケンスを提供する。X及びYを、除算したい値とする。Script言語のシンタックスで記述すると、除算演算子は以下の通りである。

Figure 0007220678000009
<Example: Division>
In this second example, we perform division instead of multiplication, using the knowledge that division can be performed by repeating subtraction. We provide a Script-based operation sequence that emulates the behavior of the division operator. Let X and Y be the values you want to divide by. When described in Script language syntax, the division operator is as follows.
Figure 0007220678000009

上記のアウトプットは、Altスタックの左の通りである。

Figure 0007220678000010
The output above is to the left of the Alt stack.
Figure 0007220678000010

<動作例:除算>
この動作例で、私達は11を3で除算する。

Figure 0007220678000011
<Operation example: Division>
In this working example, we divide 11 by 3.
Figure 0007220678000011

<第2動作例:除算>
この第2動作例では、私達は、ソリューションがゼロによる除算をどのように扱うかを示す。ゼロによる除算は、有限機械には無限を表現する能力がないので、計算実装においてコーディングエラーの原因になり得る。本例では、私達は、0による3の除算を通じて進める。

Figure 0007220678000012
<Second Operation Example: Division>
In this second working example, we show how the solution handles division by zero. Division by zero can be a source of coding errors in computational implementations because finite machines do not have the ability to represent infinity. In this example, we proceed through division of 3 by 0.
Figure 0007220678000012

<第3動作例:除算>
第3動作例では、私達は、3による0の除算を通じて進める。

Figure 0007220678000013
<Third Operation Example: Division>
In a third working example, we proceed through the division of zero by three.
Figure 0007220678000013

<説明のための使用例ブロックチェーンにより実装される制御システム>
本発明は、プロトコルの言語が目的の低レベルオペコードを含まないときでも、ブロックチェーンスクリプトの中で高レベル演算を実装する技術を提供する。これは、ブロックチェーンプラットフォーム上でソリューションを実装するための非常に多様な構成を提供する。
<Use example for explanation Control system implemented by blockchain>
The present invention provides techniques for implementing high-level operations within blockchain scripts, even when the language of the protocol does not contain the desired low-level opcodes. It offers a great variety of configurations for implementing solutions on blockchain platforms.

これを説明するために、私達は、ここで、他の装置の動作を調整するために、複数のインプットを結合するシステムを提示する。一例として、私達は、以下のインプットを提供する2個のセンサを想定する。
(i)船内のタンクコンテナの数n、
(ii)コンテナの重さw、コンテナの重さwは正確に同じであると仮定する。
To illustrate this, we present here a system that combines multiple inputs to coordinate the operation of other devices. As an example, we assume two sensors providing the following inputs.
(i) the number of tank containers on board, n;
(ii) Assume that the weight of the container w is exactly the same as the weight of the container w.

装置は、この単純な例では貨物船であり、以下の2つの状態を有し得る。
(i)貨物船が埠頭に滞在している(state)、
(ii)貨物船が港を出る(state)。最初に、システムはstateにある。
The device, which in this simple example is a cargo ship, can have two states:
(i) a cargo ship is at the wharf (state 1 ),
(ii) cargo ship leaves port (state 2 ); Initially, the system is in state 1 .

私達は、閾条件Wtを定める。貨物船で運ばれる全体の重さWは、その動作を制御する。 We define a threshold condition W t . The total weight W carried by the freighter controls its movement.

・W>Wtならば、システムはstateである。 • If W> Wt , the system is in state 2 ;

図2は、ブロックチェーンに提出される制御トランザクション(Tx)を示す。オペコードPro_MULTは、上述の高レベル算術演算(X)を表す。センサは、値n及びwをアンロックスクリプトに提供する。ロックスクリプトに提示される必要のある対応するアンロックスクリプトは、したがって以下の通りである。

Figure 0007220678000014
Figure 2 shows a control transaction (Tx) submitted to the blockchain. Opcode Pro_MULT represents the high-level arithmetic operation (X) described above. The sensor provides the values n and w to the unlock script. The corresponding unlock script that needs to be presented to the lock script is therefore:
Figure 0007220678000014

<ブロックチェーンネットワーク>
図3を参照すると、図3は、ブロックチェーンに関連付けられた例示的なネットワークをブロック図形式で示す。該ネットワークは、ここではブロックチェーンネットワーク100として参照されてよく、本発明の実装のために利用されてよい。ブロックチェーンネットワーク100は、他の会員からの招待無しに又は承認無しに誰でも参加し得るピアツーピア開放型会員制ネットワークである。ブロックチェーンプロトコルの下でブロックチェーンネットワーク100が動作し、該ブロックチェーンプロトコルのインスタンスを実行する分散型電子装置は、ブロックチェーンネットワーク100に参加してよい。このような分散型電子装置は、ノード102と呼ばれてよい。ブロックチェーンプロトコルは、例えばBitcoinプロトコル、又は他の暗号通貨であってよい。
<Blockchain network>
Referring to FIG. 3, FIG. 3 illustrates in block diagram form an exemplary network associated with a blockchain. The network may be referred to herein as blockchain network 100 and may be utilized for implementation of the present invention. Blockchain network 100 is a peer-to-peer open membership network that anyone can join without invitation or approval from other members. Blockchain network 100 operates under a blockchain protocol, and distributed electronic devices running instances of the blockchain protocol may participate in blockchain network 100 . Such distributed electronic devices may be referred to as nodes 102 . A blockchain protocol may be, for example, the Bitcoin protocol, or another cryptocurrency.

ブロックチェーンプロトコルを実行し、ブロックチェーンネットワーク100のノード102を形成する電子装置は、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバのようなコンピュータ、スマートフォンのようなモバイル装置、スマートウォッチのようなウェアラブルコンピュータ、又は他の電子装置を含む様々な種類であってよい。 Electronic devices running blockchain protocols and forming nodes 102 of blockchain network 100 may be, for example, desktop computers, laptop computers, tablet computers, computers such as servers, mobile devices such as smartphones, smart watches. It may be of various types, including wearable computers, or other electronic devices.

ブロックチェーンネットワーク100のノード102は、有線及び無線通信技術を含み得る適切な通信技術を用いて互いに結合される。多くの場合、ブロックチェーンネットワーク100は、少なくとも部分的にインターネット上で実施され、ノード102の幾つかは、地理的に離散した位置に置かれてよい。 Nodes 102 of blockchain network 100 are coupled together using suitable communication technologies, which may include wired and wireless communication technologies. In many cases, blockchain network 100 is implemented at least partially over the Internet, and some of nodes 102 may be located in geographically discrete locations.

ノード102は、ブロックチェーン上の全てのトランザクションのグローバル台帳を維持する。該トランザクションはブロックにグループ化され、各ブロックはチェーンの中の前のブロックのハッシュを含む。グローバル台帳は、分散台帳であり、各ノード102はグローバル台帳の完全コピー又は部分コピーを格納してよい。グローバル台帳に影響を与えるノード102によるトランザクションは、他のノード102により検証される。その結果、グローバル台帳の有効性が維持される。Bitcoinプロトコルを使用することのような、ブロックチェーンネットワークの実装及び動作の詳細は、当業者に理解される。 Node 102 maintains a global ledger of all transactions on the blockchain. The transactions are grouped into blocks, each block containing the hash of the previous block in the chain. A global ledger is a distributed ledger and each node 102 may store a full or partial copy of the global ledger. Transactions by nodes 102 that affect the global ledger are validated by other nodes 102 . As a result, the validity of the global ledger is maintained. The details of implementation and operation of blockchain networks, such as using the Bitcoin protocol, are understood by those skilled in the art.

各トランザクションは、標準的に、1つ以上のインプット及び1つ以上のアウトプットを有する。インプット及びアウトプットに埋め込まれるスクリプトは、トランザクションのアウトプットがどのように及び誰によりアクセス可能かを指定する。トランザクションのアウトプットは、トランザクションの結果として価値が移転されるアドレスであってよい。価値は、次に、未使用トランザクションアウトプット(UTXO)として該アウトプットアドレスに関連付けられる。後続のトランザクションは、次に、該価値を使用する又は分散させるために、該アドレスをインプットとして参照してよい。 Each transaction typically has one or more inputs and one or more outputs. Scripts embedded in inputs and outputs specify how and by whom a transaction's outputs can be accessed. The output of a transaction may be the address to which value is transferred as a result of the transaction. A value is then associated with that output address as an unspent transaction output (UTXO). Subsequent transactions may then reference the address as input to use or distribute the value.

ノード102は、ネットワークルーティングからウォレットサービスまで、多数の異なる機能を満たすことができ、ロバスト且つセキュアな分散パブリック台帳を維持する。「フルノード(Full nodes)」は、ブロックチェーンの完全な最新のコピーを有し、したがって、パブリック台帳上の任意のトランザクション(使用又は未使用)を検証できる。「軽量ノード(Lightweight nodes)」(又はSPV)は、ブロックチェーンのサブセットを維持し、「簡易支払検証」技術を用いてトランザクションを検証できる。軽量ノードは、各ブロック内のトランザクションではなく、ブロックのヘッダだけをダウンロードする。これらのノードは、したがって、それらのトランザクションを検証するピアに依存する。「マイニングノード」は、フル又は軽量ノードであり、ブロックチェーン上のトランザクションを検証し及び新しいブロックを生成することを担う。「ウォレットノード」は、標準的に軽量ノードであり、ユーザのウォレットサービスを扱う。ノード102は、TCP/IP(Transmission Control Protocol)のようなコネクション指向プロトコルを用いて互いに通信する。 Nodes 102 can fulfill many different functions, from network routing to wallet services, and maintain a robust and secure distributed public ledger. “Full nodes” have a complete, up-to-date copy of the blockchain and can therefore validate any transaction (spent or unused) on the public ledger. “Lightweight nodes” (or SPVs) maintain a subset of the blockchain and can validate transactions using “simple payment verification” technology. Lightweight nodes download only the block headers, not the transactions within each block. These nodes are therefore dependent on peers to validate their transactions. A “mining node” is a full or lightweight node responsible for verifying transactions on the blockchain and generating new blocks. A "wallet node" is typically a lightweight node that handles user wallet services. Nodes 102 communicate with each other using a connection-oriented protocol such as TCP/IP (Transmission Control Protocol).

留意すべきことに、上述の実施形態は、本発明を限定するのではなく、当業者は添付の請求項により定められる本発明の範囲から逸脱することなく多数の代替の実施形態を考案できる。請求項中、括弧内に記載された如何なる参照符号も、請求項を制限すると見なされるべきではない。用語「有する(comprising又はcomprises)」等は、全体としていかなる請求項中に及び明細書に列挙された以外の要素又はステップの存在を排除するものではない。本願明細書において、「有する(comprises)」は「含む(includes)又は構成される(consists of)」を意味し、「有する(comprising)」は「含む(including)又は構成される(including of)」を意味する。要素の単数の参照は、該要素の複数の存在を排除するものではなく、逆も同様である。本発明は、複数の別個の要素を有するハードウェアにより又は適切にプログラムされたコンピュータにより、実施され得る。複数の手段を列挙している装置の請求項では、これらの複数の手段は、1つの同一のハードウェア要素により実装することができる。特定の量が相互に異なる従属請求項に記載されるという事実は、これらの量の組合せが有利に用いることが出来ないことを示すものではない。 It should be noted that the above-described embodiments do not limit the invention, and those skilled in the art can devise numerous alternative embodiments without departing from the scope of the invention as defined by the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The term 'comprising' or 'comprises' or the like does not exclude the presence of elements or steps other than those listed in any claim and in the specification as a whole. As used herein, "comprises" means "includes or consists of" and "comprising" means "including or consists of" ” means. Reference to an element in the singular does not exclude the presence of a plurality of said element and vice versa. The invention can be implemented by hardware comprising a plurality of separate elements or by a suitably programmed computer. In the device claim enumerating several means, several of these means can be embodied by one and the same item of hardware. The fact that certain quantities are recited in mutually different dependent claims does not indicate that a combination of these quantities cannot be used to advantage.

Claims (16)

ブロックチェーンに実装される方法であって、
実行されると高レベルスクリプト言語プリミティブの機能を提供するよう、複数のスクリプト言語プリミティブを構成するステップであって、前記のスクリプト言語は、ブロックチェーンプロトコルに関連付けられる、ステップと、
ソースからインプット又は信号を受信するステップであって、前記インプット又は信号はセンサから受信される、ステップと、
前記複数のスクリプト言語プリミティブを少なくとも1回、スクリプトに挿入するステップと、
前記スクリプトをブロックチェーントランザクション(Tx)のアウトプットスクリプトとして前記ブロックチェーントランザクションに挿入するステップであって、前記アウトプットスクリプトは前記トランザクションのアウトプットに対応し、前記アウトプットを使用することは前記センサの署名を必要とする、ステップと、
を含む方法。
A method implemented on a blockchain, comprising:
configuring a plurality of scripting language primitives to provide the functionality of high-level scripting language primitives when executed, said scripting language being associated with a blockchain protocol;
receiving an input or signal from a source, said input or signal being received from a sensor;
inserting the plurality of scripting language primitives at least once into a script;
inserting the script into the blockchain transaction as an output script of a blockchain transaction (Tx ), wherein the output script corresponds to an output of the transaction, and using the output includes the sensor a step requiring the signature of
method including.
前記高レベルスクリプト言語プリミティブは、算術演算を実行する、請求項1に記載の方法。 2. The method of claim 1, wherein the high-level scripting language primitives perform arithmetic operations. 前記スクリプト言語はScript言語であり、及び/又は前記ブロックチェーンプロトコルはBitcoinプロトコルである、請求項1又は2に記載の方法。 3. Method according to claim 1 or 2, wherein said scripting language is the Script language and/or said blockchain protocol is the Bitcoin protocol. 前記スクリプト言語のワードセット又は命令セットから、前記複数のスクリプト言語プリミティブを選択するステップ、を更に含む請求項1乃至3のいずれかに記載の方法。 4. The method of any of claims 1-3, further comprising selecting the plurality of scripting language primitives from the scripting language word set or instruction set. コンピュータに基づく記憶リソースに前記複数のスクリプト言語プリミティブを保存する及び/又は格納するステップ、を更に含む請求項1乃至4のいずれかに記載の方法。 5. The method of any of claims 1-4, further comprising saving and/or storing the plurality of scripting language primitives in a computer-based storage resource. 前記複数のスクリプト言語プリミティブを前記スクリプトに挿入する前に、コンピュータに基づく記憶リソースから前記複数のスクリプト言語プリミティブを読み出すステップ、を更に含む請求項1乃至5のいずれかに記載の方法。 6. The method of any of claims 1-5, further comprising, prior to inserting the plurality of scripting language primitives into the script, retrieving the plurality of scripting language primitives from a computer-based storage resource. 前記スクリプトはアンロックスクリプト、ロックスクリプト、又はRedeemスクリプトである、請求項1乃至6のいずれかに記載の方法。 7. A method according to any preceding claim, wherein said script is an unlock script, a lock script or a Redeem script. 前記スクリプトは、前記ブロックチェーントランザクションのインプット又はアウトプットに関連して前記トランザクションに挿入される、請求項1乃至7のいずれかに記載の方法。 8. A method according to any preceding claim, wherein said script is inserted into said transaction in relation to an input or output of said blockchain transaction. ソースからインプット又は信号を受信し、前記インプット又は信号を使用して、前記複数のスクリプト言語プリミティブがスクリプトに挿入される回数を制御するステップ、を更に含む請求項1乃至8のいずれかに記載の方法。 9. The method of any of claims 1-8, further comprising receiving input or signals from a source and using said inputs or signals to control the number of times said plurality of scripting language primitives are inserted into a script. Method. 前記トランザクションをブロックチェーンネットワークに提出するステップ、を更に含む請求項1乃至9のいずれかに記載の方法。 10. The method of any of claims 1-9, further comprising submitting the transaction to a blockchain network. 前記複数のスクリプト言語プリミティブは、テンプレートスクリプト及び/又はテンプレートトランザクション(Tx)に挿入される、請求項1乃至10のいずれかに記載の方法。 11. A method according to any preceding claim, wherein said plurality of scripting language primitives are inserted into a template script and/or a template transaction (Tx). 前記複数のスクリプト言語プリミティブは、ラベル又は識別子に関連付けられる、請求項1乃至11のいずれかに記載の方法。 12. A method according to any preceding claim, wherein said plurality of scripting language primitives are associated with labels or identifiers. 前記スクリプト言語は機能的に制約される、請求項1乃至12のいずれかに記載の方法。 13. A method as claimed in any preceding claim, wherein the scripting language is functionally constrained. 請求項1乃至13のいずれかに記載の方法を実行するよう構成されたコンピュータにより実装されるシステム。 A computer-implemented system configured to perform the method of any of claims 1-13. 実行されると、請求項1乃至13のいずれか一項に記載の方法を実行するようプロセッサを構成するコンピュータ実行可能命令を含むコンピュータ可読記憶媒体。 A computer-readable storage medium containing computer-executable instructions that, when executed, configure a processor to perform the method of any one of claims 1-13. 電子装置であって、
インタフェース装置と、
前記インタフェース装置に結合されたプロセッサと、
前記プロセッサに結合されたメモリであって、前記メモリは、実行されると、請求項1乃至13のいずれか一項に記載の方法を実行するよう前記プロセッサを構成するコンピュータ実行可能命令を格納している、メモリと、
を含む電子装置。
an electronic device,
an interface device;
a processor coupled to the interface device;
A memory coupled to the processor, the memory storing computer-executable instructions which, when executed, configure the processor to perform the method of any one of claims 1 to 13. memory and
electronic devices, including
JP2019568221A 2017-07-07 2018-07-05 Method and system for providing high-level operations on blockchain Active JP7220678B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023012689A JP2023052782A (en) 2017-07-07 2023-01-31 Method and system for providing high-level computation on blockchain

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
GB1710974.5 2017-07-07
GBGB1710967.9A GB201710967D0 (en) 2017-07-07 2017-07-07 Computer-implemented system and method
GB1710967.9 2017-07-07
GBGB1710974.5A GB201710974D0 (en) 2017-07-07 2017-07-07 Computer-implemented system and method
IBPCT/IB2017/054110 2017-07-07
IBPCT/IB2017/054114 2017-07-07
IB2017054110 2017-07-07
IB2017054113 2017-07-07
IB2017054114 2017-07-07
IBPCT/IB2017/054113 2017-07-07
GBGB1710971.1A GB201710971D0 (en) 2017-07-07 2017-07-07 Computer-implemented system and method
GB1710971.1 2017-07-07
PCT/IB2018/054970 WO2019008532A1 (en) 2017-07-07 2018-07-05 Method for compiling from a high-level scripting language to a blockchain native scripting language

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023012689A Division JP2023052782A (en) 2017-07-07 2023-01-31 Method and system for providing high-level computation on blockchain

Publications (2)

Publication Number Publication Date
JP2020526810A JP2020526810A (en) 2020-08-31
JP7220678B2 true JP7220678B2 (en) 2023-02-10

Family

ID=63077923

Family Applications (6)

Application Number Title Priority Date Filing Date
JP2019568221A Active JP7220678B2 (en) 2017-07-07 2018-07-05 Method and system for providing high-level operations on blockchain
JP2019568229A Pending JP2020526811A (en) 2017-07-07 2018-07-05 Control flow in blockchain script
JP2019569887A Active JP7317722B2 (en) 2017-07-07 2018-07-05 blockchain compiler
JP2023012689A Pending JP2023052782A (en) 2017-07-07 2023-01-31 Method and system for providing high-level computation on blockchain
JP2023064745A Pending JP2023089127A (en) 2017-07-07 2023-04-12 Block chain compiler
JP2023079779A Pending JP2023100981A (en) 2017-07-07 2023-05-15 Control flow in block chain script

Family Applications After (5)

Application Number Title Priority Date Filing Date
JP2019568229A Pending JP2020526811A (en) 2017-07-07 2018-07-05 Control flow in blockchain script
JP2019569887A Active JP7317722B2 (en) 2017-07-07 2018-07-05 blockchain compiler
JP2023012689A Pending JP2023052782A (en) 2017-07-07 2023-01-31 Method and system for providing high-level computation on blockchain
JP2023064745A Pending JP2023089127A (en) 2017-07-07 2023-04-12 Block chain compiler
JP2023079779A Pending JP2023100981A (en) 2017-07-07 2023-05-15 Control flow in block chain script

Country Status (8)

Country Link
US (6) US11307835B2 (en)
EP (6) EP3649548A1 (en)
JP (6) JP7220678B2 (en)
KR (1) KR102608500B1 (en)
CN (3) CN110870249A (en)
SG (1) SG11201912227YA (en)
WO (3) WO2019008531A1 (en)
ZA (1) ZA201908552B (en)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
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 (en) * 2019-05-16 2020-11-17 富士通株式会社 Management device and method for block chain account book data
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
US10699269B1 (en) 2019-05-24 2020-06-30 Blockstack Pbc System and method for smart contract publishing
US10783082B2 (en) * 2019-08-30 2020-09-22 Alibaba Group Holding Limited Deploying a smart contract
JP7186928B2 (en) * 2019-12-09 2022-12-09 エリス デジタル ホールディングス、エルエルシー Electronic trading and payment system for financial products based on cryptographic difficulty integrated by blockchain
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 (en) * 2021-03-04 2021-06-25 嘉兴丰鸟科技有限公司 Python security extension method based on script cross compilation
US11902426B2 (en) * 2021-06-26 2024-02-13 Ceremorphic, Inc. Efficient storage of blockchain in embedded device
KR102460351B1 (en) * 2021-06-29 2022-10-31 주식회사 퓨처에셋파이넨셜 Apparatus and method for filecoin mining productivity improvement and recording medium storing program for executing the same, and computer program stored in recording medium for executing the same
GB2618052A (en) * 2021-12-07 2023-11-01 Nchain Licensing Ag Blockchain script engine
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
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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005165698A (en) 2003-12-03 2005-06-23 Yaskawa Electric Corp Program update method for program development system
JP2009086759A (en) 2007-09-27 2009-04-23 Hitachi Software Eng Co Ltd Mobile telephone
US20160330034A1 (en) 2015-05-07 2016-11-10 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
WO2017024071A1 (en) 2015-08-03 2017-02-09 PokitDok, Inc. System and method for decentralized autonomous healthcare economy platform

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3587591T2 (en) * 1984-11-21 1994-04-28 Harris Corp Forth-like language microprocessor.
JP3032031B2 (en) * 1991-04-05 2000-04-10 株式会社東芝 Loop optimization method and apparatus
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
JP2006107339A (en) * 2004-10-08 2006-04-20 Matsushita Electric Ind Co Ltd Program processor
JP2008534955A (en) 2005-03-31 2008-08-28 ジョージタウン ユニバーシティ Advantageous thyroxine and free triiodothyronine analysis by mass spectrometry
CN100487652C (en) * 2005-04-02 2009-05-13 华为技术有限公司 Automaton method for script language
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 (en) * 2011-09-16 2013-03-27 腾讯科技(深圳)有限公司 Method and system for executing script
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 (en) * 2013-11-27 2020-09-15 한국전자통신연구원 Method for providing embedded software development tools for supporting embedded software development environment based on native building and apparatus thereof
CN107210931B (en) 2015-01-02 2020-09-29 希斯泰克公司 Control infrastructure
CN104484192B (en) * 2015-01-07 2017-11-14 南威软件股份有限公司 A kind of method of complicated multiple-branching construction Code automatic build
US9892021B2 (en) 2015-03-18 2018-02-13 Sap Se Injection of code modifications in a two session debug scripting environment
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
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
US9569206B1 (en) * 2015-09-29 2017-02-14 International Business Machines Corporation Creating optimized shortcuts
CA3013173A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Agent-based turing complete transactions integrating feedback within a blockchain system
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
CN109791659A (en) 2016-04-29 2019-05-21 区块链控股有限公司 Implementing logic gate functions using blockchains
CN106296191A (en) * 2016-08-13 2017-01-04 深圳市樊溪电子有限公司 A kind of PoW common recognition mechanism of block chain power-aware
CN106598579B (en) 2016-12-06 2020-12-25 北京果仁宝科技有限公司 Method and apparatus for integrating dynamic type programming language on blockchain
CN106598549B (en) 2016-12-08 2019-02-01 天津米游科技有限公司 A kind of intelligent contract system and implementation method based on block chain
CN106778343A (en) * 2016-12-12 2017-05-31 武汉优聘科技有限公司 It is a kind of that the data sharing method of private data is related to based on block chain
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005165698A (en) 2003-12-03 2005-06-23 Yaskawa Electric Corp Program update method for program development system
JP2009086759A (en) 2007-09-27 2009-04-23 Hitachi Software Eng Co Ltd Mobile telephone
US20160330034A1 (en) 2015-05-07 2016-11-10 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
WO2017024071A1 (en) 2015-08-03 2017-02-09 PokitDok, Inc. System and method for decentralized autonomous healthcare economy platform

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
evm-opcode-gas-costs,[オンライン],2017年04月12日,[検索日: 2022.05.31], インターネット: <URL: https://github.com/djrtwo/evm-opcode-gas-cos ts/blob/master/opcode-gas-costs_EIP-150_revision-1e18248_2017-04-12.csv>
Solidity in Depth,[オンライン],2017年07月03日,[検索日: 2022.05.31], インターネット: <URL: https://docs.huihoo.com/ethereum/solidity/types.html#value-types>

Also Published As

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

Similar Documents

Publication Publication Date Title
JP7220678B2 (en) Method and system for providing high-level operations on blockchain
JP6983890B2 (en) Computer-enhanced systems and methods for enabling complex functions on the blockchain while maintaining security-based limits on script size and opcode limits.
KR20180069819A (en) Visual Content Development
WO2020112029A1 (en) System and method for facilitating participation in a blockchain environment
US9871667B2 (en) Interaction protocol for interacting computer systems
CN104050290B (en) Read and write the method and system for the HADOOP data calculated
Hai et al. Multi-threaded on-the-fly model generation of malware with hash compaction

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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220906

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230131

R150 Certificate of patent or registration of utility model

Ref document number: 7220678

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150