(57)【特許請求の範囲】
【請求項１】
処理用に取引データをブロックチェーンシステムに提供するためのコンピュータ実行方法であって、
コンピュータシステムにおいて前記取引データを監視することと、
前記監視に基づいて、前記取引データを前記ブロックチェーンシステムに非同期的にアップロードすることと、
を含み、
前記取引データが、単一取引データと複数取引データとを含み、
前記方法が、
前記ブロックチェーンシステムの状態を監視することと、
前記ブロックチェーンシステムの前記状態に基づいて、前記単一取引データ又は前記複数取引データをアップロードすべきかどうかを判定することと、
を更に含む、方法。
【請求項２】
前記取引データを前記ブロックチェーンシステムにアップロードする時刻を決定することを更に含む、請求項１に記載の方法。
【請求項３】
前記複数取引データをアップロードすることが決定された場合に、前記複数取引データの集合を生成することを更に含む、請求項１に記載の方法。
【請求項４】
前記複数取引データの前記集合を生成することが、
前記複数取引データの繰り返される特徴を削除することを含む、請求項３に記載の方法。
【請求項５】
前記ブロックチェーンシステムの前記状態を監視することが、
前記ブロックチェーンシステムのデータブロックのサイズ、前記ブロックチェーンシステムにおけるデータアップロードの頻度、又は所定の期間中に前記ブロックチェーンシステムによって処理される取引の数の少なくとも１つを監視することを含む、請求項１に記載の方法。
【請求項６】
前記取引データが正確であるという検証結果を前記ブロックチェーンシステムから受信することであって、前記取引データが、別のコンピュータシステムによって、前記ブロックチェーンシステムから前記取引データを取得し、且つ前記取引データを自らの取引データと比較することにより検証される、受信することを更に含む、請求項１に記載の方法。
【請求項７】
前記コンピュータシステムにおいて、検証されたものとして前記取引データに印を付けることを更に含む、請求項６に記載の方法。
【請求項８】
検証された取引データに関係する請求書情報及び支払情報を生成するために、前記検証された取引データを前記ブロックチェーンシステムから受信することであって、前記請求書情報及び前記支払情報が、前記ブロックチェーンシステムにおいて記録される、受信することを更に含む、請求項６に記載の方法。
【請求項９】
前記ブロックチェーンシステムが、コンソーシアムブロックチェーンを実現する、請求項１に記載の方法。
【請求項１０】
処理用に取引データをブロックチェーンシステムに提供するための装置であって、
１つ又は複数のプロセッサと、
前記１つ又は複数のプロセッサに結合され、前記１つ又は複数のプロセッサによって実行可能な命令を記憶する１つ又は複数のコンピュータ可読メモリと、
を含み、
前記１つ又は複数のプロセッサは前記命令を実行することにより、
前記取引データを監視することと、
前記監視に基づいて、前記取引データを前記ブロックチェーンシステムに非同期的にアップロードすることと、
を行うように構成され、
前記取引データが、単一取引データと複数取引データとを含み、
前記１つ又は複数のプロセッサは前記命令を実行することにより、
前記ブロックチェーンシステムの状態を監視することと、
前記ブロックチェーンシステムの前記状態に基づいて、前記単一取引データ又は前記複数取引データをアップロードすべきかどうかを判定することと、
を行うように更に構成される、装置。
【請求項１１】
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、装置のプロセッサにより実行されると、前記装置が、処理用に取引データをブロックチェーンシステムに提供する方法を実行するようにし、前記方法は、
前記取引データを監視することと、
前記監視に基づいて、前記取引データを前記ブロックチェーンシステムに非同期的にアップロードすることと、
を含み、
前記取引データが、単一取引データと複数取引データとを含み、
前記方法は、
前記ブロックチェーンシステムの状態を監視することと、
前記ブロックチェーンシステムの前記状態に基づいて、前記単一取引データ又は前記複数取引データをアップロードすべきかどうかを判定することと、
を更に含む、非一時的コンピュータ可読媒体。
【請求項１２】
前記１つ又は複数のプロセッサは前記命令を実行することにより、
前記取引データを前記ブロックチェーンシステムにアップロードする時刻を決定することを行うように更に構成される、請求項１０に記載の装置。
【請求項１３】
前記１つ又は複数のプロセッサは前記命令を実行することにより、
前記複数取引データをアップロードすることが決定された場合に、前記複数取引データの集合を生成することを行うように更に構成される、請求項１０に記載の装置。
【請求項１４】
前記複数取引データの前記集合を生成することが、
前記複数取引データの繰り返される特徴を削除することを含む、請求項１３に記載の装置。
【請求項１５】
前記ブロックチェーンシステムの前記状態を監視することが、
前記ブロックチェーンシステムのデータブロックのサイズ、前記ブロックチェーンシステムにおけるデータアップロードの頻度、又は所定の期間中に前記ブロックチェーンシステムによって処理される取引の数の少なくとも１つを監視することを含む、請求項１０に記載の装置。
【請求項１６】
前記１つ又は複数のプロセッサは前記命令を実行することにより、
前記取引データが正確であるという検証結果を前記ブロックチェーンシステムから受信することを行うように更に構成され、前記取引データが、別のコンピュータシステムによって、前記ブロックチェーンシステムから前記取引データを取得し、且つ前記取引データを自らの取引データと比較することにより検証される、請求項１０に記載の装置。
【請求項１７】
前記１つ又は複数のプロセッサは前記命令を実行することにより、
検証されたものとして前記取引データに印を付けることを行うように更に構成される、請求項１６に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
[0001]  本明細書は、一般にコンピュータ技術に関し、特に処理用に取引データをブロックチェーンシステムに提供するための方法及び装置に関する。
【背景技術】
【０００２】
背景
[0002]  分散台帳システム（ＤＬＳ）又はコンセンサスシステムとしても知られているブロックチェーンシステムは、参加エンティティが、データを安全且つ不変に記憶できるようにし得る。ブロックチェーンシステムは、どんな特定の使用事例も参照せずに、任意のＤＬＳを含んでもよく、且つパブリック、プライベート、及びコンソーシアムブロックチェーンネットワーク用に使用されてもよい。パブリックブロックチェーンネットワークは、システムを使用する、且つコンセンサスプロセスに参加する全てのエンティティ用に公開されている。プライベートブロックチェーンネットワークは、特定のエンティティ用に提供され、特定のエンティティは、読み出し及び書き込み許可を中央で制御する。コンソーシアムブロックチェーンネットワークは、エンティティの選抜グループ用に提供され、選抜グループは、コンセンサスプロセスを制御し、且つアクセス制御層を含む。
【０００３】
[0003]  ブロックチェーンシステムは、１つ又は複数のブロックチェーンを維持する。ブロックチェーンは、悪意のある者たちによるデータの改竄及び操作を防ぎ得る、取引などのデータを記憶するためのデータ構造である。
【０００４】
[0004]  ブロックチェーンシステムに基づいた取引データの従来の記録において、取引データは、記録用に実時間でブロックチェーンシステムに同期して提供される。例えば、取引データシステムは、ブロックチェーンシステムの状態をチェックせずに、それがデータを取得するとすぐに取引データをブロックチェーンシステムにアップロードする。かかるものとして、時には、ブロックチェーンシステムは、過負荷をかけられるか、又は機能停止さえされる可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
[0005]  一実施形態において、処理用に取引データをブロックチェーンシステムに提供するためのコンピュータ実行方法であって、コンピュータシステムにおいて取引データを監視することであって、取引データが、単一取引データ又は複数取引データの少なくとも１つを含む、監視することと、監視に基づいて、取引データをブロックチェーンシステムに非同期的にアップロードすることと、を含む方法。
【０００６】
[0006]  別の実施形態において、処理用に取引データをブロックチェーンシステムに提供するための装置であって、１つ又は複数のプロセッサと、１つ又は複数のプロセッサに結合された１つ又は複数のコンピュータ可読メモリであって、コンピュータシステムにおいて取引データを監視し、取引データが、単一取引データ又は複数取引データの少なくとも１つを含むように、且つ監視に基づいて、取引データをブロックチェーンシステムに非同期的にアップロードするように、１つ又は複数のプロセッサによって実行可能な命令を記憶した１つ又は複数のコンピュータ可読メモリと、を含む装置が提供される。
【０００７】
[0007]  別の実施形態において、装置のプロセッサによって実行された場合に、処理用に取引データをブロックチェーンシステムに提供するための方法を当該装置に実行させる命令を記憶した非一時的なコンピュータ可読媒体であって、方法が、コンピュータシステムにおいて取引データを監視することであって、取引データが、単一取引データ又は複数取引データの少なくとも１つを含む、監視することと、監視に基づいて、取引データをブロックチェーンシステムに非同期的にアップロードすることと、を含む、非一時的なコンピュータ可読媒体が提供される。
【０００８】
[0008]  本明細書に組み込まれ、且つその一部を構成する添付の図面は、実施形態を示す。図面を参照する以下の説明において、相異なる図面における同じ番号は、別段の表現がない限り、同じ又は同様の要素を表す。
【図面の簡単な説明】
【０００９】
図面の簡単な説明
【図１】[0009]実施形態によるブロックチェーンシステムの概略図である。
【図２】[0010]実施形態による、処理用に取引データをブロックチェーンシステムに提供するためのシステムを示す概略図である。
【図３】[0011]実施形態による、処理用に取引データをブロックチェーンシステムに提供するための装置の概略図である。
【図４】[0012]実施形態による、処理用に取引データをブロックチェーンシステムに非同期的にアップロードするための方法を示す概略図である。
【図５】[0013]実施形態による、処理用にブロックチェーンシステムに提供される取引データの検証を実行するための方法を示す概略図である。
【図６】[0014]実施形態による、処理用にブロックチェーンシステムに提供される取引データを処理するための方法を示す概略図である。
【図７】[0015]実施形態による、処理用に取引データをブロックチェーンシステムに提供するための方法の流れ図である。
【図８】[0016]実施形態による、処理用に取引データをブロックチェーンシステムに提供するための装置の概略図である。
【発明を実施するための形態】
【００１０】
詳細な説明
[0017]  本明細書の実施形態は、処理用に取引データをブロックチェーンシステムに提供するための、取引データの正確性を検証するための、且つブロックチェーンシステムにおいて請求書及び支払情報を記録するための方法及び装置を提供する。方法において、コンピュータシステムが、コンピュータシステムにおいてブロックチェーンシステムの状態及び取引データを監視してもよく、且つ監視に基づいて、取引データをブロックチェーンシステムに非同期的にアップロードしてもよい。別のコンピュータシステムは、それ自体の取引データとアップロードされた取引データとを比較することによって、アップロードされた取引データの正確性を検証してもよい。検証後に、決済システムは、請求書を決済し、且つ支払システムに通知してもよい。支払システムは、支払明細をブロックチェーンシステムにアップロードし、且つ支払の処理を続けてもよい。
【００１１】
[0018]  本明細書において開示される実施形態は、１つ又は複数の技術的効果を有する。幾つかの実施形態において、方法及び装置は、コンピュータシステムにおける取引データ及びブロックチェーンシステムの状態を監視する。これは、ブロックチェーンシステムが、取引データを受信し処理するために好適な状態にある場合に、取引データをブロックチェーンシステムに提出する時刻を決定できるようにする。幾つかの実施形態において、方法及び装置は、取引データの特性及びブロックチェーンシステムの状態に基づいて、特定の時刻に単一取引データ又は複数取引データの集合をブロックチェーンシステムにアップロードする。これは、ブロックチェーンシステムが過負荷になるのを防ぎ、それによってブロックチェーンシステムの能力を向上させる。幾つかの実施形態において、方法及び装置は、取引データを自動的に認証し、取引データの正確性を検証し、ブロックチェーンシステムを利用して、請求書を決済して支払を処理し、それによって、中央の仲介者の必要性を除去し、取引処理全体のセキュリティ及び効率を向上させ、且つ取引コストを低下させる。
【００１２】
[0019]  以下の説明は、実施形態の詳細を提供する。実施形態において、ブロックチェーンは、取引が不変であり、且つ、後で検証され得る方法で、データ、例えば取引を記憶するデータ構造である。ブロックチェーンは、１つ又は複数のブロックを含む。各ブロックは、前のブロックの暗号ハッシュを含むことによって、ブロックチェーンにおいて、各ブロックの直前における前のブロックにリンクされる。各ブロックはまた、タイムスタンプ、それ自体の暗号ハッシュ、及び１つ又は複数の取引を含んでもよい。取引は、一般に、ブロックチェーンシステムのノードによって既に検証されているが、マークルツリーなどのデータ構造にハッシュされコード化されてもよい。マークルツリーにおいて、ツリーのリーフノードにおけるデータは、ハッシュされ、ツリーの各ブランチにおける全てのハッシュは、ブランチのルートにおいて連結されてもよい。このプロセスは、ツリー全体のルートまでツリーの上方へ継続し、ツリー全体は、ツリーにおける全てのデータを表すハッシュを記憶する。ツリーに記憶された取引であることを意味するハッシュは、それが、ツリーの構造と一致しているかどうかを判定することによって、素早く検証することができる。
【００１３】
[0020]  ブロックチェーンシステムは、１つ又は複数のブロックチェーンを管理し、更新し、且つ維持するコンピューティングノードのネットワークを含む。そのネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、又はコンソーシアムブロックチェーンネットワークであってもよい。パブリックブロックチェーンネットワークにおいて、コンセンサスプロセスは、コンセンサスネットワークのノードによって制御される。例えば、数百、数千、又は数百万ものエンティティなどの非常に多数のエンティティが、パブリックブロックチェーンネットワークにおいて動作することが可能であり、エンティティのそれぞれは、パブリックブロックチェーンネットワークにおける少なくとも１つのノードを操作する。従って、パブリックブロックチェーンネットワークは、参加するエンティティに関してはパブリックネットワークと見なすことができる。時には、エンティティ（ノード）の大多数は、ブロックが有効にされ、且つブロックチェーンネットワークのブロックチェーンに追加されるために、全てのブロックに署名しなければならない。パブリックブロックチェーンネットワークの例には、ブロックチェーンと呼ばれる分散台帳を活用する特定のピアツーピア決済ネットワークを含む。
【００１４】
[0021]  一般に、パブリックブロックチェーンネットワークは、公開取引を支援し得る。公開取引は、パブリックブロックチェーンネットワークにおける全てのノードと共有され、且つグローバルブロックチェーンに記憶される。グローバルブロックチェーンは、全てのノードにわたって複写されるブロックチェーンであり、全てのノードは、グローバルブロックチェーンに対して合意している。コンセンサス（例えばブロックチェーンへのブロックの追加に対する同意）を達成するために、コンセンサスプロトコルが、パブリックブロックチェーンネットワークにおいて実行される。コンセンサスプロトコルの例には、プルーフオブワーク（ＰＯＷ）（例えば幾つかの暗号通貨ネットワークにおいて実行される）、プルーフオブステーク（ＰＯＳ）、及びプルーフオブオーソリティ（ＰＯＡ）を含む。
【００１５】
[0022]  一般に、プライベートブロックチェーンネットワークは、特定のエンティティ用に提供されてもよく、プライベートブロックチェーンネットワークは、読み出し及び書き込み許可を中央で制御する。エンティティは、どのノードが、ブロックチェーンネットワークに参加できるかを制御する。結果として、プライベートブロックチェーンネットワークは、一般に、誰がネットワークに参加できるか、及びその参加レベル（例えば一定の取引においてのみ）に対して制限をする許可制ネットワークと呼ばれる。様々なタイプのアクセス制御機構を用いることができる（例えば既存の参加者は、新しいエンティティの追加について投票し、規制機関は、承認を制御することができる）。
【００１６】
[0023]  一般に、コンソーシアムブロックチェーンネットワークは、参加するエンティティ間でプライベートであってもよい。コンソーシアムブロックチェーンネットワークにおいて、コンセンサスプロセスは、認定されたノードセットによって制御され、１つ又は複数のノードは、それぞれのエンティティ（例えば金融機関、保険会社）によって操作される。例えば１０個のエンティティ（例えば金融機関、保険会社）のコンソーシアムは、コンソーシアムブロックチェーンネットワークを操作することができ、エンティティのそれぞれは、コンソーシアムブロックチェーンネットワークにおける少なくとも１つのノードを操作する。従って、コンソーシアムブロックチェーンネットワークは、参加するエンティティに関してはプライベートネットワークと見なすことができる。幾つかの例において、各エンティティ（ノード）は、ブロックが有効にされ、且つブロックチェーンに追加されるために、全てのブロックに署名しなければならない。幾つかの例において、エンティティ（ノード）の少なくともサブセット（例えば少なくとも７つのエンティティ）は、ブロックが有効にされ、且つブロックチェーンに追加されるために、全てのブロックに署名しなければならない。
【００１７】
[0024]  図１は、実施形態に従って、ブロックチェーンシステム１００の概略図を示す。図１を参照すると、ブロックチェーンシステム１００は、ブロックチェーン１２０上で動作するように構成された複数のノード、例えばノード１０２−１１０を含んでもよい。ノード１０２−１１０は、ピアツーピア（Ｐ２Ｐ）ネットワークなどのネットワーク１１２を形成してもよい。ノード１０２−１１０のそれぞれは、ブロックチェーン１２０のコピーを記憶するように構成された、コンピュータ若しくはコンピュータシステムなどのコンピューティング装置であってもよく、又はプロセス若しくはアプリケーションなど、コンピューティング装置上を走行するソフトウェアであってもよい。ノード１０２−１１０のそれぞれは、一意の識別子を有してもよい。ノード１０２−１１０は、有線又は無線通信によって互いに通信してもよい。かかる通信は、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）などの信頼できるプロトコルを採用してもよい。
【００１８】
[0025]  ブロックチェーン１２０は、図１におけるブロックＢ１−Ｂ５など、データブロックの形における増え続ける記録リストを含んでもよい。ブロックＢ１−Ｂ５のそれぞれは、タイムスタンプ、前のブロックの暗号ハッシュ、及び現在のブロックのデータを含んでもよく、それらは、金融取引などの取引であってもよい。例えば、図１に示されているように、ブロックＢ５は、タイムスタンプ、ブロックＢ４の暗号ハッシュ、及びブロックＢ５の取引データを含んでもよい。また、例えば、ハッシュ演算は、前のブロックの暗号ハッシュを生成するために、前のブロック上で実行されてもよい。ハッシュ演算は、ＳＨＡ−２５６などのハッシュアルゴリズムを通して、様々な長さの入力を固定長の暗号出力に変換してもよい。
【００１９】
[0026]  ノード１０２−１１０は、ブロックチェーン１２０上で操作を実行するように構成されてもよい。例えば、ノード、例えばノード１０２が、ブロックチェーン１２０上に新しいデータを記憶したい場合に、そのノードは、ブロックチェーン１２０に追加される新しいブロックを生成し、且つ新しいブロックをネットワーク１１２における他のノード、例えばノード１０４−１１０にブロードキャストしてもよい。新しいブロックの合法性、例えばその署名及び取引の有効性に基づいて、他のノードは、新しいブロックを受け入れることを決定してもよく、その結果、ノード１０２及び他のノードは、ブロックチェーン１２０のそれらのそれぞれのコピーに新しいブロックを追加してもよい。このプロセスが繰り返されるので、ますます多くのデータブロックが、ブロックチェーン１２０に追加され得る。
【００２０】
[0027]  実施形態において、ブロックチェーンシステム１００は、１つ又は複数のスマートコントラクトに従って動作してもよい。各スマートコントラクトは、契約の交渉又は遂行を促進、検証、又は執行するために、ブロックチェーン１２０に組み込まれるコンピュータコードの形のコンピュータプロトコルであってもよい。例えば、ブロックチェーンシステム１００のユーザは、C++、Java（登録商標）（ジャバ）、Solidity（ソリディティ）、Python（パイソン）などのプログラミング言語を用いて、スマートコントラクトに同意条件をプログラムしてもよく、条件が満たされた場合に、スマートコントラクトは、例えば取引を実行するために、ブロックチェーンシステム１００によって自動的に実行されてもよい。また例えばスマートコントラクトは、複数のサブルーチン又は関数を含んでもよく、サブルーチン又は関数のそれぞれは、特定のタスクを実行するプログラム命令のシーケンスであってもよい。スマートコントラクトは、人とのインタラクションなしに完全に又は部分的に実行される操作コードであってもよい。
【００２１】
[0028]  図２は、実施形態に従って、処理用にブロックチェーンシステム１００（図１）などのブロックチェーンシステムに取引データを提供するためのシステムを示す概略図である。説明のためにのみ、関係者Ａ及び関係者Ｂの第１及び第２のシステムが、それぞれ、図２に示されている。実施形態において、各関係者のシステムは、ユーザインターフェースシステム及び取引データシステムを含むコンピュータシステムであってもよい。幾つかの実施形態において、各関係者のシステムは、ブロックチェーンシステム１００のノードとして動作してもよい。他の実施形態において、各関係者のシステムは、ブロックチェーンシステム１００のノードとして動作しなくてもよい。
【００２２】
[0029]  幾つかの実施形態において、ユーザインターフェースシステムは、関係者のビジネスシステムとして実現され、取引データシステムは、関係者の会計システムとして実現される。例えば関係者Ａのシステムは、取引データを取引データシステム２３０に報告するユーザインターフェースシステム２２０を含んでもよい。取引データシステム２３０は、取引データを記録してもよい。同様に、関係者Ｂのシステムは、ユーザインターフェースシステム２５０及び取引データシステム２６０を含んでもよい。更に、各関係者のシステムは、検証及び更なる処理用にブロックチェーンシステム１００に自らの取引データをアップロードする送受信装置を含んでもよい。例えば関係者Ａのシステムは、取引データシステム２３０から取引データを取得し、且つそのデータをブロックチェーンシステム１００にアップロードする送受信装置２４０を含んでもよい。同様に、関係者Ｂのシステムは、取引データシステム２６０から取引データを取得し、且つそのデータをブロックチェーンシステム１００にアップロードする送受信装置２７０を含んでもよい。
【００２３】
[0030]  実施形態において、送受信装置２４０は、取引データが、生成された後でブロックチェーンシステム１００によって直ちに処理されなくてもよいが、ブロックチェーンシステム１００に非同期的にアップロードされてもよいように、取引データの一時記憶用のバッファとして動作してもよい。実施形態において、送受信装置２４０は、単一取引データ又は複数取引データの集合をアップロードすべきかどうかを判定するために、アップロード用のコントローラとして更に動作してもよい。例えば、単一取引データは、単一取引中に生成されたデータであってもよく、複数取引データは、複数の取引中に生成されたデータであってもよい。また例えば、複数取引データの集合は、複数の取引中に生成されたデータに対して集約を行うことによって生成されてもよい。実施形態において、関係者Ａと関係者Ｂとの間に複数の取引が存在する。ブロックチェーンシステム１００のブロックチェーン上に取引のそれぞれを個々に記録する代わりに、取引データシステム２３０又は送受信装置２４０は、例えば、複数取引データの集合を生成するために、取引中に生成されたデータに対して集約を行ってもよく、次に、複数取引データの集合は、ブロックチェーンシステム１００がビジー状態である場合に、送受信システム２４０に一時的に記憶されてもよい。送受信装置２４０は、ブロックチェーンシステム１００に取引データをアップロードするタイミングを更に制御してもよい。実施形態において、送受信装置２４０が、複数取引データの集合をアップロードすることを決定した場合に、送受信装置２４０は、複数取引データを取引データシステム２３０に要求し、且つ集合を生成してもよい。送受信装置２４０は、取引データシステム２３０及びブロックチェーンシステム１００の監視に基づいて、アップロードを制御してもよい。
【００２４】
[0031]  実施形態において、送受信装置２４０は、取引データシステム２３０におけるアカウントを監視してもよい。例えば、送受信装置２４０は、複数の取引が繰り返される特徴を有するかどうかを判定するために、複数の取引を監視してもよい。送受信装置２４０はまた、取引データのサイズを監視し、且つ処理時間を評価してもよい。
【００２５】
[0032]  実施形態において、送受信装置２４０はまた、ブロックチェーンシステム１００の状態を監視してもよい。例えば、送受信装置２４０は、ブロックチェーンシステム１００のデータブロックのサイズ、ブロックチェーンシステム１００にデータをアップロードする頻度、及び所定の期間中にブロックチェーンシステム１００によって処理される取引の数を監視してもよい。監視に基づいて、送受信装置２４０は、アップロードされる取引データの最適数（単一取引又は複数の取引の集合）及びサイズを決定してもよい。これにより、多負荷ゆえにブロックチェーンシステム１００の取引効率が低下するのを防いでもよい。また、監視に基づいて、送受信装置２４０は、アップロード用の最適なタイミングを判定してもよい。これにより、ブロックチェーンシステム１００へのアップロードのピーク頻度中にデータをアップロードするのを回避し、更に、高頻度のアップロードゆえのブロックチェーンシステムの効率が低下すること又は更には機能停止することを防ぐことが可能である。
【００２６】
[0033]  関係者Ｂのシステムにおける送受信装置２７０はまた、送受信装置２４０の方式に似た方式で、取引データシステム２６０から取得された取引データのアップロードを制御してもよい。簡潔にするために、送受信装置２７０の動作の説明は、ここでは省略される。実施形態において、取引データのアップロード及び記録は、スマートコントラクトに基づいて実行される。
【００２７】
[0034]  実施形態において、送受信装置２４０は、取引データシステム２３０に記憶された命令の機能ブロックであってもよく、取引データシステム２３０のプロセッサは、送受信装置２４０の機能を実行するために命令を実行してもよい。同様に、送受信装置２７０は、取引データシステム２６０に記憶された命令の機能ブロックであってもよく、取引データシステム２６０のプロセッサは、送受信装置２７０の機能を実行するために命令を実行してもよい。
【００２８】
[0035]  実施形態において、送受信装置２４０及び送受信装置２７０のそれぞれは、任意の取引データシステム及びブロックチェーンシステムにも対応し得る集積回路を含む独立ハードウェアであってもよい。例えば、送受信装置２４０はまた、送受信装置２４０が、修正なしに取引データシステム２６０及びブロックチェーンシステム１００とインターフェースできるように、関係者Ｂのシステムにおいて実現されてもよい。
【００２９】
[0036]  図３は、実施形態に従って、処理用に取引データをブロックチェーンシステムに提供するために、関係者Ａのシステム又は関係者Ｂのシステム（図２）を実現するための装置３００の概略図である。装置３００は、限定するわけではないが、デスクトップコンピュータ、ラップトップコンピュータ、サーバコンピュータ、タブレット、スマートフォン若しくはスマートウォッチ、又は任意の他の形式を含む任意の形式を取ってもよい。図３を参照すると、装置３００は、プロセッサ３１０と、メモリ３２０と、ユーザインターフェース３３０と、バス３５０を通して互いに通信する通信インターフェース３４０と、を含んでもよい。
【００３０】
[0037]  プロセッサ３１０は、１つ又は複数の専用処理ユニット、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又は様々な他のタイプのプロセッサ若しくは処理ユニットを含んでもよい。プロセッサ３１０は、メモリ３２０と結合され、且つメモリ３２０に記憶された命令を実行してもよい。
【００３１】
[0038]  通信インターフェース３４０は、ブロックチェーンシステムにおいて、装置３００とノード１０２−１０８（図１）などのノードとの間の通信を容易にし得る。実施形態において、通信インターフェース３４０は、ブロックチェーンシステムにおける対応するノードに取引データをアップロードしてもよい。通信インターフェース３４０はまた、アップロードされたデータのハッシュをアップロードの確認として受信し、且つ記録用に取引データシステムにそのハッシュを転送してもよい。実施形態において、通信インターフェース３４０は、ＴＣＰ／ＩＰ及びＴＬＳ／ＳＳＬプロトコル、統合サービスデジタルネットワーク（ＩＳＤＮ）標準等を含むインターネット標準又はプロトコルなどの、１つ又は複数の通信標準をサポートしてもよい。実施形態において、通信インターフェース３４０は、ローカルエリアネットワーク（ＬＡＮ）カード、ケーブルモデム、衛星モデム、データバス、ケーブル、無線通信チャネル、無線ベースの通信チャネル、セルラー通信チャネル、インターネットプロトコル（ＩＰ）ベースの通信装置、又は有線及び／若しくは無線通信用の他の通信装置の１つ又は複数を含んでもよい。実施形態において、通信インターフェース３４０は、パブリック・クラウド・インフラストラクチャ、プライベート・クラウド・インフラストラクチャ、及びハイブリッド・パブリック／プライベート・クラウド・インフラストラクチャに基づいてもよい。
【００３２】
[0039]  メモリ３２０は、プロセッサ実行可能命令及びデータを記憶してもよい。コンピュータ実行可能命令及びデータは、取引データモニタ３２２、取引データアグリゲータ３２４、及び取引データアップロードスケジューラ３２６を含んでもよい。取引データモニタ３２２は、プロセッサ３１０によって実行された場合に、装置３００が、データのタイプ、サイズ及び類似性など、取引データの特性を判定するために、取引データシステムの取引データを監視できるようにする。取引データアグリゲータ３２４は、プロセッサ３１０によって実行された場合に、装置３００が、複数取引データを集約できるようにする。集約は、例えば、複数取引データの繰り返される特徴を分類及び削除することによって実行されてもよい。取引データアップロードスケジューラ３２６は、プロセッサ３１０によって実行された場合に、装置３００が、アップロードのタイミング及びタイプ（例えば単一取引データ又は複数取引データの集合等）を判定できるようにする。メモリ３２０におけるコンピュータ実行可能命令及びデータはまた、請求書情報及び支払情報を生成するために、検証された取引データと同様に、アップロードされた取引データの正確性の検証結果をブロックチェーンシステムから受信するための受信機を含んでもよく、これは、以下で詳細に説明される。
【００３３】
[0040]  実施形態において、メモリ３２０は、取引データシステムから取得された取引データを記憶するバッファとして更に機能してもよい。記憶されたデータは、記憶されたデータが、アップロード後に装置３００から自動的に除去され得るように、アップロードの時刻及び除去の時刻を割り当てられてもよい。
【００３４】
[0041]  メモリ３２０は、スタティックランダムアクセスメモリ（ＳＲＡＭ）、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）、プログラマブル読み出し専用メモリ（ＰＲＯＭ）、読み出し専用メモリ（ＲＯＭ）、磁気メモリ、フラッシュメモリ、又は磁気若しくは光ディスクなど、任意のタイプの揮発性若しくは不揮発性メモリ装置、又はそれらの組み合わせであってもよい。
【００３５】
[0042]  ユーザインターフェース３３０は、ディスプレイ、及び、ユーザコマンドをプロセッサ３１０に送信するための入力装置等を含んでもよい。ディスプレイは、取引データ、アップロードの進捗、及びブロックチェーンシステムの状態等を表示してもよい。ディスプレイは、限定するわけではないが、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）、ガスプラズマ、タッチスクリーン、又はユーザに情報を表示するための他の画像投影装置を含んでもよい。入力装置は、ユーザからプロセッサ３１０にデータ及び制御信号を供給するために用いられる任意のタイプのコンピュータハードウェア設備であってもよい。入力装置は、限定するわけではないが、キーボード、マウス、スキャナ、デジタルカメラ、ジョイスティック、トラックボール、カーソル方向キー、タッチスクリーンモニタ、又はオーディオ／ビデオコマンダ等を含んでもよい。
【００３６】
[0043]  実施形態において、装置３００は、プロセッサ３１０及びユーザインターフェース３３０が取引データシステムの一部であるように、取引データシステムを含んでもよい。
【００３７】
[0044]  図４は、実施形態に従って、ブロックチェーンシステム１００（図１）などのブロックチェーンシステムに取引データを非同期的にアップロードするための方法４００を示す概略図である。幾つかの実施形態において、ブロックチェーンシステムは、コンソーシアムブロックチェーンを実現する。簡潔にするために、図４は、関係者Ａのシステムの動作だけを示すが、同じ動作はまた、関係者Ｂのシステムに適用可能である。
【００３８】
[0045]  図４を参照すると、関係者Ａのユーザインターフェースシステム２２０は、取引を実行し、取引データを取引データシステム２３０に送信し、且つデータを記録するように取引データシステム２３０に要求してもよい（ステップ４０２）。取引データシステム２３０は、取引データを記録することによって要求に直ちに応答し、次にユーザインターフェースシステム２２０に記録の確認を返してもよい（ステップ４０４）。取引データシステム２３０に記録された取引データは、ブロックチェーンシステム１００にアップロードするために送受信装置２４０に提供されてもよい。
【００３９】
[0046]  実施形態において、送受信装置２４０は、取引データシステムの取引データをアクティブに監視してもよい（ステップ４０６）。例えば、送受信装置２４０は、取引データシステム２３０におけるアカウントを監視してもよい。また例えば、送受信装置２４０は、複数の取引に対し、関連する取引が存在し、従って幾つかの繰り返される特徴を有するかどうかを判定するために、監視してもよい。送受信装置２４０はまた、取引データのサイズを監視し、且つ処理時間を評価してもよい。
【００４０】
[0047]  実施形態において、送受信装置２４０はまた、ブロックチェーンシステム１００の状態を監視してもよい（ステップ４０８）。例えば、送受信装置２４０は、ブロックチェーンシステム１００のデータブロックのサイズ、ブロックチェーンシステム１００にデータをアップロードする頻度、及び所定の期間にブロックチェーンシステム１００によって処理される取引の数を監視してもよい。
【００４１】
[0048]  監視に基づいて、送受信装置２４０は、取引の最適数（単一取引又は複数の取引）及びアップロードされるデータのサイズを決定してもよい。例えば、複数の取引が繰り返される特徴を有する場合に、送受信システム２４０は、アップロードの前に複数取引データを集約するように決定してもよい。他方で、複数の取引が、互いに完全に異なるか、又はブロックチェーンシステム１００のデータブロックのサイズが、それほど大きくない場合に、送受信装置２４０は、この時点では、複数取引データの代わりに単一取引データをアップロードするように決定してもよい。
【００４２】
[0049]  実施形態において、送受信システム２４０は、単一取引データをアップロードするように決定し、従って単一取引データ用の要求を取引データシステム２３０に送信してもよい（ステップ４１０）。取引データシステム２３０は、要求された単一取引データを返すことによって、要求に直ちに応答してもよい（ステップ４１２）。送受信装置２４０は、単一取引データをブロックチェーンシステム１００にアップロードしてもよい（ステップ４１４）。幾つかの実施形態において、送受信装置２４０は、データを秘密鍵で暗号化することによって、単一取引データに署名してもよい。アップロードの確認として、ブロックチェーンシステム１００は、アップロードされた単一取引データのハッシュを送受信装置２４０に返してもよい（ステップ４１６）。送受信装置２４０は、アップロードされた単一取引データハッシュを取引データシステム２３０に送信してもよく、その結果、取引データシステム２３０は、記録を完了するために、アップロードされた取引データに印を付けてもよい（ステップ４１８）。
【００４３】
[0050]  実施形態において、送受信装置２４０は、複数取引データの集合をアップロードするように決定し、従って複数取引データ用の要求を取引データシステム２３０に送信してもよい（ステップ４２０）。取引データシステム２３０は、要求された複数取引データを送受信装置２４０に返すことによって、要求に直ちに応答してもよい（ステップ４２２）。次に、送受信システム２４０は、例えば、冗長性又は繰り返される特徴を削除することによって、複数取引データの集合を生成してもよい（ステップ４２４）。送受信システム２４０は、複数取引データの集合をブロックチェーンシステム１００にアップロードしてもよい（ステップ４２６）。幾つかの実施形態において、送受信装置２４０は、データを秘密鍵で暗号化することによって、複数取引データの集合に署名してもよい。アップロードの確認として、ブロックチェーンシステム１００は、アップロードされた複数取引データの集合のハッシュを送受信装置２４０に返してもよい（ステップ４２８）。送受信装置２４０は、アップロードされた複数取引データの集合のハッシュを取引データシステム２３０に転送してもよく、その結果、取引データシステム２３０は、記録を完了するために、アップロードされた取引データに印を付けてもよい（ステップ４３０）。
【００４４】
[0051]  上記の方法４００において、送受信装置２４０は、アップロードされる取引データ用のバッファとして機能し、且つ同時にアップロードプロセスのコントローラとして機能し、それによって、取引データの制御された非同期アップロードを実現する。これは、過負荷によるブロックチェーンシステムの故障又は更には機能停止の発生を回避し、ブロックチェーンシステムの効率を向上させることが可能であり、その結果、ブロックチェーンシステムは、大量又は高頻度の取引に対応し得る。
【００４５】
[0052]  ひとたび取引データが、ブロックチェーンシステムにアップロードされると、取引は認証されることが可能となり、取引データは、ブロックチェーンシステムにおいて取引に関与する関係者によって検証されてもよい。
【００４６】
[0053]  関係者による取引の認証は、秘密鍵及び公開鍵を含む１組の鍵を提供する暗号アルゴリズムに基づいて実行されてもよい。秘密鍵は、特定の関係者に関連付けられてもよく、且つ取引データを暗号化してもよい。取引データの暗号化はまた、取引の署名と呼ばれてもよい。公開鍵は、暗号化されたデータを復号化するために、ブロックチェーンシステムにおける別の関係者に提供され、取引が、当該特定の関係者によって実際に認証されているかどうかを検証してもよい。復号化はまた、署名検証と呼ばれてもよい。実施形態において、ブロックチェーンシステムは、ＲＳＡ（リベスト−シャミア−エイドルマン）アルゴリズム、楕円曲線デジタル署名アルゴリズム（ＥＣＤＳＡ）、ＳＭ２アルゴリズムなどの複数の暗号アルゴリズムをサポートしてもよい。
【００４７】
[0054]  関係者による取引の認証後に、ブロックチェーンシステムにアップロードされた取引データの正確性が、検証されてもよい。実施形態において、関係者Ａ及び関係者Ｂは、取引データの検証に関与し、関係者Ａは、取引データを提出する関係者である。実施形態において、関係者Ａのシステムが、ブロックチェーンシステムにおけるノード、例えばブロックチェーンシステム１００（図１）におけるノード１０２に取引データを送信した後で、ノードは、ブロックチェーンシステムにおいて取引データをブロードキャストしてもよい。関係者Ｂのシステムは、ブロックチェーンシステムにおける別のノード、例えばブロックチェーンシステム１００（図１）におけるノード１０６を通して、取引データを受信してもよく、且つ受信された取引データの正確性を検証するために、自らの取引データと、関係者Ａから受信された取引データを比較してもよい。実施形態において、関係者Ｂのシステムはまた、関係者Ａの取引データ及び関係者Ｂの取引データが、ブロックチェーンシステムにおいて比較されてもよいように、自らの取引データを取引データシステム２６０（図２）からブロックチェーンシステムにアップロードしてもよい。実施形態において、関係者Ａのシステムによってアップロードされた取引データをブロードキャストする代わりに、関係者Ｂのシステムは、取引データを関係者Ａのシステムに直接要求してもよい。取引データが、正確であると判定された場合に、関係者Ｂのシステムは、ブロックチェーンシステムを介して関係者Ｂのシステムに検証結果を更に送信し、且つ関係者Ａ用の請求書を生成してもよい。
【００４８】
[0055]  図５は、実施形態に従って、ブロックチェーンシステム１００（図１）などのブロックチェーンシステムに提出される取引データの検証を実行するための方法５００を示す概略図である。この実施形態において、関係者Ｂのシステムは、関係者Ａのシステムによってブロックチェーンシステム１００にアップロードされる取引データをアクティブに監視してもよい（ステップ５０２）。ひとたび関係者Ａのシステムが、ブロックチェーンシステム１００に単一取引データ又は複数取引データの集合をアップロードすると（ステップ５０４）、ブロックチェーンシステム１００は、アップロードされたデータのハッシュをアップロードの確認として関係者Ａのシステムに返してもよい（ステップ５０６）。
【００４９】
[0056]  実施形態において、関係者Ｂのシステムは、アップロードされた取引データをブロックチェーンシステム１００に要求してもよく（ステップ５０８）、ブロックチェーンシステム１００は、アップロードされた取引データを関係者Ｂのシステムに送信してもよい（ステップ５１０）。実施形態において、関係者Ａのシステムは、関係者Ｂのシステムが、要求せずにデータを取得できるように、アップロードされた取引データをブロックチェーンシステムにおいてブロードキャストしてもよい。関係者Ａのシステムによってアップロードされた取引データを取得した後で、関係者Ｂのシステムは、自身の取引データと、アップロードされた取引データとを比較してもよい（ステップ５１２）。データが一致する場合に、関係者Ｂのシステムは、検証されたものとしてデータに印を付け、関係者Ａ用の請求書を含み得る検証結果を生成し、且つ検証結果をブロックチェーンシステム１００にアップロードしてもよい（ステップ５１４）。アップロードされた検証結果は、ブロックチェーンシステム１００においてブロードキャストされてもよく、その結果、関係者Ａのシステムは、請求書を取得し、且つ検証されたものとして取引データに印を付けてもよい（ステップ５１６）。他方で、ステップ５１２における比較中に、データが一致しないことを関係者Ｂのシステムが発見した場合に、関係者Ｂのシステムは、取引データを無視する、又は破棄してもよい（ステップ５１８）。実施形態において、関係者Ｂのシステムは、新しい取引データを関係者Ａのシステムに更に要求してもよい。
【００５０】
[0057]  ブロックチェーンシステムにおいて取引データをアップロードし検証することによって、中央の仲介者の必要は除去され、取引のセキュリティは向上され、取引の効率の向上及びコストの低下につながる。
【００５１】
[0058]  図６は、実施形態に従って、ブロックチェーンシステム１００（図１）などのブロックチェーンシステムにおいて請求書の決済を実行し、且つ支払を処理するための方法６００を示す概略図である。この実施形態において、関係者Ａが、支払に対して義務がある関係者であると仮定される。方法６００は、支払システム６１０、決済システム６２０、ブロックチェーンシステム１００、及び関係者Ａの取引データシステム２３０によって実行されてもよい。幾つかの実施形態において、支払システム６１０及び決済システム６２０は、関係者Ａのシステム（図２）に含まれてもよい。他の実施形態において、支払システム６１０及び決済システム６２０は、関係者Ａのシステム（図２）とは別個であってもよい。
【００５２】
[0059]  図６を参照すると、関係者Ａの取引データシステム２３０は、ブロックチェーンシステム１００にアップロードされる請求書をアクティブに監視してもよい（ステップ６３０）。決済システム６２０は、検証された取引データ用の要求をブロックチェーンシステム１００に送信し（ステップ６３２）、且つ呼応して、検証された取引データを受信してもよい（ステップ６３４）。検証された取引データは、単一取引データ又は複数取引データの集合であってもよい。決済システム６２０は、検証された取引データを決済し（ステップ６３６）、次に決済された請求書をブロックチェーンシステム１００にアップロードしてもよい（ステップ６３８）。見返りに、ブロックチェーンシステム１００は、アップロードの確認として、請求書ハッシュを決済システム６２０に送信してもよい（ステップ６４０）。決済システム６２０は、支払システム６１０が、支払明細をブロックチェーンシステム１００にアップロードし得るように（ステップ６５０）、支払システム６１０に警告を送信してもよい（ステップ６４６）。ブロックチェーンシステム１００は、アップロードの確認として、支払システム６１０に明細ハッシュを送信してもよい（ステップ６５２）。次に、支払システム６１０は、続けて支払をしてもよい（ステップ６５４）。
【００５３】
[0060]  他方で、ブロックチェーンシステム１００は、取引データシステム２３０が、決済された請求書を検証及び更新してもよいように（ステップ６４４）、決済された請求書を関係者Ａの取引データシステム２３０に伝送してもよい（ステップ６４２）。実施形態において、取引データシステム２３０は、関係者Ｂによって生成された、且つ関係者Ａによって検証された請求書と、決済システム６２０によって決済された請求書とを比較することによって、決済された請求書を検証してもよい（図５のステップ５１４及び５１６）。決済された請求書が、関係者Ｂによって生成された請求書と一致しないことを関係者Ａの取引データシステム２３０が発見した場合に、関係者Ａは、決済された請求書が有効ではないと判定してもよい。関係者Ａは、支払システム６１０が支払をするのを防ぐために、更に手動で介入してもよい（ステップ６５６）。
【００５４】
[0061]  上記の実施形態は、取引データの制御された非同期アップロードに基づき、ブロックチェーンシステムにおいて取引データの検証、取引データの決済、及び支払処理を実行し、それによって取引処理時間を低減し、中央の仲介者の必要を除去することができ、取引のセキュリティ及び効率の向上並びに取引コストの低下につながる方法を提供する。
【００５５】
[0062]  図７は、実施形態に従って、処理用に、ブロックチェーンシステム１００（図１）などのブロックチェーンシステムに取引データを提供するための方法７００の流れ図である。例えば、方法７００は、図２に示されている関係者Ａのシステム又は関係者Ｂのシステムによって実行されてもよい。
【００５６】
[0063]  図７を参照すると、第１のコンピュータシステム、例えば関係者Ａのシステムは、コンピュータシステムにおける取引データ及びブロックチェーンシステムの状態を監視する（ステップ７０２）。取引データは、単一取引データ又は複数取引データの少なくとも１つを含む。監視に基づいて、第１のコンピュータシステムは、取引データをブロックチェーンシステムに非同期的にアップロードする（ステップ７０４）。幾つかの実施形態において、第１のコンピュータシステムは、ブロックチェーンシステムの状態に基づいて、単一取引データ又は複数取引データをアップロードすべきかどうかを決定する。幾つかの実施形態において、第１のコンピュータシステムは、取引データをブロックチェーンシステムにアップロードする時刻を決定する。幾つかの実施形態において、第１のコンピュータシステムは、複数取引データをアップロードすることが決定された場合に、例えば複数取引データの繰り返される特徴を削除することによって、複数取引データの集合を生成する。幾つかの実施形態において、第１のコンピュータシステムは、ブロックチェーンシステムにおけるデータブロックのサイズ、ブロックチェーンシステムにおけるデータアップロードの頻度、又は所定の期間中にブロックチェーンシステムによって処理される取引の数の少なくとも１つを監視することによって、ブロックチェーンシステムの状態を監視してもよい。
【００５７】
[0064]  第１のコンピュータシステムは、取引データが正確であるという検証結果をブロックチェーンシステムから更に受信する（ステップ７０６）。幾つかの実施形態において、取引データは、第２のコンピュータシステム、例えば関係者Ｂのシステムによって、ブロックチェーンシステムから取引データを取得し、且つその取引データを自らの取引データと比較することにより、検証される。幾つかの実施形態において、第１のコンピュータシステムは、コンピュータシステムにおいて、検証されたものとして取引データに印を付ける。第１のコンピュータシステムはまた、取引データに関係する請求書情報及び支払情報を生成するために、検証された取引データをブロックチェーンシステムから受信する（ステップ７０８）。請求書情報及び支払情報は、ブロックチェーンシステムに記録される。図４−６及び方法７００の追加の詳細の対応する説明を参照することができる。
【００５８】
[0065]  図８は、実施形態に従って、処理用に取引データをブロックチェーンシステムに提供するための機器８００の概略図である。例えば、機器８００は、ソフトウェアプロセスの実装形態であってもよく、且つ方法７００（図７）に対応してもよい。図８に示されているように、機器８００は、監視モジュール８１０、アップロードモジュール８２０、及び受信モジュール８３０を含んでもよい。
【００５９】
[0066]  監視モジュール８１０は、機器８００における取引データ及びブロックチェーンシステムの状態を監視する。監視に基づいて、アップロードモジュール８２０は、取引データをブロックチェーンシステムに非同期的にアップロードする。受信モジュール８３０は、取引データが正確であるという検証をブロックチェーンシステムから受信し、また請求書情報及び支払情報を生成するために、検証された取引データをブロックチェーンシステムから受信する。
【００６０】
[0067]  上記のモジュールのそれぞれは、ソフトウェア、ハードウェア、又はソフトウェア及びハードウェアの組み合わせとして実現されてもよい。例えば、上記のモジュールのそれぞれは、メモリに記憶された命令を実行するプロセッサを用いて実現されてもよい。また、例えば、上記のモジュールのそれぞれは、上記の方法を実行するための１つ又は複数の特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、デジタル信号処理装置（ＤＳＰＤ）、プログラマブル論理装置（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コントローラ、マイクロコントローラ、マイクロプロセッサ、又は他の電子コンポーネントで実現されてもよい。更に、例えば、上記のモジュールのそれぞれは、コンピュータチップ若しくはエンティティを用いることによって実現されてもよく、又は或る機能を有する製品を用いることによって実現されてもよい。一実施形態において、機器６００は、コンピュータであってもよく、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き携帯電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーション装置、電子メール受信及び送信装置、ゲーム機、タブレットコンピュータ、ウェアラブル装置、又はこれらの装置の任意の組み合わせであってもよい。
【００６１】
[0068]  機器８００における各モジュールの機能及び役割の実現プロセス用に、上記の方法における対応するステップを参照することができる。詳細は、簡潔にするためにここでは省略される。
【００６２】
[0069]  実施形態において、コンピュータプログラムプロダクトもまた提供される。コンピュータプログラムプロダクトは、プロセッサに上記の方法を実行させるためのコンピュータ可読プログラム命令を有する非一時的なコンピュータ可読記憶媒体を含んでもよい。
【００６３】
[0070]  コンピュータ可読記憶媒体は、命令実行装置による使用のための命令を記憶できる有形装置であってもよい。コンピュータ可読記憶媒体は、例えば、限定するわけではないが、電子記憶装置、磁気記憶装置、光記憶装置、電磁気記憶装置、半導体記憶装置、又は前述のものの任意の適切な組み合わせであってもよい。コンピュータ可読記憶媒体のより具体的な例の非包括的リストは、次のもの、即ち、ポータブルコンピュータディスケットと、ハードディスクと、ランダムアクセスメモリ（ＲＡＭ）と、読み出し専用メモリ（ＲＯＭ）と、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）と、スタティックランダムアクセスメモリ（ＳＲＡＭ）と、ポータブルコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）と、デジタル多用途ディスク（ＤＶＤ）と、メモリスティックと、フロッピーディスクと、パンチカードか又は命令を記録した溝における凸構造などの機械的にコード化された装置と、前述のものの任意の適切な組み合わせと、を含む。
【００６４】
[0071]  上記の方法を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令か、命令セットアーキテクチャ（ＩＳＡ）命令か、機械語命令か、機械依存命令か、マイクロコードか、ファームウェア命令か、状態設定データか、又はオブジェクト指向プログラミング言語を含む１つ若しくは複数のプログラミング言語及び従来の手続き型プログラミング言語の任意の組み合わせで書かれたソースコード若しくはオブジェクトコードであってもよい。コンピュータ可読プログラム命令は、スタンドアロンのパッケージソフトとしてコンピューティング装置上で完全に、又は第１のコンピューティング装置上で部分的に且つ第１のコンピューティング装置から遠隔の第２のコンピューティング装置上で部分的に実行されてもよい。後のシナリオにおいて、第２の遠隔コンピューティング装置は、ローカルエリアネットワーク（ＬＡＮ）又はワイドエリアネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通して、第１のコンピューティング装置に接続されてもよい。
【００６５】
[0072]  コンピュータ可読プログラム命令は、機械を作成するために、汎用若しくは専用コンピュータ又は他のプログラマブルデータ処理機器のプロセッサに提供されてもよく、その結果、命令は、コンピュータ又は他のプログラマブルデータ処理機器のプロセッサを介して実行され、上記の方法を実行するための手段を生成する。
【００６６】
[0073]  図における流れ図及び図形は、本明細書の様々な実施形態に従って、装置、方法及びコンピュータプログラムプロダクトの可能な実装形態のアーキテクチャ、機能、及び動作を示す。この点において、流れ図又は図形におけるブロックは、ソフトウェアプログラム、セグメント、又はコードの一部を表してもよく、それは、特定の機能を実行するための１つ又は複数の実行可能命令を含む。幾つかの代替実装形態において、ブロックに書かれた機能が、図に書かれた順序から外れて行われてもよいことに留意されたい。例えば連続して示されている２つのブロックは、実際にはほぼ同時に実行されてもよく、又はブロックは、含まれる機能性に依存して、時には逆順に実行されてもよい。図形及び／又は流れ図の各ブロック、並びに図形及び流れ図におけるブロックの組み合わせが、特定の機能若しくは行動を実行する専用ハードウェアベースシステム、又は専用ハードウェア及びコンピュータ命令の組み合わせによって実行されてもよいこともまた注目される。
【００６７】
[0074]  簡潔にするために別個の実施形態の文脈で説明される本明細書の或る特徴はまた、単一の実施形態における組み合わせで提供されてもよいことが認識される。反対に、簡潔にするために単一の実施形態の文脈で説明される本明細書の様々な特徴もまた、別々に、又は任意の適切なサブ組み合わせで、若しくは本明細書の任意の他の説明される実施形態において適切なように提供されてもよい。様々な実施形態の文脈で説明される或る特徴は、別段の記載がない限り、それらの実施形態の不可欠な特徴ではない。
【００６８】
[0075]  本明細書が、その特定の実施形態に関連して説明されたが、多くの代替、修正、及び変形が、当業者には明らかであることは、明白である。従って、次の特許請求の範囲は、請求項の条項内に入る全てのかかる代替、修正、及び変形を包含する。
【図１】
0006975250.tif 000002
【図２】
0006975250.tif 000003
【図３】
0006975250.tif 000004
【図４】
0006975250.tif 000005
【図５】
0006975250.tif 000006
【図６】
0006975250.tif 000007
【図７】
0006975250.tif 000008
【図８】
0006975250.tif 000009