JP6775086B2 - Blockchain monitoring and management - Google Patents

Blockchain monitoring and management Download PDF

Info

Publication number
JP6775086B2
JP6775086B2 JP2019531778A JP2019531778A JP6775086B2 JP 6775086 B2 JP6775086 B2 JP 6775086B2 JP 2019531778 A JP2019531778 A JP 2019531778A JP 2019531778 A JP2019531778 A JP 2019531778A JP 6775086 B2 JP6775086 B2 JP 6775086B2
Authority
JP
Japan
Prior art keywords
information
blockchain
node
smart contract
consensus
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
JP2019531778A
Other languages
Japanese (ja)
Other versions
JP2020515092A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2020515092A publication Critical patent/JP2020515092A/en
Application granted granted Critical
Publication of JP6775086B2 publication Critical patent/JP6775086B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

本開示は、データ構造及びデータベースの技術に関し、より詳細にはブロックチェーンに関する。 The present disclosure relates to data structure and database technology, and more specifically to blockchain.

ブロックチェーンは、連続的に成長する一連の(すなわち、チェーンの)ブロックと呼ばれるレコードを維持する、一種の分散型データベースである。各ブロックにはタイムスタンプと前のブロックへのリンクが含まれている。ブロックはトランザクションまたは他の種類の情報を格納することができる。ブロックの検証プロセスは非常に単純に実行され得、これにより不正なトランザクションの可能性が減少する。ネットワーク全体に分散してデータを保存することで、ブロックチェーンは、データが集中管理されることに伴うリスクを軽減または排除する。 A blockchain is a kind of decentralized database that maintains a series of records called blocks (ie, chains) that grow continuously. Each block contains a time stamp and a link to the previous block. Blocks can store transactions or other types of information. The block validation process can be performed very simply, which reduces the possibility of fraudulent transactions. By storing data distributed throughout the network, blockchain reduces or eliminates the risks associated with centralized data management.

さらに、ブロックチェーン技術は、チェーンの任意の単一ブロックを遡及的に変更することを非常に困難にすることができる。例えば、データベースは分散されている(すなわち、同時に複数の異なる計算機に格納されている)ので、分散データベース内の任意の計算機にアクセスするすべてのユーザは、ブロックチェーンへの新たな追加について直ちに通知され得る。 Moreover, blockchain technology can make it very difficult to retroactively modify any single block of the chain. For example, because the database is distributed (ie, stored on multiple different computers at the same time), any user accessing any computer in the distributed database will be immediately notified of new additions to the blockchain. obtain.

いくつかの例において、ブロックチェーンを使用して実行及び記録されたトランザクションは、特定の条件が満たされた場合に特定のアクションを実行するなどの計算機実行可能な「同意」である「スマートコントラクト」のためのものであり得る。しかしながら、従来、スマートコントラクトトランザクションのいくつかの局面を監査または確認するために必要な情報を、対応するブロックチェーンから取得するための方法はない。 In some examples, transactions executed and recorded using the blockchain are computer-executable "agreements" such as performing certain actions when certain conditions are met, "smart contracts". Can be for. However, traditionally, there is no way to get the information needed to audit or confirm some aspects of a smart contract transaction from the corresponding blockchain.

本明細書のいくつかの例は、コンセンサスシステムに参加する複数のコンセンサスノードとして構成された複数の計算ノードを含む。一例として、1つまたは複数の第2ノードと通信可能な第1ノードは、ブロックチェーンに関連付けられるスマートコントラクトが実行されるべきであるという指示を受信する。第1ノードは、ブロックチェーンがブロックチェーンの1つまたは複数のブロック内の監査情報を含むか判定することができる。例えば、監査情報は、第1ノード及び1つまたは複数の第2ノードに関するノード情報、スマートコントラクトに対応するデジタル署名情報、スマートコントラクトの実行のために受信されたデータに関する情報、またはスマートコントラクトの実行を呼び出すために受信した通信に関連する情報、のうちの少なくとも1つを含み得る。ブロックチェーンが監査情報を含むと判定することに少なくとも部分的に基づいて、第1ノードは、スマートコントラクトの実行を進める。場合によっては、ブロックチェーンが監査情報を含まない場合、スマートコントラクトを実行するのではなく、第1ノードは、スマートコントラクトの参加者に関連付けられたクライアント装置などに、予期された監査情報がブロックチェーンには存在ないことを示す通知を送信し得る。 Some examples herein include a plurality of compute nodes configured as a plurality of consensus nodes participating in a consensus system. As an example, the first node capable of communicating with one or more second nodes receives an instruction that the smart contract associated with the blockchain should be executed. The first node can determine whether the blockchain contains audit information within one or more blocks of the blockchain. For example, audit information includes node information about the first node and one or more second nodes, digital signature information corresponding to the smart contract, information about the data received for the execution of the smart contract, or execution of the smart contract. May include at least one of the information associated with the communication received to call. Based at least in part on determining that the blockchain contains audit information, the first node proceeds with the execution of the smart contract. In some cases, if the blockchain does not contain audit information, instead of executing the smart contract, the first node will blockchain the expected audit information, such as to a client device associated with a participant in the smart contract. May send a notification that it does not exist in.

以下において、詳細な説明は、添付の図面を参照しながら説明される。図において、参照番号の左端の数字は、その参照番号が最初に現れる図を示す。異なる図における同じ参照番号の使用は、類似または同一の項目または特徴を示す。 In the following, a detailed description will be given with reference to the accompanying drawings. In the figure, the number at the left end of the reference number indicates the figure in which the reference number first appears. The use of the same reference number in different figures indicates similar or identical items or features.

いくつかの実装形態による、ブロックチェーン監視及び管理のためのシステムの例示的アーキテクチャを示す図である。FIG. 5 illustrates an exemplary architecture of a system for blockchain monitoring and management in several implementations. いくつかの実装形態による、例示的なコンセンサスノード計算装置を示す図である。It is a figure which shows an exemplary consensus node computing device by some implementations. いくつかの実装形態による、コンセンサスシステムにおけるブロックチェーン構築の例を示す。An example of building a blockchain in a consensus system with several implementations is shown. いくつかの実装形態による、ブロックチェーンの部分の一例を示す図である。It is a figure which shows an example of the blockchain part by some implementations. いくつかの実装形態による、ブロックチェーンの部分の一例を示す。An example of the blockchain part according to some implementation forms is shown. いくつかの実装形態による、コンセンサスノード情報をブロックチェーンに追加するための例示的なプロセスを示す流れ図である。It is a flow diagram which shows an exemplary process for adding consensus node information to a blockchain by some implementations. いくつかの実装形態による、例示的なコンセンサスノード情報データ構造を示す図である。It is a figure which shows the example consensus node information data structure by some implementation form. いくつかの実装形態による、デジタル署名及びスマートコントラクト情報をブロックチェーンに追加する例示的なプロセスを示す流れ図である。It is a flow chart which shows an exemplary process of adding a digital signature and smart contract information to a blockchain by some implementations. いくつかの実装形態による、例示的なデジタル署名及びスマートコントラクトソースコードデータ構造を示す。Illustrative digital signature and smart contract source code data structures in several implementations are shown. いくつかの実装形態による、外部データ情報をブロックチェーンに追加するための例示的なプロセスを示す流れ図である。It is a flow diagram which shows an exemplary process for adding external data information to a blockchain by some implementations. いくつかの実装形態による、外部データ情報データ構造の一例を示す。An example of an external data information data structure according to some implementation forms is shown. いくつかの実装形態による、スマートコントラクト実行のための例示的なプロセスを示す流れ図である。It is a flow chart which shows the exemplary process for smart contract execution by some implementation form. いくつかの実装形態による、スマートコントラクト実行情報データ構造の一例を示す。An example of a smart contract execution information data structure according to several implementation forms is shown. いくつかの実装形態による、参加ノードをチェックするための例示的なプロセスを示す流れ図である。It is a flow diagram which shows an exemplary process for checking a participating node by some implementations. いくつかの実装形態による、参加ノードデータ構造の一例を示す。An example of a participating node data structure with several implementations is shown. いくつかの実装形態による、参加ノードをチェックするための例示的なプロセスを示す流れ図である。It is a flow diagram which shows an exemplary process for checking a participating node by some implementations. いくつかの実装形態による、マスタノードを決定するための例示的なプロセスを示す流れ図である。It is a flow diagram which shows an exemplary process for determining a master node by some implementations. いくつかの実装形態による、監査を実行する例示的なプロセスを示す流れ図である。It is a flow chart which shows the exemplary process of performing an audit by several implementations. いくつかの実装形態による、スマートコントラクトの実行に関連してブロックチェーンを管理する例示的なプロセスを示す流れ図である。It is a flow diagram which shows an exemplary process of managing a blockchain in relation to the execution of a smart contract by some implementations.

本明細書におけるいくつかの実装形態は、例えばスマートコントラクトを実行するために使用されるブロックチェーンのようなブロックチェーンを、管理及び監視するために使用される情報を決定及び取得するための技法及び構成を対象としている。本明細書の例では、スマートコントラクトは、コントラクトに従って指定された条件の発生に基づいたアクションまたは他の機能の実行を、容易にし、検証し、またはそうでなければ引き起こす計算機プロトコル及び実行可能コードを含む。スマートコントラクトは、通常、実行結果のみを保存するため、ブロックチェーンを使用したスマートコントラクトの実行を監視または監査する機能が望まれる。 Some implementations herein include techniques and techniques for determining and retrieving information used to manage and monitor a blockchain, such as a blockchain used to execute smart contracts. It is intended for configuration. In the examples herein, smart contracts facilitate, validate, or otherwise trigger the execution of actions or other functions based on the occurrence of conditions specified according to the contract, computer protocols and executable code. Including. Since smart contracts usually store only the execution results, a function for monitoring or auditing the execution of smart contracts using the blockchain is desired.

本明細書のいくつかの例では、スマートコントラクトについて生成されたブロックチェーンは、追加の監査情報と共に生成される。追加の監査情報は、例えば、スマートコントラクト実行時間、スマートコントラクトを実行したノードに関する実行ノード情報、及び、スマートコントラクトの実行を誘起したイベント、データまたはその他の入力条件に関する情報等である。本明細書におけるブロックチェーンは、例えば、スマートコントラクトの実行を許可するためにデジタル署名を提供している参加者の1または複数が参加しないでスマートコントラクトを実行しようとした場合の検出を可能にする。別の例として、スマートコントラクトが、スマートコントラクトを実行するために外部データに依存する場合、外部データ及び関連するメタデータはブロックチェーンに含まれてもよく、外部データがもう利用できなくなったとしても、コントラクトの条件に応じて機能が適切に実行されたことを検証するために後でチェックされてもよい。プライベートブロックチェーンコンセンサスシステムの場合のようなさらに別の例として、多数のコンセンサスノードを制御する特定の参加者が、特定の参加者にとって有利なスマートコントラクトをブロックチェーンに追加することが可能であり得る。しかしながら、本明細書における実施形態は、そのような行動から保護するための技法を提供する。 In some examples herein, the blockchain generated for smart contracts is generated with additional audit information. Additional audit information includes, for example, smart contract execution time, execution node information about the node that executed the smart contract, and information about events, data, or other input conditions that triggered the execution of the smart contract. The blockchain herein allows, for example, to detect when one or more of the participants who provide a digital signature to allow the execution of a smart contract attempt to execute the smart contract without participation. .. As another example, if a smart contract relies on external data to execute the smart contract, the external data and associated metadata may be included in the blockchain, even if the external data is no longer available. , May be checked later to verify that the function was performed properly according to the terms of the contract. In yet another example, as in the case of a private blockchain consensus system, it may be possible for a particular participant controlling a large number of consensus nodes to add smart contracts to the blockchain that are beneficial to the particular participant. .. However, embodiments herein provide techniques for protecting against such behavior.

本明細書におけるいくつかの例は、複数のコンセンサスノード計算装置を含むプライベートブロックチェーンシステムの環境に適用される。本明細書の監査機能に使用され得る監査情報を取得するために、コンセンサスノードは、それぞれのコンセンサスノード自体に関する情報、例えば、そのコンセンサスノードのノード識別子(ID)、コンセンサスノードの場所、及びコンセンサスノードのオペレータ及び/または所有者などの追加情報をブロックチェーンに追加するように構成され得る。さらに、コンセンサスノードは、システム内の他のコンセンサスノードに関するノード情報をブロックチェーンの1つまたは複数のブロックに追加することができる。さらに、各コンセンサスノードは、スマートコントラクトに関する情報、例えばスマートコントラクトが実行された時間、スマートコントラクトの実行を引き起こすクライアントまたは外部システムからの通信を受信した時間、コンセンサスノード間でコンセンサスが得られた時間、スマートコントラクトを実行したノードの識別子などを、ブロックチェーンに追加することができる。さらに、コンセンサスノードは、ブロックチェーンにクライアント情報、例えば、クライアントのデジタル署名が受信されたという証拠、及びスマートコントラクト自体に関する情報を追加することができる。さらに、コンセンサスノードは、外部システムに関する情報をブロックチェーンに追加することができ、例えば、スマートコントラクトの実行を引き起こした外部データ、外部データを送信した計算装置の識別子やIPアドレスなどを追加することができる。 Some examples herein apply to the environment of a private blockchain system that includes multiple consensus node calculators. To obtain audit information that can be used for the auditing functions herein, a consensus node may use information about each consensus node itself, such as the node identifier (ID) of that consensus node, the location of the consensus node, and the consensus node. It may be configured to add additional information such as the operator and / or owner of the blockchain. In addition, the consensus node can add node information about other consensus nodes in the system to one or more blocks in the blockchain. In addition, each consensus node has information about the smart contract, such as the time the smart contract was executed, the time it received communication from the client or external system that triggered the execution of the smart contract, and the time the consensus was reached between the consensus nodes. The identifier of the node that executed the smart contract can be added to the blockchain. In addition, the consensus node can add client information to the blockchain, such as evidence that the client's digital signature has been received, and information about the smart contract itself. In addition, the consensus node can add information about the external system to the blockchain, such as the external data that caused the execution of the smart contract, the identifier or IP address of the computer that sent the external data, and so on. it can.

さらに、いくつかの例では、システムは、監査可能なシステムを提供するための一連の規則を含み得る。例えば、規則は、コンセンサス時に、すべてのコンセンサスノードが同意していることを含み得る。あるいは、規則は、スマートコントラクトの各参加者について、スマートコントラクトの各参加者に関連付けられた少なくとも1つのコンセンサスノードが、コンセンサス時に同意していることを含んでもよい。さらに別の代替案として、コンセンサスが達成される限り、コントラクトへの参加者がどのノードがコンセンサスに参加するかについて制限を設けない、ことを規則は含み得る。さらに、スマートコントラクト自体に関して、いくつかの例では、規則は、スマートコントラクトに必要なすべての情報がブロックチェーンに格納されることを含み得る。あるいは、他の例では、規則は、スマートコントラクトに関する特定の情報のみがブロックチェーンに格納され、他の情報は外部システムから利用可能であることを含み得る。さらに、場合によっては、スマートコントラクトが実行される前に、スマートコントラクトを実行するコンセンサスノードが、指定されたすべての監査情報がブロックチェーンに存在するか、またはブロックチェーンに含めるために利用可能であると判定してもよい。 Moreover, in some examples, the system may include a set of rules to provide an auditable system. For example, a rule may include that at the time of consensus, all consensus nodes agree. Alternatively, the rule may include that for each participant in the smart contract, at least one consensus node associated with each participant in the smart contract agrees at the time of consensus. As yet another alternative, the rule may include that participants in the contract do not place restrictions on which nodes participate in the consensus, as long as the consensus is achieved. Furthermore, with respect to the smart contract itself, in some examples, the rule may include storing all the information needed for the smart contract on the blockchain. Alternatively, in another example, the rule may include that only specific information about smart contracts is stored on the blockchain and other information is available from external systems. In addition, in some cases, before the smart contract is executed, a consensus node that executes the smart contract is available to either have all the audit information specified in the blockchain or to include it in the blockchain. May be determined.

いくつかの例では、監査計算装置は、1つまたは複数のコンセンサスノードと通信してブロックチェーンを取得し、そのブロックチェーンに含まれる情報の監査を実行して、システムに生成されたブロックチェーン及びシステムによって実行されたスマートコントラクトの監査の要件を、ブロックチェーン及びコンセンサスノードが満たしていることを、確認してもよい。例えば、監査計算装置は、すべてのノードのノード情報がブロックチェーンに含まれていること、スマートコントラクトへの参加者のデジタル署名がブロックチェーンにリストアップされていること、そして、外部データがある場合には、それがブロックチェーンに含まれているまたは記述されていること、を判定してもよい。いずれかの情報がブロックチェーンに含まれていない場合、監査プログラムは、コントラクトの1または複数の参加者に、それを通知することができる。例えば、監査計算装置は、指定された監査情報が、それをブロックチェーンに含めるために利用可能ではないこと、及び/または、指定された監査情報がブロックチェーンに含まれないことを示す通知を、1または複数の参加者に送信することができる。それに応じて、参加者は、必要な監査情報がブロックチェーンに含まれるまでコントラクトの実行を中断するか、またはコントラクトが実行されないようにするための他の措置を講じることができまる。 In some examples, the audit computer communicates with one or more consensus nodes to obtain the blockchain, audits the information contained in that blockchain, and the blockchain generated in the system and You may want to make sure that the blockchain and consensus nodes meet the requirements for auditing smart contracts performed by the system. For example, an audit computer may have node information for all nodes contained in the blockchain, digital signatures of participants in smart contracts listed on the blockchain, and external data. May determine that it is included or described in the blockchain. If any information is not included on the blockchain, the audit program may notify one or more participants of the contract. For example, the audit calculator may notify that the specified audit information is not available for inclusion in the blockchain and / or that the specified audit information is not included in the blockchain. It can be sent to one or more participants. Accordingly, participants may suspend the execution of the contract until the required audit information is included in the blockchain, or take other steps to prevent the contract from executing.

説明の目的で、いくつかの例示的な実装形態は、スマートコントラクトの実行に関連して使用されるブロックチェーンの環境で説明されている。しかし、本明細書における実装形態は、提供された特定の例に限定されず、本明細書中の開示に照らして当業者に明らかなように、他のアプリケーション、他のタイプの計算システム、他のシステムアーキテクチャなどに使用されるブロックチェーン及び類似のデータ構造に拡張され得る。 For purposes of illustration, some exemplary implementations are described in the blockchain environment used in connection with the execution of smart contracts. However, implementations herein are not limited to the particular examples provided, and as will be apparent to those skilled in the art in light of the disclosure herein, other applications, other types of computing systems, etc. It can be extended to blockchains and similar data structures used for system architectures and the like.

図1は、いくつかの実装形態によるシステム100の例示的アーキテクチャを示す。システム100は、複数のコンセンサスノード計算装置102(1)、102(2)、102(3)、…、102(N)を含み、それらは互いに通信することができる。以下において、単に、これらをコンセンサスノード102と呼ぶ。コンセンサスノード102は、1つ以上の監査計算装置106、1つ以上のクライアント計算装置108、及び/または1つ以上の外部システム計算装置110と、1つ以上のネットワーク104を介して通信することができる。 FIG. 1 shows an exemplary architecture of System 100 with several implementations. The system 100 includes a plurality of consensus node computing devices 102 (1), 102 (2), 102 (3), ..., 102 (N), which can communicate with each other. Hereinafter, these are simply referred to as consensus nodes 102. The consensus node 102 may communicate with one or more audit computing devices 106, one or more client computing devices 108, and / or one or more external system computing devices 110 via one or more networks 104. it can.

本明細書のいくつかの例では、システム100は、少なくとも1つのブロックチェーン112を生成及び維持することができる、スケーラブルで分散型のピアツーピアシステムである。したがって、データの保全性は、例えば単なる信頼ベースのインフラストラクチャよりも、コンセンサスメカニズムに基づく。本明細書の例では、「コンセンサス」は、何が真実であるか偽であるかに関する集合的な意思決定プロセスまたは同意を指すことがある。例えば、システム100は、参加コンセンサスノード102からなる分散コンセンサスネットワークを提供する。その分散コンセンサスネットワークでは、システム100に参加している様々な異なるコンセンサスノード102が、同意に達し得る。個々のコンセンサスノード102は、それら自身のデータを提供して、コンセンサスネットワーク全体として集団的な同意された決定を達成することを可能にすることができる。 In some examples herein, system 100 is a scalable, decentralized, peer-to-peer system capable of generating and maintaining at least one blockchain 112. Therefore, data integrity is based on consensus mechanisms rather than, for example, just trust-based infrastructure. In the examples herein, "consensus" may refer to a collective decision-making process or consensus on what is true or false. For example, system 100 provides a distributed consensus network consisting of participating consensus nodes 102. In that distributed consensus network, various different consensus nodes 102 participating in system 100 may reach consensus. The individual consensus nodes 102 can provide their own data to allow the consensus network as a whole to achieve collective consensus decisions.

システム100は、時系列順のトランザクションまたは他の情報を、ブロックチェーン112内の連続するブロックとして記録するように構成され、ブロックチェーン112は対応するトランザクションのための分散データベースとして機能する。その結果、トランザクションの記録は安全に記録され、実質的に変更不可能である。システム100内のすべてのコンセンサスノード102は、同じトランザクションに対して同じノードプログラム114(同じコンセンサスプログラム116及び同じスマートコントラクト監査プログラム118を含む)を実行することができ、したがって各トランザクションを有効化(または無効化)し、各トランザクションについて監査情報をブロックチェーン112へ追加することができる。有効なトランザクションは、ブロックチェーン112内の次のブロックに書き込まれる。コンセンサスノード102は、さらに後述するように、例えば、各トランザクションについて、すなわちスマートコントラクト120の各実行に対応して、監査情報をブロックチェーンに追加することができる。 System 100 is configured to record transactions or other information in chronological order as contiguous blocks within blockchain 112, which acts as a distributed database for the corresponding transactions. As a result, transaction records are securely recorded and virtually immutable. All consensus nodes 102 in system 100 can execute the same node program 114 (including the same consensus program 116 and the same smart contract audit program 118) for the same transaction, thus enabling (or enabling) each transaction. It can be disabled) and audit information can be added to the blockchain 112 for each transaction. Valid transactions are written to the next block in blockchain 112. The consensus node 102 can add audit information to the blockchain, for example, for each transaction, that is, for each execution of the smart contract 120, as will be further described later.

いくつかの例では、本明細書のシステム100の分散ピアツーピア性は、任意の単一のユーザまたはユーザのグループが基礎となるインフラストラクチャを制御することを防ぐ、または任意の単一のユーザまたはユーザのグループがシステム100の完全性を損なうことを防ぐ、のに役立ち得る。システム100のユーザ119は、全て等しい状態を有してもよく、同じプロトコルに準拠してもよい。場合によっては、ユーザ119は、個人、企業、国家、組織など、または、これらのエンティティの組み合わせとすることができる。本明細書のいくつかの例では、システム100はプライベート(すなわち一般にはアクセスできない)であり、コンセンサスノード102は、典型的には、1人または複数のユーザ119によって所有され、操作され、またはそうでなければ関連付けられることができる。場合によっては、コンセンサスノード102のうちのいくつかは、スマートコントラクト120への第1の参加者と関連付けられてもよく、コンセンサスノード102のうちの他のいくつかは、スマートコントラクト120への第2の参加者と関連付けられてもよい。他の場合には、コンセンサスノード102のうちのいくつかまたはすべてが、第1の参加者または第2の参加者のいずれとも関連していない第三者と関連していてもよい。 In some examples, the distributed peer-to-peer nature of System 100 herein prevents any single user or group of users from controlling the underlying infrastructure, or any single user or user. Can help prevent a group of people from compromising the integrity of the system 100. User 119 of the system 100 may all have equal states or may adhere to the same protocol. In some cases, user 119 can be an individual, a company, a nation, an organization, or a combination of these entities. In some examples herein, the system 100 is private (ie, generally inaccessible), and the consensus node 102 is typically owned, operated, or so by one or more users 119. If not, it can be associated. In some cases, some of the consensus nodes 102 may be associated with a first participant in the smart contract 120, and some of the other consensus nodes 102 may be associated with a second participant in the smart contract 120. May be associated with participants in. In other cases, some or all of the consensus nodes 102 may be associated with a third party that is not associated with either the first participant or the second participant.

コンセンサスノード102はそれぞれ、ブロックチェーン120のコピーを維持し、スマートコントラクト120に従って行われたトランザクションの検証に参加することができる。例えば、システム100を、様々な用途のために、1つまたは複数のスマートコントラクト120を実行するために使用できる。例えば、製品のサプライチェーンの追跡、企業資産の使用に関する資産管理の実行、クラウドファンディングプロジェクトの追跡、暗号通貨の生成、ファイル管理の分散化、モノインターネット(IoT)デバイスの管理、知的財産の保護、データの管理、土地所有権の登録、株式取引の追跡、銀行取引の追跡などに、使用できる。 Each of the consensus nodes 102 can maintain a copy of the blockchain 120 and participate in the verification of transactions performed according to the smart contract 120. For example, the system 100 can be used to execute one or more smart contracts 120 for a variety of uses. For example, tracking the supply chain of products, performing asset management on the use of corporate assets, tracking crowdfunding projects, generating cryptocurrencies, decentralizing file management, managing Internet of Things (IoT) devices, intellectual property It can be used for protection, data management, land ownership registration, stock transaction tracking, bank transaction tracking, and more.

本明細書のブロックチェーン技術と併せて使用されるスマートコントラクト120は、上述の例示の用途または他の多数の用途のうちのいずれかを実行するために使用され得る。上述のように、スマートコントラクト120は、条件が満たされたときに機能が実行されるという同意を含み得る。したがって、スマートコントラクト120は、満たされるべき条件及び実行されるべき対応する機能を指定するようにプログラムされた実行可能コードであり得、ブロックチェーン112は、条件が満たされること及び対応する機能が自動的に実行されることを保証し得る。 The smart contract 120 used in conjunction with the blockchain technology herein can be used to perform any of the above exemplified applications or many other applications. As mentioned above, the smart contract 120 may include an agreement that the function will be performed when the conditions are met. Thus, the smart contract 120 can be executable code programmed to specify the conditions to be met and the corresponding functions to be performed, and the blockchain 112 is such that the conditions are met and the corresponding functions are automatic. Can be guaranteed to be executed.

一例として、IoTに関して、スマートコントラクトは、複数の検出された条件に基づいて建物内の異なるゾーン内の温度を自動的に制御するなどのために、遠隔IoTシステムの管理を自動化するために使用されてもよい。別の例として、スマートコントラクト120及びブロックチェーン112は、企業の資産管理、例えば組織の物的資産の使用及びライフサイクルを管理するために使用されてもよい。別の例として、スマートコントラクト120及びブロックチェーン112は、例えば金融商品が特定のベンチマークを満たしたときにデリバティブを支払う、特定の価格に達したときに株式を売買する等の仲介取引のような、金融取引を実行及び記録するために使用され得る。さらに別の例として、スマートコントラクト120及びブロックチェーン112を、電力を自動的に再分配するために使用することができる。例えば、ローカルソーラマイクログリッドが余剰エネルギを生成する場合等に、スマートコントラクト120及びブロックチェーン112を使用して、余剰エネルギを自動的に再分配できる。ブロックチェーン112及びスマートコントラクト120を使用して、他の多数の機能を実行することができ、本明細書で論じる例は、多くの可能な用途のうちの数例にすぎない。 As an example, with respect to IoT, smart contracts are used to automate the management of remote IoT systems, such as to automatically control temperatures in different zones within a building based on multiple detected conditions. You may. As another example, the smart contract 120 and the blockchain 112 may be used to manage a company's assets, such as the use and life cycle of an organization's physical assets. As another example, smart contracts 120 and blockchain 112, such as intermediary transactions such as paying derivatives when a financial instrument meets a certain benchmark, buying or selling stocks when a certain price is reached, etc. Can be used to execute and record financial transactions. As yet another example, smart contract 120 and blockchain 112 can be used to automatically redistribute power. For example, when the local solar microgrid generates surplus energy, the surplus energy can be automatically redistributed by using the smart contract 120 and the blockchain 112. The blockchain 112 and smart contract 120 can be used to perform many other functions, and the examples discussed herein are just a few of the many possible applications.

スマートコントラクト120が最初に設定されるか、そうでなければ確立されると、スマートコントラクト120の1人または複数の参加者(すなわち、ユーザ119)は、それぞれのクライアント計算装置108上のそれぞれのクライアントプログラム122を使用して、スマートコントラクト120に署名する。例えば、クライアントプログラム122を実行して、スマートコントラクト120及びスマートコントラクト用のデジタル署名124を、スマートコントラクト120を実行するコンセンサスノード102に送信するように、クライアント計算装置を構成することができる。これにより、上述のように、コンセンサスノード102は、スマートコントラクト120を実行する前に、スマートコントラクト120が署名されていることを検証することができる。いくつかの例では、デジタル署名124は、スマートコントラクト120を使用して実行された取引についての監査情報に含まれてもよい。 When the smart contract 120 is initially configured or otherwise established, one or more participants in the smart contract 120 (ie, user 119) will be each client on each client computer 108. Program 122 is used to sign smart contract 120. For example, the client computing device can be configured to execute the client program 122 and transmit the smart contract 120 and the digital signature 124 for the smart contract to the consensus node 102 that executes the smart contract 120. This allows the consensus node 102 to verify that the smart contract 120 is signed before executing the smart contract 120, as described above. In some examples, the digital signature 124 may be included in audit information about transactions performed using the smart contract 120.

いくつかの例では、スマートコントラクト120の実行は、1つ以上の外部システム計算装置110からの外部データ126の受信に依存し得る。例えば、外部システムプログラム128は、コンセンサスノード102に外部データ126を送信するように構成され得る。スマートコントラクト120の性質に応じて、外部データ126は任意の対応する種類のデータとすることができる。例えば、スマートコントラクトが建物内の1つまたは複数のサーモスタットの制御に関するものである場合、外部データはサーモスタットに対応する区域の温度データであり得る。スマートコントラクトが1つ以上の証券を管理するためのものである場合、外部データは現在の株式市場情報などであり得る。上記の例及び本明細書の開示を考慮すれば、他の多数の外部データが当業者には明らかであろう。 In some examples, the execution of the smart contract 120 may depend on the reception of external data 126 from one or more external system computing devices 110. For example, the external system program 128 may be configured to send external data 126 to the consensus node 102. Depending on the nature of the smart contract 120, the external data 126 can be any corresponding type of data. For example, if the smart contract concerns the control of one or more thermostats in a building, the external data can be temperature data for the area corresponding to the thermostat. If the smart contract is for managing one or more securities, the external data can be current stock market information, etc. Considering the above example and the disclosure herein, many other external data will be apparent to those skilled in the art.

外部データを受信すると、コンセンサスノード102はスマートコントラクトを実行することを決定してもよい。いくつかの例では、コンセンサスノードは、最初にスマートコントラクト監査プログラム118を実行して、例えば上述したような1つまたは複数の規則に基づいて、すべての必要な監査情報が存在または利用可能であることを確認してもよい。各コンセンサスノード102は、スマートコントラクト120をトランザクションとして実行することができる。場合によっては、複数のコンセンサスノード102はマスタノードを含むことができ、マスタノードは、後述するように、他のコンセンサスノードとの間で監査情報130を送受信し、コンセンサスシステム100における各コンセンサスによって維持されるブロックチェーンに、監査情報が追加できるようにする。監査情報130は、コンセンサスノード102のコンセンサスに基づいて、1つまたは複数の追加ブロックとしてブロックチェーン112に追加することができる。 Upon receiving the external data, the consensus node 102 may decide to execute the smart contract. In some examples, the consensus node first runs the smart contract audit program 118, for example, based on one or more rules as described above, all required audit information is present or available. You may confirm that. Each consensus node 102 can execute the smart contract 120 as a transaction. In some cases, the plurality of consensus nodes 102 may include a master node, which, as described below, sends and receives audit information 130 to and from other consensus nodes and is maintained by each consensus in the consensus system 100. Allow audit information to be added to the blockchain to be built. The audit information 130 can be added to the blockchain 112 as one or more additional blocks based on the consensus of the consensus node 102.

さらに、監査計算装置106は、監査プログラム132を実行することができる。例えば、監査プログラム132は、ユーザ119の要求により、または他の何らかのトリガに基づいて、定期的に実行することができる。監査プログラム132は、上述のように、例えば1つまたは複数の規則134に基づいて、ブロックチェーン112をチェックし、コンセンサスノード102が指定された監査情報をブロックチェーン112に追加するように構成されていることを確認する。例えば、監査プログラム132は、指定された監査情報がブロックチェーン112に追加されたことを判定するためにブロックチェーン112にアクセスしてもよい。いくつかの場合、例えば、システム100が規則134に従って適切に構成されていない場合、監査プログラム132は、スマートコントラクトの参加者などのクライアント計算装置108のユーザ119、及び/または、監査計算装置106の管理者138に、監査結果通知136を送信するように監査計算装置106を構成することができる。否定的な監査結果通知136を受信したことに応答して、スマートコントラクト120の実行がユーザ119及び/または管理者138によって中断され、否定的な結果の原因が判断され修正される。さらに、この例では監査計算装置106は別個の計算装置として示されているが、他の例では、監査計算装置の機能を1つまたは複数のコンセンサスノード102が実行できるように、監査計算装置をコンセンサスノード102と組み合わせることができる。 Further, the audit computing device 106 can execute the audit program 132. For example, the audit program 132 can be executed periodically at the request of user 119 or based on some other trigger. The audit program 132 is configured to check the blockchain 112 and add the specified audit information to the blockchain 112 by the consensus node 102, eg, based on one or more rules 134, as described above. Make sure you are there. For example, the audit program 132 may access the blockchain 112 to determine that the specified audit information has been added to the blockchain 112. In some cases, for example, if the system 100 is not properly configured according to Rule 134, the audit program 132 may be a user 119 of a client computer 108, such as a participant in a smart contract, and / or an audit computer 106. The audit calculation device 106 can be configured to send the audit result notification 136 to the administrator 138. In response to receiving the negative audit result notification 136, the execution of the smart contract 120 is interrupted by the user 119 and / or the administrator 138, and the cause of the negative result is determined and corrected. Further, in this example, the audit calculator 106 is shown as a separate calculator, but in other examples, the audit calculator is provided so that one or more consensus nodes 102 can perform the functions of the audit calculator. It can be combined with the consensus node 102.

いくつかの例では、スマートコントラクト120の各実行に続いて、スマートコントラクト実行結果140が、クライアント計算装置108または外部システム計算装置110のうちの少なくとも1つに送信され得る。例えば、スマートコントラクト実行結果140を受信すると、クライアントプログラム122またはシステムプログラム128に実行結果140に基づく機能を実行させることができる。例えば、スマートコントラクトがサーモスタットの制御用である場合、実行結果140は、システムプログラム128に、サーモスタットを指定量だけ増減させる。いくつかの例では、スマートコントラクト実行結果は、ブロックチェーン112全体を含み得る。他の例では、実行結果は、スマートコントラクトの出力値のみを含み得る。本明細書の開示の利益を得る多数の他の変形が当業者に明らかであろう。 In some examples, following each execution of the smart contract 120, the smart contract execution result 140 may be transmitted to at least one of the client computer 108 or the external system computer 110. For example, when the smart contract execution result 140 is received, the client program 122 or the system program 128 can execute a function based on the execution result 140. For example, when the smart contract is for controlling the thermostat, the execution result 140 increases / decreases the thermostat by a specified amount in the system program 128. In some examples, the smart contract execution result may include the entire blockchain 112. In another example, the execution result may only contain the output value of the smart contract. A number of other variations that benefit from the disclosure herein will be apparent to those skilled in the art.

図2は、いくつかの実装形態によるコンセンサスノード102の一例を示す。場合によっては、コンセンサスノード102は、任意の方法で具現化され得る複数の物理サーバまたは他の種類の計算装置を含み得る。例えば、サーバの場合、モジュール、プログラム、他の機能構成要素、及びデータ記憶装置の一部は、サーバ上、例えば、1つまたは複数のサーバファームまたはデータセンタ、クラウドホストコンピューティングサービスで実装することができる。他の計算機アーキテクチャを追加的または代替的に使用することができる。図示の例では、コンセンサスノード102は、1つまたは複数のプロセッサ202、1つまたは複数の通信インターフェース204、1つまたは複数の計算機可読媒体206、及び1つまたは複数の入出力(I/O)装置を含むか、それらと関連付けられてもよい。例えば、計算機可読媒体206は、ローカルストレージ210及びメモリ212を含み得る。さらに、1つのコンセンサスノード102の説明が提供されているが、他のコンセンサスノード102は、同じまたは類似のハードウェア及びソフトウェア構成と構成要素を有し得る。さらに、監査計算装置106、クライアント計算装置108、及び外部システム計算装置110は、異なるプログラム、ソフトウェア、及び他の機能構成要素をと伴う同様のハードウェア構成を有することができる。 FIG. 2 shows an example of the consensus node 102 in several implementations. In some cases, the consensus node 102 may include multiple physical servers or other types of computing devices that can be embodied in any way. For example, in the case of a server, modules, programs, other functional components, and some of the data storage devices may be implemented on the server, for example, in one or more server farms or data centers, cloud host computing services. Can be done. Other computer architectures can be used additionally or as an alternative. In the illustrated example, the consensus node 102 is one or more processors 202, one or more communication interfaces 204, one or more computer-readable media 206, and one or more inputs / outputs (I / O). Devices may be included or associated with them. For example, the computer-readable medium 206 may include a local storage 210 and a memory 212. Further, although a description of one consensus node 102 is provided, the other consensus node 102 may have the same or similar hardware and software components and components. In addition, the audit calculator 106, the client calculator 108, and the external system calculator 110 can have similar hardware configurations with different programs, software, and other functional components.

各プロセッサ202は、単一の処理ユニットまたは複数の処理ユニットであり得、単一または複数の計算ユニット、または複数の処理コアを含み得る。プロセッサ202は、1つまたは複数の中央処理ユニット、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、状態機械、論理回路、及び/または動作命令に基づいて信号を操作する任意の装置として実装することができる。例えば、プロセッサ202は、本明細書に記載のアルゴリズム及びプロセスを実行するように特別にプログラムまたは構成された1つまたは複数のハードウェアプロセッサ及び/または論理回路であり得る。プロセッサ202は、計算機可読媒体206に格納されている計算機可読命令を取得して実行するように構成することができ、計算機可読命令は、プロセッサ202を本明細書に記載の機能を実行するようにプログラムする。 Each processor 202 can be a single processing unit or a plurality of processing units, and can include a single or a plurality of computing units, or a plurality of processing cores. The processor 202 is implemented as one or more central processing units, microprocessors, microcontrollers, microcontrollers, digital signal processors, state machines, logic circuits, and / or any device that manipulates signals based on operating instructions. be able to. For example, the processor 202 can be one or more hardware processors and / or logic circuits specially programmed or configured to perform the algorithms and processes described herein. The processor 202 can be configured to acquire and execute computer-readable instructions stored in the computer-readable medium 206, such that the processor-readable instructions cause the processor 202 to perform the functions described herein. Program.

計算機可読媒体206は、計算機可読命令、データ構造、プログラムコード、または他のデータなどの情報を記憶するための任意のタイプの技術で実装された揮発性及び不揮発性メモリ及び/または取り外し可能及び固定の媒体を含み得る。例えば、計算機可読媒体206は、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、光学記憶装置、固体記憶装置、磁気テープ、磁気ディスク記憶装置、RAID記憶システム、ストレージアレイ、ネットワーク接続ストレージ、ストレージエリアネットワーク、クラウドストレージ、または所望の情報を格納するために使用することができ、計算装置によってアクセスすることができる任意の他の媒体を含むことができるが、それらに限定されない。コンセンサスノード102の構成に応じて、計算機可読媒体206は、言及されるとき、エネルギ、搬送波信号、電磁波、及び/または信号自体などの媒体を除外する限りにおいて、有形の非一過性媒体であり得る。場合によっては、計算機可読媒体206はコンセンサスノード102と同じ場所にあってもよいが、他の例では、計算機可読媒体206はコンセンサスノード102から分離、または、部分的に分離されてよい。 The computer-readable medium 206 is a volatile and non-volatile memory implemented with any type of technology for storing information such as computer-readable instructions, data structures, program codes, or other data and / or removable and fixed. Can include media of. For example, the computer readable medium 206 may include RAM, ROM, EEPROM, flash memory, or other memory technology, optical storage, solid-state storage, magnetic tape, magnetic disk storage, RADIUS storage system, storage array, network-attached storage, Storage area can include, but is not limited to, network, cloud storage, or any other medium that can be used to store desired information and can be accessed by a computer. Depending on the configuration of the consensus node 102, the computer readable medium 206 is, when referred to, a tangible non-transient medium, as long as it excludes media such as energy, carrier signals, electromagnetic waves, and / or the signal itself. obtain. In some cases, the computer-readable medium 206 may be co-located with the consensus node 102, but in other examples, the computer-readable medium 206 may be separated or partially separated from the consensus node 102.

計算機可読媒体206は、プロセッサ202によって実行可能な任意の数の機能構成要素を格納するために使用され得る。多くの実装形態では、これらの機能構成要素は、プロセッサによって実行可能な命令、モジュール、またはプログラムを含み、実行されたとき、本明細書でコンセンサスノード102に起因する動作を実行するようにプロセッサ202をプログラムする。計算機可読媒体206に格納された機能構成要素は、ノードプログラム114を含むことができ、これは、コンセンサスプログラム116及びスマートコントラクト監査プログラム118を含む。追加の機能構成要素には、スマートコントラクト120及びオペレーティングシステム(OS)214が含まれ、これらはコンセンサスノード102の様々な機能を制御及び管理することができる。機能構成要素のそれぞれは、1つまたは複数の計算機プログラム、アプリケーション、実行可能コード、計算機可読命令、またはその一部を含む。さらに、この例では、コンセンサスプログラム116及びスマートコントラクト監査プログラム118がノードプログラム114の一部として示されているが、他の例では、これらのプログラムは別々であってもよく、それぞれ複数の別々のプログラムを含んでもよく、単一プログラムに組み込まれてもよい。場合によっては、機能構成要素は、計算機可読媒体206のローカルストレージ210に格納され、計算機可読媒体206のメモリ212にロードされ、1つまたは複数のプロセッサ202によって実行されてもよい。多くの他のソフトウェア及び/またはハードウェア構成は、本明細書の開示の恩恵を受ける当業者には明らかであろう。 The computer-readable medium 206 can be used to store any number of functional components that can be executed by the processor 202. In many implementations, these functional components include instructions, modules, or programs that can be executed by the processor, and when executed, the processor 202 to perform the actions resulting from the consensus node 102 herein. To program. Functional components stored on the computer-readable medium 206 can include a node program 114, which includes a consensus program 116 and a smart contract audit program 118. Additional functional components include smart contract 120 and operating system (OS) 214, which can control and manage various functions of consensus node 102. Each of the functional components includes one or more computer programs, applications, executable code, computer-readable instructions, or parts thereof. Further, in this example, the consensus program 116 and the smart contract audit program 118 are shown as part of the node program 114, but in other examples these programs may be separate, each of which is multiple and separate. The program may be included or incorporated into a single program. In some cases, the functional components may be stored in the local storage 210 of the computer-readable medium 206, loaded into the memory 212 of the computer-readable medium 206, and executed by one or more processors 202. Many other software and / or hardware configurations will be apparent to those skilled in the art who will benefit from the disclosure herein.

さらに、計算機可読媒体206は、本明細書に記載の機能及びサービスを実行するために使用されるデータ及びデータ構造を格納することができる。たとえば、計算機可読媒体206は、ノードプログラム114、スマートコントラクト120、及び/またはOS214によって使用される、データ、メタデータ、データ構造、及び/または他の情報を格納することができる。すべてのコンセンサスノード102は、ブロックチェーン112、ならびにノード構成情報216及び参加ノードデータ構造218を維持することができる。例えば、参加ノードデータ構造218は、ノードプログラム114によって生成及び更新することができる。ノード構成情報216は、特定のノードに関する情報を含むことができ、管理者によって最初に設定されることができ、その後、コンセンサスシステムを開始するときにブート時にロードされる。各コンセンサスノード102はまた、プログラム、ドライバなどを含む他の機能構成要素、及び、機能構成要素によって使用されるかまたは生成される他のデータを含みまたは維持し得る。さらに、コンセンサスノード102は、他の多くの論理的、プログラム的、及び物理的構成要素を含むことができ、そのうちの上記のものは、本明細書の説明に関連する単なる例である。 Further, the computer-readable medium 206 can store data and data structures used to perform the functions and services described herein. For example, the computer-readable medium 206 can store data, metadata, data structures, and / or other information used by the node program 114, smart contract 120, and / or OS 214. All consensus nodes 102 can maintain the blockchain 112, as well as the node configuration information 216 and the participating node data structure 218. For example, the participating node data structure 218 can be generated and updated by the node program 114. Node configuration information 216 can include information about a particular node, can be initially set by the administrator, and is then loaded at boot time when starting the consensus system. Each consensus node 102 may also include or maintain other functional components, including programs, drivers, etc., and other data used or generated by the functional components. In addition, the consensus node 102 can include many other logical, programmatic, and physical components, the above of which are merely examples related to the description herein.

通信インターフェース204は、ネットワーク104を介するなど、他の様々なデバイスとの通信を可能にするための1つまたは複数のインターフェース及びハードウェア構成要素を含むことができる。従って、通信インターフェース204は、他のコンセンサスノード102、クライアント装置108、監査計算装置106、及び外部システム計算装置110と通信するために、ネットワーク104への接続を提供する1つまたは複数のポートを含み得る、または接続され得る。例えば、通信インターフェース204は、LAN(ローカルエリアネットワーク)、WAN(ワイドエリアネットワーク)、インターネット、ケーブルネットワーク、セルラネットワーク、無線ネットワーク(例えば、Wi?Fiネットワーク)、有線ネットワーク(例えば、ファイバチャネル、光ファイバ、イーサネット(登録商標))、直接接続、BLUETOOTH(登録商標)のような近距離通信、その他本明細書の他の箇所でさらに列挙されるものなどのうちの一つまたは複数を介する通信を可能とする。 The communication interface 204 may include one or more interfaces and hardware components to allow communication with various other devices, such as over the network 104. Thus, the communication interface 204 includes one or more ports that provide a connection to the network 104 to communicate with the other consensus node 102, the client device 108, the audit calculator 106, and the external system calculator 110. Can get or be connected. For example, the communication interface 204 is a LAN (local area network), WAN (wide area network), Internet, cable network, cellular network, wireless network (for example, Wi? Fi network), wired network (for example, fiber channel, optical fiber). , Ethernet (registered trademark), direct connection, short-range communication such as BLUETOOTH (registered trademark), and communication via one or more of those further listed elsewhere herein. And.

1つまたは複数のネットワーク104は、任意の適切な通信技術を含み得る。それらは、例えば、インターネットなどの広域ネットワーク、イントラネットなどのローカルエリアネットワーク、セルラネットワークなどの無線ネットワーク、Wi−Fiなどのローカル無線ネットワーク、BLUETOOTH(登録商標)などの短距離無線通信、ファイバチャネル、光ファイバ、イーサネット、または他の任意のそのようなネットワークを含む有線ネットワーク、直接有線接続、それらの任意の組み合わせ、である。従って、ネットワーク104は、有線及び/または無線通信技術を含むことができる。そのようなネットワークを介して通信するために使用されるプロトコルは当技術分野において周知であり、本開示では詳細に説明しない。 One or more networks 104 may include any suitable communication technology. They include, for example, wide area networks such as the Internet, local area networks such as intranets, wireless networks such as cellular networks, local wireless networks such as Wi-Fi, short-range wireless communications such as BLUETOOTH®, fiber channels, and optical. Wired networks, including fiber, Ethernet, or any other such network, direct wired connections, any combination thereof. Thus, the network 104 can include wired and / or wireless communication technology. The protocols used to communicate over such networks are well known in the art and are not described in detail in this disclosure.

I/O装置208は、ディスプレイ、様々なユーザインターフェース操作装置(例えば、マウス、キーボード、タッチスクリーンなど)、オーディオスピーカ、接続ポートなどを含むことができる。本明細書の開示の利益を得る多数の他のハードウェア及びソフトウェア構成が当業者に明らかであろう。したがって、本明細書に開示されている例の範囲は、ハードウェア、ソフトウェア、またはそれらの組み合わせの特定のセットに限定されない。 The I / O device 208 can include a display, various user interface operating devices (eg, mouse, keyboard, touch screen, etc.), audio speakers, connection ports, and the like. A number of other hardware and software configurations that will benefit from the disclosures herein will be apparent to those of skill in the art. Therefore, the scope of the examples disclosed herein is not limited to a particular set of hardware, software, or a combination thereof.

図3は、いくつかの実装形態によるブロックチェーン生成300の一例を示す。生成されたブロックチェーン112の一例が図3の左側に図示され、追加されたブロックを示している。図3の右側に、対応するコンセンサスシーケンスフロー302が示されている。この例では、4つのコンセンサスノード102(1)〜102(4)がコンセンサスシステムに参加し、第1のコンセンサスノード102(1)がこの例ではマスタノードとして指定されている。さらに、この例では、クライアントA装置108(1)、クライアントB装置108(2)、及び外部システム計算装置110が、以下でさらに論じるように情報を提供することができる。 FIG. 3 shows an example of the blockchain generation 300 according to some implementation forms. An example of the generated blockchain 112 is shown on the left side of FIG. 3 to show the added block. The corresponding consensus sequence flow 302 is shown on the right side of FIG. In this example, four consensus nodes 102 (1) to 102 (4) participate in the consensus system, and the first consensus node 102 (1) is designated as the master node in this example. Further, in this example, client A device 108 (1), client B device 108 (2), and external system computing device 110 can provide information as further discussed below.

304で、コンセンサスシステムが開始され、ブロックチェーン112の生成を開始するためにジェネシスブロック306が生成される。ジェネシスブロック306は、ブロックチェーン112内の最初のブロックであり、「0」のブロックの高さ(すなわち、順次ブロック番号)を有する。全てのコンセンサスノード102(1)〜102(4)は、ジェネシスブロック306を共有する。もちろん、ブロックチェーン112が既に生成されている場合、このステップは実行されない。さらに、コンセンサスシステムの起動の一部として、コンセンサスノード102(2)〜102(4)は、それぞれのノード構成情報データ構造216から、マスタ/第1コンセンサスノード102(1)に情報を送信してもよい。マスタ/第1コンセンサスノード102(1)は、受信した情報及びそれ自身のノード構成情報データ構造216から、参加ノードデータ構造218を生成することができる。参加ノードデータ構造218については、図15を参照して以下でさらに説明する。 At 304, the consensus system is started and the genesis block 306 is generated to start the generation of the blockchain 112. The Genesis block 306 is the first block in the blockchain 112 and has a block height of "0" (ie, sequential block numbers). All consensus nodes 102 (1) to 102 (4) share the Genesis block 306. Of course, if the blockchain 112 has already been generated, this step will not be performed. Further, as part of the activation of the consensus system, the consensus nodes 102 (2) to 102 (4) transmit information from their respective node configuration information data structures 216 to the master / first consensus node 102 (1). May be good. The master / first consensus node 102 (1) can generate a participating node data structure 218 from the received information and its own node configuration information data structure 216. The participating node data structure 218 will be further described below with reference to FIG.

ブロック308及び310は、各コンセンサスノードに対して実行される。例えば、308において、マスタノードは、第1コンセンサスノード102(1)に関するノード構成情報データ構造216からの情報を他のコンセンサスノード102(2)、102(3)及び102(4)へ転送する。310で、コンセンサスノード102(1)〜102(4)の間でコンセンサスに達する。 Blocks 308 and 310 are executed for each consensus node. For example, in 308, the master node transfers information from the node configuration information data structure 216 regarding the first consensus node 102 (1) to the other consensus nodes 102 (2), 102 (3) and 102 (4). At 310, a consensus is reached between the consensus nodes 102 (1) to 102 (4).

本明細書の例では、コンセンサスは、コンセンサスノード102(1)〜102(4)のグループの間での1つの結果について同意するプロセスを含む。コンセンサスを判定するためのいくつかの手法があり、例えば、PBFT(Practical Byzantine Fault Tolerance)、Paxos Consensus Protocols、Raft Consensus Algorithmなどがある。例えば、PBFTは、一般に、取引が有効であるという同意に達するために同一である十分な数の応答を受け取ることに依存している。さらに、Paxosコンセンサスシステムでは、コーディネータはすべてのノードに値を提案し、ノードがその値に同意するかどうかに関してノードの応答を収集する。すべてのノードが同意する(またはいくつかの例では十分な数が同意する)場合、値は受け入れられ、コーディネータはすべてのノードに連絡して、値が最終的であることを知らせる。 In the examples herein, consensus includes the process of agreeing on one outcome among the groups of consensus nodes 102 (1) 102 (4). There are several methods for determining consensus, such as PBFT (Practical Byzantine Facility Solution), Paxos Consensus Protocols, Raft Consensus Algorithm, and the like. For example, PBFT generally relies on receiving a sufficient number of responses that are identical to reach an agreement that a transaction is valid. In addition, in the Paxos consensus system, the coordinator proposes a value to all nodes and collects the node's response as to whether the node agrees with the value. If all nodes agree (or in some cases a sufficient number agree), the value is accepted and the coordinator contacts all nodes to inform them that the value is final.

別の例として、Paxosと同様に、Raftは、選出されたリーダを介してコンセンサスを達成する。例えば、ラフトクラスタ内のサーバは、リーダ(すなわちマスタ)、フォロワ(すなわちノード)のいずれかである。リーダはクライアントのリクエストを受け入れ、そのリクエストをフォロワに転送する。リーダが大多数のフォロワから同意を得た後、その要求はコミットされたと見なされる。さらに、本明細書ではコンセンサスに達するためのいくつかの例示的な技法が説明されているが、他の可能な技法が本明細書の開示の恩恵を受ける当業者には明らかであろう。 As another example, like Paxos, Raft achieves consensus through an elected reader. For example, a server in a raft cluster is either a reader (ie, master) or a follower (ie, a node). The reader accepts the client's request and forwards it to the follower. The request is considered committed after the leader has obtained consent from the majority of followers. In addition, while some exemplary techniques for reaching consensus are described herein, other possible techniques will be apparent to those skilled in the art who would benefit from the disclosure herein.

マスタ/第1コンセンサスノード102(1)は、第1コンセンサスノード102(1)のノード構成情報データ構造216からの情報を第2コンセンサスノード102(2)、第3コンセンサスノード102(3)及び第4コンセンサスノード102(4)に転送する。マスタ/第1コンセンサスノード102(1)は、過半数のコンセンサスノードから確認を受け取り、要求はコミットされたと見なされる。その結果、各コンセンサスノードは、そのブロックチェーン112に同じブロックを追加することができる。312に示すように、コンセンサスノード102(1)〜102(4)のそれぞれについて、ノード情報についてプロセスが繰り返され、314に示すように、4つのブロックがブロックチェーン112に追加され、各追加ブロックは、コンセンサスシステムに参加するコンセンサスノード102(1)〜102(4)の異なる1つに対するノード情報を含む。 The master / first consensus node 102 (1) transfers information from the node configuration information data structure 216 of the first consensus node 102 (1) to the second consensus node 102 (2), the third consensus node 102 (3), and the third consensus node 102 (3). 4 Transfer to the consensus node 102 (4). The master / first consensus node 102 (1) receives confirmation from the majority of consensus nodes and the request is considered committed. As a result, each consensus node can add the same block to its blockchain 112. As shown in 312, for each of the consensus nodes 102 (1) to 102 (4), the process is repeated for the node information, and as shown in 314, four blocks are added to the blockchain 112, and each additional block is added. , Includes node information for different ones of consensus nodes 102 (1) 102 (4) participating in the consensus system.

第4ノード情報ブロック316がブロックチェーン112に追加された後、ブロックチェーン112は5つのブロックを有する。318に示すように、マスタ/第1コンセンサスノード102(1)は、参加ノードをチェックすることができる。318で参加ノードをチェックする動作は、どのコンセンサスノード102がコンセンサス310に参加してブロック314を追加したかを確認するために実行できる。これは、コンセンサスシステム内のすべてのアクティブなコンセンサスノードが識別されたこと、及び識別されたすべてのコンセンサスノードがまだアクティブであることを判定することを含み得る。参加しているノードをチェックするプロセスは、図14〜16を参照して以下でさらに説明される。さらに、コンセンサス310の決定及び参加ノードのチェック318は、追加されたブロックごとに1回実行することができる。したがって、この例では、動作310及び318は、ブロックチェーン112に追加された4つのブロック314のそれぞれに対して1回ずつ、計4回実行される。参加ノードをチェックした後、ブロックチェーン112は、コンセンサスシステムに参加している各コンセンサスノード102(1)〜102(4)のノード情報を含む。 After the fourth node information block 316 is added to the blockchain 112, the blockchain 112 has five blocks. As shown in 318, the master / first consensus node 102 (1) can check the participating nodes. The operation of checking the participating nodes at 318 can be performed to confirm which consensus node 102 has participated in the consensus 310 and added the block 314. This may include determining that all active consensus nodes in the consensus system have been identified and that all identified consensus nodes are still active. The process of checking participating nodes is further described below with reference to FIGS. 14-16. In addition, the determination of consensus 310 and the check of participating nodes 318 can be performed once for each added block. Therefore, in this example, the operations 310 and 318 are executed four times, once for each of the four blocks 314 added to the blockchain 112. After checking the participating nodes, the blockchain 112 includes node information for each consensus node 102 (1) 102 (4) participating in the consensus system.

320に示すように、クライアント計算装置108(1)または108(2)のうちの1つは、スマートコントラクトをコンセンサスノード102(1)〜102(4)のそれぞれに送信することができる。他の例として、クライアント計算装置108(1)または108(2)は、スマートコントラクトをマスタ/第1コンセンサスノード102(1)に送信し、マスタ/第1コンセンサスノード102(1)は、スマートコントラクトを他のコンセンサスノード102(2)〜102(4)に送信することができる。322で、スマートコントラクトの展開に関してコンセンサスに達し、コンセンサスノード102(1)〜102(4)のそれぞれは、ブロック324をそのブロックチェーン112に追加して、スマートコントラクトブロック324をブロックチェーン112に含める。他の例として、例えばコントラクトがブロックチェーンに既に追加されている場合のように、クライアントのうちの1人は、コントラクトに対する更新、例えばコントラクトを修正するための更新コード、またはコントラクトに関する他のデータを送信することができる。そのような場合、コンセンサスシステムによって実行される手順は同様であり得、コントラクトコード/データは、各コンセンサスノード102(1)〜102(4)でブロックチェーン112に追加され得る。326において、マスタ/第1コンセンサスノード102(1)は、コンセンサスシステム内の参加ノードを再度チェックすることができる。 As shown in 320, one of the client calculators 108 (1) or 108 (2) can send smart contracts to each of the consensus nodes 102 (1) to 102 (4). As another example, the client computer 108 (1) or 108 (2) sends a smart contract to the master / first consensus node 102 (1), and the master / first consensus node 102 (1) is a smart contract. Can be transmitted to other consensus nodes 102 (2) to 102 (4). At 322, a consensus is reached regarding the deployment of smart contracts, and each of the consensus nodes 102 (1) to 102 (4) adds block 324 to its blockchain 112 and includes smart contract block 324 in blockchain 112. As another example, one of the clients updates to the contract, such as the update code to modify the contract, or other data about the contract, for example if the contract has already been added to the blockchain. Can be sent. In such cases, the procedure performed by the consensus system may be similar and the contract code / data may be added to the blockchain 112 at each consensus node 102 (1) 102 (4). At 326, the master / first consensus node 102 (1) can recheck the participating nodes in the consensus system.

328で、クライアントA計算装置108(1)は、スマートコントラクトの実行が承認されていることを示すために、クライアントAのデジタル署名をコンセンサスシステムに送信することができる。例えば、クライアントA計算装置108(1)は、Aのデジタル署名をコンセンサスノード102(1)〜102(4)のそれぞれに送信することができる。あるいは、クライアントA計算装置108(1)は、Aのデジタル署名をマスタ/第1コンセンサスノード102(1)に送信し、マスタ/第1コンセンサスノード102(1)は他のコンセンサスノード102(2)〜102(4)にデジタル署名を送信してもよい。330において、Aのデジタル署名に関してコンセンサスに達し、コンセンサスノード102(1)〜102(4)のそれぞれは、ブロックチェーン112にブロック332を追加して、ブロックチェーン112にAのデジタル署名を有するブロック332を含める。336において、マスタ/第1コンセンサスノード102(1)は、コンセンサスシステム内の参加ノードを再度チェックすることができる。ブロック328、330、及び336が繰り返されて、Bのデジタル署名がブロックチェーン112に追加される。 At 328, the client A calculator 108 (1) can send the client A's digital signature to the consensus system to indicate that the execution of the smart contract is approved. For example, the client A computing device 108 (1) can transmit the digital signature of A to each of the consensus nodes 102 (1) to 102 (4). Alternatively, the client A computing device 108 (1) transmits the digital signature of A to the master / first consensus node 102 (1), and the master / first consensus node 102 (1) is the other consensus node 102 (2). A digital signature may be transmitted to 102 (4). At 330, a consensus was reached regarding A's digital signature, and each of the consensus nodes 102 (1) to 102 (4) added block 332 to blockchain 112 and block 332 with A's digital signature on blockchain 112. Include. At 336, the master / first consensus node 102 (1) can recheck the participating nodes in the consensus system. Blocks 328, 330, and 336 are repeated to add B's digital signature to blockchain 112.

338において、外部システム計算装置110はデータをコンセンサスシステムに送信することができる。例えば、スマートコントラクトの性質に応じて、外部システム110は、スマートコントラクトの実行に関連するデータを送信することができる。例えば、338において受信されたデータは、スマートコントラクトの1つまたは複数の前提条件を示す入力とすることができ、これが満たされると、1つまたは複数の機能の実行によって出力結果が生成されうる。例えば、外部システム110は、アプリケーションプログラミングインターフェース(API)の動作などを通じて、データをコンセンサスノード102(1)〜102(4)のそれぞれに送信することができる。あるいは、外部システム110は、データをマスタ/第1コンセンサスノード102(1)に送信し、マスタ/第1コンセンサスノード102(1)は他のコンセンサスノード102(2)〜102(4)にデータを送信し得る。340において、データに関してコンセンサスに達し、コンセンサスノード102(1)〜102(4)のそれぞれは、ブロックチェーン112にブロック342を追加してブロックチェーン112にデータを含める。344において、マスタ/第1コンセンサスノード102(1)は、コンセンサスシステムの参加ノードを再度チェックすることができる。 At 338, the external system calculator 110 can transmit data to the consensus system. For example, depending on the nature of the smart contract, the external system 110 may transmit data related to the execution of the smart contract. For example, the data received at 338 can be an input indicating one or more prerequisites for the smart contract, which can be met to produce output results by performing one or more functions. For example, the external system 110 can transmit data to each of the consensus nodes 102 (1) to 102 (4) through the operation of the application programming interface (API) or the like. Alternatively, the external system 110 transmits data to the master / first consensus node 102 (1), and the master / first consensus node 102 (1) transmits data to other consensus nodes 102 (2) to 102 (4). Can be sent. At 340, a consensus is reached regarding the data, and each of the consensus nodes 102 (1) to 102 (4) adds a block 342 to the blockchain 112 to include the data in the blockchain 112. At 344, the master / first consensus node 102 (1) can recheck the participating nodes of the consensus system.

348において、コンセンサスシステムは、スマートコントラクトを呼び出すために、外部システム110またはクライアント計算装置108から通信を受信することができる。一例として、通信は単にコンセンサスシステムへのデータの送信であり、マスタ/第1コンセンサスノード102(1)は、そのデータに基づいて、スマートコントラクトを呼び出すことを決定し得る。別の例として、通信は、スマートコントラクトを実行するための1つまたは複数のコンセンサスノードへの命令であり得る。通信は、マスタ/第1コンセンサスノード102(1)に対するものでもよく、複数のコンセンサスノードのうちの1つまたは全てに対するものでもよい。通信がマスタ/第1コンセンサスノード102(1)のみに対するものである場合、マスタ/第1コンセンサスノード102(1)は他のコンセンサスノードに通信を送ってコンセンサスを得てもよく、または、350で示すように、本明細書で論じた技術のいずれかを使用してコンセンサスを得てもよい。354において、マスタ/第1コンセンサスノード102(1)は、コンセンサスシステム内の参加ノードを再度チェックすることができる。 At 348, the consensus system can receive communications from the external system 110 or the client computing device 108 to call the smart contract. As an example, communication is simply the transmission of data to a consensus system, and the master / first consensus node 102 (1) may decide to call a smart contract based on that data. As another example, communication can be an instruction to one or more consensus nodes to execute a smart contract. The communication may be to the master / first consensus node 102 (1) or to one or all of the plurality of consensus nodes. If the communication is only to the master / first consensus node 102 (1), the master / first consensus node 102 (1) may send communication to another consensus node to reach consensus, or at 350. As shown, any of the techniques discussed herein may be used to reach consensus. At 354, the master / first consensus node 102 (1) can recheck the participating nodes in the consensus system.

356、358、360、及び362において、それぞれのコンセンサスノード102(1)〜102(4)は、338において外部システムから受信したデータに基づいて、スマートコントラクトを実行することができる。一例として、各コンセンサスノード102は、実行トランザクションとしてスマートコントラクトを実行し、少なくとも1つの入力としての外部システムからのデータに基づいて、少なくとも1つの出力を決定することができる。場合によっては、実行された各トランザクション結果は、個々のコンセンサスノード102(2)〜102(4)によってマスタ/第1コンセンサスノード102(1)に送信されてもよい。次いで、マスタ/第1コンセンサスノード102(1)は、結果をすべてのコンセンサスノードに送信することによって、実行された各トランザクション結果についてコンセンサスを求めることができる。364に示すように、コンセンサスに達することができ、実行トランザクション情報は、各コンセンサスノード102(1)〜102(4)によってブロック366として、それ自身のブロックチェーン112に追加される。370において、マスタ/第1コンセンサスノード102(1)は、コンセンサス364に参加した参加コンセンサスノードが変更されていないことを確認するために、コンセンサスシステム内の参加ノードを再度チェックすることができる。ブロック364及び370のプロセスは、各コンセンサスノード102(1)〜102(4)からの各トランザクション結果に対して繰り返すことができ、したがって368に示すように、4つのブロックを各コンセンサスノードのブロックチェーン112に追加することができる。 At 356, 358, 360, and 362, the respective consensus nodes 102 (1) 102 (4) can execute smart contracts based on the data received from the external system at 338. As an example, each consensus node 102 may execute a smart contract as an execution transaction and determine at least one output based on data from an external system as at least one input. In some cases, the result of each executed transaction may be transmitted by the individual consensus nodes 102 (2) to 102 (4) to the master / first consensus node 102 (1). The master / first consensus node 102 (1) can then seek consensus for each transaction result executed by transmitting the results to all consensus nodes. As shown in 364, a consensus can be reached and the execution transaction information is added to its own blockchain 112 as block 366 by each consensus node 102 (1) 102 (4). At 370, the master / first consensus node 102 (1) can recheck the participating nodes in the consensus system to ensure that the participating consensus nodes that participated in the consensus 364 have not changed. The process of blocks 364 and 370 can be repeated for each transaction result from each consensus node 102 (1) 102 (4), so the four blocks are blockchained for each consensus node as shown in 368. It can be added to 112.

図4は、本明細書のいくつかの実装形態による例示的ブロックチェーン部分400を示す。この例では、図3のブロックチェーン112の5番目、6番目、7番目のブロックが示されている。すなわち、ブロック316は第5ブロック(ブロック高さ4)、ブロック324は第6ブロック(ブロック高さ5)、ブロック332は第7ブロック(ブロック高さ6)である。さらに、図3に関して上述したように、ブロックチェーン112は、図4には示されていない他のブロックを含む。 FIG. 4 shows an exemplary blockchain portion 400 according to some implementations herein. In this example, the fifth, sixth, and seventh blocks of the blockchain 112 of FIG. 3 are shown. That is, block 316 is the fifth block (block height 4), block 324 is the sixth block (block height 5), and block 332 is the seventh block (block height 6). Further, as described above with respect to FIG. 3, the blockchain 112 includes other blocks not shown in FIG.

ブロックチェーン内のブロックの一次識別子は、そのブロックヘッダハッシュ402である。ブロックヘッダハッシュ402は、典型的にはSHA256アルゴリズムを使用してブロックヘッダ404を2回ハッシュすることによって作成されたデジタル指紋であるが、他の技術及び/またはアルゴリズムを使用してもよい。結果として生じるブロックヘッダハッシュ402は、対応するブロックのヘッダを一意に表す32バイトのハッシュ値である。ブロックヘッダハッシュは、特定のブロックのブロックヘッダ404を単にハッシュすることによって、任意のコンセンサスノードまたはユーザによって独立して導出することができる。 The primary identifier of the block in the blockchain is its block header hash 402. The block header hash 402 is a digital fingerprint typically created by hashing the block header 404 twice using the SHA256 algorithm, but other techniques and / or algorithms may be used. The resulting block header hash 402 is a 32-byte hash value that uniquely represents the header of the corresponding block. The block header hash can be independently derived by any consensus node or user by simply hashing the block header 404 of a particular block.

典型的には、ブロックヘッダハッシュ402は、ブロックがブロックチェーンの一部として記憶されるとき、ブロックデータ構造内に含まれない。むしろ、ブロックヘッダハッシュ402は、ノードによって計算され得、例えば、ブロックがノード上で生成される、または別のノードから受信されるときに計算される。一例として、ブロックチェーンを維持する各ノードは、ブロックチェーン内のすべてのブロックについてのブロックヘッダハッシュ402及びブロックチェーンについての他のメタデータを含む、対応するメタデータデータ構造(図4には示さず)を維持し得る。 Typically, the block header hash 402 is not included in the block data structure when the block is stored as part of the blockchain. Rather, the block header hash 402 can be calculated by a node, for example when a block is generated on a node or received from another node. As an example, each node that maintains a blockchain has a corresponding metadata data structure (not shown in FIG. 4) that includes a block header hash 402 for all blocks in the blockchain and other metadata about the blockchain. ) Can be maintained.

さらに、ブロックチェーン内のブロックは、ブロック高さ406によって識別することができる。ブロック高さ406は、ブロックチェーン内のブロックの順序位置である。たとえば、ブロックチェーン内に生成された最初のブロック(ジェネシスブロック)のブロックの高さは0である。ブロックチェーンにブロックが追加されると、増加する正の整数を使用して順番に番号が付けられる。前のブロックに追加される後続の各ブロックは、ブロックチェーン内で1つ上の位置にある。ブロック高さ406もまた、通常、ブロックのデータ構造の一部ではない、すなわち、ブロック内に格納されていない。そうではなく、各コンセンサスノード102または他の計算装置は、ブロックチェーン112内の各ブロックの位置(ブロック高さ406)を動的に識別し得る。あるいは、場合によっては、ブロック高さ情報は、メタデータとしてコンセンサスノードによって記憶され得る。したがって、図示の例では、ブロック316はブロック高さ値=4を有し、ブロック324はブロック高さ値=5を有し、ブロック332はブロック高さ値=6を有する。 In addition, the blocks in the blockchain can be identified by the block height 406. The block height 406 is the sequential position of the blocks in the blockchain. For example, the height of the block of the first block (Genesis block) generated in the blockchain is 0. As blocks are added to the blockchain, they are numbered in order using increasing positive integers. Each subsequent block added to the previous block is one position higher in the blockchain. The block height 406 is also usually not part of the block's data structure, i.e. not stored within the block. Instead, each consensus node 102 or other computing device may dynamically identify the position of each block within the blockchain 112 (block height 406). Alternatively, in some cases, the block height information may be stored by the consensus node as metadata. Therefore, in the illustrated example, block 316 has a block height value = 4, block 324 has a block height value = 5, and block 332 has a block height value = 6.

ブロックヘッダ404に加えて、各ブロックはブロック本体408を含み、ブロック本体408は、ブロックによって格納されているデータまたは他の情報を含むことができる。例えば、図示の例では、ブロック316は、コンセンサスシステムに参加しているコンセンサスノード102のうちの1つに対するノード構成情報データ構造216を含む参加ノード情報410を記憶する。さらに、ブロック324のブロック本体408は、スマートコントラクトコード414(または少なくともスマートコントラクトソースコードのハッシュ)などのスマートコントラクト情報412、及びスマートコントラクトの参加者の名前、連絡先情報などのスマートコントラクト参加者ID416、公開鍵、その他の識別情報などを含む。さらに、ブロック332のブロック本体408は、各コントラクト参加者のデジタル署名420(例えば、公開鍵及びスマートコントラクトのソースコードハッシュなどの暗号化ハッシュ)及びデジタル署名が受信された時間422を含むユーザ署名418を含む。いくつかの例では、スマートコントラクト参加者の公開鍵がデジタル署名420として、認証されるデータの少なくとも一部の暗号化ハッシュ値(例えば、コントラクトコード自体、コントラクトコードを送信するメッセージ等)と共に含まれてもよい。 In addition to the block header 404, each block contains a block body 408, which block body 408 can contain data or other information stored by the block. For example, in the illustrated example, block 316 stores participating node information 410, including node configuration information data structure 216 for one of the consensus nodes 102 participating in the consensus system. Further, the block body 408 of the block 324 has smart contract information 412 such as smart contract code 414 (or at least a hash of smart contract source code), and smart contract participant ID 416 such as smart contract participant name and contact information. , Public key, other identification information, etc. Further, the block body 408 of block 332 includes a user signature 418 including a digital signature 420 of each contract participant (eg, an encrypted hash such as a public key and a source code hash of a smart contract) and a time 422 when the digital signature was received. including. In some examples, the smart contract participant's public key is included as a digital signature 420, along with at least a portion of the encrypted hash value of the authenticated data (eg, the contract code itself, the message sending the contract code, etc.). You may.

各ブロックのブロックヘッダ404は、直前ブロックの直前ブロックヘッダハッシュ428を含む。したがって、ブロック324は、ブロック316のブロックヘッダハッシュである直前ブロックヘッダハッシュ428を含む。したがって、ブロックチェーン112内のブロックの順序は、各ブロック内の直前ブロックヘッダハッシュ428と、各ブロックに対して計算されるブロックヘッダハッシュ402とを比較することによって決定され得る。 The block header 404 of each block includes the immediately preceding block header hash 428 of the immediately preceding block. Therefore, block 324 includes the previous block header hash 428, which is the block header hash of block 316. Therefore, the order of the blocks in the blockchain 112 can be determined by comparing the previous block header hash 428 in each block with the block header hash 402 calculated for each block.

さらに、ブロックヘッダ404は、ブロック本体ハッシュ430及びブロックが作成された時間に対応するタイムスタンプ432、ならびにこの例には示されていない他の可能な情報を含むことができる。場合によっては、ブロック本体ハッシュ430は、ブロックチェーン112が多数のトランザクションを格納するために使用される場合のように、マークル木として計算されてもよい。しかし、他の場合では、上述のSHA256ハッシュアルゴリズムを使用するなど、他の技法を使用してブロック本体408をハッシュすることができる。いずれの場合も、ブロック本体408のハッシュ430がブロックヘッダ404に含まれているため、そしてブロックヘッダ404のブロックヘッダハッシュ402を使用してブロックを識別しているので、ブロックヘッダハッシュ402の値を変更することなくブロック本体408のデータを変更することは不可能であり、それによって、ブロックの識別子を変更し、ブロックの内容が変更されたという証拠を提供することになる。 In addition, the block header 404 can include a block body hash 430 and a time stamp 432 corresponding to the time the block was created, as well as other possible information not shown in this example. In some cases, the block body hash 430 may be calculated as a Merkle tree, as in the case where the blockchain 112 is used to store a large number of transactions. However, in other cases, the block body 408 can be hashed using other techniques, such as using the SHA256 hash algorithm described above. In either case, since the hash 430 of the block body 408 is included in the block header 404, and because the block header hash 402 of the block header 404 is used to identify the block, the value of the block header hash 402 is used. It is not possible to change the data in the block body 408 without changing it, thereby changing the block identifier and providing evidence that the contents of the block have changed.

図5は、本明細書のいくつかの実装形態による例示的なブロックチェーンの部分500を示す。この例では、図3のブロックチェーン112の9番目、10番目、及び11番目のブロックが示される。すなわち、ブロック342は第9ブロック(ブロック高さ8)、ブロック352は第10ブロック(ブロック高さ9)、ブロック366は第11ブロック(ブロック高さ10)である。さらに、図3に関して上述したように、ブロックチェーン112は、図5には示されていない他のブロックを含む。 FIG. 5 shows an exemplary blockchain portion 500 according to some implementations herein. In this example, the 9th, 10th, and 11th blocks of the blockchain 112 of FIG. 3 are shown. That is, block 342 is the 9th block (block height 8), block 352 is the 10th block (block height 9), and block 366 is the 11th block (block height 10). Further, as described above with respect to FIG. 3, the blockchain 112 includes other blocks not shown in FIG.

図示の例では、ブロック342のブロック本体408は、外部システムから受信したデータを受信データ502として格納する。いくつかの例では、受信データ502に関するメタデータ504も、ブロック本体408に格納することができ、例えばデータが受信された日時506、データのソース508及び/または他の様々な種類のメタデータを格納できる。さらに、ブロック352のブロック本体408は、スマートコントラクトを呼び出す通信に関する情報510を含み、例えば、スマートコントラクトを呼び出す通信または命令のコピー、通信のソース、通信が受信された時間、使用するデータを識別する情報などである。さらに、ブロック366のブロック本体408は、スマートコントラクトの実行からの実行されたトランザクション512についての情報を含む。たとえば、実行されたトランザクション512は、1つまたは複数の入力514及び1つまたは複数の出力516を含むことができ、その内容はスマートコントラクトの性質に依存し得る。たとえば、入力には、コントラクト参加者の公開鍵、コントラクト参加者の秘密鍵による署名、及び入力データなどのその他の情報が含まれ得る。さらに、出力は、出力値及び/または量、及び他のコントラクト参加者の公開鍵を含み得る。さらに、ブロック本体408はスマートコントラクトの実行に関する情報518を格納することができ、例えば、図13に関して以下でさらに説明するように、スマートコントラクトを実行したコンセンサスノードの識別子、コントラクトが実行された時間、実行プロセスのログなどが格納され得る。 In the illustrated example, the block body 408 of the block 342 stores the data received from the external system as the received data 502. In some examples, the metadata 504 with respect to the received data 502 can also be stored in the block body 408, eg, the date and time 506 when the data was received, the source 508 of the data and / or various other types of metadata. Can be stored. Further, the block body 408 of block 352 contains information 510 regarding the communication that calls the smart contract, and identifies, for example, a copy of the communication or instruction that calls the smart contract, the source of the communication, the time the communication was received, and the data to be used. Information etc. Further, the block body 408 of block 366 contains information about the executed transaction 512 from the execution of the smart contract. For example, the executed transaction 512 can include one or more inputs 514 and one or more outputs 516, the contents of which may depend on the nature of the smart contract. For example, the input may include the contract participant's public key, the contract participant's private key signature, and other information such as input data. In addition, the output may include the output value and / or quantity, and the public keys of other contract participants. Further, the block body 408 can store information 518 regarding the execution of the smart contract, for example, the identifier of the consensus node that executed the smart contract, the time the contract was executed, as described further below with respect to FIG. Execution process logs etc. can be stored.

図6、8、10、12、14、及び16〜19は、いくつかの実装形態による例示的なプロセスを示す流れ図である。プロセスは、一連の動作を表す論理的な流れ図におけるブロックの集まりとして示されており、それらの一部または全部は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実施することができる。ソフトウェアの文脈では、ブロックは、1つまたは複数のプロセッサによって実行されると、列挙された動作を実行するようにプロセッサをプログラムする、1つまたは複数の計算機可読媒体に格納された計算機実行可能命令を表し得る。一般に、計算機実行可能命令は、特定の機能を実行するかまたは特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。ブロックが記載されている順序は、限定として解釈されるべきではない。説明されたブロックのうちの任意の数は、プロセスまたは代替プロセスを実装するために任意の順序で及び/または並行して組み合わせることができ、すべてのブロックを実行する必要はない。説明のために、プロセスは、本明細書の例に記載されている環境、フレームワーク、及びシステムを参照して説明されているが、プロセスは、多種多様な他の環境、フレームワーク、及びシステムで実施され得る。 6, 8, 10, 12, 14, and 16-19 are flow diagrams illustrating exemplary processes in several implementations. A process is shown as a collection of blocks in a logical flow diagram that represents a series of operations, some or all of which can be implemented in hardware, software, or a combination thereof. In the context of software, a block, when executed by one or more processors, programs the processors to perform the listed actions, computer-executable instructions stored on one or more computer-readable media. Can represent. In general, computer executable instructions include routines, programs, objects, components, data structures, etc. that perform a particular function or implement a particular data type. The order in which the blocks are listed should not be construed as limiting. Any number of the described blocks can be combined in any order and / or in parallel to implement a process or alternative process, and not all blocks need to be executed. For purposes of illustration, the process is described with reference to the environments, frameworks, and systems described in the examples herein, but the process is a wide variety of other environments, frameworks, and systems. Can be carried out at.

図6は、いくつかの実装形態による参加ノード情報をブロックチェーンに追加するための例示的なプロセス600を示す流れ図である。プロセス600は、図3のブロック308及び310に関して上述したように、各コンセンサスノード102によって実行することができる。例えば、スマートコントラクト監査プログラム118は、各コンセンサスノード上で実行され、コンセンサスノードの1つまたは複数のプロセッサを、プロセス600を実行するように構成してもよい。 FIG. 6 is a flow chart showing an exemplary process 600 for adding participating node information in some implementations to the blockchain. Process 600 can be performed by each consensus node 102, as described above for blocks 308 and 310 in FIG. For example, the smart contract audit program 118 may be run on each consensus node and one or more processors in the consensus node may be configured to run process 600.

602において、計算装置は、ノード構成情報データ構造から、コンセンサスノード情報を取得することができる。例えば、上述したように、各コンセンサスノードは、自身のノード構成情報データ構造から得られたそれ自体に関する情報を、マスタノードに提供し、マスタノードは、その情報をブロックチェーンのブロックに追加するためのコンセンサスを求めてもよい。いくつかの例では、各コンセンサスノード上のスマートコントラクト監査プログラム118は、プロセス600を実行するようにコンセンサスノードの1つまたは複数のプロセッサを構成することができる。 At 602, the computing device can acquire consensus node information from the node configuration information data structure. For example, as described above, each consensus node provides the master node with information about itself obtained from its own node configuration information data structure, and the master node adds that information to the blocks in the blockchain. You may seek the consensus of. In some examples, the smart contract audit program 118 on each consensus node can configure one or more processors on the consensus node to perform process 600.

604において、計算装置は、コンセンサスに達したかどうかを判定することができる。もしそうであれば、プロセスはブロック606へ進む。そうでなければ、プロセスはブロック608へ進む。 At 604, the calculator can determine if a consensus has been reached. If so, the process proceeds to block 606. Otherwise, the process proceeds to block 608.

606において、計算装置は、ノードに関するノード情報をブロックチェーン内の新しいブロックに追加することができる。上述のように、プロセス600は、コンセンサスシステムに参加している各ノードに対して繰り返されてよい。 At 606, the compute device can add node information about a node to a new block in the blockchain. As mentioned above, process 600 may be repeated for each node participating in the consensus system.

608において、コンセンサスに達していない場合、計算装置はコンセンサスを待ち、及び/またはブロック602に戻ることができる。 At 608, if the consensus has not been reached, the calculator can wait for consensus and / or return to block 602.

図7は、いくつかの実装形態によるコンセンサスノード構成情報データ構造216を示す。この例では、データ構造216は、コンセンサスノード識別子(ID)702、コンセンサスノード位置704、コンセンサスノード所有者及び/またはオペレータ706、ならびにコンセンサスノードIPアドレス708を含む。いくつかの例では、各コンセンサスノード102は、独自のノード構成情報データ構造216を格納することができる。さらに、場合によっては、所有者及び/またはオペレータ706は、上述したユーザ119のうちの1人など、スマートコントラクトの参加者のうちの1人であり得る。 FIG. 7 shows a consensus node configuration information data structure 216 according to some implementations. In this example, the data structure 216 includes a consensus node identifier (ID) 702, a consensus node position 704, a consensus node owner and / or operator 706, and a consensus node IP address 708. In some examples, each consensus node 102 can store its own node configuration information data structure 216. Further, in some cases, the owner and / or operator 706 may be one of the participants in the smart contract, such as one of the users 119 described above.

図8は、いくつかの実装形態による、デジタル署名及び/またはスマートコントラクトソースコードをブロックチェーンに追加するための例示的なプロセス800を示す流れ図である。いくつかの例では、プロセス800は、1つまたは複数のコンセンサスノード102または他の適切な計算装置によって実行され得る。例えば、スマートコントラクト監査プログラム118は、コンセンサスノード上で実行されて、プロセス800を実行するようにコンセンサスノードの1つまたは複数のプロセッサを構成することができる。 FIG. 8 is a flow diagram illustrating an exemplary process 800 for adding a digital signature and / or smart contract source code to the blockchain in several implementations. In some examples, process 800 may be performed by one or more consensus nodes 102 or other suitable computing devices. For example, the smart contract audit program 118 can be run on a consensus node and configure one or more processors in the consensus node to perform process 800.

802において、計算装置は、ブロックチェーンに追加されるスマートコントラクト及び/またはデジタル署名を受信することができる。例えば、クライアントは、コンセンサスノードによるスマートコントラクトの実行を可能にするために、スマートコントラクト及びデジタル署名をコンセンサスノードに送信することができる。 At 802, the calculator can receive smart contracts and / or digital signatures added to the blockchain. For example, the client can send a smart contract and a digital signature to the consensus node to allow the consensus node to execute the smart contract.

804において、計算装置は、コンセンサスに達したかどうかを判定することができる。もしそうであれば、プロセスはブロック806に進む。そうでない場合、プロセスはブロック808に進む。 At 804, the calculator can determine if a consensus has been reached. If so, the process proceeds to block 806. If not, the process proceeds to block 808.

806において、計算装置は、スマートコントラクトのソースコード及び/またはデジタル署名をブロックチェーンの新しいブロックに追加することができる。いくつかの例では、スマートコントラクトとデジタル署名をブロックチェーンの別々のブロックに追加することができ、他の例では、スマートコントラクトとデジタル署名をブロックチェーンの同じブロックに追加することができる。他のクライアント情報及び/またはメタデータも上述のようにブロックチェーンに追加されてよく、例えば、スマートコントラクトまたはデジタル署名が受信された時間、スマートコントラクトまたはデジタル署名が受信されたソースなどが追加さてもよい。 At 806, the computing unit can add the source code and / or digital signature of the smart contract to a new block in the blockchain. In some examples, smart contracts and digital signatures can be added to separate blocks of the blockchain, in other examples smart contracts and digital signatures can be added to the same block of blockchain. Other client information and / or metadata may also be added to the blockchain as described above, such as the time the smart contract or digital signature was received, the source the smart contract or digital signature was received, etc. Good.

808において、コンセンサスに達していない場合、計算装置はコンセンサスを待つことができる。 At 808, if the consensus has not been reached, the calculator can wait for the consensus.

図9は、いくつかの実装形態による署名及びスマートコントラクトソースコードデータ構造900を示す。場合によっては、データ構造900内の情報の一部または全部をスマートコントラクト監査プログラム118によってブロックチェーンのブロックに追加することができる。この例では、データ構造900は、ソースコードハッシュ902を含み、これは、スマートコントラクトのオリジナルのソースコードにハッシュアルゴリズムを適用することによって取得されたハッシュ値である。さらに、データ構造900は、スマートコントラクトID904を含むことができ、これは、展開されたスマートコントラクトの一意の識別子、あるいは個別に識別可能な識別子とすることができる。さらに、データ構造900は、コントラクト参加者の公開鍵を含むことができ、これは、コントラクト参加者の識別情報として機能し、さらにコントラクト参加者のデジタル署名として機能することができる FIG. 9 shows a signature and smart contract source code data structure 900 in several implementations. In some cases, some or all of the information in the data structure 900 can be added to the blocks of the blockchain by the smart contract audit program 118. In this example, the data structure 900 includes a source code hash 902, which is the hash value obtained by applying a hash algorithm to the original source code of the smart contract. Further, the data structure 900 can include a smart contract ID 904, which can be a unique identifier of the expanded smart contract, or an individually identifiable identifier. In addition, the data structure 900 can include the contract participant's public key, which can serve as the contract participant's identification information and further as the contract participant's digital signature.

一例として、ソースコードハッシュ902は、コントラクト参加者の秘密鍵を使用して暗号化されてもよい。公開鍵906は、ソースコードハッシュを解読するためにコンセンサスノードによって使用されてもよい。復号化されたソースコードハッシュは、ソースコードの独立に決定されたソースコードハッシュと比較されて、それらが一致するかどうかを判定することができる。暗号化ソースコードハッシュは、コントラクト参加者の秘密鍵を使用して暗号化されるので、デジタル署名は、暗号化ソースコードハッシュがコントラクト参加者によって暗号化されたという証拠を提供する。さらに、本明細書の開示の恩恵を受ける当業者には明らかなように、他の様々な技術を使用してスマートコントラクトのデジタル署名を提供することができる。いくつかの例では、スマートコントラクトへの参加者全員がデータ構造900における情報を提供することができる。いくつかの例では、一人の参加者によって提供されるソースコードハッシュ902を他の参加者によって提供されるソースコードハッシュ902と比較し、両方の参加者が同じスマートコントラクトに署名したことを確認できる。 As an example, the source code hash 902 may be encrypted using the contract participant's private key. The public key 906 may be used by the consensus node to decrypt the source code hash. The decrypted source code hashes can be compared with the independently determined source code hashes of the source code to determine if they match. Since the encrypted source code hash is encrypted using the contract participant's private key, the digital signature provides evidence that the encrypted source code hash was encrypted by the contract participant. In addition, a variety of other techniques can be used to provide digital signatures for smart contracts, as will be apparent to those skilled in the art who will benefit from the disclosure herein. In some examples, all participants in a smart contract can provide information in the data structure 900. In some examples, the source code hash 902 provided by one participant can be compared to the source code hash 902 provided by another participant to ensure that both participants have signed the same smart contract. ..

図10は、いくつかの実装形態による、外部システムから受信した外部データをブロックチェーンに追加するための例示的なプロセス1000を示す流れ図である。いくつかの例では、プロセス1000は、1つまたは複数のコンセンサスノード102または他の適切な計算装置によって実行され得る。例えば、スマートコントラクト監査プログラム118は、コンセンサスノード上で実行されて、プロセス1000を実行するようにコンセンサスノードの1つまたは複数のプロセッサを構成することができる。 FIG. 10 is a flow diagram illustrating an exemplary process 1000 for adding external data received from an external system to the blockchain, according to some implementations. In some examples, process 1000 may be performed by one or more consensus nodes 102 or other suitable computing devices. For example, the smart contract audit program 118 can be run on a consensus node and configure one or more processors in the consensus node to perform process 1000.

1002において、計算装置は、外部システム計算装置から外部データを受信することができる。例えば、外部システム計算装置上のシステムプログラムは、外部データをコンセンサスシステム内の1つまたは複数のコンセンサスノードに送信することができる。 At 1002, the calculator can receive external data from the external system calculator. For example, a system program on an external system computing device can send external data to one or more consensus nodes in the consensus system.

1004において、計算装置は、コンセンサスがあるかどうかを判定することができる。もしそうであれば、プロセスはブロック1006に進む。そうでなければ、プロセスはブロック1008に進む。 At 1004, the calculator can determine if there is consensus. If so, the process proceeds to block 1006. Otherwise, the process proceeds to block 1008.

1006において、計算装置は、外部データ及び外部データのためのメタデータをブロックチェーンに追加することができる。例えば、外部データのメタデータは、実際のデータが受信された時間、外部データが受信されたソース、及び/または外部データに関連する他の情報を含むことができる。 At 1006, the calculator can add external data and metadata for the external data to the blockchain. For example, the metadata of the external data can include the time the actual data was received, the source from which the external data was received, and / or other information related to the external data.

1008において、コンセンサスに達していない場合、計算装置はコンセンサスを待つことができる。 In 1008, if the consensus has not been reached, the calculator can wait for the consensus.

図11は、いくつかの実装形態による外部データ情報データ構造1100を示す。この例では、データ構造1100は、外部データをコンセンサスシステムに送信した外部システム計算装置の識別子(ID)1102を含む。さらに、データ構造1100は、外部システムから外部データを受信した時間1104、データソース1106、及びデータ自体1108を含むことができる。例えば、データソースは、温度計またはその他のセンサ、株価指数システム、銀行取引の情報源などのような、データの1つまたは複数の発信元とすることができる。上述のように、データ構造1100からの情報は、後でスマートコントラクト実行の監査を可能にするため、ブロックチェーンブロックの本体に含めることができる。 FIG. 11 shows an external data information data structure 1100 according to some implementations. In this example, the data structure 1100 includes an identifier (ID) 1102 of an external system computing device that has transmitted external data to the consensus system. Further, the data structure 1100 can include a time 1104 when the external data is received from the external system, a data source 1106, and the data itself 1108. For example, the data source can be one or more sources of data, such as a thermometer or other sensor, a stock index system, a source of banking transactions, and so on. As mentioned above, the information from the data structure 1100 can be included in the body of the blockchain block to allow later auditing of smart contract execution.

図12は、いくつかの実装形態による、トランザクション情報及びコントラクト実行情報をブロックチェーンに追加するための例示的なプロセス1200を示す流れ図である。いくつかの例では、プロセス1200は、1つまたは複数のコンセンサスノード102または他の適切な計算装置によって実行され得る。例えば、スマートコントラクト監査プログラム118は、コンセンサスノード上で実行され、コンセンサスノードの1つまたは複数のプロセッサを、スマートコントラクト実行情報をブロックチェーンに追加するように構成することができ、コンセンサスプログラム116は、1つまたは複数のプロセッサを、トランザクション情報をブロックチェーンに追加するように構成し得る。 FIG. 12 is a flow chart showing an exemplary process 1200 for adding transaction information and contract execution information to the blockchain according to some implementations. In some examples, process 1200 may be performed by one or more consensus nodes 102 or other suitable computing devices. For example, the smart contract audit program 118 may be run on a consensus node and one or more processors of the consensus node may be configured to add smart contract execution information to the blockchain. One or more processors may be configured to add transaction information to the blockchain.

1202において、計算装置は、外部システムから受信した外部データに基づいてスマートコントラクトを実行することができる。例えば、いくつかの例では、外部データの受信はスマートコントラクトの呼び出しを引き起こし得る。他の例では、命令または他の通信がスマートコントラクトの実行を呼び出すことができる。 At 1202, the calculator can execute smart contracts based on external data received from the external system. For example, in some cases, receiving external data can trigger a smart contract call. In another example, an instruction or other communication can call the execution of a smart contract.

1204において、スマートコントラクトの実行に続いて、計算装置は、コンセンサスノードから、実行されたスマートコントラクトに対応するトランザクション情報及びコントラクト実行情報を受信することができる。例えば、トランザクション情報は、スマートコントラクトの入力及び実行の結果を含み得る。コントラクト実行情報は、コントラクトが実行された時間、コントラクトを実行したコンセンサスノードなど、スマートコントラクトの実行に関する追加情報を含むことができる。例えば、上述のように、各コンセンサスノードは、トランザクション情報及びスマートコントラクト実行情報をマスタノードに提供し、マスタノードは各コントラクト実行結果についてコンセンサスノードからのコンセンサスを求めることができる。 At 1204, following the execution of the smart contract, the computing device can receive transaction information and contract execution information corresponding to the executed smart contract from the consensus node. For example, transaction information may include the results of input and execution of smart contracts. The contract execution information can include additional information about the execution of the smart contract, such as the time the contract was executed and the consensus node that executed the contract. For example, as described above, each consensus node provides transaction information and smart contract execution information to the master node, and the master node can obtain a consensus from the consensus node for each contract execution result.

1206において、計算装置は、コンセンサスがあるかどうかを判定することができる。もしそうであれば、プロセスはブロック1208に進む。そうでなければ、プロセスはブロック1210に進む。 At 1206, the calculator can determine if there is consensus. If so, the process proceeds to block 1208. Otherwise, the process proceeds to block 1210.

1208において、計算装置は、トランザクション情報及び対応するスマートコントラクト実行情報をブロックチェーン内のブロックに追加することができる。例えば、トランザクション情報及び対応するスマートコントラクト実行情報は、ブロックチェーン内の同じブロックに含まれてもよく、あるいは、ブロックチェーン内の別々のブロックに含まれてもよい。プロセス1200は、各コンセンサスノードによって生成された各結果について繰り返すことができる。 At 1208, the compute device can add transaction information and corresponding smart contract execution information to blocks in the blockchain. For example, transaction information and corresponding smart contract execution information may be contained in the same block in the blockchain, or may be contained in separate blocks in the blockchain. Process 1200 can be repeated for each result produced by each consensus node.

1210において、コンセンサスに達していない場合、計算装置はコンセンサスを待つことができる。 At 1210, if the consensus has not been reached, the calculator can wait for the consensus.

図13は、いくつかの実装形態による例示的なスマートコントラクト実行情報データ構造1300を示す。この例では、データ構造1300は、コンセンサスノード識別子(ID)1302、実行時間1304、及び実行ログ1306を含む。いくつかの例では、各コンセンサスノード102は、スマートコントラクトを実行するときにこのデータ構造1300を生成し得る。データ構造1300内の情報は、スマートコントラクト監査プログラム118によってブロックに追加することができ、そのブロックは、図5を参照して上述したように、対応するトランザクション情報も含む。または、その情報は、トランザクション入出力情報を含むブロックとは別のブロックチェーン内のブロックに情報が含まれていてもよい。 FIG. 13 shows an exemplary smart contract execution information data structure 1300 in several implementations. In this example, data structure 1300 includes consensus node identifier (ID) 1302, execution time 1304, and execution log 1306. In some examples, each consensus node 102 may generate this data structure 1300 when executing a smart contract. The information in the data structure 1300 can be added to the block by the smart contract audit program 118, which block also includes the corresponding transaction information as described above with reference to FIG. Alternatively, the information may be contained in a block in a block chain different from the block containing the transaction input / output information.

図14は、いくつかの実装形態による参加ノードをチェックするための例示的なプロセス1400を示す流れ図である。いくつかの例では、プロセス1400は、1つまたは複数のコンセンサスノード102または他の適切な計算装置によって実行され得る。例えば、スマートコントラクト監査プログラム118は、マスタコンセンサスノード上で実行されて、プロセス1400を実行するようにマスタコンセンサスノードの1つ以上のプロセッサを構成し得る。プロセス1400は、参加ノードをチェックするためのプロセスの第1の例である。後に説明されるプロセス1600は、参加ノードをチェックするためのプロセスの第2の例であり、1つまたは複数の監査された条件が満たされないときにコンセンサスシステムを停止させる自己監査管理機能を含む。 FIG. 14 is a flow diagram illustrating an exemplary process 1400 for checking participating nodes in several implementations. In some examples, process 1400 may be performed by one or more consensus nodes 102 or other suitable computing devices. For example, the smart contract audit program 118 may be executed on the master consensus node and configure one or more processors of the master consensus node to perform process 1400. Process 1400 is the first example of a process for checking participating nodes. Process 1600, described below, is a second example of a process for checking participating nodes and includes a self-audit management function that shuts down the consensus system when one or more audited conditions are not met.

1402において、マスタノードとして動作する計算装置は、コンセンサスシステム内の参加しているコンセンサスノードをチェックするためにクエリを送信することができる。例えば、コンセンサスノードにおいて障害が発生したこと、新しいコンセンサスノードが追加されたことなどが起こり得る。マスタノードは、参加ノードデータ構造218を参照して、どのコンセンサスノードが現在コンセンサスシステムに含まれているかを判定することができる。参加ノードデータ構造218の詳細は、図15に関して以下で論じる。 At 1402, a computer acting as a master node can send a query to check for participating consensus nodes in the consensus system. For example, a failure may occur in the consensus node, a new consensus node may be added, and so on. The master node can refer to the participating node data structure 218 to determine which consensus node is currently included in the consensus system. Details of the participating node data structure 218 are discussed below with respect to FIG.

1404において、計算装置は、参加ノードデータ構造内のすべてのコンセンサスノードがクエリに対する応答を返したかどうかを判定することができる。もしそうであれば、プロセスはブロック1406に進む。そうでない場合、プロセスはブロック1408に進むことができる。 At 1404, the calculator can determine if all consensus nodes in the participating node data structure have returned a response to the query. If so, the process proceeds to block 1406. If not, the process can proceed to block 1408.

1406において、コンセンサスシステムに参加しているコンセンサスノードが変更されていないと計算装置が判定した場合、プロセスは終了し、ノードは次の処理に進むことができる。例えば、コンセンサスシステム内のコンセンサスノードの状態が変更されていない場合、ブロックチェーンに含まれるコンセンサスノードに関する情報は修正される必要はない。 In 1406, if the computer determines that the consensus node participating in the consensus system has not changed, the process ends and the node can proceed to the next process. For example, if the state of the consensus node in the consensus system has not changed, the information about the consensus node contained in the blockchain does not need to be modified.

1408において、いずれかのコンセンサスノードがクエリに対して肯定的な応答を返さない場合、及び/または新しいコンセンサスノードが応答を返す場合、計算装置は、参加ノードデータ構造において、実際に参加しているコンセンサスノードに関する情報を更新し得る。 At 1408, if any consensus node does not return a positive response to the query and / or a new consensus node returns a response, the computer is actually participating in the participating node data structure. Information about consensus nodes can be updated.

1410において、計算装置は、ブロックチェーンにおいて実際に参加しているノードの情報を更新することができる。例えば、図3のブロック308及び310で説明したように、コンセンサスシステムに参加しているノードのノード情報をブロックチェーンに追加することができる。加えて、ノードがもはやコンセンサスシステムに参加していない場合、そのノードがコンセンサスに参加していないという情報をブロックチェーンに追加することができる。 At 1410, the computer can update the information of the nodes that are actually participating in the blockchain. For example, as described in blocks 308 and 310 of FIG. 3, node information of nodes participating in the consensus system can be added to the blockchain. In addition, if the node is no longer participating in the consensus system, information that the node is no longer participating in the consensus can be added to the blockchain.

1412において、計算装置は、改訂コンセンサスグループを形成することができる。例えば、参加ノードデータ構造218に基づいて、計算装置は、コンセンサスノードの新しいコンセンサスグループを決定することができる。次いで、計算装置は次の処理に進み得る。 At 1412, the computing device can form a revised consensus group. For example, based on the participating node data structure 218, the calculator can determine a new consensus group for the consensus node. The calculator can then proceed to the next process.

図15は、いくつかの実装形態による参加ノードデータ構造218の一例を示す。この例では、データ構造218は、コンセンサスノード識別子(ID)1502、コンセンサスノードがアクティブであるかどうかについてのインジケータ1504、コンセンサスノード位置1506、コンセンサスノード所有者及び/またはオペレータ1508、及びコンセンサスノードIPアドレス1510を含む。インジケータ1504に関して、第1の値は対応するノードがコンセンサスシステム内でアクティブであることを示し、第2の値は対応するコンセンサスノードがコンセンサスシステム内で現在アクティブではないことを示す。上述のように、場合によっては、所有者及び/またはオペレータ1506は、上述したユーザ119のうちの1人のような、スマートコントラクトの参加者のうちの1人であり得る。 FIG. 15 shows an example of a participating node data structure 218 in several implementations. In this example, the data structure 218 is a consensus node identifier (ID) 1502, an indicator of whether the consensus node is active 1504, a consensus node position 1506, a consensus node owner and / or operator 1508, and a consensus node IP address. Includes 1510. For indicator 1504, the first value indicates that the corresponding node is active in the consensus system and the second value indicates that the corresponding consensus node is not currently active in the consensus system. As mentioned above, in some cases, the owner and / or operator 1506 can be one of the participants in the smart contract, such as one of the users 119 described above.

図16は、いくつかの実装形態による参加ノードをチェックするための例示的なプロセス1600を示す流れ図である。いくつかの例では、プロセス1600は、1つまたは複数のコンセンサスノード102または他の適切な計算装置によって実行され得る。例えば、スマートコントラクト監査プログラム118は、マスタコンセンサスノード上で実行されて、プロセス1600を実行するようにマスタコンセンサスノードの1つまたは複数のプロセッサを構成することができる。以下で説明されるプロセス1600は、参加ノードチェックプロセスの第2の例であり、1つ以上の監査対象条件が満たされていない場合にコンセンサスシステムを停止する自己監査管理機能を含む。 FIG. 16 is a flow diagram illustrating an exemplary process 1600 for checking participating nodes in several implementations. In some examples, process 1600 may be performed by one or more consensus nodes 102 or other suitable computing devices. For example, the smart contract audit program 118 can be run on a master consensus node to configure one or more processors in the master consensus node to perform process 1600. Process 1600, described below, is a second example of the participating node check process and includes a self-audit management function that shuts down the consensus system if one or more audit target conditions are not met.

1602において、マスタノードとして機能する計算装置は、コンセンサスシステム内の参加コンセンサスノードをチェックするためにクエリを、送信することができる。例えば、コンセンサスノードで障害が発生したこと、新しいコンセンサスノードが追加されたことなどが起こり得る。マスタノードは、参加ノードデータ構造218を参照して、どのコンセンサスノードが現在コンセンサスシステムに含まれているかを判定することができる。 At 1602, a computing device acting as a master node can send a query to check the participating consensus nodes in the consensus system. For example, a consensus node may have failed, a new consensus node may have been added, and so on. The master node can refer to the participating node data structure 218 to determine which consensus node is currently included in the consensus system.

1604において、計算装置は、参加ノードデータ構造内のすべてのコンセンサスノードがクエリに対する応答を返したかどうかを判定することができる。もしそうであれば、プロセスはブロック1606に進む。そうでない場合、プロセスはブロック1608に進むことができる。 At 1604, the calculator can determine if all consensus nodes in the participating node data structure have returned a response to the query. If so, the process proceeds to block 1606. If not, the process can proceed to block 1608.

1606において、計算装置が、コンセンサスシステムに参加しているコンセンサスノードが変更されていないと判定した場合、プロセスは終了し、ノードは次の処理に進むことができる。例えば、コンセンサスシステム内のコンセンサスノードの状態が変更されていない場合、ブロックチェーンに含まれるコンセンサスノードに関する情報は修正される必要はない。 At 1606, if the calculator determines that the consensus node participating in the consensus system has not changed, the process ends and the node can proceed to the next process. For example, if the state of the consensus node in the consensus system has not changed, the information about the consensus node contained in the blockchain does not need to be modified.

1608において、いずれかのコンセンサスノードがクエリに対して肯定的な応答を返さない場合、及び/または新しいコンセンサスノードが応答を返す場合、計算装置は、応答するコンセンサスノードがスマートコントラクトの規則を満たすかどうかを判定し得る。もしそうであれば、プロセスはブロック1612に進む。そうでなければ、プロセスはブロック1610に進む。 At 1608, if any consensus node does not return a positive response to the query and / or a new consensus node returns a response, the calculator asks if the responding consensus node meets the rules of smart contracts. You can judge whether or not. If so, the process proceeds to block 1612. Otherwise, the process proceeds to block 1610.

1610において、応答しているコンセンサスノードがスマートコントラクトを満たさない(例えば、スマートコントラクトの1つまたは複数の規則を満たさない)場合、計算装置はコンセンサスシステムを停止し、通知を送信することができる。例えば、スマートコントラクトは、コンセンサスシステムに含まれるコンセンサスノードにおいて、コントラクトへの第1の参加者と関連付けられたコンセンサスノードと、コントラクトへの第2の参加者と関連付けられたコンセンサスノードとが、同数であること、を指定してもよい。各参加者からのノード数が不均一になった場合、マスタノードは、コンセンサスシステムを停止し、参加しているコンセンサスノードの数がコントラクトと一致していないことをコントラクト参加者に通知するために、クライアント計算装置に通知を送信する。本明細書で論じたものなどの他の規則、または本明細書で論じていない他の規則も同様に実施することができる。他の規則のいくつかの例は以下を含む。1)全てのノードはコンセンサス時に同意しなければならない;2)コントラクトの各参加者に関連付けられた少なくとも1つのコンセンサスノードが、コンセンサス時に同意する必要がある;及び/または、コントラクトへの参加者は、参加ノードのいずれがコンセンサスをなすかに注意を払わない。コンセンサスシステムが停止した場合、ブロックチェーンと現在のすべてのトランザクション情報は監査を可能にするために保持される。 At 1610, if the responding consensus node does not meet the smart contract (eg, it does not meet one or more rules of the smart contract), the calculator can shut down the consensus system and send a notification. For example, in a smart contract, in the consensus nodes included in the consensus system, the consensus node associated with the first participant in the contract and the consensus node associated with the second participant in the contract are the same number. You may specify that there is. If the number of nodes from each participant becomes uneven, the master node will shut down the consensus system and notify the contract participants that the number of participating consensus nodes does not match the contract. , Send a notification to the client computer. Other rules, such as those discussed herein, or other rules not discussed herein, may be implemented as well. Some examples of other rules include: 1) All nodes must agree at consensus; 2) At least one consensus node associated with each participant in the contract must agree at consensus; and / or participants in the contract , Do not pay attention to which of the participating nodes makes a consensus. If the consensus system goes down, the blockchain and all current transaction information is retained to allow auditing.

1612において、いずれかのコンセンサスノードがクエリに対して肯定的な応答を返さない、及び/または新しいコンセンサスノードが応答を返し、一方で、コントラクトの規則は依然として満たされる場合、計算装置は、参加ノードデータ構造218において、実際に参加しているコンセンサスノードについての情報を更新することができる。 At 1612, if either consensus node does not return a positive response to the query and / or a new consensus node returns a response, while the rules of the contract are still satisfied, the computing unit joins the node. In the data structure 218, the information about the actually participating consensus nodes can be updated.

1614において、計算装置は、ブロックチェーン内の実際に参加しているノード情報を更新することができる。例えば、図3のブロック308及び310で説明したように、コンセンサスシステムに参加しているノードのノード情報をブロックチェーンに追加することができる。加えて、ノードがもはやコンセンサスシステムに参加していない場合、そのノードがコンセンサスに参加していないという情報をブロックチェーンに追加することができる。 At 1614, the computer can update the actually participating node information in the blockchain. For example, as described in blocks 308 and 310 of FIG. 3, node information of nodes participating in the consensus system can be added to the blockchain. In addition, if the node is no longer participating in the consensus system, information that the node is no longer participating in the consensus can be added to the blockchain.

1616において、計算装置は、改訂コンセンサスグループを形成することができる。例えば、参加ノードデータ構造に基づいて、計算装置は、コンセンサスノードの新しいコンセンサスグループを決定することができる。次いで、計算装置は次の処理に進み得る。 At 1616, the calculator can form a revised consensus group. For example, based on the participating node data structure, the calculator can determine a new consensus group for the consensus node. The calculator can then proceed to the next process.

図17は、いくつかの実装形態による例示のプロセス1700を示す流れ図である。いくつかの例では、プロセス1700は、コンセンサスシステムに実際に参加しているコンセンサスノード102によって実行され得る。例えば、コンセンサスプログラム116を各コンセンサスノード上で実行して、プロセス1700を実行するようにコンセンサスノードの1つまたは複数のプロセッサを構成することができる。 FIG. 17 is a flow chart showing an exemplary process 1700 in several implementations. In some examples, process 1700 may be performed by a consensus node 102 that is actually participating in the consensus system. For example, the consensus program 116 can be run on each consensus node to configure one or more processors in the consensus node to run process 1700.

1702において、計算装置は、マスタノード障害が発生したという指摘を受信することができる。 At 1702, the computer can receive an indication that a masternode failure has occurred.

1704において、計算装置は、コンセンサスシステム内の他のコンセンサスノードと共に、新しいマスタノードの選出に参加することができる。例えば、コンセンサスシステム内のすべてのコンセンサスノードが事前に割り当てられた重みを有し、システム内に残っている最も高い重み付けされたノードがマスタとして選出されてもよい。別の例として、全てのコンセンサスノードがタームを有し、コンセンサスシステムに残っている最短のタームを有するノードがマスタとして選出されてもよい。 At 1704, the calculator can participate in the election of a new master node, along with other consensus nodes in the consensus system. For example, all consensus nodes in the consensus system may have pre-assigned weights and the highest weighted node remaining in the system may be elected as the master. As another example, all consensus nodes may have terms and the node with the shortest remaining terms in the consensus system may be elected as the master.

1706において、マスタノードとして選出された計算装置は、実際に参加しているコンセンサスノードの情報をブロックチェーンに追加するためのプロセスを実行することができる。例えば、新しいマスタノードは、図3のブロック308及び310に関して上述したプロセスを実行することができる。 In 1706, the computer elected as the master node can perform the process of adding information about the actually participating consensus nodes to the blockchain. For example, the new masternode can perform the processes described above for blocks 308 and 310 in FIG.

図18は、いくつかの実装形態による例示のプロセス1800を示す流れ図である。いくつかの例では、プロセス1800は、監査プログラム132の実行によって監査計算装置106によって実行され得る。上述のように、いくつかの例では、監査プログラム132の実行は、例えば、定期実行要件に基づいてよく、または、コントラクト参加者の1人からの要求に応答してなされてもよい。 FIG. 18 is a flow chart showing an exemplary process 1800 in several implementations. In some examples, process 1800 may be executed by audit computer 106 by executing audit program 132. As mentioned above, in some examples, the execution of audit program 132 may be, for example, based on periodic execution requirements or in response to a request from one of the contract participants.

1802において、計算装置は、監査認証要件を満たすためにブロックチェーンに含まれると期待される監査情報など、監査に関する情報のリストを決定することができる。例えば、監査プログラムはスマートコントラクトを取得し、コンセンサスシステムにおけるスマートコントラクトの実行のための監査情報及び適用可能な規則134を決定することができる。 At 1802, the computer can determine a list of audit information, such as audit information that is expected to be included in the blockchain to meet the audit certification requirements. For example, an audit program can acquire smart contracts and determine audit information and applicable rules 134 for executing smart contracts in a consensus system.

1804において、計算装置は、1つまたは複数のコンセンサスノードから現在のブロックチェーンのコピーを受信することができる。いくつかの例では、計算装置は、現在のブロックチェーンのコピーを複数のコンセンサスノードから受信して、複数のブロックチェーンを互いに比較して、すべてのブロックチェーンが一貫していることを確認することができる。 At 1804, the computing device can receive a copy of the current blockchain from one or more consensus nodes. In some examples, the calculator receives a copy of the current blockchain from multiple consensus nodes and compares the multiple blockchains to each other to ensure that all blockchains are consistent. Can be done.

1806において、計算装置は、監査のための監査情報のリストがブロックチェーン内の情報によって満たされるかどうかを判定することができる。例えば、監査プログラムは、コンセンサスシステムに参加しているコンセンサスノードがブロックチェーンで適切に識別されているかどうか、参加しているクライアントのデジタル署名と共にスマートコントラクトがブロックチェーンに含まれているかどうか、外部データ及びスマートコントラクトの呼び出しについての情報がブロックチェーンに含まれているかどうか、等を判定できる。監査プログラムは、また、スマートコントラクトの実行に関する情報及びトランザクション情報がブロックチェーンに含まれているかどうかを判定することができる。ブロックチェーンに含まれる情報が監査のための監査情報のリストを満たす場合、プロセスはブロック1808に進む。そうでなければ、プロセスはブロック1810に進む。 At 1806, the calculator can determine if the list of audit information for auditing is filled with information in the blockchain. For example, the audit program can determine whether the consensus nodes participating in the consensus system are properly identified in the blockchain, whether smart contracts are included in the blockchain along with the digital signatures of the participating clients, and external data. And whether the blockchain contains information about the smart contract call, etc. can be determined. The audit program can also determine if the blockchain contains information about the execution of smart contracts and transaction information. If the information contained on the blockchain fills the list of audit information for auditing, the process proceeds to block 1808. Otherwise, the process proceeds to block 1810.

1808において、ブロックチェーン内の情報が監査のための監査情報のリストを満たす場合、計算装置は、監査認証の要件が満たされているという通知を送信することができる。例えば、計算装置は、クライアント計算装置に通知を送信し、スマートコントラクトへの参加者に、監査認証のための1つまたは複数の要件が満たされたことを知らせることができる。 At 1808, if the information in the blockchain meets the list of audit information for auditing, the computer can send a notification that the requirements for audit certification are met. For example, the calculator can send a notification to the client calculator to inform participants in the smart contract that one or more requirements for audit authentication have been met.

1810において、ブロックチェーン内の情報が監査のための監査情報のリストを満たさない場合、計算装置は、監査認証の要件が満たされていないという通知を送信することができる。例えば、計算装置は、クライアント計算装置に通知を送信して、スマートコントラクトへの参加者に、監査認証の要件のうちの1つ以上が満たされていないことを知らせ、さらに、ブロックチェーンに含まれる情報の1つ以上の欠陥に関する情報を提供し得る。いくつかの例では、それに応じて、スマートコントラクトの参加者は、システムが修正されてブロックチェーン内に適切な監査情報を格納できるまで、コンセンサスシステムの実行を停止することができる。 At 1810, if the information in the blockchain does not meet the list of audit information for auditing, the computer can send a notification that the requirements for audit certification are not met. For example, the compute unit sends a notification to the client compute unit to inform participants in the smart contract that one or more of the audit certification requirements are not met and is further included in the blockchain. It may provide information about one or more defects in the information. In some examples, accordingly, smart contract participants can suspend the execution of the consensus system until the system has been modified to store the appropriate audit information within the blockchain.

図19は、いくつかの実装形態による例示的プロセス1900を示す流れ図である。いくつかの例では、プロセス1900は、1つまたは複数のコンセンサスノード102または他の適切な計算装置によって実行され得る。例えば、スマートコントラクト監査プログラム118は、コンセンサスノード上で実行されて、プロセス1900の少なくとも一部を実行するようにコンセンサスノードの1つまたは複数のプロセッサを構成することができる。 FIG. 19 is a flow chart showing an exemplary process 1900 in several implementations. In some examples, process 1900 may be performed by one or more consensus nodes 102 or other suitable computing devices. For example, smart contract audit program 118 can be run on a consensus node and configure one or more processors in the consensus node to run at least part of process 1900.

1902において、計算装置は、スマートコントラクトを実行するための指示及びコンセンサスを受信することができる。例えば、コンセンサスシステムは、スマートコントラクトの実行を引き起こすための外部データまたは他の命令を受信してよく、さらに、スマートコントラクトはコンセンサスノードによって実行されるべきであるというコンセンサスがあってよい。 At 1902, the calculator can receive instructions and consensus to execute smart contracts. For example, the consensus system may receive external data or other instructions to trigger the execution of the smart contract, and there may be a consensus that the smart contract should be executed by the consensus node.

1904において、スマートコントラクトを実行する前に、計算装置は、ブロックチェーンが参加ノードの指定されたノード情報を含むかどうかを判定することができる。もしそうであれば、プロセスはブロック1906に進む。そうでなければ、プロセスはブロック1914に進む。 In 1904, prior to executing the smart contract, the calculator can determine if the blockchain contains the specified node information of the participating nodes. If so, the process proceeds to block 1906. Otherwise, the process proceeds to block 1914.

1906において、ブロック1904の要件が満たされる場合、計算装置は、スマートコントラクト情報及びデジタル署名情報がブロックチェーンに含まれているかどうかを判定することができる。もしそうであれば、プロセスはブロック1908へ進む。そうでなければ、プロセスはブロック1914に進む。 In 1906, if the requirements of block 1904 are met, the calculator can determine if smart contract information and digital signature information are included in the blockchain. If so, the process proceeds to block 1908. Otherwise, the process proceeds to block 1914.

1908において、ブロック1906の要件が満たされる場合、計算装置は、外部データ情報及び/またはスマートコントラクト呼び出し情報がブロックチェーンに含まれているかどうかを判定することができる。もしそうであれば、プロセスはブロック1910に進む。そうでなければ、プロセスはブロック1914に進む。 At 1908, if the requirements of block 1906 are met, the calculator can determine if external data information and / or smart contract call information is included in the blockchain. If so, the process proceeds to block 1910. Otherwise, the process proceeds to block 1914.

1910において、ブロック1908の要件が満たされると、計算装置はスマートコントラクトの実行を進めることができる。 At 1910, if the requirements of block 1908 are met, the calculator can proceed with the execution of the smart contract.

1912において、計算装置は、トランザクション情報及びスマートコントラクト実行情報をブロックチェーンに追加することができる。場合によっては、ブロック1910及び1912は、図12のプロセス1200及び/または図3のブロック356〜364及び370に従って実行され得る。 In 1912, the computing device can add transaction information and smart contract execution information to the blockchain. In some cases, blocks 1910 and 1912 may be performed according to processes 1200 and / or blocks 356-364 and 370 of FIG.

1914において、ブロック1904、1906、または1908のいずれかに対する応答が「いいえ」である場合、計算装置は、ブロックチェーンが期待される監査情報を含まないことをコントラクト参加者に知らせるために、クライアント計算装置に通知を送信することができる。いくつかの例では、それに応答して、クライアントデバイスは、要件が満たされない原因が対処されるまで、コンセンサスシステムの実行を中断することができる。 In 1914, if the response to any of blocks 1904, 1906, or 1908 is "no", the calculator calculates the client to inform the contract participants that the blockchain does not contain the expected audit information. Notifications can be sent to the device. In some examples, in response, the client device can suspend the execution of the consensus system until the cause of the unmet requirement is addressed.

本明細書に記載の例示的なプロセスは、説明の目的で提供されたプロセスの単なる例である。本明細書の開示に照らして、多数の他の変形が当業者に明らかであろう。さらに、本明細書の開示は、プロセスを実行するための適切なフレームワーク、アーキテクチャ、及び環境のいくつかの例を説明しているが、本明細書の実装形態は、示し説明した特定の例に限定されない。さらに、本開示は、説明され図面に示されるように、様々な例示的実装形態を提供する。しかし、本開示は、本明細書で説明及び図示された実装形態に限定されず、当業者に知られているようにまたは知られるようになるように、他の実装形態に拡張することができる。 The exemplary processes described herein are merely examples of the processes provided for purposes of illustration. Many other variations will be apparent to those skilled in the art in the light of the disclosure herein. In addition, while the disclosure herein describes some examples of suitable frameworks, architectures, and environments for performing processes, the implementation embodiments herein are specific examples shown and described. Not limited to. In addition, the present disclosure provides various exemplary implementations, as described and shown in the drawings. However, the present disclosure is not limited to the implementations described and illustrated herein, and can be extended to other implementations as known or made known to those of skill in the art. ..

本明細書に記載の様々な命令、プロセス、及び技法は、計算機可読媒体に格納され本明細書のプロセッサによって実行されるプログラムモジュールなど、計算機実行可能命令の一般的な文脈で考えることができる。一般に、プログラムモジュールは、特定のタスクを実行するため、または特定の抽象データ型を実装するための、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、実行可能コードなどを含む。これらのプログラムモジュールなどは、ネイティブコードとして実行することができ、または仮想マシンまたは他のジャストインタイムコンパイル実行環境などでダウンロードして実行することができる。典型的には、プログラムモジュールの機能は、様々な実装形態において望まれるように組み合わせられまたは分散され得る。これらのモジュール及び技術の実装は、計算機記憶媒体に格納されてもよく、または何らかの形態の通信媒体を介して送信されてもよい。したがって、本明細書のインデックス配置は、物理的ハードウェア上で実施すること、仮想化実装で使用すること、物理または仮想マシン上の全体的重複排除システムの一部として使用すること、及び/または、他の重複排除実装(例えばSAN)のための構成要素として、または、大規模メモリインデックスなどの非重複排除環境で使用することができる。 The various instructions, processes, and techniques described herein can be considered in the general context of computer-executable instructions, such as program modules stored on computer-readable media and executed by the processors herein. In general, a program module includes routines, programs, objects, components, data structures, executable code, etc. to perform a particular task or implement a particular abstract data type. These program modules etc. can be executed as native code, or downloaded and executed in a virtual machine or other just-in-time compilation execution environment. Typically, the functionality of the program module can be combined or distributed as desired in various implementations. Implementations of these modules and techniques may be stored in computer storage media or transmitted via some form of communication medium. Therefore, indexing herein may be performed on physical hardware, used in a virtualized implementation, used as part of a global deduplication system on a physical or virtual machine, and / or. It can be used as a component for other deduplication implementations (eg SAN) or in a non-deduplication environment such as a large memory index.

本開示の主題は、構造的特徴及び/または方法論的行為に特有の言語で説明されているが、添付の特許請求の範囲に定義された主題は必ずしも説明された特定の特徴または行為に限定されないことを理解されたい。そうではなく、特定の特徴及び行為は、特許請求の範囲を実施する例示的形態として開示されている。 The subject matter of the present disclosure is described in a language specific to structural features and / or methodological acts, but the subject matter defined in the appended claims is not necessarily limited to the particular feature or act described. Please understand that. Instead, certain features and actions are disclosed as exemplary forms that implement the claims.

Claims (15)

ブロックチェーンを管理するコンセンサスシステムに参加する1つまたは複数の第2計算ノードと通信可能な第1計算ノードを含み、
前記第1計算ノードは、実行可能命令によって処理を実行するように構成される1つまたは複数のプロセッサを含み、
前記処理は、
ブロックチェーンに関連付けられるスマートコントラクトを実行すべきとの指示を、前記第1計算ノードによって受信し、
前記ブロックチェーンが前記ブロックチェーンの1つまたは複数のブロック内に監査情報を含むか、を判定し、
前記ブロックチェーンが前記監査情報を含むとの判定に基づいて、前記第1計算ノードによって前記スマートコントラクトを実行する、ことを含み、
前記監査情報は、
前記第1計算ノード及び前記1つまたは複数の第2計算ノードに関するノード情報、
前記スマートコントラクトに対応するデジタル署名情報、
前記スマートコントラクトの実行のために受信されたデータに関する情報、または、
前記スマートコントラクトの実行を呼び出すために受信された通信に関する情報、のうちの少なくとも1つを含む、システム。
Includes a first compute node capable of communicating with one or more second compute nodes participating in a consensus system that manages the blockchain.
The first compute node includes one or more processors configured to perform processing by executable instructions.
The above processing
Upon receiving an instruction from the first compute node that the smart contract associated with the blockchain should be executed,
Determining whether the blockchain contains audit information within one or more blocks of the blockchain.
Including that the smart contract is executed by the first compute node based on the determination that the blockchain contains the audit information.
The audit information is
Node information about the first compute node and the one or more second compute nodes,
Digital signature information corresponding to the smart contract,
Information about the data received for the execution of the smart contract, or
A system that includes at least one of information about communications received to invoke the execution of the smart contract.
請求項1に記載のシステムであって、
前記処理は、
前記第1計算ノード上での前記スマートコントラクトの実行に対応するトランザクション情報及び実行情報を、コンセンサス要求とともに、前記1つまたは複数の第2計算ノードに送信し、
前記1つまたは複数の第2計算ノードのうちの少なくとも一部から、コンセンサスの表示を受信し、
前記ブロックチェーンに追加するブロックを生成する、ことを含み、
前記ブロックは前記実行情報を含む、システム。
The system according to claim 1.
The above processing
Transaction information and execution information corresponding to the execution of the smart contract on the first computing node are transmitted to the one or more second computing nodes together with a consensus request.
Receive a consensus indication from at least a portion of the one or more second compute nodes.
Including generating blocks to be added to the blockchain
The block is a system containing the execution information.
請求項2に記載のシステムであって、
前記ブロックに含まれる前記実行情報は、
前記第1計算ノードの識別子、
前記スマートコントラクトの実行時間、または
前記スマートコントラクトの実行からの実行処理情報を含む実行ログ、のうちの少なくとも1つを含む、システム。
The system according to claim 2.
The execution information included in the block is
The identifier of the first compute node,
A system comprising at least one of the execution time of the smart contract or an execution log containing execution processing information from the execution of the smart contract.
請求項1に記載のシステムであって、
前記第1計算ノードまたは前記1つまたは複数の第2計算ノードのうちの少なくとも1つは、監査計算装置として構成されるか、または前記監査計算装置と通信するように構成され、
前記監査計算装置は、
監査認証要件を満たすために前記ブロックチェーンに含まれると期待される監査情報のリストを決定し、
前記ブロックチェーンのコピーを、前記第1計算ノードまたは前記1つまたは複数の第2計算ノードの少なくとも1つから受信し、
前記監査情報のリストが、前記ブロックチェーン内の情報によって満たされるか判定し、
前記監査情報のリストを満たす前記ブロックチェーン内の前記情報に基づいて、前記監査計算装置は、前記監査認証要件が満たされているという通知を送信する、
または
前記監査情報のリストを満たさない前記ブロックチェーン内の前記情報に基づいて、記監査計算装置は、前記監査認証要件が満たされていないという通知を送信する、システム。
The system according to claim 1.
At least one of the first compute node or the one or more second compute nodes is configured as an audit calculator or is configured to communicate with the audit calculator.
The audit computing device
Determine the list of audit information expected to be included in the blockchain to meet the audit certification requirements
A copy of the blockchain is received from the first compute node or at least one of the one or more second compute nodes.
Determine if the list of audit information is filled with the information in the blockchain.
Based on the information in the blockchain that meets the list of audit information, the audit calculator sends a notification that the audit certification requirements are met.
Alternatively, based on the information in the blockchain that does not meet the list of audit information, the audit computing device sends a notification that the audit certification requirements are not met.
請求項1に記載のシステムであって、
前記処理は、
前記1つまたは複数の第2計算ノードのうちの1つの第2計算ノードから、トランザクション情報と、前記1つの第2計算ノード上でのスマートコントラクトの実行に関連する情報と、を受信し、
前記トランザクション情報と、前記1つの第2計算ノード上での前記スマートコントラクトの実行に対応する実行情報とを、コンセンサスの要求と共に、前記1つまたは複数の第2の計算ノードに送信し、
前記1つまたは複数の第2計算ノードのうちの少なくとも一部から、コンセンサスの表示を受信し、
前記ブロックチェーンに追加するブロックを生成する、ことを含み、
前記ブロックは前記実行情報を含む、システム。
The system according to claim 1.
The above processing
The transaction information and the information related to the execution of the smart contract on the one second computing node are received from the second computing node of one or more of the second computing nodes.
The transaction information and the execution information corresponding to the execution of the smart contract on the one second computing node are transmitted to the one or more second computing nodes together with a request for consensus.
Receive a consensus indication from at least a portion of the one or more second compute nodes.
Including generating blocks to be added to the blockchain
The block is a system containing the execution information.
請求項1に記載のシステムであって、
マスタとして指定された1つの第2計算ノードに、前記第1計算ノード上での前記スマートコントラクトの実行に対応するトランザクション情報及び実行情報を、前記第1計算ノードによって送信し、
前記マスタからコンセンサスの表示を受信し、
前記ブロックチェーンに追加するブロックを生成する、ことを含み、
前記ブロックは前記実行情報を含む、システム。
The system according to claim 1.
Transaction information and execution information corresponding to the execution of the smart contract on the first calculation node are transmitted to one second calculation node designated as a master by the first calculation node.
Receive a consensus display from the master
Including generating blocks to be added to the blockchain
The block is a system containing the execution information.
請求項1に記載のシステムであって、
前記ブロックチェーンに関連付けられる前記スマートコントラクトを実行すべきとの前記指示を、前記第1計算ノードによって受信することは、
前記コンセンサスシステムの外部の計算装置から、前記スマートコントラクトの条件を満たすデータを受信し、
前記受信したデータに少なくとも部分的に基づいて、前記スマートコントラクトを実行すべきであるというコンセンサスの表示を、前記1つまたは複数の第2ノードから受信する、ことを含む、システム。
The system according to claim 1.
Receiving the instruction by the first compute node that the smart contract associated with the blockchain should be executed is
Data satisfying the conditions of the smart contract is received from a computing device outside the consensus system, and the data is received.
A system comprising receiving an indication of consensus from the one or more second nodes that the smart contract should be executed, at least in part based on the received data.
請求項1に記載のシステムであって、
前記処理は、
前記第1計算ノードによって、前記ブロックチェーンに関連付けられる前記スマートコントラクトを実行すべきとの指示を受信する前に、前記ブロックチェーンに追加するブロックを生成し、
前記ブロックは、
前記第1計算ノードについての前記ノード情報を含み、
さらに、
前記第1計算ノードに関連付けられたノード識別子、
前記第1計算ノードの所有者及び/またはオペレータ、または
前記第1計算ノードのIPアドレス、のうちの少なくとも一つを含む、システム。
The system according to claim 1.
The above processing
The first compute node generates a block to be added to the blockchain before receiving an instruction to execute the smart contract associated with the blockchain.
The block is
Includes the node information about the first compute node
further,
The node identifier associated with the first compute node,
A system comprising at least one of the owner and / or operator of the first compute node, or the IP address of the first compute node.
請求項8に記載のシステムであって、
前記処理は、
前記ブロックの本体に前記第1計算ノードに関するノード情報を含めることによって、前記ブロックチェーンに追加する前記ブロックを生成し、
前記ブロックのヘッダに、前記ブロックの本体のハッシュを含める、ことを含むシステム。
The system according to claim 8.
The above processing
By including the node information about the first compute node in the body of the block, the block to be added to the blockchain is generated.
A system comprising including a hash of the body of the block in the header of the block.
請求項1に記載のシステムであって、
前記第1計算ノードによって、前記ブロックチェーンに関連付けられる前記スマートコントラクトを実行すべきとの前記指示を受信する前に、前記ブロックチェーンに追加するブロックを生成し、
前記ブロックは、
前記1つまたは複数の第2計算ノードについての前記ノード情報を含み、
さらに、
前記1つまたは複数の第2計算ノードそれぞれに関連付けられたノード識別子、
前記1つまたは複数の第2計算ノードそれぞれの所有者及び/またはオペレータ、または
前記1つまたは複数の第2計算ノードそれぞれのIPアドレス、のうちの少なくとも一つを含む、システム。
The system according to claim 1.
The first compute node generates a block to add to the blockchain before it receives the instruction to execute the smart contract associated with the blockchain.
The block is
Contains the node information about the one or more second compute nodes.
further,
A node identifier associated with each of the one or more second compute nodes,
A system comprising at least one of the owner and / or operator of each of the one or more second compute nodes, or the IP address of each of the one or more second compute nodes.
請求項1に記載のシステムであって、
前記処理は、
前記第1計算ノードによって、前記ブロックチェーンに関連付けられる前記スマートコントラクトを実行すべきとの前記指示を受信する前に、前記スマートコントラクトに関連付けられるデジタル署名を受信し、
前記ブロックチェーンに追加するブロックを生成する、ことを含み
前記ブロックは、
前記スマートコントラクトのハッシュ、
前記スマートコントラクトの識別子、または、
前記スマートコントラクトの参加者に関連付けられている公開鍵と秘密鍵のペアの公開暗号化鍵、のうちの少なくとも一つを含む、システム。
The system according to claim 1.
The above processing
The first compute node receives the digital signature associated with the smart contract before it receives the instruction that the smart contract associated with the blockchain should be executed.
The block comprises generating a block to be added to the blockchain.
The hash of the smart contract,
The identifier of the smart contract, or
A system that includes at least one of the public and private key pair public encryption keys associated with a participant in the smart contract.
請求項1に記載のシステムであって、
前記処理は、
前記第1計算ノードによって、前記ブロックチェーンに関連付けられる前記スマートコントラクトを実行すべきとの前記指示を受信する前に、前記スマートコントラクトを実行するためのデータを受信し、
前記1つまたは複数の第2計算ノードとのコンセンサスに基づいて、ブロックを前記ブロックチェーンに追加する、ことを含み、
前記ブロックは、
前記データについての情報を含み、
さらに、
前記データを送信した外部システムの識別子、
前記データを受信した時間、
前記データのソース、または、
前記データの少なくとも一部、のうちの少なくとも一つを含む、システム。
The system according to claim 1.
The above processing
The first compute node receives the data for executing the smart contract before receiving the instruction that the smart contract associated with the blockchain should be executed.
Including adding blocks to the blockchain based on consensus with the one or more second compute nodes.
The block is
Contains information about the data
further,
The identifier of the external system that sent the data,
The time when the data was received,
The source of the data, or
A system comprising at least one of, at least a portion of the data.
請求項1に記載のシステムであって、
前記処理は、
前記1つまたは複数の第2計算ノードのうちのどれが前記第1計算ノードと前記コンセンサスシステムに参加しているかを決定するために、前記1つまたは複数の第2計算ノードにクエリを送信し、
前記1つまたは複数の第2計算ノードからの応答を前記スマートコントラクトの要件と比較し、
参加している計算ノードが前記スマートコントラクトの要件を満たしていないときに前記コンセンサスシステムを停止する、ことを含む、システム。
The system according to claim 1.
The above processing
A query is sent to the one or more second compute nodes to determine which of the one or more second compute nodes participates in the first compute node and the consensus system. ,
The response from the one or more second compute nodes is compared to the requirements of the smart contract and
A system that includes shutting down the consensus system when the participating compute nodes do not meet the requirements of the smart contract.
コンセンサスシステムに参加する1つまたは複数の第2計算ノードと通信可能な第1計算ノードによって、ブロックチェーンに関連付けられるスマートコントラクトを実行すべきとの指示を受信し、
前記ブロックチェーンが前記ブロックチェーンの1つまたは複数のブロック内に監査情報を含むか、を判定し、
前記ブロックチェーンが前記監査情報を含むとの判定に基づいて、前記第1計算ノードによって前記スマートコントラクトを実行する、ことを含み、
前記監査情報は、
前記第1計算ノード及び前記1つまたは複数の第2計算ノードに関するノード情報、
前記スマートコントラクトに対応するデジタル署名情報、
前記スマートコントラクトの実行のために受信されたデータに関する情報、または、
前記スマートコントラクトの実行を呼び出すために受信された通信に関する情報、のうちの少なくとも1つを含む、方法。
Received an instruction to execute a smart contract associated with the blockchain by the first compute node capable of communicating with one or more second compute nodes participating in the consensus system.
Determining whether the blockchain contains audit information within one or more blocks of the blockchain.
Including that the smart contract is executed by the first compute node based on the determination that the blockchain contains the audit information.
The audit information is
Node information about the first compute node and the one or more second compute nodes,
Digital signature information corresponding to the smart contract,
Information about the data received for the execution of the smart contract, or
A method comprising at least one of information about communications received to invoke the execution of the smart contract.
コンセンサスシステムに参加する1つまたは複数の第2計算ノードと通信可能な第1計算ノードの1つまたは複数のプロセッサによって実行されると、処理を実行するように前記1つまたは複数のプロセッサを構成する命令を格納する、1つまたは複数の非一過性の計算機可読媒体であって、
前記処理は、
ブロックチェーンに関連付けられるスマートコントラクトを実行すべきとの指示を受信し、
前記ブロックチェーンが前記ブロックチェーンの1つまたは複数のブロック内に監査情報を含むか、を判定し、
前記ブロックチェーンが前記監査情報を含むとの判定に基づいて、前記スマートコントラクトを実行する、ことを含み、
前記監査情報は、
前記第1計算ノード及び前記1つまたは複数の第2計算ノードに関するノード情報、
前記スマートコントラクトに対応するデジタル署名情報、
前記スマートコントラクトの実行のために受信されたデータに関する情報、または、
前記スマートコントラクトの実行を呼び出すために受信された通信に関する情報、のうちの少なくとも1つを含む、1つまたは複数の非一過性の計算機可読媒体。
When executed by one or more processors of a first compute node capable of communicating with one or more second compute nodes participating in a consensus system, the one or more processors are configured to perform processing. A non-transitory computer-readable medium that stores instructions to be executed.
The above processing
Received an instruction to execute the smart contract associated with the blockchain,
Determining whether the blockchain contains audit information within one or more blocks of the blockchain.
Including executing the smart contract based on the determination that the blockchain contains the audit information.
The audit information is
Node information about the first compute node and the one or more second compute nodes,
Digital signature information corresponding to the smart contract,
Information about the data received for the execution of the smart contract, or
One or more non-transient computer-readable media, including at least one of the information about the communication received to invoke the execution of the smart contract.
JP2019531778A 2016-12-16 2016-12-16 Blockchain monitoring and management Active JP6775086B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/067104 WO2018111295A1 (en) 2016-12-16 2016-12-16 Blockchain monitoring and management

Publications (2)

Publication Number Publication Date
JP2020515092A JP2020515092A (en) 2020-05-21
JP6775086B2 true JP6775086B2 (en) 2020-10-28

Family

ID=62559671

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019531778A Active JP6775086B2 (en) 2016-12-16 2016-12-16 Blockchain monitoring and management

Country Status (2)

Country Link
JP (1) JP6775086B2 (en)
WO (1) WO2018111295A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200372184A1 (en) * 2017-11-17 2020-11-26 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for detecting digital content tampering

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10715331B2 (en) * 2016-12-28 2020-07-14 MasterCard International Incorported Method and system for providing validated, auditable, and immutable inputs to a smart contract
US12013813B2 (en) 2018-02-20 2024-06-18 Tyson York Winarski Regulating distributed network generation of blockchain blocks
WO2019223681A1 (en) * 2018-05-22 2019-11-28 Digital Transaction Limited Blockchain-based transaction platform with enhanced scalability, testability and usability
CN113095822A (en) * 2018-06-27 2021-07-09 创新先进技术有限公司 Intelligent contract calling method and device based on block chain and electronic equipment
CN109003078B (en) 2018-06-27 2021-08-24 创新先进技术有限公司 Intelligent contract calling method and device based on block chain and electronic equipment
CN109039713B (en) * 2018-07-16 2021-06-18 夸克链科技(深圳)有限公司 Block chain consensus device and algorithm
CN109063049B (en) * 2018-07-18 2020-12-08 百度在线网络技术(北京)有限公司 Account processing method, device, equipment and storage medium of block chain network
CN110796572A (en) * 2018-08-03 2020-02-14 樊华 Intellectual property technology transfer system and method
US11410159B2 (en) * 2018-08-10 2022-08-09 Tzero Ip, Llc Upgradeable security token
CN108965468B (en) * 2018-08-16 2021-04-30 北京京东尚科信息技术有限公司 Block chain network service platform, chain code installation method thereof and storage medium
US10949557B2 (en) * 2018-08-20 2021-03-16 Cisco Technology, Inc. Blockchain-based auditing, instantiation and maintenance of 5G network slices
CN110443614B (en) * 2018-09-07 2021-04-09 腾讯科技(深圳)有限公司 Node equipment deleting method and device, computer equipment and storage medium
US11157484B2 (en) * 2018-09-19 2021-10-26 Salesforce.Com, Inc. Advanced smart contract with decentralized ledger in a multi-tenant environment
AU2019351573A1 (en) * 2018-09-24 2021-05-20 Willow IP Pty Ltd Technology configured to facilitate monitoring of operational parameters and maintenance conditions of physical infrastructure
CN109167661B (en) * 2018-09-27 2021-04-13 福建福链科技有限公司 Byzantine fault-tolerant consensus method applied to alliance chain and terminal
US20210314154A1 (en) * 2018-10-17 2021-10-07 Hewlett-Packard Development Company, L.P. Apparatus and method for dynamic sharding of concurrent blockchains
CN113283905A (en) * 2018-10-26 2021-08-20 创新先进技术有限公司 Data storage and acquisition method and device based on block chain
RU2723308C1 (en) * 2018-11-07 2020-06-09 Алибаба Груп Холдинг Лимитед Control of private transactions in chains of blocks based on processing flow
CN109583810B (en) * 2018-11-16 2021-01-12 大唐高鸿信息通信(义乌)有限公司 Tracing anti-counterfeiting system and method based on 5G architecture and block chain technology
CN109493096A (en) * 2018-11-22 2019-03-19 北京知道创宇信息技术有限公司 A kind of product traceability method, apparatus and its storage medium
CN110352445B (en) * 2018-11-27 2023-08-22 创新先进技术有限公司 Performing multiparty transactions using smart contracts
US11138597B2 (en) 2018-11-27 2021-10-05 Advanced New Technologies Co., Ltd. System and method for improving security of smart contract on blockchain
CN110291550A (en) 2018-11-27 2019-09-27 阿里巴巴集团控股有限公司 The system and method for improving the safety of intelligent contract on block chain
TWI769348B (en) * 2018-12-06 2022-07-01 凌誠科技股份有限公司 Agricultural blockchain total balance management method
CN109697365B (en) * 2018-12-20 2023-04-07 深圳市元征科技股份有限公司 Information processing method, block chain node and electronic equipment
CN109870904B (en) * 2018-12-27 2022-05-31 深圳市中电数通智慧安全科技股份有限公司 Remote reverse control system and control method thereof
CN111461468B (en) * 2019-01-02 2023-10-31 ***通信有限公司研究院 Data processing method and device, data node and storage medium
CN109885463A (en) * 2019-01-16 2019-06-14 杭州趣链科技有限公司 A method of the block chain common recognition agreement asynchronous performance analysis based on log
US10863333B2 (en) 2019-02-15 2020-12-08 Cisco Technology, Inc. Federated insertion of 3rd party software as a service for network slices
CN109995536A (en) * 2019-03-15 2019-07-09 广州杰赛科技股份有限公司 A kind of block chain common recognition method, apparatus and readable storage medium storing program for executing
JP7025365B2 (en) * 2019-03-25 2022-02-24 株式会社日立製作所 Data linkage management method, data linkage management system, and node
US11537592B1 (en) 2019-04-22 2022-12-27 Wells Fargo Bank, N.A. Metadata management through blockchain technology
CN110648137B (en) * 2019-04-26 2021-08-20 腾讯科技(深圳)有限公司 Block processing method, node and system
CN110119430B (en) * 2019-04-29 2023-06-30 深圳市元征科技股份有限公司 Intelligent contract management method, server and computer readable storage medium
CN112417030A (en) * 2019-08-20 2021-02-26 中国电信股份有限公司 Intelligent contract implementation method and device, block chain system and storage medium
CN110661658B (en) * 2019-09-23 2022-08-12 腾讯科技(深圳)有限公司 Node management method and device of block chain network and computer storage medium
CN110941533B (en) * 2019-11-20 2023-04-18 腾讯科技(深圳)有限公司 Monitoring method, monitoring device and computer readable storage medium
US11888965B2 (en) * 2019-12-10 2024-01-30 Mastercard Asia/Pacific Pte. Ltd. Method and system for IOT device digital asset permission transfer system using blockchain network
CN110956476A (en) * 2019-12-17 2020-04-03 江苏扬子易联智能软件有限公司 Method and platform for realizing GMP/GSP automatic supervision based on block chain
JP7062629B2 (en) * 2019-12-19 2022-05-17 株式会社Screenロジスティクス Production control system, production control method, and production control program
WO2021166931A1 (en) * 2020-02-21 2021-08-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Control method, control device, and program
EP4121849A4 (en) 2020-03-20 2024-04-03 Mastercard International Incorporated Method and system for auditing smart contracts
EP4141773A4 (en) * 2020-04-24 2023-06-07 Fujitsu Limited Control method, control program, and control device
CN111401903B (en) 2020-06-03 2020-09-11 腾讯科技(深圳)有限公司 Block chain message processing method, device, computer and readable storage medium
CN111917748B (en) * 2020-07-22 2022-10-11 上海飞博激光科技股份有限公司 Intelligent laser remote control system and method based on IPFS + alliance chain
CN114221972A (en) * 2020-09-03 2022-03-22 中国电信股份有限公司 Relay blockchain system and cross-chain transaction method
CN112651741B (en) 2021-01-04 2024-06-18 北京京东乾石科技有限公司 Block chain-based data processing method and device
CN112822267B (en) * 2021-01-05 2022-08-26 支付宝(杭州)信息技术有限公司 Data processing method and device based on block chain
CN112954009B (en) * 2021-01-27 2023-05-02 咪咕音乐有限公司 Block chain consensus method, equipment and storage medium
CN112862121A (en) * 2021-02-23 2021-05-28 宁波骅厦智能科技有限公司 Intelligent operation and maintenance system and method for power distribution network based on block chain intelligent contract
CN113570039B (en) * 2021-07-22 2024-02-06 同济大学 Block chain system based on reinforcement learning optimization consensus
CN113763185A (en) * 2021-09-10 2021-12-07 支付宝(杭州)信息技术有限公司 Data processing method and device for cash investment based on block chain
CN114205233B (en) * 2021-11-30 2022-07-12 北京大学 Intelligent contract self-adaptive configuration and execution system oriented to data management and control
CN114710504A (en) * 2022-03-31 2022-07-05 蚂蚁区块链科技(上海)有限公司 Rotation method of common nodes in block chain system, nodes and block chain system
CN115497188B (en) * 2022-09-08 2023-12-22 国网福建省电力有限公司 Distribution line unmanned aerial vehicle autonomous inspection system and method based on block chain
WO2024096193A1 (en) * 2022-11-03 2024-05-10 주식회사 리드포인트시스템 Device for providing monitoring service for neural consensus-based blockchain network system to manage safety quality and distribution history, and operation method of same device
CN117349867B (en) * 2023-12-04 2024-02-09 成都峰潮信息技术有限公司 Intelligent contract deployment method, system, equipment and medium
CN117593155B (en) * 2024-01-18 2024-04-12 山东省国土空间数据和遥感技术研究院(山东省海域动态监视监测中心) Block chain-based land yielding contract management method and system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9967334B2 (en) * 2015-03-02 2018-05-08 Dell Products Lp Computing device configuration and management using a secure decentralized transaction ledger
US9967333B2 (en) * 2015-03-02 2018-05-08 Dell Products Lp Deferred configuration or instruction execution using a secure distributed transaction ledger
CN107851111A (en) * 2015-05-05 2018-03-27 识卡公司 Use the identity management services of block chain
US10740732B2 (en) * 2015-05-20 2020-08-11 Ripple Luxembourg S.A. Resource transfer system
US20160342989A1 (en) * 2015-05-21 2016-11-24 Mastercard International Incorporated Method and system for processing blockchain-based transactions on existing payment networks
US20160358184A1 (en) * 2015-06-04 2016-12-08 Chronicled, Inc. Open registry for identity of things including tamperproof tags
US9904544B2 (en) * 2015-06-08 2018-02-27 Ripple Luxembourg S.A. System and method for determining that results produced from executions of software have not been altered or falsified
EP3323080B1 (en) * 2015-07-14 2020-11-04 Fmr Llc Computationally efficient transfer processing, auditing, and search apparatuses, methods and systems
GB201715423D0 (en) * 2017-09-22 2017-11-08 Nchain Holdings Ltd Computer-implemented system and method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200372184A1 (en) * 2017-11-17 2020-11-26 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for detecting digital content tampering
US11868509B2 (en) * 2017-11-17 2024-01-09 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for detecting digital content tampering

Also Published As

Publication number Publication date
JP2020515092A (en) 2020-05-21
WO2018111295A1 (en) 2018-06-21

Similar Documents

Publication Publication Date Title
JP6775086B2 (en) Blockchain monitoring and management
US11588651B2 (en) Blockchain timestamp agreement
JP7461695B2 (en) Extracting data from a blockchain network
US10805094B2 (en) Blockchain timestamp agreement
US10523526B2 (en) System and method for managing services and licenses using a blockchain network
US11449478B2 (en) Blockchain implemented data migration audit trail
US11924360B2 (en) Blockchain timestamp agreement
US20220027348A1 (en) Cross-shard private atomic commit
US20200233858A1 (en) Peer partitioning
JP2019008791A (en) Smart contract life cycle management
El Majdoubi et al. [Retracted] SmartMedChain: A Blockchain‐Based Privacy‐Preserving Smart Healthcare Framework
US11689616B2 (en) Optimization of delivery of blocks
US11917088B2 (en) Integrating device identity into a permissioning framework of a blockchain
US11263059B2 (en) Load leveler
US20230037932A1 (en) Data processing method and apparatus based on blockchain network, and computer device
CN112075062A (en) Automated commit transaction management in blockchain networks
JP2022527375A (en) Systems and methods for virtual distributed ledger networks
US20200374340A1 (en) Optimization of delivery of blocks
Aviv et al. Reference Architecture for Blockchain-Native Distributed Information System
US20220343323A1 (en) Method and apparatus maintaining private data with consortium blockchain
KR20210077136A (en) A Program for operation of blockchain network system
Geng et al. Blockchain-inspired Framework for Runtime Verification of IoT Ecosystem Task Fulfillment
US12045256B2 (en) Tracing data in complex replication system
US20230239153A1 (en) System and method for digital proof generation
CN111553683B (en) Verifiable analytics platform with intelligent contracts

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190729

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: 20200929

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201005

R150 Certificate of patent or registration of utility model

Ref document number: 6775086

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150