(57)【特許請求の範囲】
【請求項１】
ブロックチェーンにおけるスマートコントラクトに基づくトランザクション活動の取扱注意データを保護するためのコンピュータ実施方法であって、前記方法が、
前記トランザクション活動のためのアカウントを作成するための活動データをユーザから受信することであって、前記活動データが、少なくとも、前記ブロックチェーンにおける前記スマートコントラクトの識別子、及び前記トランザクション活動の満了時間を含み、前記スマートコントラクトが、前記トランザクション活動を実行するためのコンピュータ可読命令を含むことと、
前記活動データのデジタル証明書を要求するために前記活動データを認証サーバへ送信することであって、前記デジタル証明書が前記スマートコントラクトの前記識別子を記憶し、前記デジタル証明書の満了時間が、前記トランザクション活動の前記満了時間となるよう設定されることと、
前記デジタル証明書を前記認証サーバから受信した後に、前記トランザクション活動のための前記アカウントを作成させることであって、前記作成されたアカウントが前記スマートコントラクトの前記識別子に関連付けられることと、
を含む方法。
【請求項２】
前記取扱注意データが、少なくとも、前記ユーザのアイデンティティを示すデータを含む、請求項１に記載の方法。
【請求項３】
前記活動データが前記トランザクション活動の予算をさらに含み、前記デジタル証明書が、前記予算を示すデータを含む、請求項１又は２に記載の方法。
【請求項４】
前記ブロックチェーンがコンソーシアム型ブロックチェーンである、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記トランザクション活動のための前記アカウントを前記作成させることが、ブロックチェーンシステムに、
前記認証サーバに関連付けられた公開鍵を用いて前記デジタル証明書が有効であるかどうかを判定すること、
前記デジタル証明書が有効であるとの判定に基づいて前記トランザクション活動のための前記アカウントを作成すること、及び
前記アカウントの残高額を前記予算となるよう設定すること、
を実行させることを含む、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記活動データを前記受信することが、
前記トランザクション活動のための前記アカウントを作成するための要求を前記ユーザから受信したことに応じて、前記トランザクション活動のための支払い額を示すデータを受信すること、
前記支払い額が所定の額を超えるとの判定に基づいて前記要求を許可すること、及び
前記要求を許可したことに応じて、前記トランザクション活動のための前記活動データを前記ユーザから受信すること、
を含む、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記スマートコントラクトが、前記トランザクション活動の規則を適用するためのコンピュータ可読命令を含む、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
前記トランザクション活動のための前記アカウントの識別子を前記ブロックチェーンシステムから受信することと、
前記アカウントが作成されたことの通知を前記ユーザへ送信することと、
をさらに含む、請求項５に記載の方法。
【請求項９】
前記トランザクション活動のトランザクションを実行するための入力データを受信することであって、前記入力データが前記トランザクション活動のための前記アカウントの前記識別子を含むことと、
前記トランザクション活動のための前記アカウントの前記識別子に基づいて前記デジタル証明書を識別することと、
前記入力データ及び前記デジタル証明書を前記ブロックチェーンシステムへ送信することであって、前記トランザクションが、前記デジタル証明書及び前記スマートコントラクトが有効であるとの判定に基づいて実施されることと、
をさらに含む、請求項８に記載の方法。
【請求項１０】
前記トランザクション活動が販売促進活動を含む、請求項１〜９のいずれか一項に記載の方法。
【請求項１１】
ブロックチェーンにおけるスマートコントラクトに基づくトランザクション活動の取扱注意データを保護するためのデバイスであって、前記デバイスが、
１つ以上のプロセッサと、
前記１つ以上のプロセッサに結合された１つ以上のコンピュータ可読メモリであって、その上に記憶された命令を有し、前記命令が、請求項１〜１０のいずれか一項に記載の方法を実行するために、前記１つ以上のプロセッサによって実行可能である、１つ以上のコンピュータ可読メモリと、
を備えるデバイス。
【請求項１２】
ブロックチェーンにおけるスマートコントラクトに基づくトランザクション活動の取扱注意データを保護するための装置であって、前記装置が、請求項１〜１０のいずれか一項に記載の方法を実行するための複数のモジュールを備える、装置。
【請求項１３】
デバイスのプロセッサによって実行されると、前記デバイスに請求項１〜１０のいずれか一項に記載の方法を実行させる命令を内部に記憶した非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
[0001]  本明細書は概して、コンピュータ技術に関し、より詳細には、ブロックチェーンにおけるスマートコントラクトに基づくトランザクション活動の取扱注意データを保護するための方法及びデバイスに関する。
【背景技術】
【０００２】
背景
[0002]  ブロックチェーンシステムは、分散型台帳システム（distributed ledger system、ＤＬＳ）又はコンセンサスシステムとしても知られ、参加エンティティがデータを安全且つ変更不可能に記憶することを可能にし得る。ブロックチェーンシステムは、いかなる特定の使用事例も参照せず、任意のＤＬＳを含み得、パブリック型、プライベート型、及びコンソーシアム型ブロックチェーンネットワークのために用いられ得る。パブリック型ブロックチェーンネットワークは、全てのエンティティがシステムを使用し、コンセンサスプロセスに参加するために開放されている。プライベート型ブロックチェーンネットワークは、読み出し及び書き込み許可を中央制御する、特定のエンティティのために提供される。コンソーシアム型ブロックチェーンネットワークは、コンセンサスプロセスを制御する、エンティティの選ばれたグループのために提供され、アクセス制御層を含む。
【０００３】
[0003]  ブロックチェーンシステムは１つ以上のブロックチェーンを維持する。ブロックチェーンは、悪意のある者によるデータの改ざん及び操作を防止し得る、トランザクションなどのデータを記憶するためのデータ構造である。
【０００４】
[0004]  ブロックチェーンシステムは、販売促進又はマーケティング活動などの、オープン性及び透明性の高い要求を有するシナリオにおいて用いられてきた。従来、ブロックチェーンシステムはそのユーザのアイデンティティに基づいてアカウントを作成し、管理し得る。例えば、ブロックチェーンシステムは小売商のための１つ以上のアカウントを作成し得、アカウントに関する情報はブロックチェーンシステムの全てのユーザに対して透明であり得る。場合によっては、他のユーザが、同様にブロックチェーンシステムの全てのユーザに対して透明である、ブロックチェーンシステム内に記録されたアカウント所有者のトランザクションに基づいて、アカウント所有者のアイデンティティを取得し得る。このような推測可能なアカウント−アイデンティティの対応がアカウント所有者のアイデンティティの非自発的開示を引き起こし得る。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
[0005]  一態様では、ブロックチェーンにおけるスマートコントラクトに基づくトランザクション活動の取扱注意データを保護するためのコンピュータ実施方法が提供される。本方法は、トランザクション活動のためのアカウントを作成するための活動データをユーザから受信することであって、活動データが、少なくとも、ブロックチェーンにおけるスマートコントラクトの識別子、及びトランザクション活動の満了時間を含み、スマートコントラクトが、トランザクション活動を実行するためのコンピュータ可読命令を含むことと、活動データのデジタル証明書を要求するために活動データを認証サーバへ送信することであって、デジタル証明書がスマートコントラクトの識別子を記憶し、デジタル証明書の満了時間が、トランザクション活動の満了時間となるよう設定されることと、デジタル証明書を認証サーバから受信した後に、トランザクション活動のためのアカウントを作成させることであって、作成されたアカウントがスマートコントラクトの識別子に関連付けられることと、を含む。
【０００６】
[0006]  別の態様では、ブロックチェーンにおけるスマートコントラクトに基づくトランザクション活動の取扱注意データを保護するためのデバイスが提供される。デバイスは、１つ以上のプロセッサと、１つ以上のプロセッサに結合された１つ以上のコンピュータ可読メモリであって、その上に記憶された命令を有する、１つ以上のコンピュータ可読メモリと、を含む。命令は、トランザクション活動のためのアカウントを作成するための活動データをユーザから受信することであって、活動データが、少なくとも、ブロックチェーンにおけるスマートコントラクトの識別子、及びトランザクション活動の満了時間を含み、スマートコントラクトが、トランザクション活動を実行するためのコンピュータ可読命令を含むことと、活動データのデジタル証明書を要求するために活動データを認証サーバへ送信することであって、デジタル証明書がスマートコントラクトの識別子を記憶し、デジタル証明書の満了時間が、トランザクション活動の満了時間となるよう設定されることと、デジタル証明書を認証サーバから受信した後に、トランザクション活動のためのアカウントを作成させることであって、作成されたアカウントがスマートコントラクトの識別子に関連付けられることと、を行うために、１つ以上のプロセッサによって実行可能である。
【０００７】
[0007]  さらに別の態様では、非一時的コンピュータ可読媒体は、デバイスのプロセッサによって実行されると、デバイスに、ブロックチェーンにおけるスマートコントラクトに基づくトランザクション活動の取扱注意データを保護するための方法を実行させる命令を内部に記憶している。本方法は、トランザクション活動のためのアカウントを作成するための活動データをユーザから受信することであって、活動データが、少なくとも、ブロックチェーンにおけるスマートコントラクトの識別子、及びトランザクション活動の満了時間を含み、スマートコントラクトが、トランザクション活動を実行するためのコンピュータ可読命令を含むことと、活動データのデジタル証明書を要求するために活動データを認証サーバへ送信することであって、デジタル証明書がスマートコントラクトの識別子を記憶し、デジタル証明書の満了時間が、トランザクション活動の満了時間となるよう設定されることと、デジタル証明書を認証サーバから受信した後に、トランザクション活動のためのアカウントを作成させることであって、作成されたアカウントがスマートコントラクトの識別子に関連付けられることと、を含む。
【０００８】
[0008]  本明細書に組み込まれ、その一部を構成する添付の図面は諸実施形態を図解する。図面を参照する以下の説明において、異なる図面における同じ符号は、別途示されない限り、同じ又は同様の要素を表す。
【図面の簡単な説明】
【０００９】
図面の簡単な説明
【図１】[0009]図１は、一実施形態に係る、ブロックチェーンシステムの概略図である。
【図２】[0010]図２は、一実施形態に係る、ブロックチェーンシステムにおけるノードを実施するためのコンピューティングデバイスの概略図である。
【図３】[0011]図３は、一実施形態に係る、ブロックチェーンにおけるスマートコントラクトに基づくトランザクション活動の取扱注意データを保護するための方法のフローチャートである。
【図４】[0012]図４は、一実施形態に係る、ブロックチェーンにおけるスマートコントラクトに基づくトランザクション活動の取扱注意データを保護するための方法のフローチャートである。
【図５】[0013]図５は、一実施形態に係る、ブロックチェーンにおけるスマートコントラクトに基づくトランザクション活動の取扱注意データを保護するための方法のフローチャートである。
【図６】[0014]図６は、一実施形態に係る、ブロックチェーンにおけるスマートコントラクトに基づくトランザクション活動の取扱注意データを保護するための方法のフローチャートである。
【図７】[0015]図７は、一実施形態に係る、ブロックチェーンにおけるスマートコントラクトに基づくトランザクション活動の取扱注意データを保護するための装置のブロック図である。
【発明を実施するための形態】
【００１０】
詳細な説明
[0016]  本明細書の諸実施形態は、コンソーシアム型ブロックチェーンなどのブロックチェーンにおける、スマートコントラクトに基づくトランザクション活動の取扱注意データを保護するための方法及びデバイスを提供する。方法及びデバイスは、１つ以上のプロセッサが、ブロックチェーンシステムにおけるスマートコントラクトに基づくトランザクション活動を作成するための要求をユーザから受信することを可能にする。１つ以上のプロセッサが要求を許可した場合には、次に、方法及びデバイスは、１つ以上のプロセッサが、スマートコントラクトの識別子及びトランザクション活動の満了時間を含むトランザクション活動に関連付けられた活動データをユーザから受信することを可能にする。次に、本方法及びデバイスは、活動データ、及び活動データのデジタル証明書の要求を認証サーバへ送信し、ここで、デジタル証明書はまた、満了時間において満了するように設定される。デジタル証明書を認証サーバから受信した後に、次に、方法及びデバイスは、デジタル証明書に基づいてブロックチェーンシステムにおけるトランザクション活動のためのアカウントを作成するように要求する。次に、方法及びデバイスは、作成されたアカウントを、トランザクション活動の規則を適用するためのコンピュータ可読命令を含み得るスマートコントラクトの識別子に関連付ける。
【００１１】
[0017]  本明細書において開示される実施形態は、１つ以上の技術的効果を有する。実施形態によっては、方法及びデバイスは、ブロックチェーンシステムに、ユーザ、例えば、小売商のアイデンティティに基づくのではなく、特定のトランザクション活動に基づいてアカウントを作成する能力を提供し、これにより、アカウントは、ブロックチェーンにおけるトランザクション活動のために特別に作成され、関連付けられる。これは、ユーザが、彼らのアイデンティティをブロックチェーンシステムの他のユーザにさらすことなく、ブロックチェーンシステムにおけるトランザクション活動を制御することを可能にし、したがって、非取扱注意データをオープン性及び透明性を有するように保ちつつ、取扱注意データの非自発的開示を回避する。実施形態によっては、方法及びデバイスは、ブロックチェーンシステムに、アカウントを作成する前にユーザのアイデンティティを認証する能力を提供する。これは、小売商の顧客などの他のブロックチェーンユーザが、トランザクション活動及び小売商の有効性、正確さ、及び安全性を信用することを可能にする。実施形態によっては、方法及びデバイスは、ブロックチェーンシステムに、トランザクション活動のトランザクションを実行するためのデジタル証明書を取得する能力を提供する。これは、アカウント情報の正確さ及び有効性の保証を可能にする。実施形態によっては、方法及びデバイスは、デジタル証明書の満了時間をトランザクション活動の満了時間として設定する能力を提供する。これは、トランザクション活動が満了した後にデジタル証明書が誤用又は悪用され得ないため、トランザクション活動のためのアカウントの有効性、実時間、及び安全性の保証を可能にする。これはまた、特定の活動データがブロックチェーンにおいて永久に記憶される一方で、トランザクション活動の細かいタイミング制御も可能にする。これはまた、ブロックチェーンにおけるユーザのアイデンティティとアカウント識別子との間の対応を切り離すことも可能にする。実際には、トランザクション活動に基づいてブロックチェーンシステムにおけるアカウントを作成し、トランザクション活動を作成する前にアカウントを認証することを可能にすることは、ブロックチェーンシステムが、スマートコントラクトベースのトランザクション活動のオープン性及び透明性の特徴を犠牲にすることなく、ユーザのアイデンティティを公衆から隠し、これにより、ユーザのプライバシーを保護することを可能にする。
【００１２】
[0018]  以下の説明は実施形態の詳細を提供する。実施形態において、ブロックチェーンは、データ、例えば、トランザクションを、トランザクションが変更不可能であり、後に検証され得る仕方で記憶するデータ構造である。ブロックチェーンは１つ以上のブロックを含む。各ブロックは、以前のブロックの暗号ハッシュを含むことによって、ブロックチェーンにおけるその直前のブロックにリンクされる。各ブロックはまた、タイムスタンプ、それ自身の暗号ハッシュ、及び１つ以上のトランザクションを含み得る。概して、ブロックチェーンシステムのノードによってすでに検証されたトランザクションは、ハッシュ化され、マークル木などのデータ構造に符号化され得る。マークル木では、木のリーフノードにおけるデータはハッシュ化され、木の各枝内の全てのハッシュは枝のルートにおいて連結され得る。このプロセスが木の上から木全体のルートまで続き、ルートは、木の中の全てのデータを代表するハッシュを記憶する。木に記憶されたトランザクションのものであると主張するハッシュは、それが木の構造と一貫しているかどうかを判定することによって、迅速に検証することができる。
【００１３】
[0019]  ブロックチェーンシステムは、１つ以上のブロックチェーンを管理、更新、及び維持する計算ノードのネットワークを含む。ネットワークは、パブリック型ブロックチェーンネットワーク、プライベート型ブロックチェーンネットワーク、又はコンソーシアム型ブロックチェーンネットワークであり得る。例えば、パブリック型ブロックチェーンネットワーク内では、数百、数千、又はさらに数百万個のエンティティなどの、数多くのエンティティが動作することができ、エンティティの各々はパブリック型ブロックチェーンネットワーク内の少なくとも１つのノードを操作する。したがって、パブリック型ブロックチェーンネットワークは、参加エンティティに対してはパブリックネットワークと考えることができる。時には、ブロックが有効性を検証され、ブロックチェーンネットワークのブロックチェーンに追加されるために、エンティティ（ノード）の大部分が全てのブロックに署名しなければならない。パブリック型ブロックチェーンネットワークの例としては、ブロックチェーンと呼ばれる、分散型台帳を活用する特定のピアツーピア支払いネットワークが挙げられる。
【００１４】
[0020]  概して、パブリック型ブロックチェーンネットワークはパブリックトランザクションをサポートし得る。パブリックトランザクションはパブリック型ブロックチェーンネットワーク内のノードの全てと共有され、グローバルブロックチェーン内に記憶される。グローバルブロックチェーンは、全てのノードにわたって複製されるブロックチェーンであり、全てのノードはグローバルブロックチェーンに関して合意している。コンセンサス（例えば、ブロックチェーンへのブロックの追加への合意）を達成するために、コンセンサスプロトコルがパブリック型ブロックチェーンネットワーク内で実施される。コンセンサスプロトコルの例としては、プルーフオブワーク（proof-of-work、ＰＯＷ）（例えば、いくつかの暗号通貨ネットワークにおいて実施されている）、プルーフオブステーク（proof-of-stake、ＰＯＳ）、及びプルーフオブオーソリティ（proof-of-authority、ＰＯＡ）が挙げられる。
【００１５】
[0021]  概して、プライベート型ブロックチェーンネットワークは、読み出し及び書き込み許可を中央制御する、特定のエンティティのために提供され得る。エンティティは、どのノードがブロックチェーンネットワークに参加することができるのかを制御する。それゆえ、プライベート型ブロックチェーンネットワークは、一般的に、誰がネットワークに参加することを許可されるのか、及び彼らの参加レベル（例えば、特定のトランザクションにのみ参加）に制限を課す、認可制ネットワークと呼ばれる。様々な種類のアクセス制御機構を用いることができる（例えば、既存の参加者が、新しいエンティティを追加することを票決し、規制当局が加入を統括することができる）。
【００１６】
[0022]  概して、コンソーシアム型ブロックチェーンネットワークは参加エンティティの間ではプライベートなものであり得る。コンソーシアム型ブロックチェーンネットワークでは、コンセンサスプロセスは、許可されたノードセットによって制御され、１つ以上のノードはそれぞれのエンティティ（例えば、金融機関、保険会社）によって操作される。例えば、１０個のエンティティ（例えば、金融機関、保険会社）のコンソーシアムがコンソーシアム型ブロックチェーンネットワークを操作することができ、エンティティの各々はコンソーシアム型ブロックチェーンネットワーク内の少なくとも１つのノードを各々操作する。したがって、コンソーシアム型ブロックチェーンネットワークは、参加エンティティに対してはプライベートネットワークと考えることができる。一例では、ブロックが有効性を検証され、ブロックチェーンに追加されるために、各エンティティ（ノード）が全てのブロックに署名しなければならない。一例では、ブロックが有効性を検証され、ブロックチェーンに追加されるために、エンティティ（ノード）の少なくともサブセット（例えば、少なくとも７つのエンティティ）が全てのブロックに署名しなければならない。
【００１７】
[0023]  図１は、一実施形態に係る、ブロックチェーンシステム１００の概略図を示す。図１を参照すると、ブロックチェーンシステム１００は、ブロックチェーン１２０上で動作するように構成された複数のノード、例えば、ノード１０２〜１１０を含み得る。ノード１０２〜１１０は、ピアツーピア（Ｐ２Ｐ）ネットワークなどの、ネットワーク１１２を形成し得る。ノード１０２〜１１０の各々は、ブロックチェーン１２０のコピーを記憶するように構成された、コンピュータ又はコンピュータシステムなどの、コンピューティングデバイスであり得るか、或いはプロセス又はアプリケーションなどの、コンピューティングデバイス上で実行されるソフトウェアであり得る。ノード１０２〜１１０の各々は一意識別子を有し得る。
【００１８】
[0024]  ブロックチェーン１２０は、図１におけるブロックＢ１〜Ｂ５などの、データブロックの形式の増加するレコードのリストを含み得る。ブロックＢ１〜Ｂ５の各々は、タイムスタンプ、以前のブロックの暗号ハッシュ、及びマネタリートランザクションなどのトランザクションであり得る、現在のブロックのデータを含み得る。例えば、図１に示されるように、ブロックＢ５は、タイムスタンプ、ブロックＢ４の暗号ハッシュ、及びブロックＢ５のトランザクションデータを含み得る。また、例えば、以前のブロックの暗号ハッシュを生成するために、ハッシュ操作が以前のブロックに対して実行され得る。ハッシュ操作は、ＳＨＡ−２５６などのハッシュアルゴリズムを通じて、様々な長さの入力を固定された長さの暗号出力に変換し得る。
【００１９】
[0025]  ノード１０２〜１１０は、ブロックチェーン１２０に対する操作を実行するように構成され得る。例えば、ノード、例えば、ノード１０２が、新しいデータをブロックチェーン１２０上に記憶したいと欲すると、そのノードは、ブロックチェーン１２０に追加されるべき新しいブロックを生成し、新しいブロックをネットワーク１１２内の他のノード、例えば、ノード１０４〜１１０へ一斉同報し得る。新しいブロックの正当性、例えば、その署名及びトランザクションの有効性に基づいて、他のノードは、新しいブロックを受け入れると決定し得、これにより、ノード１０２及び他のノードは新しいブロックをブロックチェーン１２０のそれらのそれぞれのコピーに追加し得る。このプロセスが繰り返すに従い、ますます多くのデータのブロックがブロックチェーン１２０に追加され得る。
【００２０】
[0026]  実施形態によっては、ブロックチェーンシステム１００は１つ以上のスマートコントラクトに従って動作し得る。各スマートコントラクトは、契約の交渉又は遂行を容易にする、検証する、又は執行するために、ブロックチェーン１２０に組み込まれるコンピュータコードの形のコンピュータプロトコルであり得る。例えば、ブロックチェーンシステム１００のユーザは、C++、Java（登録商標）、Solidity、Python等などのプログラミング言語を用いて、合意された条件をスマートコントラクトにプログラムし得、条件が満たされると、スマートコントラクトはブロックチェーンシステム１００によって、例えば、トランザクションを実行するために、自動的に実行され得る。また、例えば、スマートコントラクトは、各々、特定のタスクを実行する一連のプログラム命令であり得る、複数のサブルーチン又は関数を含み得る。スマートコントラクトは、人間とのインタクラションを用いず、完全に、又は部分的に実行される操作コードであり得る。
【００２１】
[0027]  ノード１０２〜１１０の各々がブロックチェーン１２０のコピーを記憶し得るため、ノード１０２〜１１０の各々はまた、ブロックチェーン１２０内に含まれるスマートコントラクトのコピーへのアクセスも有し得る。実施形態によっては、スマートコントラクトは、例えば、スマートコントラクトが操作コードにコンパイルされた後に、ブロックチェーン１２０上のアドレスを割り当てられてもよい。スマートコントラクトのアドレスは、ブロックチェーン１２０上におけるスマートコントラクトの位置を示すように構成されている。
【００２２】
[0028]  実施形態によっては、ブロックチェーンシステム１００内のノード（例えば、ノード１０２）はスマートコントラクトのコピーに基づいてトランザクションを実行し得る。トランザクションを含む新しいブロックがブロックチェーンシステム１００へ一斉同報された後に、ブロックチェーンシステム１００内の他のノードは新しいブロックを検証し得る。新しいブロックがブロックチェーンシステム１００内のノードの大部分又は全てによって検証された後に、新しいブロックはそれらのノード上のブロックチェーン１２０のそれぞれのコピーに追加されてもよく、トランザクションは完了する。
【００２３】
[0029]  図２は、一実施形態に係る、ブロックチェーンシステムにおけるノード、例えば、ノード１０２（図１）を実施するためのコンピューティングデバイス２００の概略図を示す。図２を参照すると、コンピューティングデバイス２００は、通信インターフェース２０２、プロセッサ２０４、及びメモリ２０６を含み得る。
【００２４】
[0030]  通信インターフェース２０２は、コンピューティングデバイス２００と、ネットワーク内の他のノード、例えば、ノード１０４〜１１０（図１）を実施するデバイスとの間の通信を容易にし得る。実施形態によっては、通信インターフェース２０２は、インターネット規格若しくはプロトコル、サービス総合デジタル網（Integrated Services Digital Network、ＩＳＤＮ）規格等などの、１つ以上の通信規格をサポートするように構成されている。実施形態によっては、通信インターフェース２０２は、ローカルエリアネットワーク（Local Area Network、ＬＡＮ）カード、ケーブルモデム、衛星モデム、データバス、ケーブル、無線通信チャネル、無線ベースの通信チャネル、セルラー通信チャネル、インターネットプロトコル（Internet Protocol、ＩＰ）ベースの通信デバイス、或いは有線及び／又は無線通信のための他の通信デバイスのうちの１つ以上を含み得る。実施形態によっては、通信インターフェース２０２は、パブリッククラウドインフラストラクチャ、プライベートクラウドインフラストラクチャ、ハイブリッドパブリック／プライベートクラウドインフラストラクチャに基づき得る。
【００２５】
[0031]  プロセッサ２０４は中央処理装置（central processing unit、ＣＰＵ）又はグラフィック処理装置（graphics processing unit、ＧＰＵ）を含み得る。実施形態によっては、プロセッサ２０４は、１つ以上の専用処理装置、特定用途向け集積回路（application-specific integrated circuit、ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（field-programmable gate array、ＦＰＧＡ）、又は様々な他の種類のプロセッサ若しくは処理装置を含み得る。プロセッサ２０４はメモリ２０６に結合され、メモリ２０６内に記憶された命令を実行するように構成されている。
【００２６】
[0032]  メモリ２０６は、ブロックチェーン１２０（図１）のコピーなどの、プロセッサ実行可能命令及びデータを記憶し得る。メモリ２０６は、スタティックランダムアクセスメモリ（static random-access memory、ＳＲＡＭ）、電気的消去可能プログラマブルリードオンリーメモリ（electrically erasable programmable read-only memory、ＥＥＰＲＯＭ）、消去可能プログラマブルリードオンリーメモリ（erasable programmable read-only memory、ＥＰＲＯＭ）、プログラマブルリードオンリーメモリ（programmable read-only memory、ＰＲＯＭ）、リードオンリーメモリ（read-only memory、ＲＯＭ）、磁気メモリ、フラッシュメモリ、又は磁気若しくは光ディスクなどの、任意の種類の揮発性若しくは不揮発性メモリデバイス、又はこれらの組み合わせを含み得る。メモリ２０６内の命令がプロセッサ２０４によって実行されると、コンピューティングデバイス２００はブロックチェーン１２０に対する操作を実行し得る。
【００２７】
[0033]  図１を再び参照すると、ブロックチェーンシステム１００は、販売促進活動、マーケティング活動等などの、オープンデータ及び透明な条件を含むトランザクション活動において用いられ得る。例えば、追跡可能な有機食品を販売する小売商が、このような製品を購入したことがない顧客にクーポンを発行することによって、販売を促進したいと欲し得る。ブロックチェーンシステム１００を用いることによって、製品の追跡データがブロックチェーン１２０などのブロックチェーンのブロック内に記憶され得、スマートコントラクトを用いてクーポンの発行が実行され得る。例えば、顧客が、スマートコントラクトにおいて指定された条件（例えば、「消費者はこの製品を購入したことがない」）を満たす場合には、対応するイベントが実行され、生じ得る（例えば、「クーポンをその消費者に発行する」）。スマートコントラクトがブロックチェーン内に記憶され、閲覧に供されるため、スマートコントラクトを用いることは契約条件及び条項を透明にし得る。発行されるべきクーポンの総価値、発行されるべきクーポンの総数、販売促進の満了時間（例えば、日付）等などの、活動関連データ（又は簡潔にするために、「活動データ」）がブロックチェーン内に同様に記憶されてもよい。スマートコントラクト及び活動データをブロックチェーン１２０などのブロックチェーン内に記憶することによって、顧客は、上述の情報が真実であり、正確であり、悪意のある者による偽造又は改ざんが不可能であることを保証され得る。
【００２８】
[0034]  一実施形態では、ユーザのアイデンティティではなく、トランザクション活動に基づくアカウントがブロックチェーンシステム１００のために作成され、用いられ得る。このように、ユーザの取扱注意データ、例えば、ユーザのアイデンティティは秘匿され、非自発的開示を防止され得、その一方で、ユーザの非取扱注意データはオープン且つ透明に保たれ得、かくして、トランザクション活動のためのブロックチェーンシステム及びスマートコントラクトの利用を促す。
【００２９】
[0035]  例えば、図１におけるデバイス１３０が、ユーザによって、ブロックチェーンシステム１００とインタクラションするために用いられ得る。デバイス１３０は、通信インターフェース、プロセッサ、及びメモリを含み得る、コンピューティングデバイス２００（図２）と同様のコンピューティングデバイスであり得る。実施形態によっては、デバイス１３０はブロックチェーンシステム１００のノードとして動作する。他の実施形態では、デバイス１３０はノードとして動作せず、ブロックチェーンシステム１００の１つ以上のノード、例えば、ノード１０２〜１１０を用いて確立された接続を通じてブロックチェーンシステム１００とインタクラションし得る。接続は１つ以上のアプリケーションプログラミングインターフェース（application programming interface、ＡＰＩ）を通じて確立され得る。また、このような接続の確立を容易にするためのソフトウェア開発キット（Software development kit、ＳＤＫ）も提供され得る。
【００３０】
[0036]  図３は、一実施形態に係る、トランザクション活動の取扱注意データを保護するための方法３００のフローチャートを示す。例えば、方法３００は、ブロックチェーンシステム１２０（図１）などのブロックチェーンにおける、スマートコントラクトに基づくトランザクション活動のためのアカウントを作成する。また、例えば、方法３００はデバイス１３０（図１）によって実行され得る。実施形態によっては、ブロックチェーンはコンソーシアム型ブロックチェーンであり得る。
【００３１】
[0037]  図３を参照すると、ステップ３０２において、例えば、デバイス１３０（図１）の、１つ以上のプロセッサが、ブロックチェーンにおけるスマートコントラクトに基づくトランザクション活動のためのアカウントを作成するための活動データをユーザから受信する。活動データは、スマートコントラクトの識別子及びトランザクション活動の満了時間を含み得る。実施形態によっては、スマートコントラクトの識別子は、スマートコントラクトのコンピュータ実行可能命令を記憶する１つ以上のブロックに対応するブロックチェーン上のアドレスを含み得る。アドレスへのアクセスを有することによって、ブロックチェーンのユーザはスマートコントラクトの内容及びコードにアクセスし得る。実施形態によっては、トランザクション活動は、マーケティング活動、販売促進活動等であり得る。例えば、販売促進活動は、特定の規則に基づいてクーポンを消費者に発行することであり得る。
【００３２】
[0038]  実施形態によっては、活動データは、トランザクション活動の予算、活動の名称、ユーザの識別子、予算の残りの残高等などの、トランザクション活動に関連する情報をさらに含み得る。トランザクション活動の予算は、ユーザ（例えば、小売商）によって、ユーザの顧客に発行されるべきクーポン内に配分するために提供される金銭又は資金であり得る。実施形態によっては、予算は、ブロックチェーンサービスプロバイダのサービスのための料金をさらに含み得る。ユーザは、ユーザの識別子などの、活動データのうちの一部を取扱注意として指定し得る。ユーザはまた、スマートコントラクトの内容、並びにトランザクション活動の満了時間、予算、又は残りの残高などの、活動データの一部を非取扱注意として指定し得る。
【００３３】
[0039]  実施形態によっては、スマートコントラクトは、ユーザによって（例えば、ユーザ生成プログラムコードをブロックチェーンに提出することによって）提供されるか、或いはユーザによって、ブロックチェーンサービスプロバイダによって提供されたテンプレートスマートコントラクトから選択され、構成され得る。例えば、ユーザはメニューからスマートコントラクトを選択し、カスタマイズされたパラメータを提供し得る。スマートコントラクトは、ユーザによって設定されたトランザクション活動の戦略及び規則を表し得る。例えば、クーポンベースの販売促進活動では、規則は、顧客ごとに受け取られるクーポンの許可された総価値、顧客ごとに受け取られるクーポンの許可された総数、クーポンの額面金額、クーポンの種類、指定された地理的領域内のターゲット顧客の割合、顧客がクーポンを受け取るための方法、顧客がクーポンを使用するための条件及び制限といったものに対する制限を含み得る。スマートコントラクトは識別子に関連付けられてもよく、異なるスマートコントラクトは１つ以上のプロセッサによって、異なる識別子を割り当てられてもよい。
【００３４】
[0040]  実施形態によっては、１つ以上のプロセッサは許可に基づいて活動データを受信し得る。例えば、アカウントを作成するための要求をユーザから受け取った後に、１つ以上のプロセッサは、トランザクション活動のための支払い額を示すデータをユーザから受信し得る。支払い額はブロックチェーンサービスプロバイダによって設定されてもよく、トランザクション活動のために用いられることになる。例えば、支払い額は、手付金、内金、依頼料、保証、又はトランザクション活動の予算の一部若しくは全てとして用いられ得る。例えば、トランザクション活動がクーポンベースの販売促進である場合には、支払い額は、クーポンの価値の総額に等しい金額の全ての一部であり得る。実施形態によっては、ユーザは、サードパーティの支払いサービス又は銀行を利用するなど、別個のシステムを利用してブロックチェーンサービスプロバイダに代金を支払ってもよい。
【００３５】
[0041]  実施形態によっては、支払いは１つ以上のプロセッサによって処理され得る。他の実施形態では、支払いはユーザインターフェースシステムによって開始され、活動管理システムによって処理されてもよく、どちらも１つ以上のプロセッサによって実施される。ユーザインターフェースシステム及び活動管理システムの詳細は、図５〜図６に関連する説明において説明されることになる。
【００３６】
[0042]  支払い額が所定の額を超えると、１つ以上のプロセッサは、アカウントを作成するための要求を許可し得る。例えば、所定の額は、トランザクション活動の予算の固定された額、又は割合であり得る。要求が許可されると、次に、１つ以上のプロセッサは活動データをユーザから受信し得る。要求が許可されないときには、１つ以上のプロセッサは、活動データを受信することを拒否し得る。
【００３７】
[0043]  図３をなお参照すると、ステップ３０４において、１つ以上のプロセッサが、活動データのデジタル証明書を要求するために、活動データを認証サーバへ送信する。実施形態によっては、認証サーバは認証局（certificate authority、ＣＡ）サーバであり得る。実施形態によっては、デジタル証明書は、スマートコントラクトの識別子を示すデータを記憶し得る。実施形態によっては、デジタル証明書の満了時間がトランザクション活動の満了時間として設定され得る。そうすることによって、デジタル証明書は、トランザクション活動が満了した後に、悪意のある者によって誤用又は悪用され得ない。デジタル証明書が満了すると、ユーザは、もはや、トランザクション活動のためにブロックチェーンを利用することができなくなり得る。実施形態によっては、活動データがトランザクション活動の予算を含むときには、デジタル証明書は、予算を示すデータも記憶し得る。
【００３８】
[0044]  実施形態によっては、１つ以上のプロセッサは、ユーザに関連付けられた公開鍵を認証サーバへさらに送信し得る。公開鍵は、ユーザに関連付けられたプライベート鍵と共に生成され、プライベート鍵と共に対を形成し得る。例えば、活動データをユーザから受信すると、１つ以上のプロセッサは、安全な通信及びデジタル署名のために用いられ得る、公開鍵及びプライベート鍵を生成し得る。公開及びプライベート鍵は、ＲＳＡアルゴリズム、ElGamalアルゴリズム、又は楕円曲線暗号（elliptic curve cryptography、ＥＣＣ）アルゴリズムなどの、非対称暗号アルゴリズムを用いて生成され得る。実施形態によっては、デジタル証明書は、ユーザに関連付けられた公開鍵を示すデータを記憶し得る。
【００３９】
[0045]  実施形態によっては、デジタル証明書は、トランザクション活動の識別子とユーザ（例えば、小売商）の識別子との間の関連付けを示すデータを記憶し得る。例えば、トランザクション活動の識別子は、ランダムに生成された番号であり得る。ユーザの識別子は英数字の文字列であり得る。トランザクション活動の識別子及びユーザの識別子は連結され、ハッシュコードを生成するためにハッシュ化され得る。ハッシュコードはデジタル証明書内に記憶され得る。そうすることによって、デジタル証明書は、ハッシュコードをラベルとして用いることによって分類され得る。
【００４０】
[0046]  実施形態によっては、認証サーバはデジタル証明書を生成し、それに署名し得る。認証サーバは図５〜図６における認証システム５０８であり得る。認証サーバ、及びデジタル証明書の生成の詳細は、図５〜図６に関連する説明において説明されることになる。
【００４１】
[0047]  ステップ３０６において、１つ以上のプロセッサが、デジタル証明書を認証サーバから受信した後に、ブロックチェーンにおけるスマートコントラクトの識別子に関連付けられたアカウントを作成させる。例えば、アカウントとスマートコントラクトの識別子との間の関連付けは、ブロックチェーン内に記憶されたデータレコードとして実施され得る。実施形態によっては、スマートコントラクトの識別子はデジタル証明書の生成のために認証サーバへ送信され得る。それらの実施形態では、デジタル証明書は、スマートコントラクトの識別子を示すデータをさらに記憶し得る。実施形態によっては、スマートコントラクトは、トランザクション活動の規則を適用するためのコンピュータ可読命令を含み得る。
【００４２】
[0048]  実施形態によっては、１つ以上のプロセッサは、認証サーバの公開鍵を用いてデジタル証明書が有効であるかどうかを判定し得る。認証サーバの公開鍵は認証サーバのプライベート鍵と共に生成され得る。認証サーバのプライベート鍵は、生成されたデジタル証明書を暗号化するために用いられ得る。認証サーバの公開鍵は、デジタル証明書の受け手によって有効性検証のために用いられ得る。例えば、１つ以上のプロセッサは公開鍵を認証サーバからあらかじめ受信してもよく、又はそれを認証サーバからオンデマンドで取得してもよい。デジタル証明書が有効である場合には、１つ以上のプロセッサはブロックチェーンにおけるアカウントを作成し得る。実施形態によっては、１つ以上のプロセッサはアカウントの残高額を予算としてさらに設定し得る。
【００４３】
[0049]  実施形態によっては、アカウントが作成された後に、１つ以上のプロセッサはユーザにこのような情報を知らせ得る。例えば、アカウントが作成されたことを確かめるために、１つ以上のプロセッサは、ブロックチェーンシステムによって生成されたアカウントの識別子を受信し得る。アカウントの識別子はハッシュコードとして生成され得る。次に、１つ以上のプロセッサは、アカウントが作成されたことをユーザに示し得るデータをユーザへ送信し得る。例えば、データはアカウントの識別子を含み得る。
【００４４】
[0050]  トランザクション活動のためのアカウントを作成した後に、ユーザ（例えば、小売商）はトランザクション活動のための入口データをその顧客へ公開し得る。トランザクション活動の入口データは、顧客がトランザクション活動の情報にアクセスするための入口を提供し得る。入口データは、ハイパリンク、クイックレスポンス（quick response、ＱＲ）コード、モバイルアプリ内の広告、又は同様のものなどの、様々な形式で実施され得る。顧客が（例えば、リンクをクリックすることによって）入口データにアクセスすると、彼らは、名称、規則、予算、残りの残高、又は活動の満了時間などの、トランザクション活動の指定された非取扱注意データにアクセスし得る。ブロックチェーンにアクセスする顧客及び他の小売商は、トランザクション活動を始める小売商のアイデンティティなどの、トランザクション活動の取扱注意データにアクセスすることが不可能であり得る。
【００４５】
[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]  上述されたモジュールの各々は、ソフトウェア、又はハードウェア、或いはソフトウェア及びハードウェアの組み合わせとして実施され得る。例えば、上述されたモジュールの各々は、メモリ内に記憶された命令を実行するプロセッサを用いて実施され得る。また、例えば、各々の上述されたモジュールは、上述の方法を実行するための、１つ以上の特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（digital signal processor、ＤＳＰ）、デジタル信号処理デバイス（digital signal processing device、ＤＳＰＤ）、プログラマブル論理デバイス（programmable logic device、ＰＬＤ）、フィールドプログラマブルゲートアレイ（field-programmable gate array、ＦＰＧＡ）、コントローラ、マイクロコントローラ、マイクロプロセッサ、又は他の電子構成要素を用いて実施され得る。さらに、例えば、上述されたモジュールの各々は、コンピュータチップ又はエンティティを用いることによって実施されるか、或いは特定の機能を有する製品を用いて実施され得る。一実施形態では、装置７００はコンピュータであり得、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラー電話、カメラフォン、スマートフォン、パーソナルデジタルアシスタント、メディアプレーヤ、ナビゲーションデバイス、電子メール受信及び送信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、或いはこれらのデバイスの任意の組み合わせであり得る。
【００７１】
[0077]  装置７００内の各モジュールの機能及び役割の実行プロセスのために、上述の方法における対応するステップを参照することができる。簡潔にするためにここでは詳細は省略される。
【００７２】
[0078]  実施形態によっては、コンピュータプログラム製品は、プロセッサに上述の方法を実行させるためのコンピュータ可読プログラム命令を有する非一時的コンピュータ可読記憶媒体を含み得る。
【００７３】
[0079]  コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、限定するものではないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又は上述のものの任意の好適な組み合わせであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下のもの：ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、消去可能プログラマブルリードオンリーメモリ（ＥＰＲＯＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ポータブルコンパクトディスクリードオンリーメモリ（compact disc read-only memory、ＣＤ−ＲＯＭ）、デジタル多用途ディスク（digital versatile disk、ＤＶＤ）、メモリスティック、フロッピーディスク、穿孔カード、又は命令が記録された溝内の隆起構造などの、機械的に符号化されたデバイス、並びに上述のものの任意の好適な組み合わせを含む。
【００７４】
[0080]  上述の方法を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（instruction-set-architecture、ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、或いはオブジェクト指向プログラミング言語、及び従来の手続き型プログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合わせで書かれた、ソースコード又はオブジェクトコードであり得る。コンピュータ可読プログラム命令は、完全に、コンピューティングデバイス上でスタンドアロンソフトウェアパッケージとして実行するか、或いは部分的に、第１のコンピューティングデバイス上で、及び部分的に、第１のコンピューティングデバイスから遠隔の第２のコンピューティングデバイス上で実行し得る。後者のシナリオでは、第２の遠隔のコンピューティングデバイスは、ローカルエリアネットワーク（ＬＡＮ）又はワイドエリアネットワーク（wide area network、ＷＡＮ）を含む、任意の種類のネットワークを通じて第１のコンピューティングデバイスに接続され得る。
【００７５】
[0081]  コンピュータ可読プログラム命令は、汎用若しくは専用コンピュータ、又は機械を生成するための他のプログラム可能データ処理装置のプロセッサに提供され得、これにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサを介して実行する命令は、上述の方法を実行するための手段を作り出す。
【００７６】
[0082]  図面におけるフローチャート及び図は、本明細書の様々な実施形態に係るデバイス、方法、及びコンピュータプログラム製品の可能な諸実施形態のアーキテクチャ、機能性、及び動作を示す。この点に関して、フローチャート又は図内のブロックは、特定の機能を実施するための１つ以上の実行可能命令を含む、ソフトウェアプログラム、セグメント、又はコードの部分を表し得る。いくつかの代替的実施形態では、ブロック内に記された機能は、図面に記された順序に従わずに生じてもよいことにも留意されたい。例えば、連続して示された２つのブロックは、実際には、実質的に同時に実行されてもよく、又はブロックは、時として、含まれる機能性に依存して、逆の順序で実行されてもよい。また、図及び／又はフローチャートの各ブロック、並びに図及びフローチャートにおけるブロックの組み合わせは、指定された機能若しくは行為を実行する専用ハードウェアベースのシステム、或いは専用ハードウェア及びコンピュータ命令の組み合わせによって実施され得ることにも留意されたい。
【００７７】
[0083]  明確にするために、別個の実施形態の文脈で説明される本明細書の特定の特徴はまた、単一の実施形態において組み合わせて提供され得ることが理解される。逆に、簡潔にするために、単一の実施形態の文脈で説明される本明細書の様々な特徴はまた、別個に、又は任意の好適なサブコンビネーションで提供され、或いは本明細書の任意の他の上述の実施形態において同様に適し得る。様々な実施形態の文脈で説明される特定の特徴は、そのように断りのない限り、それらの実施形態の本質的な特徴ではない。
【００７８】
[0084]  本明細書は特定の実施形態と関連して説明されたが、多くの代替、変更及び変形が当業者には明らかであろう。したがって、添付の請求項は、請求項の条件の範囲内に含まれる全てのこのような代替、変更及び変形を包含する。
【図１】
0006873270.tif 000002
【図２】
0006873270.tif 000003
【図３】
0006873270.tif 000004
【図４】
0006873270.tif 000005
【図５】
0006873270.tif 000006
【図６】
0006873270.tif 000007
【図７】
0006873270.tif 000008