(57)【要約】  本出願の1つまたは複数の実装形態は、ブロックチェーンベースのトランザクション処理方法および装置、ならびに電子デバイスを提供する。方法は、ブロックチェーン内のメンバーノードデバイスによって開始されたターゲットトランザクションを受信するステップを含むことができ、ターゲットトランザクションは、ターゲットトランザクションの一意の識別子を含む。トランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶するかどうかが照会される。トランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶していない場合、ターゲットトランザクションは、候補ブロック中に記録される。
2021512519.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンベースのトランザクションを処理するための方法であって、
ブロックチェーン内のメンバーノードデバイスによって開始されたターゲットトランザクションを受信するステップであって、前記ターゲットトランザクションは、前記ターゲットトランザクションの一意の識別子を含む、ステップと、
トランザクション冪等元テーブルが、前記ターゲットトランザクションの前記一意の識別子に対応するトランザクション冪等元レコードを記憶するかどうかを照会するステップと、
前記トランザクション冪等元テーブルが、前記ターゲットトランザクションの前記一意の識別子に対応する前記トランザクション冪等元レコードを記憶していない場合、前記ターゲットトランザクションを候補ブロックに記録するステップと
を含む、方法。
【請求項２】
前記トランザクション冪等元テーブル中の前記トランザクション冪等元レコードは、前記トランザクション冪等元レコードに対応するトランザクションが前記ブロックチェーンの分散型データベース中に正常に記録されたことを示す、請求項1に記載の方法。
【請求項３】
前記ターゲットトランザクションが前記候補ブロック中に記録され、前記候補ブロックが、前記ブロックチェーンの前記分散型データベースに正常に記憶されるためのコンセンサスに到達した場合、前記ターゲットトランザクションの前記一意の識別子に対応する前記トランザクション冪等元レコードを生成するステップと、
前記ターゲットトランザクションの前記一意の識別子に対応する前記トランザクション冪等元レコードを、前記トランザクション冪等元テーブルに挿入するステップと
をさらに含む、請求項2に記載の方法。
【請求項４】
前記トランザクション冪等元テーブル中の前記トランザクション冪等元レコードは、前記ターゲットトランザクションの一意の識別子であり、
前記ブロックチェーン内のメンバーノードデバイスによって開始されたトランザクションの一意の識別子は、単調増加トランザクション識別子である、請求項2に記載の方法。
【請求項５】
前記ターゲットトランザクションの前記一意の識別子が、前記トランザクション冪等元テーブルに挿入された後、前記トランザクション冪等元テーブルが、連続する値を有する複数の単調増加トランザクション識別子を含むかどうかを判断するステップ
をさらに含む、請求項1に記載の方法。
【請求項６】
含む場合、連続する値を有する前記複数の単調増加トランザクション識別子を、ある間隔に基づいて前記トランザクション冪等元テーブルに記録するステップ
をさらに含む、請求項5に記載の方法。
【請求項７】
含まない場合、前記ターゲットトランザクションのトランザクション識別子を、離散値に基づいて前記トランザクション冪等元テーブルに記録するステップ
をさらに含む、請求項5に記載の方法。
【請求項８】
前記ターゲットトランザクションは、基準時間パラメータをさらに含み、
前記基準時間パラメータは、前記ターゲットトランザクションが、トランザクション有効期間内の有効トランザクションであるかどうかを判断するのに使用される、請求項1に記載の方法。
【請求項９】
あらかじめ設定されたトランザクション冪等元テーブルが、前記ターゲットトランザクションの前記一意の識別子に対応するトランザクション冪等元レコードを記憶しているかどうかを照会するステップの前に、前記方法は、
前記ターゲットトランザクションが、前記トランザクション有効期間内の前記有効トランザクションであるかどうかを、前記基準時間パラメータに基づいて判断するステップと、
前記ターゲットトランザクションが、前記トランザクション有効期間内の前記有効トランザクションであると判断された場合、前記あらかじめ設定されたトランザクション冪等元テーブルが、前記ターゲットトランザクションの前記一意の識別子に対応する前記トランザクション冪等元レコードを記憶するかどうかをさらに照会するステップと
をさらに含む、請求項8に記載の方法。
【請求項１０】
前記ブロックチェーンは、コンソーシアムブロックチェーンである、請求項1に記載の方法。
【請求項１１】
前記一意の識別子は、ランダムに生成されたトランザクション番号および一意のデバイス識別子を含む、請求項1に記載の方法。
【請求項１２】
ブロックチェーンベースのトランザクションを処理するための装置であって、請求項1から11のいずれか一項に記載の方法を実施するように構成された複数のモジュールを備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連技術の相互参照
本出願は、その全体が参照により本明細書に組み込まれる、2019年5月29日に出願された中国特許出願第201810532710.7号の優先権を主張する。
【０００２】
本出願の1つまたは複数の実装形態は、ブロックチェーン技術の分野に関し、特に、ブロックチェーンベースのトランザクション処理方法および装置、ならびに電子デバイスに関する。
【背景技術】
【０００３】
分散型台帳技術とも呼ばれるブロックチェーン技術は、いくつかのコンピューティングデバイスが、完全分散型データベースを維持するための「アカウンティング」に共同で関与する新たな技術である。ブロックチェーン技術は、非集中性、開放性、および透明性を特徴とする。各コンピューティングデバイスは、データベースにデータを記録することができ、データは、コンピューティングデバイスの間で迅速に同期され得る。したがって、ブロックチェーン技術を使用して、非集中システムを作成し、様々な実行プログラムを、自動実行のためにブロックチェーンの分散型データベースに記録することが、多くの分野に広く適用されてきた。
【発明の概要】
【課題を解決するための手段】
【０００４】
本出願は、ブロックチェーンベースのトランザクション処理方法であって、ブロックチェーン内のメンバーノードデバイスによって開始されたターゲットトランザクションを受信するステップであって、ターゲットトランザクションは、ターゲットトランザクションの一意の識別子を含む、ステップと、あらかじめ設定されたトランザクション冪等元テーブル(transaction idempotent table)が、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶しているかどうかを照会するステップと、トランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶していない場合、ターゲットトランザクションを候補ブロックに記録するステップとを含む、方法を提供する。
【０００５】
任意選択で、トランザクション冪等元テーブル中のトランザクション冪等元レコードは、トランザクション冪等元レコードに対応するトランザクションがブロックチェーンの分散型データベース中に正常に記録されたことを示す。
【０００６】
任意選択で、本方法は、ターゲットトランザクションが、候補ブロック中に記録され、候補ブロックが、ブロックチェーンの分散型データベースに正常に記憶されるためのコンセンサスに到達した場合、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを生成するステップと、ターゲットトランザクションの一意の識別子に対応する、生成されたトランザクション冪等元レコードをトランザクション冪等元テーブルに挿入するステップとをさらに含む。
【０００７】
任意選択で、トランザクション冪等元テーブル中のトランザクション冪等元レコードは、トランザクションの一意の識別子であり、ブロックチェーン内のメンバーノードデバイスによって開始されたトランザクションの一意の識別子は、単調増加トランザクション識別子であり、本方法は、トランザクションの一意の識別子がトランザクション冪等元テーブルに挿入された後、トランザクション冪等元テーブルが、連続する値を有する複数の単調増加トランザクション識別子を含むかどうかを判断するステップと、yesの場合、連続する値を有する複数の単調増加トランザクション識別子を、間隔の形でトランザクション冪等元テーブルに記録し、またはnoの場合、トランザクションのトランザクション識別子を、離散値の形でトランザクション冪等元テーブルに記録するステップとをさらに含む。
【０００８】
任意選択で、ターゲットトランザクションは、基準時間パラメータをさらに含み、基準時間パラメータは、ターゲットトランザクションが、トランザクション有効期間内の有効トランザクションであるかどうかを判断するのに使用され、あらかじめ設定されたトランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶しているかどうかを照会する前に、本方法は、ターゲットトランザクションが、トランザクション有効期間内の有効トランザクションであるかどうかを、基準時間パラメータに基づいて判断するステップと、ターゲットトランザクションが、トランザクション有効期間内の有効トランザクションであると判断された場合、あらかじめ設定されたトランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶するかどうかをさらに照会するステップとをさらに含む。
【０００９】
任意選択で、ブロックチェーンは、コンソーシアムブロックチェーンである。
【００１０】
本出願は、ブロックチェーンベースのトランザクション処理装置であって、ブロックチェーン内のメンバーノードデバイスによって開始されたターゲットトランザクションを受信するように構成された受信モジュールあって、ターゲットトランザクションは、ターゲットトランザクションの一意の識別子を含む、受信モジュールと、あらかじめ設定されたトランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶しているかどうかを照会するように構成された照会モジュールと、トランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶していない場合、ターゲットトランザクションを候補ブロックに記録するように構成された記録モジュールとを含む装置をさらに提供する。
【００１１】
任意選択で、トランザクション冪等元テーブル中のトランザクション冪等元レコードは、トランザクション冪等元レコードに対応するトランザクションがブロックチェーンの分散型データベース中に正常に記録されたことを示す。
【００１２】
任意選択で、記録モジュールは、ターゲットトランザクションが、候補ブロック中に記録され、候補ブロックが、ブロックチェーンの分散型データベースに正常に記憶されるためのコンセンサスに到達した場合、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを生成し、ターゲットトランザクションの一意の識別子に対応する、生成されたトランザクション冪等元レコードを、トランザクション冪等元テーブルに挿入するようにさらに構成される。
【００１３】
任意選択で、トランザクション冪等元テーブル中のトランザクション冪等元レコードは、トランザクションの一意の識別子であり、ブロックチェーン内のメンバーノードデバイスによって開始されたトランザクションの一意の識別子は、単調増加トランザクション識別子であり、記録モジュールは、トランザクションの一意の識別子がトランザクション冪等元テーブルに挿入された後、トランザクション冪等元テーブルが、連続する値を有する複数の単調増加トランザクション識別子を含むかどうかを判断し、yesの場合、連続する値を有する複数の単調増加トランザクション識別子を、間隔の形でトランザクション冪等元テーブルに記録し、またはnoの場合、トランザクションのトランザクション識別子を、離散値の形でトランザクション冪等元テーブルに記録するようにさらに構成される。
【００１４】
任意選択で、ターゲットトランザクションは、基準時間パラメータをさらに含み、基準時間パラメータは、ターゲットトランザクションが、トランザクション有効期間内の有効トランザクションであるかどうかを判断するのに使用され、本装置は、あらかじめ設定されたトランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶するかどうかが照会される前に、ターゲットトランザクションが、トランザクション有効期間内の有効トランザクションであるかどうかを、基準時間パラメータに基づいて判断し、ターゲットトランザクションが、トランザクション有効期間内の有効トランザクションであると判断された場合、あらかじめ設定されたトランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶するかどうかをさらに照会するように構成された判断モジュールをさらに含む。
【００１５】
任意選択で、ブロックチェーンは、コンソーシアムブロックチェーンである。
【００１６】
本出願は、電子デバイスであって、プロセッサと、機械実行可能命令を記憶するように構成されたメモリとを含み、メモリに記憶されるとともにブロックチェーンベースのトランザクション処理の制御論理に対応する機械実行可能命令を読み取り、実行することによって、プロセッサは、ブロックチェーン内のメンバーノードデバイスによって開始されたターゲットトランザクションを受信することであって、ターゲットトランザクションは、ターゲットトランザクションの一意の識別子を含む、受信することと、あらかじめ設定されたトランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶しているかどうかを照会することと、トランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶していない場合、ターゲットトランザクションを候補ブロックに記録することとを行うように構成される、装置をさらに提供する。
【図面の簡単な説明】
【００１７】
【図１】例示的実装形態による、ブロックチェーンベースのトランザクション処理方法を示すフローチャートである。
【図２】例示的実装形態による電子デバイスを示す構造図である。
【図３】例示的実装形態による、ブロックチェーンベースのトランザクション処理装置を示すブロック図である。
【図４】本開示のある実装形態による、ブロックチェーンベースのトランザクションを処理するためのコンピュータ実装方法の例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
本出願は、作成されたトランザクション冪等元テーブルが、ブロックチェーン内の受信されたトランザクションに対して冪等元処理を実施するのに使用され、そうすることによって、違法ノードが、インターセプトされた延滞トランザクションを使用して反射攻撃を開始することができないという技術的解決策を提供するためのものである。
【００１９】
実装中、ブロックチェーン内のアカウンティングノードとして作用し得るノードデバイスは、トランザクション冪等元テーブルを共同で維持することができる。たとえば、アカウンティングノードとして作用するノードデバイスは、ブロックチェーン内の既存のコンセンサス機構を使用することによって、コンセンサストランザクション冪等元テーブルを共同で維持することができる。
【００２０】
トランザクション冪等元テーブル中のトランザクション冪等元レコードは、トランザクション冪等元レコードに対応するトランザクションがブロックチェーンの分散型データベース中に正常に記録されていることを示す。
【００２１】
ユーザが、クライアント側においてトランザクションを作成すると、クライアント側は、トランザクション用の一意の識別子を生成し、一意の識別子をトランザクションに追加すればよく、次いで、クライアント側に接続されたノードデバイスが、ブロックチェーン内でトランザクションを公開する。
【００２２】
ブロックチェーン内の別のノードデバイスがトランザクションを受信し、トランザクションが有効であることを検証した後、ノードデバイスは、トランザクション冪等元テーブルをさらに照会して、トランザクション冪等元テーブルが、トランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶しているかどうかを判断すればよい。
【００２３】
トランザクション冪等元テーブルが、トランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶していない場合、それは、トランザクションが、ブロックチェーンの分散型データベース中に正常に記録されていないことを示す。この場合、トランザクションは、候補ブロック中に記録されてよい。反対に、トランザクション冪等元テーブルが、トランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶している場合、それは、トランザクションが、ブロックチェーンの分散型データベース中に正常に記録されており、ブロックチェーン内で処理され、実行されたトランザクションであることを示す。この場合、トランザクションは、処理されずにすぐに破棄されてよい。
【００２４】
前述の技術的解決策によると、トランザクションに関連したトランザクション冪等元レコードがトランザクション冪等元テーブル中に記憶されているときのみ、トランザクションは、有効トランザクションとして候補ブロック中に記録され得る。したがって、ブロックチェーン内の違法ノードデバイスは、インターセプトされた延滞トランザクションを使用してブロックチェーン内で反射攻撃を開始することはできず、それにより、ブロックチェーンのトランザクションセキュリティレベルが増す。
【００２５】
以下は、具体的な適用シナリオに基づく具体的な実装形態を使用することによって、本明細書を記載する。
【００２６】
図1は、本出願のある実装形態による、ブロックチェーンベースのトランザクション処理方法を示す。この方法は、ブロックチェーン内のどのノードデバイスにも適用され、以下のステップを含む。
【００２７】
ステップ102:ブロックチェーン内のメンバーノードデバイスによって開始されたターゲットトランザクションを受信し、ターゲットトランザクションはターゲットトランザクションの一意の識別子を含む。
【００２８】
ステップ104:あらかじめ設定されたトランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶しているかどうかを照会する。
【００２９】
ステップ106:トランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶していない場合、ターゲットトランザクションを候補ブロックに記録する。
【００３０】
本出願に記載するブロックチェーンは、プライベートブロックチェーン、パブリックブロックチェーン、コンソーシアムブロックチェーンなどを含んでよく、実装形態は本出願において限定されない。
【００３１】
たとえば、あるシナリオでは、ブロックチェーンは、サードパーティ支払いプラットフォームのサーバ、国内銀行サーバ、海外銀行サーバ、およびいくつかのユーザノードデバイスというメンバーデバイスを含むコンソーシアムブロックチェーンであってよい。コンソーシアムブロックチェーンのオペレータは、コンソーシアムブロックチェーンに依存して、越境転送および資産転送など、コンソーシアムブロックチェーンベースのオンラインサービスを展開することができる。
【００３２】
本出願に記載するトランザクション(転送)は、ブロックチェーンのクライアント側においてユーザによって作成されるとともに、最終的にはブロックチェーンの分散型データベース中で公開される必要があるデータである。
【００３３】
ブロックチェーン内のトランザクションは、狭義でのトランザクションおよび広義でのトランザクションを含む。狭義でのトランザクションは、ブロックチェーン内でユーザによって公開される価値転送である。たとえば、従来のビットコインブロックチェーンネットワークでは、トランザクションは、ブロックチェーン内でユーザによって開始される転送であり得る。広義でのトランザクションは、ブロックチェーン内でユーザによって公開されるサービス指向サービスデータである。たとえば、オペレータが、実際のサービス要件に基づいてコンソーシアムブロックチェーンを作成し、コンソーシアムブロックチェーンに依存して、価値転送に無関係の、いくつかの他のタイプのオンラインサービス(たとえば、借用サービス、車両スケジューリングサービス、保険金請求サービス、信用取引サービス、および医療サービス)を展開することができる。そのようなコンソーシアムブロックチェーンでは、トランザクションは、コンソーシアムブロックチェーン内でユーザによって公開される、サービス指向サービスメッセージまたはメッセージ要求であり得る。
【００３４】
ターゲットトランザクションは、ブロックチェーン内のアカウンティングノードとして作用するノードデバイスが候補ブロック中に詰め込み、含める必要がある候補トランザクションである。候補トランザクションは、別のメンバーノードデバイスによって公開されるとともに検証済みである、収集されたトランザクションから、ノードデバイスによって選択される。
【００３５】
本出願では、クライアント側においてユーザによって作成されたトランザクションは、ユーザによって保持される私有鍵に基づいて署名されてよく、クライアント側に接続されたノードデバイスによって、ブロックチェーンのP2Pネットワーク中でブロードキャストされる。アカウンティングノードとして作用するノードデバイスは、別のノードデバイスによってブロードキャストされたトランザクションを収集し、収集されたトランザクションを、非確認応答トランザクションとして、ローカルトランザクションプール(メモリプールとも呼ばれる)に記憶してよい。
【００３６】
さらに、アカウンティングノードとして作用するノードデバイスは、現在のアカウンティング期間中に候補ブロックを作成し、トランザクションプール中のトランザクションに対して有効性検証を実施し、次いで、検証されたトランザクションを、作成された候補ブロック中に候補トランザクションとして記録することができる。
【００３７】
実際のアプリケーションでは、トランザクションプール中のトランザクションに対して検証を実施することは、トランザクションの公開者のアイデンティティに対する検証およびトランザクション内容に対する検証を実施することを含み得る。トランザクション内容に対する検証は、トランザクション内容に対する完全性検証をさらに含み得る。
【００３８】
実装中、署名されるとき、トランザクションは通常、内容ダイジェスト(たとえば、ハッシュ値)を取得するように算出されてよく、次いで、内容ダイジェストは、デジタル署名を取得するために、保持される私有鍵に基づいて暗号化される。署名されたトランザクションを受信した後、アカウンティングノードとして作用するノードデバイスは、トランザクションに署名するのに使用される私有鍵に基づいて、デジタル署名を解読することができる。解読が成功した場合、それは、トランザクションの公開者のアイデンティティが検証され、トランザクションが、ユーザによって公開された合法トランザクションであることを示す。
【００３９】
次に、アカウンティングノードとして作用するノードデバイスは、内容ダイジェストを取得するためにトランザクションをさらに算出し直し、算出し直された内容ダイジェストと、デジタル署名を解読することによって取得された元の内容ダイジェストを突き合わせればよい。2つの内容ダイジェストが互いと一致する場合、それは、トランザクション内容に対する完全性検証が通り、トランザクションのトランザクション内容がトランザクション送信プロセスにおいて違法に改竄されていないことを示す。
【００４０】
本明細書では、トランザクションプール中のトランザクションの公開者のアイデンティティに対する検証およびトランザクション内容に対する検証に加え、トランザクションプール中のトランザクションが、トランザクション有効期間内の有効トランザクションであるかどうかが、トランザクションに含まれる基準時間パラメータに基づいて、さらに検証され得る。
【００４１】
トランザクション有効期間は、ブロックチェーン内で公開されたトランザクション向けに、ブロックチェーンのオペレータによって設定される有効期間である。有効期間内のトランザクションは、合法トランザクションとして候補ブロックに追加され得る有効トランザクションと見なされる。反対に、有効期間外のトランザクションは、候補ブロックに追加され得ない無効トランザクションと見なされる。
【００４２】
トランザクション有効期間は、現在のアカウンティング期間中に作成される候補ブロックの作成時間を基準として使用して、ブロックチェーン内のアカウンティングノードデバイスによって設定される時間間隔であってよい。たとえば、トランザクション有効期間は、候補ブロックの作成時間前の時間期間であってよく、または候補ブロックの作成時間後の時間期間であってよい。ブロックチェーン内の別のノードデバイスによって公開された多くのトランザクションを収集するとき、アカウンティングノードは、トランザクション有効期間を使用して、生成された候補ブロックに、どのトランザクションが合法トランザクションとして追加されてよいかを判断することができる。
【００４３】
基準時間パラメータは、トランザクションに追加されるとともにトランザクションがトランザクション有効期間内の有効トランザクションであるかどうかを判断するのに使用される時間パラメータであってよい。収集されたトランザクションに対して検証を実施するとき、ブロックチェーン内のアカウンティングノードは、トランザクションに含まれる基準時間パラメータによって示される時間に基づいて、トランザクションがトランザクション有効期間内の有効トランザクションであるかどうかを判断することができる。
【００４４】
基準時間パラメータは、物理クロックであってよく、または論理クロックであってよい。
【００４５】
物理クロックは、システムまたはサードパーティクロックサーバから読み取られるシステムタイムスタンプである。論理クロックは、論理タイムスタンプである。分散型システムでは、イベント(たとえば、トランザクション)出現順序を示し得るいかなる自己増大値も、論理クロックとして使用され得る。
【００４６】
ある実装形態では、たとえば、基準時間パラメータは物理クロックである。基準時間パラメータは、トランザクションに追加される基準タイムスタンプであってよい。対応して、この場合、トランザクション有効期間は、候補ブロックの作成時間に対応する作成タイムスタンプと第1の閾との間の差(第1の値)、ならびにブロックの作成タイムスタンプおよび第2の閾の合計(第2の値)によって形成される数値間隔であってよい。
【００４７】
たとえば、候補ブロックの作成タイムスタンプは、Btsと記され、第1の閾はK1と記され、第2の閾はK2と記される。この場合、トランザクション有効期間は、数値間隔[Bts-K1,Bts+K2]によって表され得る。
【００４８】
中でも、第1の閾は、トランザクション有効期間の設定中に予約されるトランザクション有効持続時間を示す。第2の閾は、トランザクションを公開するノードデバイスのシステムタイムスタンプと、候補ブロックを作成するノードデバイスのシステムタイムスタンプとの間のクロックオフセットを示す。実際のアプリケーションでは、ブロックチェーンネットワーク中で許容され得るクロックオフセットは通常、比較的小さい。したがって、トランザクション有効期間の設定中、第2の閾は、規模において第1の閾未満である閾に設定されてよい。
【００４９】
たとえば、第1の閾は5日に設定されてよく、第2の閾は5分に設定されてよい。この場合、候補ブロックの作成時間の前の5日以内に公開されたトランザクションと、候補ブロックの作成時間の後の5分以内に公開されたトランザクションの両方が、トランザクション有効期間内の有効トランザクションである。
【００５０】
基準タイムスタンプは、ユーザがクライアント側においてトランザクションを作成するとき、ユーザによって手動で指定されてよく、またはクライアント側において自動的に追加されてよいことに留意するのは有益である。
【００５１】
たとえば、ある状況では、ユーザがクライアント側においてトランザクションを作成するとき、クライアント側は、トランザクションの作成時間をシステムから読み取り、次いで、作成時間に対応するタイムスタンプを、基準タイムスタンプとして、作成されたトランザクションに自動的に追加すればよい。別の状況では、ユーザは、トランザクション有効期間内の時間を必要に応じて指定し、次いで、その時間に対応するタイムスタンプを、基準タイムスタンプとして、作成されたトランザクションに手動で追加すればよい。
【００５２】
確かに、実際のアプリケーションでは、トランザクション有効期間の設定中、トランザクションを公開するノードデバイスのシステムタイムスタンプと、候補ブロックを作成するノードデバイスのシステムタイムスタンプとの間のクロックオフセットが考慮されない場合がある。この場合、トランザクション有効期間は、候補ブロックの作成時間に対応する作成タイムスタンプと第1の閾との間の差(第1の値)ならびに候補ブロックの作成タイムスタンプによって形成される数値間隔であってよい。
【００５３】
たとえば、候補ブロックの作成タイムスタンプはBtsと記され、第1の閾はK1と記される。この場合、トランザクション有効期間は、数値間隔[Bts-K1,Bts]によって表され得る。
【００５４】
別の実装形態では、たとえば、基準時間パラメータは論理クロックである。ブロックチェーンに対応するP2Pネットワークでは、ブロックチェーン内のブロックのブロック高さが、論理クロックとして使用され得る。この場合、基準時間パラメータは、トランザクションに追加される基準ブロック高さであってよい。トランザクション有効期間は、ブロックチェーン内の候補ブロックのブロック高さ、ならびにブロックチェーン内の候補ブロックのブロック高さと第3の閾との間の差(第3の値)によって形成される数値間隔であってよい。
【００５５】
たとえば、ブロックチェーン内の候補ブロックのブロック高さはBhと記され、第3の閾はK3と記される。この場合、トランザクション有効期間は、数値間隔[Bh-K3,Bh]によって表され得る。
【００５６】
第1の閾のように、第3の閾は、トランザクション有効期間の設定中に予約されるトランザクション有効持続時間を示す。ブロック高さが、トランザクション有効期間を表すための論理クロックとして使用されるとき、トランザクションを公開するノードデバイスのシステムタイムスタンプと、候補ブロックを作成するノードデバイスのシステムタイムスタンプとの間のクロックオフセットが考慮されない場合がある。したがって、前述の式の右部分の増大間隔、およびクロックオフセットを表す閾は、追加されなくてよい。
【００５７】
基準ブロック高さは、ユーザがクライアント側においてトランザクションを作成するとき、ユーザによって手動で指定されてよく、またはクライアント側において自動的に追加されてよいことに留意するのは有益である。
【００５８】
たとえば、ある状況では、ユーザがクライアント側においてトランザクションを作成するとき、クライアント側は、トランザクションの作成時間をシステムから読み取り、次いで、作成時間におけるブロックチェーン内の最大ブロック高さをさらに照会し、最大ブロック高さを、作成されたトランザクションに自動的に追加すればよい。別の状況では、ユーザは、トランザクション有効期間内のブロック高さを必要に応じて指定し、次いで、そのブロック高さに対応する値を、基準ブロック高さとして、作成されたトランザクションに手動で追加すればよい。
【００５９】
確かに、実際のアプリケーションでは、トランザクション出現順序を記述するのに使用され得る別のタイプの増大値が、ブロックチェーン内のブロックのブロック高さに加えて、論理クロックとして使用され得る。実装形態については、本明細書では列挙しない。
【００６０】
ある実装形態では、基準時間パラメータは、トランザクションに追加される基準タイムスタンプであり、Ttsと記され、トランザクション有効期間は、候補ブロックの作成時間に対応する作成タイムスタンプBtsと、第1の閾K1との間の差、ならびに候補ブロックの作成タイムスタンプBtsおよび第2の閾K2の合計によって形成される数値間隔[Bts-K1,Bts+K2]であると仮定する。
【００６１】
この場合、アカウンティングノードとして作用するノードデバイスは最初に、作成された候補ブロックの作成タイムスタンプに対して単調増加検査を実施して、作成された候補ブロックの作成タイムスタンプBtsが、ブロックチェーン内の最新ブロックの作成タイムスタンプよりも大きいかどうかを検査することができる。yesの場合、それは、候補ブロックが、ブロックチェーン内のブロックの作成タイムスタンプが単調増加であるという特性を満足し、候補ブロックは合法ブロックであることを示す。
【００６２】
候補ブロックが単調増加検査を通った後、アカウンティングノードとして作用するノードデバイスは、トランザクションからタイムスタンプTtsをさらに読み取り、読み取られた基準タイムスタンプTtsを、Bts-K1およびBts+K2と別個に比較すればよい。TtsがBts-K1よりも大きく、Bts+K2未満である場合、トランザクションは、トランザクション有効期間内の有効トランザクションであると判断され得る。
【００６３】
ある実装形態では、基準時間パラメータは、トランザクションに追加される基準ブロック高さであり、Thと記されると仮定すると、トランザクション有効期間は、ブロックチェーン内の候補ブロックのブロック高さBhと第3の閾K3との間の差、ならびにブロックチェーン内の候補ブロックのブロック高さBhによって形成される数値間隔[Bh-K3,Bh]である。
【００６４】
この場合、アカウンティングノードとして作用するノードデバイスは最初に、作成された候補ブロックのブロック番号に対して単調増加検査を実施して、作成された候補ブロックのブロック番号が、ブロックチェーン内の最新ブロックのブロック番号よりも大きいかどうかを検査することができる。yesの場合、それは、候補ブロックが、ブロックチェーン内のブロックのブロック番号が単調増加であるという特性を満足し、候補ブロックは合法ブロックであることを示す。
【００６５】
候補ブロックが単調増加検査を通った後、アカウンティングノードとして作用するノードデバイスは、トランザクションから基準ブロック高さThをさらに読み取り、読み取られた基準ブロック高さThを、Bh-K3およびBhと別個に比較すればよい。ThがBh-K3よりも大きく、Bh未満である場合、トランザクションは、トランザクション有効期間内の有効トランザクションであると判断され得る。
【００６６】
本出願において、公開者のアイデンティティに対する検証、トランザクション内容に対する検証、トランザクションの有効性検証などに成功した、トランザクションプール中のトランザクションは、候補トランザクションとして使用され、作成された候補ブロックに詰め込まれ、含められ得る。
【００６７】
たとえば、アカウンティングノードとして作用するノードデバイスは、有効性検証に成功したトランザクションを候補ブロックに追加するか、または有効性検証に成功したトランザクションのうちのいくつかを、規則に基づいて(たとえば、トランザクション優先度に基づいて)選択し、それらのトランザクションを候補ブロックに追加すればよい。
【００６８】
したがって、トランザクション有効期間内の有効トランザクションのみが、合法トランザクションとして候補ブロック中に記録され得る。長い時間期間に先立ついくつかの延滞トランザクションは、後続トランザクション実行のために候補ブロック中に記録することができない。したがって、ブロックチェーン内の違法ノードデバイスは、長い時間期間に先立つ、インターセプトされた延滞トランザクションを使用することによって、ブロックチェーン内で反射攻撃を開始することができず、それにより、ブロックチェーンのトランザクションセキュリティレベルが増す。
【００６９】
本明細書では、アカウンティングノードとして作用するノードデバイスのトランザクション実行環境はマルチインスタンス実行環境であってよく、マルチインスタンス実行環境では、同じトランザクションが、異なるインスタンスによって繰り返し提出される場合がある。したがって、ブロックチェーンにおけるトランザクション実行中に、冪等性が起こり得る。冪等性は、同じトランザクションが繰り返し実行された後、ユーザが悪影響を受けることを意味する。
【００７０】
たとえば、ビットコインネットワークにおける「二重支払い」問題が、典型的な「冪等性」問題である。ユーザの私有鍵を使用することによって実施される署名検証が成功した後、転送トランザクションは、違法ノードによってインターセプトされると仮定する。トランザクションが実行された後、違法ノードは、インターセプトされたトランザクションに基づいて反射攻撃を開始し、ブロックチェーン内でトランザクションを繰り返し実行する場合があり、同じ資金を複数回転送させ、ユーザに対して金銭的損失を引き起こす。
【００７１】
したがって、マルチインスタンス実行環境における、トランザクションの繰り返される実行を削減するために、ブロックチェーン内のアカウンティングノードとして作用し得るノードデバイスは、トランザクション冪等元テーブルを共同で維持すればよい。
【００７２】
たとえば、アカウンティングノードとして作用するノードデバイスは、ブロックチェーンにおける既存のコンセンサス機構を使用することによって、コンセンサスに到達するトランザクション冪等元テーブルを共同で維持すればよい。
【００７３】
トランザクション冪等元テーブルは、トランザクション有効期間内の有効トランザクションに基づいて、ブロックチェーンの分散型データベース中に正常に記録される記憶レコード(すなわち、ブロックレコード)用に作成されたインデックスレコードテーブルである。トランザクション冪等元テーブルは、ブロックチェーンの分散型データベース中に正常に記録される有効トランザクションに対応するトランザクション冪等元レコードを記憶するのに使用される。
【００７４】
具体的には、トランザクション冪等元テーブルに記憶されたトランザクション冪等元レコードは、トランザクション冪等元レコードに対応するトランザクションが、候補ブロックへ正常にカプセル化されており、候補ブロックが、ブロックチェーン内の最新ブロックとして、ブロックチェーンの分散型データベース(すなわち、分散型台帳)に正常に追加されるためのコンセンサスに到達したことを示すのに使用される。
【００７５】
候補ブロック中に有効トランザクションを記録する前に、アカウンティングノードとして作用するノードデバイスは、トランザクション冪等元テーブルに基づいて、トランザクションに対して冪等性検査を実施して、トランザクションが、ブロックチェーンのデータベースに正常に記録されているトランザクションであるかどうかを判断すればよい。
【００７６】
ある実装形態では、クライアント側においてユーザによって作成されたトランザクションは、前の基準時間パラメータに加え、トランザクション用の、クライアント側において作成された一意の識別子を含み得る。
【００７７】
トランザクション用の、クライアント側において作成された一意の識別子は、単調増加トランザクション識別子であってよい。トランザクション識別子の具体的な形は、本明細書において限定されない。
【００７８】
ある実装形態では、トランザクションに含まれる、トランザクションの一意の識別子は、トランザクション用の、クライアント側において作成される一意の単調増加トランザクション番号であってよい。
【００７９】
たとえば、実際のアプリケーションでは、ブロックチェーン内のノードデバイスは、複数のインスタンスで構成されたノードデバイスであってよく、各インスタンスは、一意のインスタンスIDを有する。この場合、トランザクション番号は、インスタンスIDおよび生成された乱数を含む一意のトランザクション番号であってよい。
【００８０】
別の例として、ブロックチェーン内のノードデバイスは、複数のデバイスを含む分散型デバイスであり、各デバイスは、一意のデバイス識別子(たとえば、デバイスIDまたはデバイスのIPアドレス)を有する。この場合、トランザクション番号は、デバイス識別子および生成された乱数を含む一意のトランザクション番号であってよい。
【００８１】
もちろん、前述の例に記載されるトランザクション番号生成方法は、単なる例である。当業者は、本出願における技術的解決策の実装中、他のトランザクション番号生成方法を柔軟に使用してもよい。他のトランザクション番号生成方法については、本出願では列挙しない。
【００８２】
別の実装形態では、トランザクションに含まれる、トランザクションの一意の識別子は、クライアント側において、生成されたトランザクションに追加される一意の単調増加ノンス値であってよい。
【００８３】
ノンス値は、トランザクションに追加される単調増加乱数または擬似乱数であってよく、1つのトランザクションによって一度だけ使用され得る。
【００８４】
従来のEthereum(Ethereum)ブロックチェーンプラットフォームが、例として使用される。Ethereumでは、初期ノンス値が各アカウントオブジェクト用に構成され、ノンス値は0からカウントされる。ノンス値は、アカウントオブジェクトがトランザクションを送る度に、対応して1だけ増大され、アカウントオブジェクトによって送られる各トランザクションは、アカウントオブジェクトの現在のノンス値(すなわち、トランザクションの作成中のアカウントオブジェクトのノンス値)を含む。トランザクションを受信した後、アカウンティングノードとして作用するノードデバイスは、ノンス値のカウンティング順序に基づいて、ユーザからのトランザクションを正確に実行してよい。トランザクションに含まれるノンス値は、ノンス値が、アカウントオブジェクトによって以前送られたトランザクションにおいて使用されるノンス値よりも大きいかどうかを判断するために検査され得る。トランザクションに含まれるノンス値が、アカウントオブジェクトのトランザクションによって以前使用された最大ノンス値未満である場合、それは、トランザクションが、複製トランザクションであり、すぐに拒否されることを示す。トランザクションに含まれるノンス値が、アカウントオブジェクトのトランザクションによって以前使用された最大ノンス値よりもはるかに大きい場合、トランザクションは、処理されてよく、トランザクションに含まれるノンス値に先行するノンス値に対応するトランザクションが処理された後でのみ、候補ブロック中に記録される。対応して、トランザクションに含まれるノンス値が、アカウントオブジェクトのトランザクションによって使用される最大ノンス値の次のカウント値と一致する場合、トランザクションは直ちに処理されてよく、トランザクションは候補ブロック中に記録される。本出願において、トランザクションに含まれる、トランザクションの一意の識別子は、イーサネットにおけるノンス値であってよく、詳細については、本出願では省略する。
【００８５】
収集されたトランザクションが、トランザクション有効期間内の有効トランザクションであると判断した後、アカウンティングノードとして作用するノードデバイスは、トランザクションの一意の識別子に対応するトランザクション冪等性レコードがトランザクション冪等性テーブルに記憶されるかどうかをさらに照会してよい。
【００８６】
トランザクション冪等性レコードが、トランザクションの一意の識別子に対応するトランザクション冪等性レコードを記憶してある場合、それは、トランザクションがブロックチェーンの分散型データベース中に正常に記録されており、トランザクションは複製トランザクションであり、トランザクションはすぐに破棄されてよいことを示す。
【００８７】
さらに、トランザクション冪等元テーブルが、トランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶していない場合、それは、トランザクションが、ブロックチェーンの分散型データベース中に正常に記録されていないことを示し、ノードデバイスはトランザクションを候補ブロック中に記録すればよい。
【００８８】
本出願において、候補ブロックを生成した後、アカウンティングノードとして作用するノードデバイスはさらに、生成された候補ブロックをブロックチェーン内でブロードキャストし、アカウンティング許可を求めて競合するために、ブロックチェーンによってサポートされるコンセンサスアルゴリズムに基づいて、ブロックチェーン内の候補ブロック中に記録されたトランザクションに対してコンセンサス処理を実施してよい。
【００８９】
ブロックチェーンによってサポートされるコンセンサスアルゴリズムの具体的なタイプは、本出願では限定されない。実際のアプリケーションでは、プルーフオブワークアルゴリズムもしくはPBFTアルゴリズムなどの標準コンセンサスアルゴリズムが使用されてよく、またはコンセンサスアルゴリズムは、実際のサービス要件に基づいて、ブロックチェーンのオペレータによってカスタマイズされてよい。
【００９０】
候補ブロックがコンセンサスに到達し、アカウンティングノードとして作用するノードデバイスがアカウンティング許可を取得した後、以下が実装され得る。
【００９１】
候補ブロックは、ブロックチェーンの分散型データベース(すなわち、分散型台帳)に、ブロックチェーン内の最新ブロックとして追加され得る。この場合、候補ブロックは、ブロックチェーン内のブロックとして、ブロックチェーン内に永久に記憶される。
【００９２】
さらに、ノードデバイスは、トランザクションに含まれるトランザクション内容に基づいて、ノードデバイスのトランザクション実行環境において実行されるべき候補ブロック中に記録されるためのコンセンサスに到達するトランザクションをトリガし得る。たとえば、トランザクションは、ブロックチェーン内で公開されているスマートコントラクトの入力として使用されてよく、トランザクションは、スマートコントラクトに記述されるトランザクション実行プログラムコードを実行する(たとえば、トランザクション実行に関連したいくつかの関数を呼び出す)ことによって、ノードデバイスのトランザクション実行環境において実行される。
【００９３】
ある実装形態では、ターゲットトランザクションが候補ブロック中に正常に記録され、候補ブロックが、ブロックチェーン内の最新ブロックとしてブロックチェーンの分散型データベースに最終的に記憶されるためのコンセンサスに到達した後、ターゲットトランザクションは、ブロックチェーンの分散型データベースに正常に記憶されている(言い換えると、トランザクションは正常にオンチェーン(onchain)である)。この場合、アカウンティングノードとして作用するノードデバイスは、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等性レコードをさらに生成し、次いで、トランザクション冪等性レコードをトランザクション冪等性テーブルに挿入すればよい。
【００９４】
トランザクション冪等元レコードの具体的なフォーマットについては、本出願では限定しない。
【００９５】
ある実装形態では、トランザクションの一意の識別子は、トランザクション冪等元レコードが比較的大きい記憶空間を占めるのを防止するために、トランザクション冪等元レコードとして、トランザクション冪等元テーブルに直接挿入されてよい。確かに、実際のアプリケーションでは、トランザクション冪等元レコードは、トランザクションの一意の識別子を含むデータレコードであり得る。以下の実装形態は、トランザクション冪等性テーブル中のトランザクション冪等性レコードがトランザクションの一意の識別子である例を使用して記載される。
【００９６】
トランザクション冪等性テーブル中のトランザクション冪等性レコードは、トランザクション有効期間内の有効トランザクションのトランザクション冪等性レコードのみを含み、トランザクション有効期間の前の履歴トランザクションのトランザクション冪等性レコードは、記憶される必要はない。したがって、トランザクション冪等性テーブルの記憶空間消費は過度に大きいわけではなく、トランザクション冪等性テーブルの記憶空間消費が過度に大きいという理由での照会性能問題は存在しない。
【００９７】
たとえば、アカウンティングノードとして作用し得るどのノードデバイスに対しても、トランザクション冪等性テーブルによって占められる記憶空間は比較的小さいので、トランザクション冪等性テーブルは、デバイスメモリに直接ロードされ、維持されてよく、トランザクション冪等性テーブルは、サードパーティ記憶ディスクを使用して記憶される必要はない。したがって、トランザクション冪等性テーブルにおける照会は、メモリ中で直接実施されてよく、照会性能は大幅に向上され得る。
【００９８】
さらに、有効トランザクションの中で、トランザクション冪等性テーブル中にそのトランザクション冪等元レコードが存在しないトランザクションのみが、候補ブロック中に正常に記録され得る。したがって、ブロックチェーンにおけるトランザクション実行中に起こる「冪等性」問題を削減することができ、違法ノードは、トランザクション有効期間内の、インターセプトされた有効トランザクションを使用して反射攻撃を開始することはできない。したがって、同じ有効トランザクションは繰り返し実行され得ない。
【００９９】
さらに、ブロックチェーン内のノードデバイス向けに複数のインスタンスが構成されるか、またはノードデバイスが分散型デバイスであるとき、同じ有効トランザクションが分散型デバイス中の異なるインスタンスまたは異なるサブデバイスによって並行して公開されるので、同じ有効トランザクションが繰り返し実行されるという問題が効果的に削減され得る。
【０１００】
ある実装形態では、トランザクション冪等性テーブルに記録されたトランザクション識別子は、連続する値を有する単調増加トランザクション識別子であるので、トランザクション冪等性テーブルにトランザクション冪等性レコードを挿入するプロセスにおいて、連続する値を有する、複数の記録された単調増加トランザクション識別子は、トランザクション冪等性テーブルによって占められる記憶空間をさらに削減するように組み合わされ得る。
【０１０１】
具体的には、ターゲットトランザクションのトランザクション識別子を、トランザクション冪等元レコードとしてトランザクション冪等元テーブルに挿入するとき、アカウンティングノードとして作用するノードデバイスは、ターゲットトランザクションのトランザクション識別子がトランザクション冪等元テーブルに挿入された後、トランザクション冪等元テーブルが、連続する値を有する複数の単調増加トランザクション識別子を含むかどうかを判断すればよい。yesの場合、ノードデバイスは、連続する値を有する複数の単調増加トランザクション識別子を、間隔の形で、トランザクション冪等元テーブルに記録すればよい。noの場合、ノードデバイスは、ターゲットトランザクションのトランザクション識別子を、離散値の形でトランザクション冪等元テーブルに記録すればよい。
【０１０２】
たとえば、ターゲットトランザクションのトランザクション識別子はノンス値である。ターゲットトランザクション中に含まれるノンス値は2であり、ノンス値1、3、および5はトランザクション冪等性テーブルに記録されていると仮定する。この場合、ターゲットトランザクション中に含まれるノンス値2が、トランザクション冪等性レコードとしてトランザクション冪等性テーブルに挿入された後、トランザクション冪等性テーブルに記録されているノンス値2ならびにノンス値1および3は、単調増加連続値である。したがって、ノンス値1、2、および3は、間隔[1,3]の形で、トランザクション冪等性テーブルに記録されてよい。代替として、間隔の最大値は、間隔を表すのに使用されてよく、間隔[1,3]は、トランザクション冪等性レコードの記憶空間をさらに節約するために、トランザクション冪等性テーブルにノンス値を記録するために3として表される。
【０１０３】
別の例では、ターゲットトランザクション中に含まれるノンス値は9であり、ノンス値[1,3]および5はトランザクション冪等性テーブルに記録されている。ターゲットトランザクション中に含まれるノンス値9が、トランザクション冪等性レコードとしてトランザクション冪等性テーブルに挿入された後、トランザクション冪等元テーブルは、複数の単調増加連続ノンス値を含めることはない。この場合、ノンス値9は、離散値の形でトランザクション冪等性テーブルに記録されてよい。この場合、アップデートされたトランザクション冪等性テーブル中のノンス値は、[1,3]、5、および9である。
【０１０４】
したがって、連続する値を有する複数の単調増加トランザクション識別子は、間隔の形でトランザクション冪等性テーブルに記録され得る。そうすることにより、大規模トランザクション処理シナリオにおいて、トランザクション冪等性テーブルの記憶空間の占有を大幅に削減することができる。
【０１０５】
確かに、トランザクション冪等性テーブルにトランザクション冪等性レコードを挿入するプロセスにおいて、トランザクション冪等元テーブル中の連続する値を有する複数の単調増加トランザクション識別子が組み合わされる。実際のアプリケーションでは、記載される組合せプロセスは、あらかじめ設定された組合せ期間に基づいて周期的に完了され得る。たとえば、トランザクション冪等元テーブルが、連続する値を有する複数の単調増加トランザクション識別子を含むかどうかは、あらかじめ設定された組合せ期間に基づいて周期的に検査される。yesの場合、連続する値を有する複数の単調増加トランザクション識別子は、間隔の形でトランザクション冪等元テーブルに記録され得る。
【０１０６】
本出願において、候補ブロックを生成した後、アカウンティングノードとして作用するノードデバイスはさらに、生成された候補ブロックをブロックチェーン内でブロードキャストし、アカウンティング許可を求めて競合するために、ブロックチェーンによってサポートされるコンセンサスアルゴリズムに基づいて、ブロックチェーン内の候補ブロック中に記録されたトランザクションに対してコンセンサス処理を実施してよい。
【０１０７】
ブロックチェーンによってサポートされるコンセンサスアルゴリズムの具体的なタイプは、本出願では限定されない。実際のアプリケーションでは、プルーフオブワークアルゴリズムもしくはPBFTアルゴリズムなどの標準コンセンサスアルゴリズムが使用されてよく、またはコンセンサスアルゴリズムは、実際のサービス要件に基づいて、ブロックチェーンのオペレータによってカスタマイズされてよい。
【０１０８】
候補ブロックがコンセンサスに到達し、アカウンティングノードとして作用するノードデバイスがアカウンティング許可を取得した後、以下が実装され得る。
【０１０９】
候補ブロックは、ブロックチェーンの分散型データベース(すなわち、分散型台帳)に、ブロックチェーン内の最新ブロックとして追加され得る。この場合、候補ブロックは、ブロックチェーン内のブロックとして、ブロックチェーン内に永久に記憶される。
【０１１０】
さらに、ノードデバイスは、トランザクションに含まれるトランザクション内容に基づいて、ノードデバイスのトランザクション実行環境において実行されるべき候補ブロック中に記録されるためのコンセンサスに到達するトランザクションをトリガし得る。たとえば、トランザクションは、ブロックチェーン内で公開されているスマートコントラクトの入力として使用されてよく、トランザクションは、スマートコントラクトに記述されるトランザクション実行プログラムコードを実行する(たとえば、トランザクション実行に関連したいくつかの関数を呼び出す)ことによって、ノードデバイスのトランザクション実行環境において実行される。
【０１１１】
ある実装形態では、ターゲットトランザクションが候補ブロック中に正常に記録され、候補ブロックが、ブロックチェーン内の最新ブロックとしてブロックチェーンの分散型データベースに最終的に記憶されるためのコンセンサスに到達した後、ターゲットトランザクションは、ブロックチェーンの分散型データベースに正常に記憶されている(言い換えると、トランザクションは正常にオンチェーンである)。この場合、アカウンティングノードとして作用するノードデバイスは、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等性レコードをさらに生成し、次いで、トランザクション冪等性レコードをトランザクション冪等性テーブルに挿入すればよい。
【０１１２】
本出願において、トランザクション冪等性テーブルは、トランザクション有効期間内の有効トランザクションに対応するトランザクション冪等性レコードを維持するのに使用される。したがって、実際のアプリケーションでは、トランザクション冪等元テーブルを共同で維持するメンバーノードデバイスは、時間的に、トランザクション冪等元テーブル中の、トランザクション有効期間の外にあるトランザクションのトランザクション冪等元レコードを周期的に消し去ってよい。
【０１１３】
たとえば、トランザクション有効期間は、現在のアカウンティング期間中に作成される候補ブロックの作成時間を基準として使用して、ブロックチェーン内のアカウンティングノードデバイスによって設定される時間間隔である。候補ブロックは周期的に作成されるので、トランザクション有効期間も、周期的な動的時間期間である。この場合、ノードデバイスは、次のアカウンティング期間中に新たな候補ブロックが作成されると、トランザクション有効期間を再度判断し、次いで、再度判断されたトランザクション有効期間の外にあるトランザクションのトランザクション冪等元レコードを求めて、トランザクション冪等元テーブルをアクティブに探索することができる。たとえば、トランザクションが、依然として、トランザクション中の基準時間パラメータを使用して再度判断されたトランザクション有効期間の外にあるかどうかが判断され得る。具体的な実装プロセスについては省略する。
【０１１４】
さらに、これらの識別されたトランザクション冪等性レコードは、トランザクション冪等性テーブル中で維持されるトランザクション冪等性レコードを動的に更新し、維持するために消去されてよい。したがって、トランザクション冪等性テーブル中のトランザクション冪等性レコードは、現在のトランザクション有効期間内の有効トランザクションに対応するトランザクション冪等性レコードである。
【０１１５】
本出願は、上記の方法実装形態に対応する、ブロックチェーンベースのトランザクション処理装置の実装形態をさらに提供する。本出願における、ブロックチェーンベースのトランザクション処理装置の実装形態は、電子デバイスに適用され得る。装置実装形態は、ソフトウェア、ハードウェア、またはハードウェアおよびソフトウェアの組合せによって実装されてよい。ソフトウェア実装が、例として使用される。装置が位置する電子デバイスのプロセッサが、対応するコンピュータプログラム命令を不揮発性メモリからメモリに読み取り、コンピュータプログラム命令は、論理装置を形成するように稼動する。ハードウェア実装に関して、図2は、本出願による、ブロックチェーンベースのトランザクション処理装置が位置する電子デバイスのハードウェアを示す構造図である。図2に示すプロセッサ、メモリ、ネットワークインターフェース、および不揮発性メモリに加え、この実装形態において装置が位置する電子デバイスは通常、電子デバイスの実際の機能に基づいて、他のハードウェアを含んでよい。詳細については省略する。
【０１１６】
図3は、本出願の例示的実装形態によるブロックチェーンベースのトランザクション処理装置を示すブロック図である。
【０１１７】
図3を参照すると、ブロックチェーンベースのトランザクション処理装置30は、図2に示す電子デバイスに適用されてよく、受信モジュール301、照会モジュール302、および記録モジュール303を含む。
【０１１８】
受信モジュール301は、ブロックチェーン内のメンバーノードデバイスによって開始されたターゲットトランザクションを受信するように構成され、ターゲットトランザクションはターゲットトランザクションの一意の識別子を含む。
【０１１９】
照会モジュール302は、あらかじめ設定されたトランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶しているかどうかを照会するように構成される。
【０１２０】
記録モジュール303は、トランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶していない場合、ターゲットトランザクションを候補ブロックに記録するように構成される。
【０１２１】
この実装形態では、トランザクション冪等元テーブル中のトランザクション冪等元レコードは、トランザクション冪等元レコードに対応するトランザクションがブロックチェーンの分散型データベース中に正常に記録されていることを示す。
【０１２２】
この実装形態では、記録モジュール303は、ターゲットトランザクションが、候補ブロック中に記録され、候補ブロックが、ブロックチェーンの分散型データベースに正常に記憶されるためのコンセンサスに到達した場合、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを生成し、ターゲットトランザクションの一意の識別子に対応する、生成されたトランザクション冪等元レコードをトランザクション冪等元テーブルに挿入するようにさらに構成される。
【０１２３】
この実装形態では、トランザクション冪等元テーブル中のトランザクション冪等元レコードは、トランザクションの一意の識別子であり、ブロックチェーン内のメンバーノードデバイスによって開始されたトランザクションの一意の識別子は単調増加トランザクション識別子である。
【０１２４】
記録モジュール303は、トランザクションの一意の識別子がトランザクション冪等元テーブルに挿入された後、トランザクション冪等元テーブルが、連続する値を有する複数の単調増加トランザクション識別子を含むかどうかを判断し、yesの場合、連続する値を有する複数の単調増加トランザクション識別子を、間隔の形で、トランザクション冪等元テーブルに記録し、またはnoの場合、トランザクションのトランザクション識別子を、離散値の形でトランザクション冪等元テーブルに記録するようにさらに構成される。
【０１２５】
この実装形態では、ターゲットトランザクションは基準時間パラメータをさらに含み、基準時間パラメータは、ターゲットトランザクションが、トランザクション有効期間内の有効トランザクションであるかどうかを判断するのに使用される。
【０１２６】
装置30は、あらかじめ設定されたトランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶するかどうかが照会される前に、ターゲットトランザクションが、トランザクション有効期間内の有効トランザクションであるかどうかを、基準時間パラメータに基づいて判断し、ターゲットトランザクションが、トランザクション有効期間内の有効トランザクションであると判断された場合、あらかじめ設定されたトランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶するかどうかをさらに照会するように構成された判断モジュール304(図3には示さず)をさらに含む。
【０１２７】
この実装形態では、ブロックチェーンはコンソーシアムブロックチェーンである。装置の中の各モジュールの機能および役割の実装プロセスについては、前述の方法における対応するステップからなる実装プロセスを参照されたい。詳細については、ここでは省略する。
【０１２８】
装置実装形態は基本的に、方法実装形態に対応するので、関連部分について、方法実装形態における関連説明に対して参照が行われる場合がある。前に記載した装置実装形態は、例にすぎない。別個の部分として記述されるモジュールは、物理的に別個であってもまたはなくてもよく、モジュールとして表示される部分は、物理モジュールであってもまたはなくてもよく、ある位置に位置決めされ得るか、または複数のネットワークモジュール上で分散され得る。モジュールの一部または全部が、本出願におけるソリューションの目的を達成するために、実際の必要に基づいて選択されてよい。当業者は、本出願の実装形態を理解し、創造的努力なしで実装することができよう。
【０１２９】
前述の実装形態に示されたシステム、装置、またはモジュールは、コンピュータチップもしくはエンティティを使用することによって実装され得るか、または特定の機能を有する製品を使用することによって実装され得る。典型的な実装形態デバイスがコンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラーフォン、カメラフォン、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、eメール受信および送付デバイス、ゲームコンソール、タブレット、装着可能デバイス、またはこれらのデバイスのどの組合せであってもよい。
【０１３０】
本出願は、前述の方法実装形態に対応する電子デバイスの実装形態をさらに提供する。電子デバイスは、プロセッサと、機械実行可能命令を記憶するように構成されたメモリとを含む。プロセッサおよびメモリは通常、内部バスを使用することによって互いに接続される。別の可能実装形態では、デバイスは外部インターフェースをさらに含んでよく、そうすることによって、デバイスは別のデバイスまたは構成要素と通信することができる。
【０１３１】
この実装形態では、メモリに記憶されるとともにブロックチェーンベースのトランザクション処理の制御論理に対応する機械実行可能命令を読み取り、実行することによって、プロセッサは、ブロックチェーン内のメンバーノードデバイスによって開始されたターゲットトランザクションを受信することであって、ターゲットトランザクションはターゲットトランザクションの一意の識別子を含む、ことと、あらかじめ設定されたトランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶しているかどうかを照会することと、トランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶していない場合、ターゲットトランザクションを候補ブロックに記録することとを行うように構成される。
【０１３２】
この実装形態では、メモリに記憶されるとともにブロックチェーンベースのトランザクション処理の制御論理に対応する機械実行可能命令を読み取り、実行することによって、プロセッサは、ターゲットトランザクションが、候補ブロック中に記録され、候補ブロックが、ブロックチェーンの分散型データベースに正常に記憶されるためのコンセンサスに到達した場合、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを生成し、ターゲットトランザクションの一意の識別子に対応する、生成されたトランザクション冪等元レコードをトランザクション冪等元テーブルに挿入するように構成される。
【０１３３】
この実装形態では、トランザクション冪等元テーブル中のトランザクション冪等元レコードは、トランザクションの一意の識別子であり、ブロックチェーン内のメンバーノードデバイスによって開始されたトランザクションの一意の識別子は単調増加トランザクション識別子である。
【０１３４】
メモリに記憶されるとともにブロックチェーンベースのトランザクション処理の制御論理に対応する機械実行可能命令を読み取り、実行することによって、プロセッサは、トランザクションの一意の識別子がトランザクション冪等元テーブルに挿入された後、トランザクション冪等元テーブルが、連続する値を有する複数の単調増加トランザクション識別子を含むかどうかを判断し、yesの場合、連続する値を有する複数の単調増加トランザクション識別子を、間隔の形で、トランザクション冪等元テーブルに記録し、またはnoの場合、トランザクションのトランザクション識別子を、離散値の形でトランザクション冪等元テーブルに記録するように構成される。
【０１３５】
この実装形態では、ターゲットトランザクションは基準時間パラメータをさらに含み、基準時間パラメータは、ターゲットトランザクションが、トランザクション有効期間内の有効トランザクションであるかどうかを判断するのに使用される。
【０１３６】
メモリに記憶されるとともにブロックチェーンベースのトランザクション処理の制御論理に対応する機械実行可能命令を読み取り、実行することによって、プロセッサは、あらかじめ設定されたトランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶するかどうかが照会される前に、ターゲットトランザクションが、トランザクション有効期間内の有効トランザクションであるかどうかを、基準時間パラメータに基づいて判断し、ターゲットトランザクションが、トランザクション有効期間内の有効トランザクションであると判断された場合、あらかじめ設定されたトランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶するかどうかをさらに照会するように構成される。
【０１３７】
当業者は、本出願を熟考し、本明細書における本開示を実践した後、本出願の別の実装形態を容易に考えつくことができよう。本出願は、本出願のどの変形、使用、または適合もカバーすることを意図しており、これらの変形、使用、または適合は、本出願の原則に従い、本出願の技術分野では開示されていない共通知識または従来技術を含む。本明細書および実装形態は、例と見なされるにすぎず、本出願の実際の範囲および趣旨は、添付の請求項によって指摘される。
【０１３８】
本出願は、上述し、添付の図面に示す厳密な構造に限定されず、本出願の範囲から逸脱することなく、様々な修正および変更が行われてよいことを理解されたい。本出願の範囲は、添付の特許請求の範囲によってのみ限定される。
【０１３９】
前の説明は、本出願の単に好ましい実装形態にすぎず、本出願を限定することは意図していない。本出願の趣旨および原理から逸脱することなく行われるいかなる修正、等価な置換え、または改良も、本出願の保護範囲内であるものとする。
【０１４０】
上のコンテキストにおいて、図4は、本開示のある実装形態による、ブロックチェーンベースのトランザクションを処理するためのコンピュータ実装方法400の例を示すフローチャートである。提示の明快のために、後に続く説明は概して、本説明における他の図面のコンテキストにおいて、方法400を記載する。ただし、方法400は、たとえば、必要に応じて、どのシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって実施されてもよいことが理解されよう。いくつかの実装形態では、方法400の様々なステップは、並列に、組み合わせて、ループ中で、またはどの順序で稼働されてもよい。
【０１４１】
402において、ブロックチェーンが、メンバーノードデバイスによって開始されたターゲットトランザクションを受信する。ターゲットトランザクションは、ターゲットトランザクションの一意の識別子を含み得る。一例では、一意の識別子はノンス値に対応する。ターゲットトランザクションは、基準時間パラメータをさらに含み得る。一例では、基準時間パラメータはタイムスタンプを含む。402から、方法400は404に進む。
【０１４２】
404において、方法は続いて、ターゲットトランザクションがトランザクション有効期間内に有効であるかどうかを判断する。コンテキスト上、ターゲットトランザクションは、ブロックチェーン上のメンバーノードデバイスによって続けて開始され得る。各ターゲットトランザクションは、有限有効期間を有する。たとえば、ターゲットトランザクションの基準時間パラメータが検証されて、ターゲットトランザクションがトランザクション有効期間内であるかどうかを、基準時間パラメータに基づいて判断することができる。一例では、トランザクション有効期間は、ブロックチェーン上のブロックチェーントランザクションの満了期間によって特徴づけられる時間ウィンドウ、またはブロックチェーン上のデバイス向けのクロックオフセットに対応する。ターゲットトランザクションが有効時間期間内である(406)と判断したことに応答して、方法400は408に進む。そうでない場合、ターゲットトランザクションは削除されてよい。
【０１４３】
408において、方法400は続いて、トランザクション冪等元テーブルがターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶したかどうかを判断するために、ブロックチェーン上のトランザクション冪等元テーブルを照会する。トランザクション冪等元テーブルに記憶されたトランザクション冪等元レコードは、トランザクション冪等元レコードに対応するトランザクションがブロックチェーンの分散型データベース中に正常に記録されていることを示す。トランザクション冪等元レコードは、初回適用以外にも、結果を変えずに複数回適用され得るトランザクションレコードを示す。408において、トランザクション冪等元テーブルがターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶したかどうかに関して、判断が行われる。408から、方法400は410に進む。
【０１４４】
410において、トランザクション冪等元テーブルがターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶したかどうかに関して、判断が行われる。トランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶したと判断したことに応答して、方法400は412に進んで、ターゲットトランザクションが正常に記録されたと判断する。トランザクション冪等元テーブルが、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを記憶したと判断したことに応答して、方法400は414に進んで、ターゲットトランザクションを、ブロックチェーン上の候補ブロックに記録する。414から、方法400は416に進む。
【０１４５】
416において、方法400は続いて、ブロックチェーンの分散型データベースに候補ブロックを記憶するかどうかを判断するために、ブロックチェーンによってサポートされるコンセンサスアルゴリズムを使用して、候補ブロック中のターゲットトランザクションに対してコンセンサス処理を実施する。候補ブロックがコンセンサス処理を通ったことに応答して、方法400は続いて、ターゲットトランザクションの一意の識別子に対応するトランザクション冪等元レコードを生成する(418)。続いて、方法400は先に進んで、ターゲットトランザクションの一意の識別子に対応する、生成されたトランザクション冪等元レコードを、ブロックチェーン上のトランザクション冪等元テーブルに挿入する(420)。
【０１４６】
本明細書において開示する実装形態は、ブロックチェーントランザクションを扱うための技術的解決策を提供する。一態様では、ブロックチェーン内の受信されたトランザクションに対する冪等元処理を強制するために、トランザクション冪等元テーブルが作成される。冪等元処理は、初回適用以外にも、結果を変えずに複数回適用され得る。したがって、違法ノードは、インターセプトされた延滞トランザクションを使用して反射攻撃を開始することはできない。別の態様では、ターゲットトランザクションは、タイムスタンプに基づいてブロックチェーン上で開始される。ターゲットトランザクションの適時処理が、有効時間期間内に起こると予期される。各ターゲットトランザクション用の時間ウィンドウを強制することによって、アカウンティングノードは、ターゲットトランザクションの適時性を認識することができ、そうすることによって、有効時間ウィンドウ外のターゲットトランザクションは、違法、たとえばリプレイとして取り扱われ得る。
【０１４７】
本明細書に記載する実施形態および動作は、デジタル電子回路機構で、またはコンピュータソフトウェア、ファームウェア、もしくは本明細書において開示した構造を含むコンピュータハードウェアで、またはそれらのうちの1つもしくは複数の、組合せで実装することができる。動作は、1つもしくは複数のコンピュータ可読記憶デバイス上に記憶されるか、または他のソースから受信されたデータに対してデータ処理装置によって実施される動作として実装され得る。データ処理装置、コンピュータ、またはコンピューティングデバイスは、例として、プログラム可能プロセッサ、コンピュータ、システムオンチップ、または上記の複数のもの、もしくは組合せを含む、データを処理するための装置、デバイス、および機械を包含し得る。装置は、特殊目的論理回路機構、たとえば、中央処理ユニット(CPU)、フィールドプログラム可能ゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)を含み得る。装置は、問題となっているコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム(たとえば、1つのオペレーティングシステムまたは複数のオペレーティングシステムの組合せ)、クロスプラットフォームランタイム環境、仮想機械、またはそれらのうちの1つもしくは複数の、組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービス、分散型コンピューティングおよびグリッドコンピューティングインフラストラクチャなど、異なる様々なコンピューティングモデルインフラストラクチャを実現することができる。
【０１４８】
コンピュータプログラム(たとえば、プログラム、ソフトウェア、ソフトウェアアプリケーション、ソフトウェアモジュール、ソフトウェアユニット、スクリプト、またはコードとしても知られる)は、コンパイルまたはインタープリタ型言語、宣言型または手続き型言語を含む、どの形のプログラミング言語で書かれてもよく、スタンドアロンプログラムとして、またはモジュールとして、コンピューティング環境での使用に適した構成要素、サブルーチン、オブジェクト、または他のユニットを含む、どの形でも展開することができる。プログラムは、他のプログラムもしくはデータ(たとえば、マークアップ言語ドキュメントに記憶された1つもしくは複数のスクリプト)を保持するファイル部分に、問題になっているプログラムに専用の単一のファイルに、または複数の協調ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分)を記憶するファイルに記憶することができる。コンピュータプログラムは、1つのコンピュータ上または1つの場所に位置するもしくは複数の場所に分散されて通信ネットワークによって相互接続されている複数のコンピュータ上で実行されてよい。
【０１４９】
コンピュータプログラムの実行のためのプロセッサは、例として、汎用および特殊目的マイクロプロセッサの両方、ならびにどの種類のデジタルコンピュータのどの1つまたは複数のプロセッサも含む。概して、プロセッサは、読出し専用メモリもしくはランダムアクセスメモリまたは両方から、命令およびデータを受信することになる。コンピュータの本質的要素は、命令に従ってアクションを実施するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。概して、コンピュータはまた、データを記憶するための1つもしくは複数の大容量記憶デバイスからデータを受信し、もしくはそこへデータを転送するためのものを含むか、もしくはそれに動作可能に結合されるか、またはその両方である。コンピュータは、別のデバイス、たとえば、モバイルデバイス、携帯情報端末(PDA)、ゲームコンソール、全地球測位システム(GPS)受信機、または可搬型記憶デバイスに埋め込まれてよい。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、磁気ディスク、および光磁気ディスクを含む不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、特殊目的論理回路機構によって補完されても、または組み込まれてもよい。
【０１５０】
モバイルデバイスは、ハンドセット、ユーザ機器(UE)、携帯電話(たとえば、スマートフォン)、タブレット、装着可能デバイス(たとえば、スマートウォッチおよびスマートグラス)、人体内の埋め込みデバイス(たとえば、バイオセンサ、人工内耳)、または他のタイプのモバイルデバイスを含み得る。モバイルデバイスは、様々な通信ネットワーク(以下で説明する)にワイヤレスに(たとえば、無線周波数(RF)信号を使用して)通信することができる。モバイルデバイスは、モバイルデバイスの現在の環境の特性を判断するためのセンサを含み得る。センサは、カメラ、マイクロフォン、近接センサ、GPSセンサ、動きセンサ、加速度計、環境光センサ、湿度センサ、ジャイロスコープ、コンパス、気圧計、指紋センサ、顔認識システム、RFセンサ(たとえば、Wi-Fiおよびセルラー無線)、熱センサ、または他のタイプのセンサを含み得る。たとえば、カメラは、可動または固定レンズ、フラッシュ、画像センサ、および画像プロセッサを有する正面または後面カメラを含み得る。カメラは、顔および/または虹彩認識のために細部を取り込むことが可能なメガピクセルカメラであってよい。カメラは、データプロセッサおよびメモリに記憶されるか、またはリモートにアクセスされる認証情報とともに、顔認識システムを形成し得る。顔認識システムまたは1つもしくは複数のセンサ、たとえば、マイクロフォン、動きセンサ、加速度計、GPSセンサ、もしくはRFセンサは、ユーザ認証に使用され得る。
【０１５１】
ユーザとの対話を提供する、ユーザに情報を表示するための、ディスプレイデバイスおよび入力デバイス、たとえば、液晶ディスプレイ(LCD)または有機発光ダイオード(OLED)/仮想現実(VR)/拡張現実(AR)ディスプレイと、ユーザがコンピュータに入力を与えることができるためのタッチスクリーン、キーボード、およびポインティングデバイスとを有するコンピュータ上で、実施形態が実装され得る。他の種類のデバイスも、ユーザとの対話を可能にするのに使用されることが可能であり、たとえば、ユーザに与えられるフィードバックは、どの形の感覚フィードバックでも、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってもよく、ユーザからの入力は、音響、発話、または触覚入力を含む、どの形でも受信されることが可能である。さらに、コンピュータは、ユーザによって使用されるデバイスへドキュメントを送信し、デバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのクライアントデバイス上のウェブブラウザへウェブページを送信することによって、ユーザと対話することができる。
【０１５２】
ワイヤーラインまたはワイヤレスデジタルデータ通信(またはそれらの組合せ)、たとえば、通信ネットワークの任意の形または媒体によって相互接続されたコンピューティングデバイスを使用して、実施形態が実装され得る。相互接続されたデバイスの例は、通常、通信ネットワークを通して対話する、互いから離れているクライアントおよびサーバである。クライアント、たとえば、モバイルデバイスが、サーバとともに、またはサーバを通して、トランザクション自体を実践することができ、たとえば、購入、販売、決済、提供、送付、もしくは融資トランザクションを実施し、またはそれらを認可する。そのようなトランザクションは、アクションおよび応答が時間的に近接するようにリアルタイムであってよく、たとえば、個人が、ほぼ同時に起こるアクションおよび応答を知覚し、個人のアクションに続く応答のための時間差は、1ミリ秒(ms)未満もしくは1秒(s)未満であり、または応答は、システムの処理制限を考慮に入れると、意図的遅延なしである。
【０１５３】
通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、およびワイドエリアネットワーク(WAN)を含む。通信ネットワークは、インターネット、別の通信ネットワークの全部もしくは一部分、または通信ネットワークの組合せを含み得る。情報は、ロングタームエボリューション(LTE)、5G、IEEE802、インターネットプロトコル(IP)、もしくは他のプロトコルまたはプロトコルの組合せを含む様々なプロトコルおよび規格に従って、通信ネットワーク上で送信され得る。通信ネットワークは、接続されたコンピューティングデバイスの間で、音声、ビデオ、生体、もしくは認証データ、または他の情報を送信することができる。
【０１５４】
別個の実装形態として記載される特徴は、組み合わせて、単一の実装形態において実装されてよく、単一の実装形態として記載される特徴は、複数の実装形態において、別々に、または任意の適切な部分組合せで実装されてよい。特定の順序で記載され、請求される動作は、特定の順序も、すべての説明した動作も実施されなければならないことを必要とするものと理解されるべきでない(いくつかの動作は任意選択であってよい)。必要に応じて、マルチタスキングもしくは並列処理(またはマルチタスキングおよび並列処理の組合せ)が実施されてよい。
【符号の説明】
【０１５５】
30  ブロックチェーンベースのトランザクション処理装置、装置
301  受信モジュール
302  照会モジュール
303  記録モジュール
304  判断モジュール
【図１】
2021512519.tif 000003
【図２】
2021512519.tif 000004
【図３】
2021512519.tif 000005
【図４】
2021512519.tif 000006
【国際調査報告】
2021512519.tif 000007
2021512519.tif 000008
2021512519.tif 000009