(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]  ノード１０２−１１０は、ブロックチェーン１２０上で操作を実行するように構成されてもよい。例えば、ノード、例えばノード１０２が、ブロックチェーン１２０上に新しいデータを記憶したい場合に、そのノードは、ブロックチェーン１２０に追加される新しいブロックを生成し、且つ新しいブロックをネットワーク１１２における他のノード、例えばノード１０４−１１０にブロードキャストしてもよい。新しいブロックの合法性、例えばその署名及び取引の有効性に基づいて、他のノードは、新しいブロックを受け入れることを決定してもよく、その結果、ノード１０２及び他のノードは、ブロックチェーン１２０のそれらのそれぞれのコピーに新しいブロックを追加してもよい。このプロセスが繰り返されるので、ますます多くのデータブロックが、ブロックチェーン１２０に追加され得る。
【００２１】
[0028]  図２は、実施形態に従って、ブロックチェーンシステムにおけるノード、例えばノード１０２（図１）を実現するためのコンピューティング装置２００の概略図を示す。図２を参照すると、コンピューティング装置２００は、通信インターフェース２０２、プロセッサ２０４、及びメモリ２０６を含んでもよい。
【００２２】
[0029]  通信インターフェース２０２は、ネットワークにおいて、コンピューティング装置２００と、他のノード、例えばノード１０４−１１０（図１）を実現する装置との間の通信を容易にし得る。幾つかの実施形態において、通信インターフェース２０２は、インターネット標準又はプロトコル、統合サービスデジタルネットワーク（ＩＳＤＮ）標準などの、１つ又は複数の通信標準をサポートするように構成される。幾つかの実施形態において、通信インターフェース２０２は、ローカルエリアネットワーク（ＬＡＮ）カード、ケーブルモデム、衛星モデム、データバス、ケーブル、無線通信チャネル、無線ベースの通信チャネル、セルラー通信チャネル、インターネットプロトコル（ＩＰ）ベースの通信装置、又は有線及び／若しくは無線通信用の他の通信装置における１つ又は複数を含んでもよい。幾つかの実施形態において、通信インターフェース２０２は、パブリック・クラウド・インフラストラクチャ、プライベート・クラウド・インフラストラクチャ、ハイブリッド・パブリック／プライベート・クラウド・インフラストラクチャに基づいてもよい。
【００２３】
[0030]  プロセッサ２０４は、１つ又は複数の専用処理ユニット、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又は様々な他のタイプのプロセッサ若しくは処理ユニットを含んでもよい。プロセッサ２０４は、メモリ２０６と結合され、且つメモリ２０６に記憶された命令を実行するように構成される。
【００２４】
[0031]  メモリ２０６は、ブロックチェーン１２０（図１）のコピーなど、プロセッサ実行命令及びデータを記憶してもよい。メモリ２０６は、スタティックランダムアクセスメモリ（ＳＲＡＭ）、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）、プログラマブル読み出し専用メモリ（ＰＲＯＭ）、読み出し専用メモリ（ＲＯＭ）、磁気メモリ、フラッシュメモリ、又は磁気若しくは光ディスクなど、任意のタイプの揮発性若しくは不揮発性メモリ装置、又はそれらの組み合わせを含んでもよい。メモリ２０６における命令が、プロセッサ２０４によって実行される場合に、コンピューティング装置２００は、ブロックチェーン１２０上で操作を実行してもよい。
【００２５】
[0032]  再び図１を参照すると、ブロックチェーンシステム１００は、１つ又は複数のスマートコントラクトに従って動作してもよい。各スマートコントラクトは、契約の交渉又は遂行を促進、検証、又は執行するために、ブロックチェーン１２０に組み込まれるコンピュータコードの形のコンピュータプロトコルであってもよい。例えば、ブロックチェーンシステム１００のユーザは、C++、Java（登録商標）（ジャバ）、Solidity（ソリディティ）、Python（パイソン）などのプログラミング言語を用いて、スマートコントラクトに同意条件をプログラムしてもよく、条件が満たされた場合に、スマートコントラクトは、例えば取引を実行するために、ブロックチェーンシステム１００によって自動的に実行されてもよい。また例えばスマートコントラクトは、複数のサブルーチン又は関数を含んでもよく、サブルーチン又は関数のそれぞれは、特定のタスクを実行するプログラム命令のシーケンスであってもよい。スマートコントラクトは、人とのインタラクトなしに完全に又は部分的に実行される操作コードであってもよい。
【００２６】
[0033]  ユーザは、商品取引を含む取引を行なうために、ブロックチェーンシステム１００を利用してもよい。例えば、第１のユーザが、第２のユーザに特定の製品を配達することに同意し、且つ第２のユーザが、製品を受け取り次第、第１のユーザに特定の金額を支払うことに同意した場合に、２人のユーザは、２人のユーザの同意を定義する、規則セットを含むコンピュータプログラムをスマートコントラクトとして作成してもよく、それは、ブロックチェーン１２０上に記録されてもよい。スマートコントラクトは、例えば、製品の識別子、配達日、配達場所、及び支払金額を指定してもよい。スマートコントラクトはまた、確認された製品が、指定された配達場所へ指定された配達日に配達された場合に、第２のユーザが、第１のユーザに関連する口座に支払金額を振り込まなければならないことを条件として指定してもよい。製品が、指定されたように配達された場合に、スマートコントラクト用の条件は満たされ、ブロックチェーンシステム１００は、支払いを自動的に執行することができる。
【００２７】
[0034]  幾つかの実施形態において、スマートコントラクトは、関連データフィールドを有してもよく、関連データフィールドは、取引に関するデータを記録するために用いることができる。上記の例を続けると、ブロックチェーンシステム１００は、各ユーザが、取引を完了することに向けた行動を取る場合に、取引データの記録を要求してもよい。ブロックチェーンシステム１００はまた、ユーザが、製品を手に入れた場合に、又は製品が、或るユーザから別のユーザに所有主を変えた場合に、取引データの記録を要求してもよい。例えば、ブロックチェーンシステム１００は、製品が、配達用に車から降ろされた場合に、時刻及び位置を示す取引データを記録するように第１のユーザに要求してもよい。ブロックチェーンシステム１００はまた、製品を受け取り次第、時刻及び位置を示す取引データを記録するように第２のユーザに要求してもよい。配達人が、この取引に関係する場合に、配達人はまた、スマートコントラクトのデータフィールドに取引データを記録するように要求されてもよい。配達人によって記録される取引データは、例えば、タイムスタンプに加えて、配達ルートに関する情報を含んでもよい。
【００２８】
[0035]  ブロックチェーンシステム１００は、全てのユーザが、ブロックチェーン１２０の取引データを記録できるようにする前に、全てのユーザに自分のアイデンティティを検証することを更に要求してもよい。幾つかの実施形態において、ユーザは、ブロックチェーンシステム１００とインタラクトするために端末装置を用いることを要求されてもよく、端末装置は、この検証プロセスを実行してもよい。ユーザが、検証に失敗した場合に、そのユーザは、ブロックチェーン１２０上に取引データを記録することを妨げられ得る。このように、取引の完了に向けて取られる各行動は、特定のユーザまで辿ることができ、より優れた責任能力を提供し、且つ悪意のあるユーザから虚偽の取引データを受信する可能性を低減させる。
【００２９】
[0036]  図１を参照すると、複数の端末装置、例えば端末装置１３０−１３４が、ブロックチェーンシステム１００とインタラクトするために、様々なユーザによって用いられてもよい。端末装置１３０−１３４のそれぞれは、コンピューティング装置２００（図２）に似たコンピューティング装置であってもよく、それは、通信インターフェース、プロセッサ、及びメモリを含んでもよく、又はプロセス若しくはアプリケーションなど、コンピューティング装置上を走行するソフトウェアであってもよい。端末装置１３０−１３４のそれぞれは、例えば、モバイル若しくはハンドヘルド装置、コンピュータ、販売時点管理装置、在庫管理装置、又はパッケージ追跡装置であってもよい。幾つかの実施形態において、端末装置１３０−１３４のそれぞれは、ブロックチェーンシステム１００とインタラクトするために適格である或る要件を満たす必要があり得る。適格な端末装置、例えば端末装置１３０−１３４は、ブロックチェーンシステム１００の１つ又は複数のノード、例えばノード１０２−１１０で確立された接続を通して、ブロックチェーンシステム１００とインタラクトしてもよい。接続は、１つ又は複数のアプリケーションプログラミングインターフェース（ＡＰＩ）を通して確立されてもよい。ソフト開発キット（ＳＤＫ）もまた、かかる接続の確立を容易にするために提供されてもよい。
【００３０】
[0037]  図３は、実施形態に従って、端末装置、例えば端末装置１３０（図１）の概略図を示す。端末装置１３０は、ユーザ検証システム１４０、鍵管理システム１４２、装置情報システム１４４、及び製品識別システム１４６を含む複数のモジュールを含んでもよい。幾つかの実施形態において、ユーザ検証システム１４０、鍵管理システム１４２、装置情報システム１４４、及び製品識別システム１４６は、幾つかの専用ハードウェアコンポーネントを含んでもよい。例えば、ユーザ検証システム１４０は、生体データを収集するために、且つ収集された生体データに基づいてユーザのアイデンティティを検証するために利用できる生体特徴検出器を含んでもよい。装置情報システム１４４は、端末装置１３０の位置を判定するために使用できる、衛星ベースの位置標定システム又はセルラー三角測量システムなどの位置決め装置を含んでもよい。製品識別システム１４６は、製品を認識、感知、検出、若しくは識別できるバーコード検出器、カメラ、無線周波数センサ、又は光センサを含んでもよい。
【００３１】
[0038]  幾つかの実施形態において、生体特徴検出器は、ユーザから生体データを収集するために利用できる１つ又は複数の生体センサを含んでもよい。生体センサは、１つ又は複数の指紋センサ、掌紋センサ、虹彩センサ、網膜センサ、顔認識センサ、音声認識センサなどを含んでもよい。これらの生体センサ（単複）は、例えば、指紋、掌紋、虹彩の特徴、網膜の特徴、顔の特徴や、ユーザの血管の特徴、心拍数、皮膚抵抗、体温、筋緊張、皮膚電位、及びニューロン活性に関する情報などを含む、ユーザの生理的特性に関係する生体データを収集してもよい。幾つかの生体センサ（単複）はまた、例えば、言葉遣い、書き込みパターン、署名などを含むユーザの行動特性に関する生体データを収集してもよい。
【００３２】
[0039]  様々なタイプのハードウェアが、生体センサを実現するために利用され得ることが考えられる。例えば、光、超音波、又は静電容量センサが、指紋センサを実現するために利用されてもよい。カメラ又は赤外線センサが、顔認識センサ及び虹彩センサを実現するために利用されてもよい。幾つかの実施形態において、生体センサ（単複）は、端末装置１３０の統合コンポーネントとして実現されてもよい。幾つかの実施形態において、端末装置１３０は、有線又は無線接続を介して１つ又は複数の別個の生体センサと通信してもよい。
【００３３】
[0040]  幾つかの実施形態において、端末装置１３０は、生体センサ（単複）から収集された生体データに基づいてユーザのアイデンティティを検証するために、ユーザ検証システム１４０を利用してもよい。ユーザ検証システム１４０は、ユーザ検証システム１４０によって以前に収集された生体データセットに対して、生体センサ（単複）から収集された生体データを比較し、一致があるかどうかを判定してもよい。幾つかの実施形態において、ユーザ検証システム１４０はまた、かかる一致が存在するかどうかをユーザ検証システム１４０が確実に判定できる程度を示す信頼度スコアを決定してもよい。幾つかの実施形態において、ユーザ検証システム１４０は、ユーザから収集された生体データが、ユーザ検証システム１４０によって以前に収集された生体データセットと一致し、且つ、一致の信頼度スコアが所定の閾値を超えていることが判定される場合に、ユーザのアイデンティティが「検証された」と見なしてもよい。例えば所定の閾値は、一致が存在することをユーザ検証システム１４０が決定できる最小一致度を表す値であってもよい。幾つかの実施形態において、所定の閾値は、パーセント値、例えば９９％として表現されてもよい。幾つかの実施形態において、所定の閾値は、ユーザ検証システム１４０の誤った拒否率を、許容誤差範囲、例えば０．１％内に維持するように決定されてもよく、これは、平均で、１，０００の許可されたユーザごとにわずか１人のユーザが、ユーザ検証システム１４０によって認識されない可能性があることを意味する。所定の閾値はまた、ユーザ検証システム１４０の誤った受け入れ率を、許容誤差範囲、例えば０．０５％内に維持するように決定されてもよく、これは、平均で、ユーザ検証システム１４０を突破しようと試みる２，０００の無許可ユーザごとに、わずか１人のユーザが成功する可能性があることを意味する。様々な種類の統計解析が、閾値を決定するために実行されてもよいことを理解されたい。
【００３４】
[0041]  幾つかの実施形態において、ユーザ検証システム１４０、鍵管理システム１４２、装置情報システム１４４、及び製品識別システム１４６はまた、互いにハードウェアコンポーネントを共有してもよい。例えば通信インターフェース、プロセッサ、及びメモリなど、端末装置１３０上で利用可能なコンピューティング資源は、システム１４０−１４６によって共有されてもよい。システム１４０−１４６が、図３において別個のブロックとして表現されているが、かかる表現は、単に例であることを理解されたい。システム１４０−１４６は、端末装置１３０の内部において物理的に分離される必要はなく、システム１４０−１４６の１つによって実行されるように表現されるステップは、端末装置１３０によって実行されるように理解されてもよい。
【００３５】
[0042]  幾つかの実施形態において、ユーザ検証システム１４０は、端末装置１３０のユーザを検証及び認証するために、鍵管理システム１４２と共に動作してもよい。装置情報システム１４４は、位置情報を含む、端末装置１３０に関する情報を提供してもよく、幾つかの実施形態において、装置情報システム１４４は、データ改竄を防ぐために、ユーザの介入なしに動作してもよい。製品識別システム１４６は、端末装置１３０によって処理されている取引に関係する製品に関連する製品識別子を取得してもよい。このように、端末装置１３０は、端末装置１３０を通して処理される各取引に関するユーザ情報、製品情報、及び位置情報を取得してもよい。
【００３６】
[0043]  幾つかの実施形態において、端末装置１３０は、ブロックチェーン１２０上に記録される取引データを補足するために、集合的に追跡情報と呼ばれるユーザ情報、製品情報、及び位置情報をブロックチェーン１２０上に記録してもよい。幾つかの実施形態において、ブロックチェーン１２０上に追跡情報を記録することは、ブロックチェーンシステム１００によって提供されるコンセンサスプロセスによる追跡情報パス検証を要求する。この検証プロセスは、ブロックチェーン１２０上に記録される追跡情報が、正確で一貫していることの保証を支援することができる。他の端末装置、例えば端末装置１３２及び１３４（図１）は、同様の方式で実現されてもよい。結果として、特定の製品の出所を辿る、例えばその製品がどこで作り出されたか、又はそれがどこでサプライチェーンを通ったかを判定する必要性が存在する場合に、ブロックチェーンシステム１００は、正確な判定をするために、ブロックチェーン１２０上に記録された取引データ及び追跡情報を用いることができる。
【００３７】
[0044]  幾つかの実施形態において、ブロックチェーンシステム１００は、ユーザが、ブロックチェーン１２０に任意の取引データを記録できるようにする前に、ユーザのアイデンティティを検証することをユーザに要求してもよい。新しいユーザは、端末装置１３０−１３４を通して新しいユーザアカウントを作成することによって、自分のアイデンティティを検証することを要求されてもよい。図４は、実施形態に従って、新しいユーザアカウントを作成する要求を処理するための方法４００の流れ図を示す。方法４００は、端末装置１３０（図３）によって実行されてもよく、端末装置１３０は、ブロックチェーンシステム１００（図１）の１つ又は複数のノード、例えばノード１０２−１１０で確立された接続を通して、ブロックチェーンシステム１００とインタラクトしてもよい。
【００３８】
[0045]  図１、３及び４を参照すると、ステップ４０２において、端末装置１３０は、新しいユーザアカウントを申請するユーザ１５０から申請要求を受信してもよい。幾つかの実施形態において、申請要求は、ユーザ１５０に関連する検証可能な身分証明情報又は生体特徴などのユーザのアイデンティティ情報を含む。ブロックチェーンシステム１００が、例えば、民間企業によって維持されるプライベートブロックチェーンネットワーク上に実現される場合に、検証可能な身分証明情報は、例えば従業員識別子を含んでもよい。ブロックチェーンシステム１００が、コンソーシアムブロックチェーンネットワーク上に実現される場合に、検証可能な身分証明情報は、例えば、国民識別番号、中華人民共和国居民身分証明書番号（resident identity card number）、社会保障番号、運転免許番号など、政府発行の身分証明情報を含んでもよい。生体特徴は、例えば、端末装置１３０によって収集された顔、虹彩、指紋、又は音声サンプルを含んでもよい。
【００３９】
[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]  上記の方法を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令か、命令セットアーキテクチャ（ＩＳＡ）命令か、機械語命令か、機械依存命令か、マイクロコードか、ファームウェア命令か、状態設定データか、又はオブジェクト指向プログラミング言語を含む１つ若しくは複数のプログラミング言語及び従来の手続き型プログラミング言語の任意の組み合わせで書かれたソースコード若しくはオブジェクトコードであってもよい。コンピュータ可読プログラム命令は、スタンドアロンのパッケージソフトとしてコンピューティング装置上で完全に、又は第１のコンピューティング装置上で部分的に且つ第１のコンピューティング装置から遠隔の第２のコンピューティング装置上で部分的に実行されてもよい。後のシナリオにおいて、第２の遠隔コンピューティング装置は、ローカルエリアネットワーク（ＬＡＮ）又はワイドエリアネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通して、第１のコンピューティング装置に接続されてもよい。
【００６９】
[0076]  コンピュータ可読プログラム命令は、機械を作製するために、汎用若しくは専用コンピュータ又は他のプログラマブルデータ処理機器のプロセッサに提供されてもよく、その結果、命令は、コンピュータ又は他のプログラマブルデータ処理機器のプロセッサを介して実行されるが、上記の方法を実行するための手段を生成する。
【００７０】
[0077]  図における流れ図及び図形は、本明細書の様々な実施形態に従って、装置、方法及びコンピュータプログラムプロダクトの可能な実装形態のアーキテクチャ、機能、及び動作を示す。この点において、流れ図又は図形におけるブロックは、ソフトウェアプログラム、セグメント、又はコードの一部を表してもよく、それは、特定の機能を実行するための１つ又は複数の実行可能命令を含む。幾つかの代替実装形態において、ブロックに書かれた機能が、図に書かれた順序から外れて行われてもよいことに留意されたい。例えば連続して示されている２つのブロックは、実際にはほぼ同時に実行されてもよく、又はブロックは、含まれる機能性に依存して、時には逆順に実行されてもよい。図形及び／又は流れ図の各ブロック、並びに図形及び流れ図におけるブロックの組み合わせが、特定の機能若しくは行動を実行する専用ハードウェアベースシステム、又は専用ハードウェア及びコンピュータ命令の組み合わせによって実行されてもよいこともまた注目される。
【００７１】
[0078]  簡潔にするために別個の実施形態の文脈で説明される本明細書の或る特徴はまた、単一の実施形態における組み合わせで提供されてもよいことが認識される。反対に、簡潔にするために単一の実施形態の文脈で説明される本明細書の様々な特徴もまた、別々に、又は任意の適切なサブ組み合わせで、若しくは本明細書の任意の他の説明される実施形態において適切なように提供されてもよい。様々な実施形態の文脈で説明される或る特徴は、別段の記載がない限り、それらの実施形態の不可欠な特徴ではない。
【００７２】
[0079]  本明細書が、特定の実施形態に関連して説明されたが、多くの代替、修正、及び変形が、当業者には明らかであろう。従って、次の特許請求の範囲は、請求項の条項内に入る全てのかかる代替、修正、及び変形を包含する。
【図１】
0006925439.tif 000002
【図２】
0006925439.tif 000003
【図３】
0006925439.tif 000004
【図４】
0006925439.tif 000005
【図５】
0006925439.tif 000006
【図６】
0006925439.tif 000007
【図７】
0006925439.tif 000008
【図８】
0006925439.tif 000009