(57)【要約】【解決手段】ブロックチェーンのメインチェーンの決定方法、装置、機器及び記憶媒体であって、当該方法は、ブロックチェーンに少なくとも２つの分岐チェーンが存在することを検出した検出結果に基づいて、各分岐チェーン内の各ブロックの重みを決定するステップ（１１０）と、各分岐チェーンに含まれるブロックの重みに基づいて、各分岐チェーンの重みを決定するステップ（１２０）と、各分岐チェーンの重みに基づいて分岐チェーンからメインチェーンを決定し、前記メインチェーン以外の分岐チェーンをロールバックするステップ（１３０）と、を含む。分岐チェーンの重みに基づいて分岐チェーンからメインチェーンを決定することによって、ブロック生成ノードの切り替え中に、前のブロック生成ノードの末尾ブロックが悪意的に破棄される問題をある程度回避し、ブロック生成ノードの不正行為にかかるコストを増加し、悪意的な攻撃の成功率を低減する。【選択図】図１
2021504808.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンのメインチェーンの決定方法であって、
ブロックチェーンに少なくとも２つの分岐チェーンが存在することを検出した検出結果に基づいて、各分岐チェーン内の各ブロックの重みを決定するステップと、
各分岐チェーンに含まれるブロックの重みに基づいて、各分岐チェーンの重みを決定するステップと、
各分岐チェーンの重みに基づいて分岐チェーンからメインチェーンを決定し、前記メインチェーン以外の分岐チェーンをロールバックするステップと、を含む、
ことを特徴とするブロックチェーンのメインチェーンの決定方法。
【請求項２】
前記各分岐チェーン内の各ブロックの重みを決定するステップは、
各分岐チェーンに含まれるブロックの情報に基づいて、ターゲット攻撃タイプを決定するステップと、
予め設定された攻撃タイプと重み設定ルールとの間の関連関係に基づいて、前記ターゲット攻撃タイプに関連付けられたターゲット重み設定ルールを決定するステップと、
前記ターゲット重み設定ルールに基づいて、前記分岐チェーン内の各ブロックの重みを決定するステップと、を含む、
ことを特徴とする請求項１に記載のブロックチェーンのメインチェーンの決定方法。
【請求項３】
前記各分岐チェーン内の各ブロックの重みを決定するステップは、
前記分岐チェーン内の任意の現在のブロックのブロック生成ノードと前記現在のブロックの前のブロックのブロック生成ノードとが異なるという決定結果に基づいて、前記現在のブロックの重みを第１の数値に設定するステップと、
前記現在のブロックのブロック生成ノードと前記現在のブロックの前のブロックのブロック生成ノードとが同じであり、且つ前記前のブロックが分岐ブロックであるという決定結果に基づいて、前記現在のブロックの重みを前記第１の数値に設定するステップと、
前記現在のブロックのブロック生成ノードと前記現在のブロックの前のブロックのブロック生成ノードとが同じであり、且つ前記前のブロックが分岐ブロックではないという決定結果に基づいて、前記現在のブロックの重みを第２の数値に設定するステップと、を含み、
前記第１の数値は、前記第２の数値より大きい、
ことを特徴とする請求項１に記載のブロックチェーンのメインチェーンの決定方法。
【請求項４】
前記各分岐チェーンに含まれるブロックの重みに基づいて、各分岐チェーンの重みを決定するステップは、
前記分岐チェーンに含まれる各ブロックの重みを合計して、前記分岐チェーンの重みを取得するステップを含む、
ことを特徴とする請求項１〜３のいずれかに記載のブロックチェーンのメインチェーンの決定方法。
【請求項５】
各分岐チェーンの重みに基づいて、分岐チェーンからメインチェーンを決定するステップは、
重みが最大の分岐チェーンをメインチェーンとして決定するステップを含む、
ことを特徴とする請求項１に記載のブロックチェーンのメインチェーンの決定方法。
【請求項６】
ブロックチェーンのメインチェーンの決定装置であって、
ブロックチェーンに少なくとも２つの分岐チェーンが存在することを検出した検出結果に基づいて、各分岐チェーン内の各ブロックの重みを決定するためのブロック重み決定モジュールと、
各分岐チェーンに含まれるブロックの重みに基づいて、各分岐チェーンの重みを決定するための分岐チェーン重み決定モジュールと、
各分岐チェーンの重みに基づいて分岐チェーンからメインチェーンを決定し、前記メインチェーン以外の分岐チェーンをロールバックするためのメインチェーン決定モジュールと、を含む、
ことを特徴とするブロックチェーンのメインチェーンの決定装置。
【請求項７】
前記ブロック重み決定モジュールは、
各分岐チェーンに含まれるブロックの情報に基づいて、ターゲット攻撃タイプを決定するための攻撃タイプ決定ユニットと、
予め設定された攻撃タイプと重み設定ルールとの間の関連関係に基づいて、前記ターゲット攻撃タイプに関連付けられたターゲット重み設定ルールを決定するための重みルール決定ユニットと、
前記ターゲット重み設定ルールに基づいて、前記分岐チェーン内の各ブロックの重みを決定するためのブロック重み決定ユニットと、を含む、
ことを特徴とする請求項６に記載のブロックチェーンのメインチェーンの決定装置。
【請求項８】
前記ブロック重み決定モジュールは、具体的には、
前記分岐チェーン内の任意の現在のブロックのブロック生成ノードと前記現在のブロックの前のブロックのブロック生成ノードとが異なるという決定結果に基づいて、前記現在のブロックの重みを第１の数値に設定し、
前記現在のブロックのブロック生成ノードと前記現在のブロックの前のブロックのブロック生成ノードとが同じであり、且つ前記前のブロックが分岐ブロックであるという決定結果に基づいて、前記現在のブロックの重みを前記第１の数値に設定し、
前記現在のブロックのブロック生成ノードと前記現在のブロックの前のブロックのブロック生成ノードとが同じであり、且つ前記前のブロックが分岐ブロックではないという決定結果に基づいて、前記現在のブロックの重みを第２の数値に設定し、
前記第１の数値は、前記第２の数値より大きい、
ことを特徴とする請求項６に記載のブロックチェーンのメインチェーンの決定装置。
【請求項９】
前記分岐チェーン重み決定モジュールは、具体的には、
前記分岐チェーンに含まれる各ブロックの重みを合計して、前記分岐チェーンの重みを取得する、
ことを特徴とする請求項６〜８のいずれかに記載のブロックチェーンのメインチェーンの決定装置。
【請求項１０】
前記メインチェーン決定モジュールは、具体的には、
重みが最大の分岐チェーンをメインチェーンとして決定する、
ことを特徴とする請求項６に記載のブロックチェーンのメインチェーンの決定装置。
【請求項１１】
機器であって、
一つ又は複数のプロセッサと、
一つ又は複数のプログラムを記憶するためのメモリと、を含み、
前記一つ又は複数のプログラムが前記一つ又は複数のプロセッサによって実行される場合に、前記一つ又は複数のプロセッサが、請求項１〜５のいずれかに記載のブロックチェーンのメインチェーンの決定方法を実現する、
ことを特徴とする機器。
【請求項１２】
コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、
当該プログラムがプロセッサによって実行される場合に、請求項１〜５のいずれかに記載のブロックチェーンのメインチェーンの決定方法が実現される、
ことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願の実施例は、ブロックチェーン技術の分野に関し、例えば、ブロックチェーンのメインチェーンの決定方法、装置、機器及び記憶媒体に関する。
【背景技術】
【０００２】
インターネット技術の発展に伴い、脱中心化且つオープンで透明的なブロックチェーン技術が登場した。ブロックチェーン技術は、データブロックを採用して、現在のインターネットのセンターサーバへの依存を打破し、ネットワークで生成されたすべてのデータは、現在のトランザクション処理権を持つノードによって記録され、データのブロードキャスト及び他のノードの検証によって、ブロックを形成し、ブロックチェーンの末尾に接続される。ネットワーク内の各ノードは、ネットワーク全体内の各ブロックにおけるほぼすべてのデータを観察することができ、すべてのノードがネットワークデータに対する監視を実現することによって、ネットワーク内データのセキュリティと信頼性を確保する。
【０００３】
現在、ネットワーク内の各ノードは、コンセンサスメカニズムによってトランザクション処理権又はブロック生成権の競合を実現することができる。２つのノードがほぼ同じ時間内にトランザクション処理権又はブロック生成権を各自にすべて競合した場合、その２つのノードは、ブロックをそれぞれに形成し、ブロックデータをネットワーク全体に逐次に伝送する。２つのブロックデータの伝送中に、ネットワーク中の他のノードは、任意の一つのブロックのデータを先に受信する可能性がある。この２つのブロックは、いずれもメインチェーンの延出であるため、一部のノードは、受信された一つのブロックに基づいてブロックチェーンの延長を行い、残りの一部のノードは、受信された別のブロックに基づいてブロックチェーンの延長を行うことによって、ブロックチェーンは、競争関係を持つ２つの分岐チェーンを形成する。ネットワーク内のブロックチェーンデータの一意性を確保するために、関連技術では、最長のチェーンに基づくコンセンサスアルゴリズムを使用した。すなわち、常に最長の分岐チェーンを正しいチェーンと見なされ、メインチェーンとして決定され、残りの分岐チェーン上のブロックデータは、無効に見なされる。
【０００４】
しかしながら、最長のチェーンに基づくメインチェーンの決定方法によって、分岐チェーンが最長のチェーンであるが、実には間違ったチェーンである場合がある。例えば、悪意があるクライアントは、本ノードの計算能力を上げて、複数のブロックのトランザクション処理権を事前に競合し、悪意があるクライアントに有利な分岐チェーンを悪意的に増加且つ延長することによって、正しい分岐チェーンを破棄し、ブロックチェーンに対する悪意的な攻撃を実現する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以下は、本明細書で詳細に説明される主題の概要である。本概要は、請求項の保護範囲を制限するためのものではない。
【０００６】
本願の実施は、分岐チェーンからブロックチェーンのメインチェーンを効果的に決定し、悪意的な攻撃の成功率を低減することができるブロックチェーンのメインチェーンの決定方法、装置、機器及び記憶媒体を提供する。
【課題を解決するための手段】
【０００７】
第１の態様では、本願の実施例ブロックチェーンのメインチェーンの決定方法を提供し、ブロックチェーンに少なくとも２つの分岐チェーンが存在することを検出した検出結果に基づいて、各分岐チェーン内の各ブロックの重みを決定するステップと、各分岐チェーンに含まれるブロックの重みに基づいて、各分岐チェーンの重みを決定するステップと、各分岐チェーンの重みに基づいて分岐チェーンからメインチェーンを決定し、前記メインチェーン以外の分岐チェーンをロールバックするステップと、を含む。
【０００８】
第２の態様では、本願の実施例は、ブロックチェーンのメインチェーンの決定装置を提供し、ブロックチェーンに少なくとも２つの分岐チェーンが存在することを検出した検出結果に基づいて、各分岐チェーン内の各ブロックの重みを決定するためのブロック重み決定モジュールと、各分岐チェーンに含まれるブロックの重みに基づいて、各分岐チェーンの重みを決定するための分岐チェーン重み決定モジュールと、各分岐チェーンの重みに基づいて分岐チェーンからメインチェーンを決定し、前記メインチェーン以外の分岐チェーンをロールバックするためのメインチェーン決定モジュールと、を含む。
【０００９】
第三態様では、本願の実施例は、機器を提供し、一つ又は複数のプロセッサと、一つ又は複数のプログラムを記憶するためのメモリと、を含み、前記一つ又は複数のプログラムが前記一つ又は複数のプロセッサによって実行される場合に、前記一つ又は複数のプロセッサが、本願の任意の実施例に記載のブロックチェーンのメインチェーンの決定方法を実現する。
【００１０】
第四態様では、本願の実施例は、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体を提供し、当該プログラムがプロセッサによって実行される場合に、本願の任意の実施例に記載のブロックチェーンのメインチェーンの決定方法が実現される。
【発明の効果】
【００１１】
本願の実施例は、ブロックチェーンが分岐チェーンを生成する時に分岐チェーン内の各ブロックに異なる重みを設定することによって、各分岐チェーンの重みを取得し、それにより、各分岐チェーンの重みに基づいて分岐チェーンからメインチェーンを決定し、メインチェーン以外の分岐チェーンをロールバックする。本願の実施例は、分岐チェーンの具体的な状況に応じて分岐チェーン内の各ブロックに異なる重みを設定し、各ブロックのブロックチェーンにおける実際の比重を事前に合理的に割り当てることによって、分岐チェーンの重みに基づいて分岐チェーンからメインチェーンを決定し、メインチェーンの決定の合理性を向上させる。そして、ブロック生成ノードの切り替え中に、前のブロック生成ノードの末尾ブロックが次のブロック生成ノードによって悪意的に破棄される問題をある程度回避し、次のブロック生成ノードの不正行為にかかるコストを増加し、悪意的な攻撃の成功率を低減する。
【００１２】
図面と詳細の説明を読んで理解した後、他の態様を理解することができる。
【図面の簡単な説明】
【００１３】
【図１】本願の実施例１により提供されるブロックチェーンのメインチェーンの決定方法のフローチャートである。
【図２】本願の実施例１により提供の分岐チェーンの例示的な図である。
【図３】本願の実施例２により提供されるブロックチェーンのメインチェーンの決定方法のフローチャートである。
【図４】本願の実施例３により提供されるブロックチェーンのメインチェーンの決定装置の概略構成図である。
【図５】本願の実施例４により提供される機器の概略構成図である。
【発明を実施するための形態】
【００１４】
以下、図面と実施例とを組み合わせて、本願の実施例についてさらに詳しく説明する。なお、ここで説明される具体のな実施例は、単に本願の実施例を解釈するためのものであり、本願を限定するものではない。また、説明の便宜上、図面には、すべての構成ではなく、本願の実施例に係る部分だけが示されている。
【００１５】
（実施例１）
図１は、本願の実施例１提供されるブロックチェーンのメインチェーンの決定方法のフローチャートである。本実施例は、ブロックチェーンに分岐チェーンを生成してメインチェーンを決定する場合に適用することができ、当該方法は、ブロックチェーンのメインチェーンの決定装置によって実行することができ、ブロックチェーンシステム内のブロックチェーン記憶権限を記憶するノードに当該装置を配置することができ、当該方法は、具体的には、以下のようなステップを含む。
Ｓ１１０：ブロックチェーンに少なくとも２つの分岐チェーンが存在することを検出した検出結果に基づいて、各分岐チェーン内の各ブロックの重みを決定する。
【００１６】
本実施例では、ブロックチェーンにおける各ブロック内のブロックデータは、ブロック本体に記録されているトランザクションデータを含むだけでなく、ブロックヘッダ情報をさらに含み、例えば、前のブロックヘッダハッシュ値、タイムスタンプ（すなわちブロック生成時間）、ワークロード難易度、及びＭｅｒｋｌｅルート、すなわち信頼ツリーなどのようなブロック識別情報である。ネットワーク内の各ノードは、ネットワーク全体内の各ブロックにおけるほぼすべてのデータを観察して、すべてのノードがネットワークデータに対する監視を実現することができる。したがって、ブロックチェーンシステム内のブロックチェーン記憶権限を持つノードは、いずれも分岐チェーンが存在するか否かを検出することができ、いずれかのノードがブロックチェーンに少なくとも２つの分岐チェーンがあることを検出した場合、少なくとも２つの分岐チェーンからメインチェーンを決定する必要がある。具体的には、以下のような方式によって分岐チェーンが生成されたか否かを決定することができる。少なくとも２つのブロックにおけるタイムスタンプの時間差が一定の時間閾値より小さいこと（すなわち当該少なくとも２つのブロックの生成時間が非常に近いこと）、又は、少なくとも２つのブロックにおける前のブロックヘッダのハッシュ値が同じであることが検出された場合、ブロックチェーンに分岐チェーンが生成されたと見なされる。本実施例は、分岐現象の検出方式に限定されず、任意のブロックチェーン分岐現象を検出することができる検出方式は、本実施例にすべて適用することができる。上記のいずれかの分岐チェーンの検出方式を採用することができ、又は実際の状況に応じて、その中の少なくとも２つの組み合わせを採用して分岐チェーンの検出を実現することができる。
【００１７】
具体的には、本実施例では、分岐ブロックは、分岐現象が発生する前のブロックチェーンの末尾ブロックを指し、すなわち、分岐ブロックの後に分岐現象が発生する。これに応じて、分岐チェーンは、分岐ブロックの次のブロックを分岐チェーンの開始ブロックとして分岐チェーンを延長する。図２は、分岐チェーンの例示的な図である。図２に示すように、ブロック１の後に分岐現象が発生し、ブロック１は分岐ブロックであり、ブロック２は分岐チェーン（１）の開始ブロックであり、その後のブロック３と一緒に現在の分岐チェーン（１）を構成し、ブロック４は分岐チェーン（２）の開始ブロックであり、その後のブロック５及び６と一緒に現在の分岐チェーン（２）を構成する。分岐チェーンの開始ブロックをブロックチェーンに組み込むことに成功して分岐現象が発生した場合、異なるノードが異なる分岐開始ブロックからブロックチェーンの延長を行うため、分岐した少なくとも２つの異なる分岐チェーンにおける計算能力に差があり、さらに、当該少なくとも２つの分岐チェーンの成長速度も異なる。一定の時間後に、異なる分岐チェーンにおけるブロックに記憶されているトランザクション要求が異なる。
【００１８】
したがって、ネットワーク内のブロックチェーンデータの一意性を確保するために、本実施例は、分岐現象を検出した場合、又は、ブロック生成ノードが一定の時間内又は一定数のトランザクション要求に対する処理及び記録を完了した場合、各分岐チェーンに含まれるブロックの情報に対する検出及び判断を開始して、ブロックチェーン内のすべてのノードが統一されたブロック重み設定アルゴリズムに従い、具体的な重み設定ルールに基づいて、分岐チェーン内の各ブロックに異なる重みを設定して、分岐チェーンの重みによってメインチェーンを選択させることができる。例示的には、分岐チェーン内の各ブロック間の関連関係及び各ブロックのワークロード難易度、タイムスタンプ、及び属されるブロック生成ノードなどのような多次元情報に基づいて、分岐チェーン内のブロックの情報が予め設定された条件を満たす場合、例えば、特定のブロックチェーン攻撃タイプを満たす場合、予め設定された条件に対応する重み設定ルールに基づいて、各分岐チェーン内の各ブロックの重みを設定することによって、分岐チェーン内の各ブロックに異なる重みを設定し、各ブロックが分岐チェーン内での重要度を合理的に割り当て、不合理な攻撃が分岐チェーンの長さを悪意を延長することを回避する。
【００１９】
本実施例では、特定のブロックチェーン攻撃タイプを満たすブロック重みの設定は、分岐チェーン内の各ブロック間の関連関係及び各ブロックのワークロード難易度、タイムスタンプ、及び属されるブロック生成ノードなどのような多次元情報に基づいて、様々なブロックチェーン攻撃タイプを分析し、攻撃タイプとブロックの情報との間の関連関係に基づいて、攻撃タイプの形成条件を決定することができる。これにより、条件を形成し、これを予め設定された条件として、分岐チェーンに属する攻撃タイプを検出及び判断することによって、攻撃タイプに基づいて目的的に分岐チェーン内の各ブロックの重みを設定し、各攻撃タイプと重み設定ルールとの間の関連関係を生成する。具体的には、本実施例は、分岐チェーンのブロックの情報に基づいて、ブロックを悪意的に破棄する現象が存在するか否かを判断することもできる。例えば、悪意があるクライアントは、一つの計算能力が強いノードを掌握し、より多くのブロックを生成して、分岐チェーンを形成して延長することによって、正しいブロックを悪意的に破棄する。つまり、分岐チェーン内の分岐開始ブロックからその後の一定数のブロックが、いずれも当該分岐開始ブロックのブロック生成ノードと同じノードによって生成されたかを検出することができる。これにより、悪意があるクライアントノードによって形成されたブロックの重みを、より低い数値、さらに０に設定し、それにより、悪意があるクライアントによって生成されたより長い分岐チェーン内のブロックの重みを低減する。
【００２０】
例示的には、図２に示すように、ブロック１、２、及び３が前のブロック生成ノードＡによって生成されたブロックであり、ブロック４、５、及び６が現在のブロック生成ノードＢによって生成されたブロックであると仮定する。ブロックチェーンシステムにおけるあるノードがネットワーク内の各ブロックのブロックデータを観察することによって、ブロック２と４の前のブロックヘッダのハッシュ値が同じであると検出された場合、ブロック２と４の前のブロックがいずれもブロック１と判断されるため、ブロックチェーンに分岐現象が発生していると判定される。ブロックチェーンシステム中のすべてのノードは、統一されたブロック重み設定アルゴリズムに従い、２つの分岐チェーン上のブロックの情報に基づいて、分岐チェーン内の各ブロックに異なる重みを設定することを検出することができる。
【００２１】
上記の示例では、ノードＢが、悪意があるクライアントによって掌握された攻撃のノードであると仮定すると、悪意があるクライアントは、ノードＡがブロック２及び３に記録されたトランザクションデータを破棄するために、ブロック１の後に分岐チェーン（２）を形成して延長する。したがって、分岐チェーン（２）の長さが長いことによってメインチェーンとして直接に決定されることを防止するために、本実施例は、分岐チェーン内のブロックの情報に基づいて各ブロックに重みを設定する。さらに、以下のように最長のチェーンに基づく悪意的な攻撃に関連付けられた重み設定ルールを設定することができる。２つの分岐開始ブロックの重みを１に設定し、第１の分岐チェーン上の分岐開始ブロックの後のブロックのブロック生成ノードが当該分岐開始ブロックのブロック生成ノードと異なる場合、これらのブロックの重みを１に設定し、第２の分岐チェーン上の分岐開始ブロックから後のブロックの重みを０に設定して、二重支払い攻撃としてブロックを無効にする。したがって、このように、ブロックを悪意的に破棄する攻撃と重み設定ルールとの間の関連関係、及び分岐チェーンの後続のブロックのアクセス状況に基づいて、各分岐チェーン内の各ブロック重みの決定を完了する。
【００２２】
Ｓ１２０：各分岐チェーンに含まれるブロックの重みに基づいて、各分岐チェーンの重みを決定する。
【００２３】
本実施例では、各ブロックの重みに基づいて、分岐チェーンの重みを決定することは、分岐チェーンに含まれる各ブロックの重みを合計して、当該分岐チェーンの重みを取得し、単純に分岐チェーンに含まれるブロック数によって各分岐チェーンの認可度合いを判定することではなく、合計された各ブロックの重みを分岐チェーン判定の根拠とすることができる。
【００２４】
例示的には、上記の最長のチェーンに基づく悪意的な攻撃の例では、このような攻撃は、通常、ノード切り替えの場合に発生するため、分岐チェーン（１）の後続は、新しいノードによってブロックを生成して分岐チェーンに組み込まれるため、分岐チェーン（１）の重みは１より大きい。悪意的なノードは、分岐チェーン（２）を悪意的に延長するため、分岐チェーン（２）内のブロックのブロック生成ノードは、すべて同じノード、すなわち悪意的なノードであるため、分岐チェーン（２）には、開始ブロック以外のブロックの重みはいずれも０に設定され、分岐チェーン（２）の重みは１のみである。
【００２５】
Ｓ１３０：各分岐チェーンの重みに基づいて分岐チェーンからメインチェーンを決定し、メインチェーン以外の分岐チェーンをロールバックする。
【００２６】
本実施例では、ブロックに対して重みの設定を行うため、ブロック重みは、ネットワークが当該ブロックに対する承認度に相当する。したがって、各分岐チェーンの重みに基づいて、すべての分岐チェーンから重みが最大の分岐チェーンをブロックチェーンのメインチェーンに決定する。ネットワーク内のブロックチェーンデータの一意性を確保するために、メインチェーンとして選択された分岐チェーン以外のすべての分岐チェーンを無効に見なし、その中のトランザクションデータを正しく見なされた前回のメインチェーンに戻す。
【００２７】
例示的には、上記の最長のチェーンに基づく悪意的な攻撃の例では、分岐チェーン（１）の重みは１より大きく、分岐チェーン（２）の重みは１のみであり、分岐チェーン（１）の重みは分岐チェーン（２）の重みより大きいため、分岐チェーン（１）をブロックチェーンのメインチェーンに決定し、ブロック数がより多い分岐チェーン（２）、すなわち最長のチェーンをメインチェーンとして直接に決定することを回避する。トランザクション処理権又はブロック生成権の競合及びトランザクションデータの処理は、大きなワークロードが必要し、より高いワークロード難易度を克服しなければ完了できないため、ブロックに異なる重みを設定し、ブロック重みに基づくメインチェーンの決定方式は、通常のブロックチェーンの延出を影響しない状況で、悪意があるクライアントがブロックチェーンに対する攻撃コストを増加させ、悪意があるクライアントの攻撃の成功率を低減させることに有利である。
【００２８】
なお、本実施例は、分岐現象に攻撃が存在する場合のブロック重み設定の例であり、本実施例は、分岐現象における非攻撃タイプの場合の分岐チェーンブロック重み設定にも適用される。したがって、本実施例は、分岐現象内のすべての場合に適用され、通常のノード又は攻撃的な悪意のあるノードであるかどうかにかかわらず、ブロックチェーンシステム中のすべてのノードは、統一された分岐チェーン内のブロック重みの設定アルゴリズムに従うことができ、ブロックチェーンシステムに分岐現象が発生した場合に、分岐チェーン重みに基づくメインチェーンの決定方法をすべて実現することができる。
【００２９】
本実施例の技術案では、ブロックチェーンが分岐チェーンを生成する時に分岐チェーン内の各ブロックに異なる重みを設定することによって、各分岐チェーンの重みを取得し、それにより、各分岐チェーンの重みに基づいて分岐チェーンからメインチェーンを決定し、メインチェーン以外の分岐チェーンをロールバックする。本実施例は、分岐チェーンの具体的な状況に応じて分岐チェーン内の各ブロックに異なる重みを設定し、各ブロックのブロックチェーンにおける実際の比重を事前に合理的に割り当てることによって、分岐チェーンの重みに基づいて分岐チェーンからメインチェーンを決定し、メインチェーンの決定の合理性を向上させる。そして、ブロック生成ノードの切り替え中に、前のブロック生成ノードの末尾ブロックが次のブロック生成ノードによって悪意的に破棄される問題をある程度回避し、次のブロック生成ノードの不正行為にかかるコストを増加し、悪意的な攻撃の成功率を低減する。
【００３０】
実施例２
本実施例は、上記の実施例１に基づいて、ブロックチェーンのメインチェーンの決定方法の好ましい施方式を提供し、攻撃タイプに基づいて対応する重み設定を行うことができる。図３は、本願の実施例２提供されるブロックチェーンのメインチェーンの決定方法のフローチャートである。図３に示すように、当該方法は、具体的には、以下のようなステップを含む。
Ｓ３１０：ブロックチェーンに少なくとも２つの分岐チェーンが存在することを検出した検出結果と、各分岐チェーンに含まれるブロックの情報とに基づいて、ターゲット攻撃タイプを決定する。
【００３１】
本実施例では、悪意があるクライアントの攻撃は、自分の違法なトランザクションデータを有効にしてその中から利益を得ることを目的とするため、よく見られる攻撃タイプは、ほとんどは、二重支払い攻撃などのように、最長のチェーンに基づくメインチェーンの決定方法の攻撃方式に属する。悪意があるクライアントの違法の分岐チェーンを最長のチェーンに延長することによって、ブロックチェーン内の正しいブロックを破棄するようにする。分岐チェーン内の各ブロック間の関連関係及び各ブロックのワークロード難易度、タイムスタンプ、及び属されるブロック生成ノードなどのような多次元情報に基づいて、様々なブロックチェーン攻撃タイプを分析し、攻撃タイプとブロックの情報との間の関連関係に基づいて、攻撃タイプの形成条件を決定することができる。
【００３２】
本実施例では、ネットワーク内の各ノードは、ネットワーク全体内の各ブロックにおけるほぼすべてのデータを観察して、すべてのノードがネットワークデータに対する監視を実現することができる。したがって、ブロックチェーンシステム内のブロックチェーン記憶権限を持つノードは、いずれも分岐チェーンが存在するか否かを検出することができ、いずれかのノードがブロックチェーンに少なくとも２つの分岐チェーンがあることを検出した場合、少なくとも２つの分岐チェーンからメインチェーンを決定する必要がある。具体的には、以下のような方式によって分岐チェーンが生成されたか否かを決定することができ、少なくとも２つのブロックにおけるタイムスタンプの時間差が一定の時間閾値より小さいこと（すなわち当該少なくとも２つのブロックの生成時間が非常に近いこと）、又は、少なくとも２つのブロックにおける前のブロックヘッダのハッシュ値が同じであることが検出された場合、ブロックチェーンに分岐チェーンが生成されたと見なされる。上記のいずれかの分岐チェーンの検出方式を採用することができ、又は実際の状況に応じて、その中の少なくとも２つの組み合わせを採用して分岐チェーンの検出を実現することができる。さらに、分岐現象を検出した場合、又は、ブロック生成ノードが一定の時間内又は一定数のトランザクション要求に対する処理及び記録を完了した場合、各分岐チェーンに含まれるブロックの情報に対する検出及び判断を開始して、各攻撃タイプの形成条件及び分岐チェーン内の各ブロック間の関連関係、各ブロックのワークロード難易度、タイムスタンプ、及び属されるブロック生成ノードなどのような多次元情報に基づいて、分岐チェーンが現在受けているターゲット攻撃タイプを決定する。
【００３３】
例示的には、二重支払い攻撃は双花攻撃と呼ばれ、悪意があるクライアントが一つ金額だけを使用して２回の支払いを完了し、又は既に費やしたお金を取り戻すことである。具体的には、ビットコイン振込シーンにおいて、メインチェーンで行われた最初の振込取引データによってブロックを形成することが確認された場合、悪意があるクライアントは、この取引を無効にするために、最短時間内に連続した複数回のトランザクション処理権を取得して第２の取引を行って、最初の取引ブロックの前のブロックから開始して分岐を生成し、事前に用意されたブロックを利用して最初の取引に対応する分岐を長くにしてメインチェーンに変化することによって、最初の振込取引を無効にする。したがって、二重支払い攻撃の形成条件は、ビットコイン振込シーンにおいて、２つの分岐チェーンが生成された場合、各分岐チェーン内の分岐開始ブロックのブロック生成ノードが同じであり、且つそのうちの一つの分岐チェーン上の分岐開始ブロックから後のブロックのブロック生成ノードも上記のブロック生成ノードである場合、二重支払い攻撃を分岐チェーンのターゲット攻撃タイプとして決定することができる。
【００３４】
Ｓ３２０：予め設定された攻撃タイプと重み設定ルールとの間の関連関係に基づいて、ターゲット攻撃タイプに関連付けられたターゲット重み設定ルールを決定する。
【００３５】
本実施例では、各攻撃タイプの形成条件に基づいて、分岐チェーンに属する攻撃タイプを検出及び判断することによって、攻撃タイプに基づいて目的的に分岐チェーン内の各ブロックの重みを設定し、各攻撃タイプと重み設定ルールとの間の関連関係を生成して、悪意があるクライアントの攻撃を抑制又は防止し、悪意があるクライアントの攻撃コストを増加し、攻撃の成功率を低減する。
【００３６】
例示的には、二重支払い攻撃の形成条件及びそれによる危害に基づいて、以下のように二重支払い攻撃に関連付けられた重み設定ルールを設定することができる。分岐チェーン内の任意のブロックのブロック生成ノードが当該ブロックの前のブロックのブロック生成ノードと異なる場合、当該ブロックの重みを１に設定する。当該ブロックのブロック生成ノードが当該ブロックの前のブロックのブロック生成ノードと同じであり、且つ当該ブロックの前のブロックが分岐ブロックである場合、当該ブロックの重みを１に設定する。当該ブロックのブロック生成ノードが当該ブロックの前のブロックのブロック生成ノードと同じであり、且つ当該ブロックの前のブロックが分岐ブロックでない場合、当該ブロックの重みを０に設定する。
【００３７】
Ｓ３３０：ターゲット重み設定ルールに基づいて、分岐チェーン内の各ブロックの重みを決定する。
【００３８】
本実施例では、ターゲット重み設定ルールに基づいて、ターゲット重み設定ルールを満たす分岐チェーン内の各ブロックに、対応する重みを設定する。
【００３９】
一実施例では、最長のチェーンに基づいてブロックを悪意的に破棄するほとんどの攻撃方式は、以下のような重みの一般的な設定を行うことができる。分岐チェーン内の任意の現在のブロックのブロック生成ノードが当該現在のブロックの前のブロックのブロック生成ノードと異なる場合、当該現在のブロックの重みを第１の数値に設定する。当該現在のブロックのブロック生成ノードが当該現在のブロックの前のブロックのブロック生成ノードと同じであり、且つ前のブロックが分岐ブロックである場合、当該現在のブロックの重みを第１の数値に設定する。当該現在のブロックのブロック生成ノードが当該現在のブロックの前のブロックのブロック生成ノードと同じであり、且つ前のブロックが分岐ブロックでない場合、当該現在のブロックの重みを第２の数値に設定し、第１の数値は、第２の数値より大きい。
【００４０】
本実施例では、上記の攻撃タイプの認識によって、分岐チェーン内のブロックの情報に基づいて、分岐チェーン内の正しいブロックにより大きな重みを設定し、分岐チェーン内のエラーブロックにより小さな重みを設定し、分岐チェーン内のブロックに異なる重みを設定することによって、悪意的なブロックの承認度を効果的に低減又は解除する。これによって、悪意があるクライアントが悪意的に延長する分岐チェーンを無効にし、ブロックチェーン内の正しいブロックを保護することができる。
【００４１】
Ｓ３４０：各分岐チェーンに含まれるブロックの重みに基づいて、分岐チェーンに含まれる各ブロックの重みを合計して、分岐チェーンの重みを取得する。
【００４２】
本実施例では、各ブロックの重みに基づいて、分岐チェーンの重みを決定することは、分岐チェーンに含まれる各ブロックの重みを合計して、当該分岐チェーンの重みを取得し、単純に分岐チェーンに含まれるブロック数によって各分岐チェーンの認可度合いを判定することではなく、合計された各ブロックの重みを分岐チェーン判定の根拠とすることができる。
【００４３】
Ｓ３５０：各分岐チェーンの重みに基づいて、分岐チェーンから重みが最大の分岐チェーンをメインチェーンとして決定し、メインチェーン以外の分岐チェーンをロールバックする。
【００４４】
本実施例では、ブロックに対して重みの設定を行うため、ブロック重みは、ネットワークが当該ブロックに対する承認度に相当する。したがって、各分岐チェーンの重みに基づいて、すべての分岐チェーンから重みが最大の分岐チェーンをブロックチェーンのメインチェーンに決定する。ネットワーク内のブロックチェーンデータの一意性を確保するために、メインチェーンとして選択された分岐チェーン以外のすべての分岐チェーンを無効に見なし、その中のトランザクションデータを正しく見なされた前回のメインチェーンに戻す。
【００４５】
本実施例の技術案では、ブロックチェーンが分岐チェーンを生成する時に、又はブロック生成ノードが一定の時間内又は一定数のトランザクション要求に対する処理及び記録を完了した場合、分岐チェーンに属するターゲット攻撃タイプを認識し、ターゲット攻撃タイプに関連付けられたターゲット重み設定ルールを決定することによって、ターゲット重み設定ルールに基づいて分岐チェーン内の各ブロックに異なる重みを設定する。又は、一般的な重み設定ルールを利用して、最長のチェーンに基づいてブロックを悪意的に破棄する攻撃方式に対応する分岐チェーンを認識するために、ブロック重みの設定を行う。これによって、各分岐チェーンの重みを取得し、重みが最大の分岐チェーンをメインチェーンとして決定され、メインチェーン以外の分岐チェーン内のトランザクションデータをロールバックする。本実施例では、分岐チェーンに属する攻撃タイプ及び重み設定ルールを決定することによって、分岐チェーン内の各ブロックに対応する重みを設定する。これによって、違法ブロックの承認度を低減又は解除し、悪意があるクライアントが特別に延長した分岐チェーンを無効にすることによって、ブロックチェーン内の正しいブロックを保護し、分岐チェーンの重みに基づいて分岐チェーンからメインチェーンを決定することができ、ブロック生成ノードの切り替え中に、前のブロック生成ノードの末尾ブロックが次のブロック生成ノードによって悪意的に破棄される問題をある程度回避し、次のブロック生成ノードの不正行為にかかるコストを増加し、悪意的な攻撃の成功率を低減する。
【００４６】
実施例３
図４は、本願の実施例３提供されるブロックチェーンのメインチェーンの決定装置の概略構成図である。本実施例は、ブロックチェーンに分岐チェーンを生成してメインチェーンを決定する場合に適用することができ、当該装置は、本願のいずれかの実施例に記載のブロックチェーンのメインチェーンの決定方法を実現することができる。当該装置は、具体的には、ブロックチェーンに少なくとも２つの分岐チェーンが存在することを検出した検出結果に基づいて、各分岐チェーン内の各ブロックの重みを決定するためのブロック重み決定モジュール４１０と、各分岐チェーンに含まれるブロックの重みに基づいて、各分岐チェーンの重みを決定するための分岐チェーン重み決定モジュール４２０と、各分岐チェーンの重みに基づいて分岐チェーンからメインチェーンを決定し、前記メインチェーン以外の分岐チェーンをロールバックするためのメインチェーン決定モジュール４３０と、を含む。
【００４７】
一実施例では、前記ブロック重み決定モジュール４１０は、各分岐チェーンに含まれるブロックの情報に基づいて、ターゲット攻撃タイプを決定するための攻撃タイプ決定ユニットと、予め設定された攻撃タイプと重み設定ルールとの間の関連関係に基づいて、前記ターゲット攻撃タイプに関連付けられたターゲット重み設定ルールを決定するための重みルール決定ユニットと、前記ターゲット重み設定ルールに基づいて、前記分岐チェーン内の各ブロックの重みを決定するためのブロック重み決定ユニットと、を含む。
【００４８】
一実施例では、前記ブロック重み決定モジュール４１０は、具体的には、さらに、前記分岐チェーン内の任意の現在のブロックのブロック生成ノードと前記現在のブロックの前のブロックのブロック生成ノードとが異なるという決定結果に基づいて、前記現在のブロックの重みを第１の数値に設定し、前記現在のブロックのブロック生成ノードと前記現在のブロックの前のブロックのブロック生成ノードとが同じであり、且つ前記前のブロックが分岐ブロックであるという決定結果に基づいて、前記現在のブロックの重みを前記第１の数値に設定し、前記現在のブロックのブロック生成ノードと前記現在のブロックの前のブロックのブロック生成ノードとが同じであり、且つ前記前のブロックが分岐ブロックではないという決定結果に基づいて、前記現在のブロックの重みを第２の数値に設定し、前記第１の数値は、前記第２の数値より大きい。
【００４９】
一実施例では、前記分岐チェーン重み決定モジュール４２０は、具体的には、前記分岐チェーンに含まれる各ブロックの重みを合計して、前記分岐チェーンの重みを取得する。
【００５０】
一実施例では、前記メインチェーン決定モジュール４３０は、具体的には、重みが最大の分岐チェーンをメインチェーンとして決定する。
【００５１】
本実施例の技術案では、各機能モジュール間の相互に結合によって、分岐チェーンの検出、攻撃タイプの決定、攻撃タイプと重み設定ルールとの関連付け、ブロック重みの設定、分岐チェーン重みの決定、及びメインチェーンの決定など機能を実現する。本実施例は、分岐チェーンの具体的な状況に応じて分岐チェーン内の各ブロックに異なる重みを設定し、各ブロックのブロックチェーンにおける実際の比重を事前に合理的に割り当てることによって、分岐チェーンの重みに基づいて分岐チェーンからメインチェーンを決定し、メインチェーンの決定の合理性を向上させる。そして、ブロック生成ノードの切り替え中に、前のブロック生成ノードの末尾ブロックが次のブロック生成ノードによって悪意的に破棄される問題をある程度回避し、次のブロック生成ノードの不正行為にかかるコストを増加し、悪意的な攻撃の成功率を低減する。
【００５２】
実施例４
図５は、本願の実施例４により提供される機器の概略構成図である。図５は、本実施例の実施方式を実現するのに適する例示的な機器のブロック図を示す。図５に示される機器は、単なる一つの例であり、本実施例の機能及び使用範囲を一切制限しない。
【００５３】
図５に示される機器は、単なる一つの例であり、本実施例の機能及び使用範囲を一切制限しない。
【００５４】
図５に示すように、機器１２は、汎用コンピューティング機器の形態で示される。機器１２のコンポーネントは、一つ又は複数のプロセッサ又は処理ユニット１６と、システムメモリ２８と、異なるシステムコンポーネント（システムメモリ２８と処理ユニット１６とを含む）を接続するバス１８と、を含むことができるが、これらに限定されない。
【００５５】
バス１８は、メモリバス又はメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート、プロセッサ又は多様なバス構造のうち任意のバス構造を使用するローカルバスを含む、複数種のバス構造のうち一つ又は複数のものを表す。例をあげると、これらのアーキテクチャは、インダストリスタンダードアーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＡＣ）バス、拡張ＩＳＡバス、ビデオエレクトロニクススタンダーズアソシエーション（ＶＥＳＡ）ローカルバス、及びペリフェラルコンポーネントインターコネクト（ＰＣＩ）バスを含むが、これらに限定されない。
【００５６】
機器１２は、典型的には、多種類のコンピュータシステム読み取り可能な媒体を含む。これらの媒体は、機器１２がアクセスすることができる任意の使用可能な媒体であってもよく、揮発性媒体及び不揮発性媒体、リムーバブル媒体及びノンリムーバブル媒体を含む。
【００５７】
システムメモリ２８は、ランダムアクセスメモリ（ＲＡＭ）３０及び／又はキャッシュメモリ３２などのような揮発性メモリの形態のコンピュータシステム読み取り可能な媒体を含んでもよい。機器１２は、他のリムーバブル／ノンリムーバブル、揮発性／不揮発性コンピュータシステム記憶媒体をさらに含んでもよい。単なる一例として、ストレージシステム３４は、ノンリムーバブル、不揮発性磁気媒体（図５に示されていないが、通常「ハードドライブ」と呼ぶ）に対して読み出し及び書き込みをするために用いることができる。図５に示されていないが、リムーバブル、不揮発性磁気ディスク（例えば、「フロッピーディスク」）に対して読み出し及び書き込みをするための磁気ディスクドライブ、及びリムーバブル、不揮発性光学ディスク（例えば、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又は他の光学媒体）に対して読み出し及び書き込みをするための光学ディスクドライブを提供することができる。この場合、各ドライブは、一つ又は複数のデータメディアインターフェイスを介してバス１８に接続することがきる。メモリ２８は、本願の各実施例に記載の機能を実行するように構成されるワンセットのプログラムモジュール（例えば、少なくとも一つ）を有する少なくとも一つのプログラム製品を含んでもよい。
【００５８】
ワンセットのプログラムモジュール４２（少なくとも一つ）を有するプログラム／ユーティリティ４０は、例えば、システムメモリ２８に記憶されてもよく、このようなプログラムモジュール４２は、オペレーティングシステム、一つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータを含むことができるがこれらに限定されない。これらの例のそれぞれ又は何らかの組み合わせには、ネットワーく環境の実装が含まれる可能性がある。プログラムモジュール４２は、通常本願の実施例に記載の実施例における機能及び／又は方法を実行する。
【００５９】
機器１２は、一つ又は複数の外部機器１４（例えば、キーボード、ポインティング機器、ディスプレイ２４など）と通信することができるし、ユーザが機器１２とインタラクションすることを可能にする一つ又は複数の機器と通信することもでき、及び／又は機器１２が一つ又は複数の他のコンピューティングデバイスと通信することを可能にする任意の機器（例えば、ネットワークカード、モデムなど）と通信することができる。そのような通信は、入力／出力（Ｉ／Ｏ）インターフェイス２２を介して行うことができる。また、機器１２は、ネットワークアダプタ２０を介して、一つ又は複数のネットワーク（例えば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、及び／又はパブリックネットワーク、例えば、インターネット）と通信することができる。図４に示すように、ネットワークアダプタ２０は、バス１８を介して、機器１２の他のモジュールと通信する。なお、図示されていないが、マイクロコードやデバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、ＲＡＩＤシステム、テープドライバ、及びデータバックアップトレージシステムなどを含むがこれらに限定されない他のハードウェア及び／又はソフトウェアモジュールを、機器１２と組み合わせて使用することができる。
【００６０】
処理ユニット１６は、システムメモリ２８に記憶されるプログラムを実行することにより、多様な機能アプリケーション及びデータ処理を実行し、例えば、本願の実施例により提供されるブロックチェーンのメインチェーンの決定方法を実現する。
【００６１】
実施例５
本願の実施例５は、コンピュータプログラムが記憶されている（又はコンピュータ実行可能な命令と呼ばれる）コンピュータ読み取り可能な記憶媒体をさらに提供し、当該プログラムがプロセッサによって実行される場合に、ブロックチェーンのメインチェーンの決定方法が実行され、当該方法は、ブロックチェーンに少なくとも２つの分岐チェーンが存在することを検出した検出結果に基づいて、各分岐チェーン内の各ブロックの重みを決定するステップと、各分岐チェーンに含まれるブロックの重みに基づいて、各分岐チェーンの重みを決定するステップと、各分岐チェーンの重みに基づいて分岐チェーンからメインチェーンを決定し、前記メインチェーン以外の分岐チェーンをロールバックするステップと、を含む。
【００６２】
本願の実施例のコンピュータ記憶媒体は、一つ又は複数のコンピュータ読み取り可能な媒体の任意の組み合わせを採用することができる。コンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な信号媒体、或いはコンピュータ読み取り可能な記憶媒体であってもよい。コンピュータ読み取り可能な媒体は、例えば、電子、磁気、光、電磁気、赤外線、又は半導体のシステム、装置又はデバイス、或いは上記の任意の組み合わせであってもよいがこれらに限定されない。コンピュータ読み取り可能な記憶媒体のより具体的な例（非網羅的なリスト）は、一つ又は複数の配線を備える電気接続部、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラマブル読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ（ＣＤ-ＲＯＭ）、光記憶装置、磁気記憶装置、又は上記の任意の適切な組み合わせを含む。この文書において、コンピュータ読み取り可能な記憶媒体は、命令実行システム、装置又はデバイスにより使用され、或いはそれらと組み合わせて使用されることが可能であるプログラムを含む又は記憶する任意の有形の媒体であってもよい。
【００６３】
コンピュータ読み取り可能なの信号媒体は、ベースバンドにおける、又は搬送波の一部として伝播するデータ信号を含むことができ、その中のにはコンピュータ読み取り可能なのプログラムコードが搭載される。この伝播するデータ信号は様々な形式を採用することができ、電磁信号、光信号又は上記の任意の適切な組み合わせを含むがこれらに限定されない。コンピュータ読み取り可能なの信号媒体は、さらに、コンピュータ読み取り可能な記憶媒体以外の任意のコンピュータ読み取り可能な媒体であってもよく、当該コンピュータ読み取り可能な媒体は、命令実行システム、装置又はデバイスにより使用され、或いはそれらと組み合わせて使用されるプログラムを送信、伝播又は伝送することができる。
【００６４】
コンピュータ読み取り可能な媒体に含まれるプログラムコードは、無線、有線、光ケーブル、ＲＦなど、又は上記の任意の適切な組み合わせを含むがこれらに限定されない任意の適切な媒体によって伝送することができる。
【００６５】
一つ又は複数のプログラミング言語又はそれらの組み合わせで本願の実施例の動作を実行するためのコンピュータプログラムコードを作成することができ、前記プログラミング言語は、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのようなプロジェクト指向のプログラミング言語を含み、さらに、「Ｃ」言語又は同様のプログラミング言語といった従来の手続き型プログラミング言語をも含む。プログラムコードは、完全にユーザーコンピュータで実行されてもよいし、部分的にユーザーコンピュータに実行されてもよいし、スタンドアロンソフトウェアパッケージとして実行されてもよいし、部分的にユーザーコンピュータで、部分的にリモートコンピュータで実行されてもよい、又は完全にリモートコンピュータ又は機器で実行してもよい。リモートコンピュータに係る場合、リモートコンピュータは、ローカルネットワーク（ＬＡＮ）又は広域ネットワーク（ＷＡＮ）を含む任意種類のインターネットを介して、ユーザーコンピュータに接続することができ、或いは、外部コンピュータ（例えば、インターネットサービスプロバイダを利用してインターネットを介して接続する）に接続することもできる。
【００６６】
本願は、２０１８年５月２日付に中国特許庁に提出した、中国特許出願番号が「２０１８１０４１１０４９.４」である中国特許出願の優先権を主張するものであり、当該出願のすべての内容は、引用により本願に組み込まれる。
【図１】
2021504808.tif 000003
【図２】
2021504808.tif 000004
【図３】
2021504808.tif 000005
【図４】
2021504808.tif 000006
【図５】
2021504808.tif 000007
【国際調査報告】
2021504808.tif 000008
2021504808.tif 000009
2021504808.tif 000010
2021504808.tif 000011