図面 (/)
課題・解決手段
ブロックチェーンネットワーク内でスマート・コントラクトを使用する製品プロモーションのための、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、方法、システム、および装置が本明細書で開示されている。方法は、ブロックチェーンネットワークのノードにより、プロモーションイベントを作成する作成要求を受信することであって、プロモーションイベントが、複数のプロモーションコード、ならびに秘密鍵および公開鍵のペアと関連付けられ、作成要求が、公開鍵、および秘密鍵を使用して生成されたデジタル署名を含む、受信することと、ノードにより、公開鍵およびデジタル署名に基づいて、作成要求の有効性を判定することと、作成要求が有効であると判定することに応答して、ノードにより、ブロックチェーンネットワーク内に複数のプロモーションコードを記憶することなく、スマート・コントラクトを使用してブロックチェーンネットワーク内にプロモーションイベントを登録することとを含む。
概要
背景
分散型台帳システム(DLS)により、参加している組織が安全かつ不変にデータを記憶することが可能になる。DLSは、任意の特定の使用事例を参照することなく、コンセンサスネットワークまたはブロックチェーンネットワークと呼ぶこともできる。ブロックチェーンネットワークの例として、えり抜きの組織に提供されるコンソーシアムブロックチェーンネットワークを含むことができる。コンソーシアムブロックチェーンネットワークは、えり抜きの組織のための合意プロセスを制御することができる。コンソーシアムブロックチェーンネットワークはアクセス制御レイヤを含む。
クーポンは、それを介して消費者が安価な製品またはサービスを得ることができる、小売業者によって裏書きされたマーケティング手段の1つのタイプである。その結果、小売業者は多くの顧客を獲得することができる。クーポンは印刷されたクーポンまたは電子クーポンを含むことができる。電子クーポンを発行するとき、小売業者は、しばしば一意の識別子を生成し、クーポンと関連付ける。一意の識別子は、「クーポンコード」と呼ぶこともできる。通常、一意の識別子は中央データストアに記憶される。消費者は、関連する製品を介してクーポンの一意の識別子を取得し、次いで、対応する報酬を償還することができる。中央データストアが侵害されるか、ハッキングされるか、またはさもなければ損傷した場合、クーポン情報は漏洩される可能性があり、結果として無効な行為、深刻な財政的損失、および他の被害がもたらされる。場合によっては、一意の識別子は、推測またはさもなければ解読される可能性がある。
漏洩、悪意による解読、および他の被害からクーポンを保護するために、有効な手段をもつことが望ましい。
概要
ブロックチェーンネットワーク内でスマート・コントラクトを使用する製品プロモーションのための、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、方法、システム、および装置が本明細書で開示されている。方法は、ブロックチェーンネットワークのノードにより、プロモーションイベントを作成する作成要求を受信することであって、プロモーションイベントが、複数のプロモーションコード、ならびに秘密鍵および公開鍵のペアと関連付けられ、作成要求が、公開鍵、および秘密鍵を使用して生成されたデジタル署名を含む、受信することと、ノードにより、公開鍵およびデジタル署名に基づいて、作成要求の有効性を判定することと、作成要求が有効であると判定することに応答して、ノードにより、ブロックチェーンネットワーク内に複数のプロモーションコードを記憶することなく、スマート・コントラクトを使用してブロックチェーンネットワーク内にプロモーションイベントを登録することとを含む。
目的
本明細書は、本明細書で提供される方法を実装するためのシステムをさらに提供する
効果
実績
- 技術文献被引用数
- 0件
- 牽制数
- 0件
この技術が所属する分野
請求項1
ブロックチェーンネットワーク内でスマート・コントラクトを使用する製品プロモーションのためのコンピュータ実装方法であって、前記方法が、ブロックチェーンネットワークのノードにより、プロモーションイベントを作成する作成要求を受信するステップであって、前記プロモーションイベントが複数のプロモーションコードと関連付けられ、前記プロモーションイベントが前記プロモーションイベントを識別するための秘密鍵および公開鍵のペアと関連付けられ、前記作成要求が、前記公開鍵、および前記秘密鍵を使用して生成されたデジタル署名を含む、ステップと、前記ノードにより、前記公開鍵および前記デジタル署名に基づいて、前記作成要求の有効性を判定するステップと、前記作成要求が有効であると判定することに応答して、前記ノードにより、前記ブロックチェーンネットワーク内に前記複数のプロモーションコードを記憶することなく、スマート・コントラクトを使用して前記ブロックチェーンネットワーク内に前記プロモーションイベントを登録するステップとを含む、コンピュータ実装方法。
請求項2
前記作成要求が前記プロモーションイベントの規則をさらに含み、前記ノードにより、スマート・コントラクトを使用して前記ブロックチェーンネットワーク内に前記プロモーションイベントを登録するステップが、前記ノードにより、前記スマート・コントラクトの1つまたは複数の関数に前記規則を入力するステップと、前記ノードにより、前記スマート・コントラクトの前記1つまたは複数の関数を実行するステップと、前記ノードにより、前記ブロックチェーンネットワーク内に前記規則を記憶するステップとを含む、請求項1に記載のコンピュータ実装方法。
請求項3
前記規則が、前記プロモーションイベントの識別子(ID)、前記複数のプロモーションコードの総数、前記複数のプロモーションコードの範囲、前記複数のプロモーションコードの各々のタイプ、有効なプロモーションコードのスペリング規則、前記プロモーションイベントの満了時間、前記プロモーションイベントの領域、または前記複数のプロモーションコードのうちの1つを償還するための個人の資格のうちの1つまたは複数を含む、請求項2に記載のコンピュータ実装方法。
請求項4
前記ノードにより、前記複数のプロモーションコードのうちの1つのプロモーションコードを償還する償還要求を受信するステップであって、前記償還要求が、前記プロモーションコード、前記プロモーションイベントの識別子(ID)、および前記秘密鍵を使用して署名された前記償還要求のデジタル署名を含む、ステップと、前記ノードにより、前記プロモーションイベントの前記IDに基づいて、前記プロモーションイベントの前記公開鍵および前記規則を識別するステップと、前記ノードにより、前記償還要求の前記デジタル署名および前記公開鍵に基づいて、前記償還要求が有効であると判定するステップとをさらに含む、請求項2に記載のコンピュータ実装方法。
請求項5
前記ノードにより、前記規則に基づいて、前記スマート・コントラクトを実行することにより、前記プロモーションコードが有効であるかどうかを判定するステップをさらに含む、請求項4に記載のコンピュータ実装方法。
請求項6
前記ノードにより、前記スマート・コントラクトを実行することにより、前記プロモーションイベントの償還履歴に従って、前記プロモーションコードが償還されているかどうかを判定するステップをさらに含む、請求項5に記載のコンピュータ実装方法。
請求項7
前記プロモーションコードが有効であり、償還されていないと判定することに応答して、前記ブロックチェーンネットワーク内に前記プロモーションコードの償還を記録するステップと、前記プロモーションコードの償還の成功を示す確認応答を返信するステップとをさらに含む、請求項6に記載のコンピュータ実装方法。
請求項8
前記プロモーションコードが無効であると判定することに応答して、前記プロモーションコードが無効であることを示す通知を返信するステップをさらに含む、請求項5に記載のコンピュータ実装方法。
請求項9
前記プロモーションコードが償還されていると判定することに応答して、前記プロモーションコードが償還されていることを示す通知を返信するステップをさらに含む、請求項6に記載のコンピュータ実装方法。
請求項10
前記複数のプロモーションコードが同時に生成され、前記コンピュータ実装方法が、前記ノードにより、異なる時間に前記複数のプロモーションコードのうちの2つ以上を償還する2つ以上の償還要求を受信するステップをさらに含む、請求項1から9のいずれか一項に記載のコンピュータ実装方法。
請求項11
ブロックチェーンネットワーク内でスマート・コントラクトを使用する製品プロモーションのための装置であって、前記装置が、請求項1から10のいずれか一項に記載の方法を実行するための複数のモジュールを備える、装置。
請求項12
技術分野
背景技術
0002
分散型台帳システム(DLS)により、参加している組織が安全かつ不変にデータを記憶することが可能になる。DLSは、任意の特定の使用事例を参照することなく、コンセンサスネットワークまたはブロックチェーンネットワークと呼ぶこともできる。ブロックチェーンネットワークの例として、えり抜きの組織に提供されるコンソーシアムブロックチェーンネットワークを含むことができる。コンソーシアムブロックチェーンネットワークは、えり抜きの組織のための合意プロセスを制御することができる。コンソーシアムブロックチェーンネットワークはアクセス制御レイヤを含む。
0003
クーポンは、それを介して消費者が安価な製品またはサービスを得ることができる、小売業者によって裏書きされたマーケティング手段の1つのタイプである。その結果、小売業者は多くの顧客を獲得することができる。クーポンは印刷されたクーポンまたは電子クーポンを含むことができる。電子クーポンを発行するとき、小売業者は、しばしば一意の識別子を生成し、クーポンと関連付ける。一意の識別子は、「クーポンコード」と呼ぶこともできる。通常、一意の識別子は中央データストアに記憶される。消費者は、関連する製品を介してクーポンの一意の識別子を取得し、次いで、対応する報酬を償還することができる。中央データストアが侵害されるか、ハッキングされるか、またはさもなければ損傷した場合、クーポン情報は漏洩される可能性があり、結果として無効な行為、深刻な財政的損失、および他の被害がもたらされる。場合によっては、一意の識別子は、推測またはさもなければ解読される可能性がある。
0004
漏洩、悪意による解読、および他の被害からクーポンを保護するために、有効な手段をもつことが望ましい。
課題を解決するための手段
0005
本明細書は、ブロックチェーンネットワーク内でスマート・コントラクトを使用する製品プロモーションのための技術を記載する。
0006
本明細書の実装形態は、ブロックチェーンネットワーク内で(スマート・コントラクトベースのプロモーションイベントと呼ばれる)スマート・コントラクトを使用する製品プロモーションイベントを実施することを対象とする。いくつかの実施形態では、(たとえば、1つまたは複数の商品およびサービスを含む)1つまたは複数の製品の小売業者(たとえば、ブランドオーナ、小売商人、または製造業者)は、たとえば、マーケティング目的で、プロモーションイベントを作成することができる。いくつかの実施形態では、小売業者は、プロモーションイベント用のいくつかのデジタルチケットまたは電子チケット(たとえば、電子引換券、電子クーポン、または電子商品券)を発行することができる。
0007
いくつかの実施形態では、ブロックチェーンネットワーク内でプロモーションイベントを実施して、小売業者によるプロモーションイベントの作成、および消費者によるデジタルチケットの償還を容易にするために、スマート・コントラクトを使用することができる。いくつかの実施形態では、スマート・コントラクトベースのプロモーションイベントは、多数のデジタルチケットを記憶するために必要な記憶スペースを節約することができる。いくつかの実施形態では、スマート・コントラクトベースのプロモーションイベントは、ブロックチェーンネットワークにデジタルチケットを同時にアップロードするコンピュータ上のボトルネックを回避することができる。いくつかの実施形態では、スマート・コントラクトベースのプロモーションイベントは、漏洩または悪意による解読からデジタルチケットを保護するための強化されたデータセキュリティを実現することができる。
0008
本明細書は、1つまたは複数のプロセッサに結合され、命令を記憶した1つまたは複数の非一時的コンピュータ可読記憶媒体も提供し、命令は、1つまたは複数のプロセッサによって実行されると、本明細書で提供される方法の実施形態による動作を1つまたは複数のプロセッサに実行させる。
0009
本明細書は、本明細書で提供される方法を実装するためのシステムをさらに提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、命令を記憶したコンピュータ可読記憶媒体とを含み、命令は、1つまたは複数のプロセッサによって実行されると、本明細書で提供される方法の実施形態による動作を1つまたは複数のプロセッサに実行させる。
0010
本明細書による方法は、本明細書に記載される態様および特徴の任意の組合せを含んでよいことが諒解される。すなわち、本明細書による方法は、本明細書に具体的に記載される態様および特徴の組合せに限定されず、提供される態様および特徴の任意の組合せも含む。
0011
本明細書の1つまたは複数の実施形態の詳細は、添付の図面および下記の説明において記載される。本明細書の他の特徴および利点は、説明および図面から、かつ特許請求の範囲から明らかである。
図面の簡単な説明
0012
本明細書の実施形態を実行するために使用することができる環境の一例を示す図である。
本明細書の実施形態によるアーキテクチャの一例を示す図である。
本明細書の実施形態による、ブロックチェーンネットワーク内でスマート・コントラクトを使用する製品プロモーションイベントを作成するための動作の例を示す図である。
本明細書の実施形態による、ブロックチェーンネットワーク内でスマート・コントラクトを使用して実施された製品プロモーションイベントのプロモーションコードを償還するための動作の例を示す図である。
本明細書の実施形態による、ブロックチェーンネットワーク内でスマート・コントラクトを使用する製品プロモーションのためのプロセスの一例を描写する図である。
本明細書の実施形態による装置のモジュールの例を描写する図である。
実施例
0013
様々な図面における同様の参照番号および記号は同様の要素を示す。
0014
本明細書の実装形態は、ブロックチェーンネットワーク内で(スマート・コントラクトベースのプロモーションイベントと呼ばれる)スマート・コントラクトを使用する製品プロモーションイベントを実施することを対象とする。いくつかの実施形態では、(たとえば、1つまたは複数の商品および/またはサービスを含む)1つまたは複数の製品の小売業者(たとえば、ブランドオーナ、小売商人、卸売業者、または製造業者)は、たとえば、マーケティング目的で、プロモーションイベントを作成することができる。いくつかの実施形態では、小売業者は、プロモーションイベント用のいくつかのデジタルチケットまたは電子チケット(たとえば、電子引換券、電子クーポン、電子商品券、または電子祝儀袋)を発行することができる。
0015
いくつかの実施形態では、ブロックチェーンネットワーク内でプロモーションイベントを実施して、小売業者によるプロモーションイベントの作成および消費者によるデジタルチケットの償還を容易にするために、スマート・コントラクトを使用することができる。いくつかの実施形態では、スマート・コントラクトベースのプロモーションイベントは、多数のデジタルチケットを記憶するために必要な記憶スペースを節約することができる。いくつかの実施形態では、スマート・コントラクトベースのプロモーションイベントは、ブロックチェーンネットワークにデジタルチケットを同時にアップロードするコンピュータ上のボトルネックを回避することができる。いくつかの実施形態では、スマート・コントラクトベースのプロモーションイベントは、漏洩または悪意による解読からデジタルチケットを保護するための強化されたデータセキュリティを実現することができる。
0016
本明細書の実装形態のためのさらなるコンテキストを提供するために、かつ上記で紹介されたように、(たとえば、ピアツーピアノードから構成される)コンセンサスネットワークおよびブロックチェーンネットワークと呼ぶこともできる分散型台帳システム(DLS)により、参加している組織が安全かつ不変に取引を行い、データを記憶することが可能になる。ブロックチェーンという用語は、一般に、特定のネットワークおよび/または使用事例に関連付けられるが、本明細書では、ブロックチェーンは、概して、任意の特定の使用事例とは無関係に、DLSを指すために使用される。
0017
ブロックチェーンは、取引が永劫に不変であるような方法で取引を記憶するデータ構造である。したがって、ブロックチェーンに記録された取引は信頼性が高く、信頼できる。ブロックチェーンは1つまたは複数のブロックを含む。チェーン内の各ブロックは、チェーン内のその直前のブロックの暗号化ハッシュを含むことにより、そのブロックにリンクされる。各ブロックは、タイムスタンプ、それ自体の暗号化ハッシュ、および1つまたは複数の取引も含む。ブロックチェーンネットワークのノードによってすでに検証された取引は、ハッシュされ、マークルツリーの中に符号化される。マークルツリーは、ツリーのリーフノードにあるデータがハッシュされたデータ構造であり、ツリーの各分岐内のすべてのハッシュは分岐のルートにおいて連結される。このプロセスはそのツリーからツリー全体のルートまで続き、ツリー全体のルートはツリー内のすべてのデータを表すハッシュを記憶する。ツリー内に記憶された取引のハッシュであることを意味するハッシュは、それがツリーの構造に整合するかどうかを判定することによって迅速に検証することができる。
0018
ブロックチェーンが取引を記憶するための分散または少なくとも部分的に分散されたデータ構造であるのに対して、ブロックチェーンネットワークは、取引をブロードキャスト、検証、および妥当性確認することなどにより、1つまたは複数のブロックチェーンを管理、更新、および維持するコンピューティングノードのネットワークである。上記で紹介されたように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供することができる。本明細書の実施形態は、コンソーシアムブロックチェーンネットワークを参照して本明細書においてさらに詳細に記載される。しかしながら、本明細書の実施形態は、任意の適切なタイプのブロックチェーンネットワーク内で実現することができると考えられる。
0019
一般に、コンソーシアムブロックチェーンネットワークは、参加している組織の間で内密である。コンソーシアムブロックチェーンネットワークでは、合意プロセスは、合意ノードと呼ぶことができる認可された組のノードによって制御され、1つまたは複数の合意ノードは、それぞれの組織(たとえば、金融機関、保険会社)によって運営される。たとえば、10個の組織(たとえば、金融機関、保険会社)のコンソーシアムは、コンソーシアムブロックチェーンネットワークを運営することができ、それらの各々はコンソーシアムブロックチェーンネットワーク内の少なくとも1つのノードを運営する。
0020
いくつかの例では、コンソーシアムブロックチェーンネットワーク内で、すべてのノードにわたって複製されたブロックチェーンとして、グローバルブロックチェーンが提供される。すなわち、すべての合意ノードは、グローバルブロックチェーンに関して完全な合意状態にある。合意(たとえば、ブロックチェーンへのブロックの追加の同意)を達成するために、コンソーシアムブロックチェーンネットワーク内で合意プロトコルが実施される。たとえば、コンソーシアムブロックチェーンネットワークは、下記でさらに詳細に記載される、実際的なビザンチンフォールトトレランス(PBFT)合意を実施することができる。
0021
図1は、本明細書の実施形態を実行するために使用することができる環境100の一例を示す図である。いくつかの例では、環境100により、組織がコンソーシアムブロックチェーンネットワーク102に参加することが可能になる。環境100は、コンピューティングデバイス106、108、およびネットワーク110を含む。いくつかの例では、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはそれらの組合せを含み、ウェブサイト、ユーザデバイス(たとえば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例では、ネットワーク110は、有線および/またはワイヤレスの通信リンクを介してアクセスすることができる。いくつかの例では、ネットワーク110により、コンソーシアムブロックチェーンネットワーク102との通信、およびコンソーシアムブロックチェーンネットワーク102内の通信が可能になる。一般に、ネットワーク110は1つまたは複数の通信ネットワークを表す。場合によっては、コンピューティングデバイス106、108は、クラウドコンピューティングシステム(図示せず)のノードであってよく、または各コンピューティングデバイス106、108は、ネットワークによって相互接続されたいくつかのコンピュータを含み、分散処理システムとして機能する別個のクラウドコンピューティングシステムであってよい。
0022
描写された例では、コンピューティングシステム106、108は、各々、コンソーシアムブロックチェーンネットワーク102内のノードとしての参加を可能にする任意の適切なコンピューティングシステムを含むことができる。コンピューティングデバイスの例には、限定はしないが、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンが含まれる。いくつかの例では、コンピューティングシステム106、108は、コンソーシアムブロックチェーンネットワーク102と対話するための1つまたは複数のコンピュータ実装サービスをホストする。たとえば、コンピューティングシステム106は、第1の組織(たとえば、ユーザA)が1つまたは複数の他の組織(たとえば、他のユーザ)とのその取引を管理するために使用する取引管理システムなどの、第1の組織のコンピュータ実装サービスをホストすることができる。コンピューティングシステム108は、第2の組織(たとえば、ユーザB)が1つまたは複数の他の組織(たとえば、他のユーザ)とのその取引を管理するために使用する取引管理システムなどの、第2の組織のコンピュータ実装サービスをホストすることができる。図1の例では、コンソーシアムブロックチェーンネットワーク102は、ノードのピアツーピアネットワークとして表され、コンピューティングシステム106、108は、それぞれ、コンソーシアムブロックチェーンネットワーク102に参加する第1の組織および第2の組織のノードを提供する。
0023
図2は、本明細書の実施形態によるアーキテクチャ200の一例を描写する。例示的なアーキテクチャ200は、それぞれ、参加者A、参加者B、および参加者Cに対応する参加者のシステム202、204、206を含む。各参加者(たとえば、ユーザ、企業)は、複数のノード214を含むピアツーピアネットワークとして提供されたブロックチェーンネットワーク212に参加し、ノードのうちの少なくともいくつかはブロックチェーン216内に情報を不変に記録する。ブロックチェーンネットワーク212内で単一のブロックチェーン216が概略的に描写されているが、本明細書においてさらに詳細に記載されるように、ブロックチェーン216の複数のコピーが提供され、ブロックチェーンネットワーク212にわたって維持される。
0024
描写された例では、各参加者のシステム202、204、206は、それぞれ、参加者A、参加者B、および参加者Cにより、またはその代わりに提供され、ブロックチェーンネットワーク内のそれぞれのノード214として機能する。本明細書で使用されるノードは、一般に、ブロックチェーンネットワーク212に接続され、それぞれの参加者がブロックチェーンネットワークに参加することを可能にする個々のシステム(たとえば、コンピュータ、サーバ)を指す。図2の例では、参加者は各ノード214に対応する。しかしながら、参加者はブロックチェーンネットワーク212内の複数のノード214を運営することができ、かつ/または複数の参加者はノード214を共有することができると考えられる。いくつかの例では、参加者のシステム202、204、206は、プロトコル(たとえば、ハイパーテキスト転送プロトコルセキュア(HTTPS))を使用して、かつ/またはリモートプロシージャコール(RPC)を使用して、ブロックチェーンネットワーク212と通信するか、またはブロックチェーンネットワーク212を介して通信する。
0025
ノード214は、ブロックチェーンネットワーク212内の異なる参加度を有することができる。たとえば、いくつかのノード214は、(たとえば、ブロックチェーン216にブロックを追加する世話人ノードとして)合意プロセスに参加することができるが、他のノード214は合意プロセスに参加しない。別の例として、いくつかのノード214はブロックチェーン216の完全コピーを記憶するが、他のノード214はブロックチェーン216の部分のコピーのみを記憶する。たとえば、データアクセス特権は、それぞれの参加者がそのそれぞれのシステム内に記憶するブロックチェーンデータを制限することができる。図2の例では、参加者のシステム202、204は、ブロックチェーン216のそれぞれの完全コピー216'、216''を記憶する。
0026
ブロックチェーン(たとえば、図2のブロックチェーン216)はブロックのチェーンから構成され、各ブロックがデータを記憶する。データの例には、2つ以上の参加者間の取引を表す取引データが含まれる。本明細書では、非限定的な例として取引が使用されるが、任意の適切なデータ(たとえば、文書、画像、ビデオ、音声)をブロックチェーン内に記憶することができると考えられる。取引の例は、限定はしないが、価値のある何か(たとえば、資産、製品、サービス、通貨)の交換を含むことができる。取引データはブロックチェーン内に不変に記憶される。すなわち、取引データは変更することができない。
0027
ブロックに記憶する前に、取引データはハッシュされる。ハッシングは、(文字列データとして提供される)取引データを(同様に文字列データとして提供される)固定長ハッシュ値に変換するプロセスである。ハッシュ値を逆ハッシュして取引データを取得することは可能でない。ハッシングは、取引データ内のわずかな変更でさえ完全に異なるハッシュ値をもたらすことを保証する。さらに、かつ上述されたように、ハッシュ値は固定長である。すなわち、取引データのサイズにかかわらず、ハッシュ値の長さは固定されている。ハッシングは、ハッシュ関数を介して取引データを処理してハッシュ値を生成することを含む。ハッシュ関数の例には、限定はしないが、256ビットのハッシュ値を出力するセキュアハッシュアルゴリズム(SHA)-256が含まれる。
0028
複数の取引の取引データがハッシュされ、ブロックに記憶される。たとえば、2つの取引のハッシュ値が提供され、別のハッシュを提供するためにそれら自体がハッシュされる。このプロセスは、ブロックに記憶されるべきすべての取引に対して、単一のハッシュ値が提供されるまで繰り返される。このハッシュ値はマークルルートハッシュと呼ばれ、ブロックのヘッダに記憶される。取引のうちのいずれにおける変更もそのハッシュ値における変更をもたらし、最終的にマークルルートハッシュにおける変更をもたらす。
0029
ブロックは合意プロトコルを介してブロックのチェーンに追加される。ブロックチェーンネットワーク内の複数のノードは、合意プロトコルに参加し、ブロックチェーンにブロックを追加させる作業を実行する。そのようなノードは合意ノードと呼ばれる。上記で紹介されたPBFTは、合意プロトコルの非限定的な例として使用される。合意ノードは、合意プロトコルを実行してブロックチェーンに取引を追加し、ブロックチェーンネットワークの全体的な状態を更新する。
0030
さらなる詳細では、合意ノードはブロックヘッダを生成し、ブロック内の取引のすべてをハッシュし、ブロック内のすべての取引に対して単一のハッシュ値(マークルルートハッシュ)が提供されるまで、ハッシュ値を2つ1組に結合してさらなるハッシュ値を生成する。このハッシュがブロックヘッダに追加される。合意ノードはまた、ブロックチェーン内の最新のブロック(すなわち、ブロックチェーンに追加された最後のブロック)のハッシュ値を決定する。合意ノードはまた、ブロックヘッダにノンス値およびタイムスタンプを追加する。
0031
一般に、PBFTは、ビザンチンフォールト(たとえば、故障ノード、悪意のあるノード)を許容する実際的なビザンチン状態機械の複製を提供する。これは、障害が発生すると仮定すること(たとえば、独立したノードの故障および/または合意ノードによって送られた操作メッセージの存在を仮定すること)により、PBFT内で実現される。PBFTでは、合意ノードは、一次合意ノードおよびバックアップ合意ノードを含む順番で提供される。一次合意ノードは周期的に変更され、ブロックチェーンネットワーク内のすべての合意ノードがブロックチェーンネットワークの世界的な状態に関して合意に達することにより、ブロックチェーンに取引が追加される。このプロセスでは、合意ノード間でメッセージが送信され、各合意ノードは、メッセージが指定されたピアノードから受信されたことを証明し、メッセージが送信中に修正されていないことを検証する。
0032
PBFTでは、合意プロトコルは複数の段階で提供され、すべての合意ノードが同じ状態で始まる。最初に、クライアントが、サービス動作を起動する(たとえば、ブロックチェーンネットワーク内で取引を実行する)ように、一次合意ノードに要求を送る。要求を受信したことに応答して、一次合意ノードはバックアップ合意ノードに要求をマルチキャストする。バックアップ合意ノードは要求を実行し、各々がクライアントに返答を送る。クライアントは、しきい値の数の返答が受信されるまで待つ。いくつかの例では、クライアントはf+1個の返答が受信されるまで待ち、ここで、fは障害のある合意ノードがブロックチェーンネットワーク内で許容され得る最大数である。最終結果は、十分な数の合意ノードがブロックチェーンに追加されるべき記録の程度の合意に達し、記録が容認されるか、または棄却されることである。
0033
いくつかのブロックチェーンネットワークでは、取引のプライバシーを維持するために暗号化が実施される。たとえば、ブロックチェーンネットワーク内の他のノードが取引の詳細を識別することができないように、2つのノードが取引の非公開を保ちたい場合、それらのノードは取引データを暗号化することができる。暗号化の例には、限定はしないが、対称暗号化および非対称暗号化が含まれる。対称暗号化は、(プレーンテキストから暗号文を生成する)暗号化と(暗号文からプレーンテキストを生成する)解読の両方に単一の鍵を使用する暗号化プロセスを指す。対称暗号化では、複数のノードに同じ鍵が利用可能であり、その結果、各ノードは取引データを暗号化/解読することができる。
0034
非対称暗号化は、各々が秘密鍵および公開鍵を含む鍵のペアを使用し、秘密鍵はそれぞれのノードのみに知られており、公開鍵はブロックチェーンネットワーク内の任意またはすべての他のノードに知られている。ノードは別のノードの公開鍵を使用してデータを暗号化し、暗号化されたデータは他のノードの秘密鍵を使用して解読することができる。たとえば、再び図2を参照すると、参加者Aは参加者Bの公開鍵を使用してデータを暗号化し、暗号化されたデータを参加者Bに送る。参加者Bは、その秘密鍵を使用して、暗号化されたデータ(暗号文)を解読し、元のデータ(プレーンテキスト)を抽出することができる。ノードの公開鍵を用いて暗号化されたメッセージは、ノードの秘密鍵を使用してしか解読することができない。
0035
非対称暗号化はデジタル署名を実現するために使用され、デジタル署名により、取引への参加者が取引への他の参加者、ならびに取引の有効性を確認することが可能になる。たとえば、あるノードはメッセージにデジタル署名することができ、別のノードは、参加者Aのデジタル署名に基づいて、メッセージがそのノードによって送られたことを確認することができる。デジタル署名は、メッセージが送信中に改ざんされていないことを保証するために使用することもできる。たとえば、再び図2を参照すると、参加者Aが参加者Bにメッセージを送る予定である。参加者Aはメッセージのハッシュを生成し、次いで、その秘密鍵を使用して、ハッシュを暗号化してデジタル署名を暗号化されたハッシュとして提供する。参加者Aはメッセージにデジタル署名を付加し、デジタル署名付きのメッセージを参加者Bに送る。参加者Bは参加者Aの公開鍵を使用してデジタル署名を解読し、ハッシュを抽出する。参加者Bはメッセージをハッシュし、ハッシュと比較する。ハッシュが同じ場合、参加者Bは、メッセージが確かに参加者Aからであり、改ざんされていないことを確認することができる。
0036
いくつかのブロックチェーンネットワークでは、いわゆるスマート・コントラクトを実行することができる。スマート・コントラクトは、様々な関係者に影響を及ぼす契約条項を有する実際の合法的契約のデジタル表現として記述することができる。スマート・コントラクトは、例示的なコンテキストでは、コンソーシアムブロックチェーンネットワーク内で、実装され、記憶され、(必要に応じて)更新され、実行される。スマート・コントラクトに関連付けられた契約関係者(たとえば、買い手および売り手)は、コンソーシアムブロックチェーンネットワーク内のノードとして表される。いくつかの例では、契約関係者は、(たとえば、スマート・コントラクトへの関係者として)スマート・コントラクトに関連付けられた組織(たとえば、企業)を含むことができる。
0037
さらなる詳細では、スマート・コントラクトは、ブロックチェーン(たとえば、ブロックチェーンネットワーク内のノード)上で実行されるコンピュータ実行可能プログラムとして提供される。スマート・コントラクトは、そのスマート・コントラクトへの関係者がその下で互いに対話することに同意する、一組のあらかじめ規定された規則を含んでいる。スマート・コントラクトのあらかじめ規定された規則が満たされた場合、スマート・コントラクト内で規定された合意が自動的に執行される。スマート・コントラクトは、通常、改ざん防止機構が付き、合意または取引の交渉または実行を容易にし、検証し、執行する。
0038
図3は、本明細書の実施形態による、ブロックチェーンネットワーク内でスマート・コントラクトを使用するプロモーションイベントを作成するための動作の例を示す図300である。便宜上、プロセスは、1つまたは複数の場所に配置され、本明細書によって適切にプログラムされた、1つまたは複数のコンピュータのシステムによって実行されるものとして記載される。たとえば、適切にプログラムされた分散システム(たとえば、図1のブロックチェーン環境100)がプロセスを実行することができる。システムは、小売業者302、小売業者サーバ304、およびブロックチェーンネットワーク306を含む。小売業者302は、たとえば、ブランドオーナ、小売商人、製造業者、取引プラットフォーム、または(たとえば、1つもしくは複数の商品および/もしくはサービスを含む)1つもしくは複数の製品のためのプロモーションイベントを作成することができる別の組織であってよい。小売業者302は、プロモーションイベントを作成するために、小売業者サーバ304にアクセスし、小売業者サーバ304上で動作し、またはさもなければ小売業者サーバ304と関連付けることができる。小売業者サーバ304は、ブロックチェーンネットワーク306にアクセスするか、またはさもなければブロックチェーンネットワーク306と通信可能に結合することができる、1つまたは複数のコンピュータまたはデータ処理装置であってよい。いくつかの実施形態では、小売業者サーバ304は、ブロックチェーンネットワーク306のノード(たとえば、クライアントノード、合意ノード、または非合意ノード)であってよい。いくつかの実施形態では、小売業者サーバ304は、1つまたは複数のスマート・コントラクトを生成し、ブロックチェーンネットワーク306に1つまたは複数のスマート・コントラクトを提出することができる。いくつかの実施形態では、小売業者サーバ304は、たとえば、ブロックチェーンネットワーク306にスマート・コントラクトの取引を提出することによる、ブロックチェーンネットワーク306内の1つまたは複数のスマート・コントラクトの展開サーバであってよい。いくつかの実施形態では、スマート・コントラクトは、分散方式でブロックチェーンネットワーク306内で展開することができ、スマート・コントラクトを呼び出すことができる一意
のスマート・コントラクトアドレスを有する。いくつかの実施形態では、1つまたは複数のスマート・コントラクトは、ブロックチェーンネットワーク306内で定義および展開されており、小売業者サーバ304は、1つまたは複数の契約内で定義された1つまたは複数の演算を呼び出すことができる。
0039
図示されたように、310において、小売業者302が、ブロックチェーンネットワーク306内でプロモーションイベントを作成するために、小売業者サーバ304に要求を送る。プロモーションイベントは、たとえば、1つまたは複数の製品を奨励またはマーケティングするために使用することができる。いくつかの実施形態では、プロモーションイベントの1つまたは複数の製品に対して、消費者に割引または他の奨励利益を提案するために、多数の(たとえば、10、100、1000以上の程度の)電子チケットまたはデジタルチケットが小売業者302によって発行または裏書きされ得る。デジタルチケットは、一般に、商品またはサービスを要求するためのチケットの仮想インスタンスである。デジタルチケットの例は、とりわけ、ある特定の金銭的価値を有し、商品およびサービスに交換することができる電子引換券、そのクーポンによって示された割引率に従う割引価格で製品を購入するために、消費時に消費者(もしくは顧客)によって使用され得る電子クーポン、または指定された小売業者において商品もしくはサービスに使用することができる電子商品券を含むことができる。
0040
いくつかの実施形態では、各デジタルチケットは一意の識別子と関連付けられる。一意の識別子は、「プロモーションコード」、「プロモーショナルコード」、「クーポンコード」、「ディスカウントコード」、「キーコード」、「プロモコード」、「サープラスコード」、「ポータブルコード」、「ショッピングコード」、「引換券コード」、「報酬コード」、「ディスカウント引換券」、「照会コード」、または「ソースコード」と呼ぶこともできる。
0041
小売業者サーバ304は、プロモーションイベントの規則を設定、規定、またはさもなければ構成することができる。プロモーションイベントの規則は、たとえば、プロモーションイベントの識別子(ID)(たとえば、名前もしくはコード)、デジタルチケットの規則、デジタルチケットの認証規則、プロモーションイベントの有効継続時間、プロモーションイベントの領域、プロモーションイベントの利用可能製品の情報、またはデジタルチケットを償還するための消費者の資格のうちの1つまたは複数を含むことができる。
0042
たとえば、320において、小売業者サーバ304がデジタルチケットの規則を設定、規定、またはさもなければ構成することができる。デジタルチケットの例示的な規則は、たとえば、デジタルチケットのタイプ(たとえば、とりわけ、電子クーポン、電子引換券、電子商品券、もしくは電子祝儀袋)、デジタルチケットの報酬もしくは利益のタイプ(たとえば、割引、現金、クレジット、リベート、および/もしくは追加の製品)、獲得規則もしくは獲得基準、プロモーションコードの総数、プロモーションコードの値範囲、複数のプロモーションコードの各々のタイプ、または有効なプロモーションコードのスペリング規則を含むことができる。
0043
たとえば、330において、小売業者サーバ304がデジタルチケットの認証規則を設定、規定、またはさもなければ構成することができる。いくつかの実施形態では、小売業者302によって裏書きされた各々の有効なデジタルチケットは、デジタル署名技術に基づいて認証または検証することができる。たとえば、小売業者302または小売業者302のプロモーションイベントに、秘密鍵および公開鍵のペアを割り当てることができる。小売業者302によって裏書きされた各々の有効なデジタルチケットは、たとえば、小売業者302の秘密鍵または小売業者302の特定のプロモーションイベントの秘密鍵を使用して、小売業者サーバ304によって署名することができる。第三者は、小売業者302または小売業者302の特定のプロモーションイベントの対応する公開鍵を使用して、デジタルチケットを検証することができる。いくつかの実施形態では、デジタルチケットの認証規則は、小売業者302の秘密鍵または小売業者302の特定のプロモーションイベントの秘密鍵を使用してデジタル署名を生成する際に含まれるべき情報(たとえば、プロモーションコード、およびもしあれば、プロモーションイベントのIDなどの他の情報)を規定することができる。
0044
いくつかの実施形態では、プロモーションコードのデジタル署名は、強化されたデータセキュリティを実現することができる。たとえば、第三者がプロモーションコードのスペリング規則を解読した場合でも、第三者は、小売業者302の秘密鍵または小売業者302の特定のプロモーションイベントの秘密鍵なしに、プロモーションコードの有効な署名を生成することはできない。したがって、第三者によって生成されたいかなるプロモーションコードも有効にすることはできない。
0045
たとえば、340において、小売業者サーバ304が、たとえば、プロモーションイベントの満了時間またはカウントベースの満了規則を構成することにより、プロモーションイベントの有効継続時間を設定、規定、またはさもなければ構成することができる。いくつかの実施形態では、小売業者サーバ304は、プロモーションイベントのさらなるまたは異なる規則を構成することができる。
0046
350において、小売業者サーバ304が、ブロックチェーンネットワーク306内でプロモーションイベントを作成するために、ブロックチェーンネットワーク306に要求を送る。要求は、たとえば、プロモーションイベントのID、プロモーションイベントの規則、要求のデジタル署名、および/または他の情報を含むことができる。
0047
小売業者サーバ304から要求を受信すると、ブロックチェーンネットワーク306は、たとえば、360において、プロモーションイベントの有効性を判定する。いくつかの実施形態では、プロモーションイベントの有効性は、たとえば、スマート・コントラクト内で規定されたプロモーションイベント確認演算を起動することによって判定することができる。たとえば、プロモーションイベント確認演算は、プロモーションイベントの情報(たとえば、規則)を受信し、それを(たとえば、ブロックチェーンネットワーク306または政府などの管理機関の)いくつかの規定と比較し、プロモーションイベントが規定を遵守するかどうかを判定することができる。
0048
370において、プロモーションイベントが有効であると判定することに応答して、ブロックチェーンネットワーク306は、たとえば、ブロックチェーンネットワーク306内にプロモーションイベントの規則を記憶することにより、プロモーションイベントを登録することができる。そのため、スマート・コントラクトは、プロモーションイベントの1つまたは複数のデジタルチケットの償還などの、プロモーションイベントの様々な動作を実行するために、プロモーションイベントの規則に従って実行することができる。
0049
プロモーションイベントのデジタルチケットのプロモーションコードはブロックチェーンネットワーク306に記憶されないことに留意されたい。このようにして、記憶スペースが節約される。その上、それにより、プロモーションイベントの多数のプロモーションコードをブロックチェーンネットワーク306に同時にアップロードすることからブロックチェーンネットワーク306が解放される。それにより、プロモーションコードの漏洩も防止される。
0050
いくつかの実施形態では、プロモーションイベントが無効であると判定することに応答して、ブロックチェーンネットワーク306は、プロモーションイベントの作成を棄却することができる。
0051
380において、ブロックチェーンネットワーク306が、プロモーションイベントの作成の結果を示す通知を小売業者サーバ304に送ることができる。いくつかの実施形態では、通知は、プロモーションイベントがブロックチェーンネットワーク306内での作成に成功したことを示す確認応答であってよい。いくつかの実施形態では、通知は、プロモーションイベントがブロックチェーンネットワーク306内での作成になぜ成功しなかったかに関する詳細情報の有無にかかわらず、プロモーションイベントがブロックチェーンネットワーク306内での作成に成功しなかったことを示す通知であってよい。
0052
390において、小売業者サーバ304が、プロモーションイベントの作成の結果を示すブロックチェーンネットワーク306からの通知に従って、小売業者302に応答を送ることができる。
0053
図4は、本明細書の実施形態による、ブロックチェーンネットワーク内でスマート・コントラクトを使用して実施された製品プロモーションイベントのプロモーションコードを償還するための動作の例を示す図400である。便宜上、プロセスは、1つまたは複数の場所に配置され、本明細書によって適切にプログラムされた、1つまたは複数のコンピュータのシステムによって実行されるものとして記載される。たとえば、適切にプログラムされた分散システム(たとえば、図1のブロックチェーン環境100)がプロセスを実行することができる。システムは、消費者303、小売業者サーバ304、およびブロックチェーンネットワーク306を含むことができる。消費者ノード303は、たとえば、小売業者302のプロモーションイベントのプロモーションコードを取得した人または別の組織によってアクセスもしくは操作され得るか、またはさもなければそれに関連付けられ得る、1つまたは複数のコンピュータまたはデータ処理装置であってよい。いくつかの実施形態では、消費者ノード303は、プロモーションコードならびに/またはプロモーションイベントのIDおよびプロモーションコードのデジタル署名などの他の情報を取得することができる。いくつかの実施形態では、消費者ノード303は、暗号化またはさもなければ変換された形態で、プロモーションコードおよび/または他の情報を取得することができる。
0054
いくつかの実施形態では、消費者ノード303は、プロモーションイベントのプロモーションコードを償還するために、小売業者サーバ304と通信することができる。たとえば、消費者ノード303は、プロモーションイベントのプロモーションコードを含むQRコード(登録商標)をスキャンした消費者のモバイルデバイスであってよい。いくつかの実施形態では、QRコード(登録商標)は、プロモーションイベントのIDおよびプロモーションコードのデジタル署名などの他の情報も含む。いくつかの実施形態では、QRコード(登録商標)をスキャンすると、プロモーションイベントのプロモーションコードを償還することに対する要求を小売業者サーバ304に自動的に送信することができる。
0055
たとえば、図4に示されたように、410において、消費者ノード303が、プロモーションイベントのプロモーションコードを償還するために、小売業者サーバ304に償還要求を送る。いくつかの実施形態では、小売業者サーバ304は、まず償還要求の有効性を判定することができる。たとえば、小売業者サーバ304は、(たとえば、プロモーションコードのIDに基づいて)プロモーションコードおよび対応するプロモーションイベントを識別し、プロモーションコードがプロモーションイベントの規則を遵守するかどうかを判定することができる。
0056
420において、小売業者サーバ304がブロックチェーンネットワーク306に償還要求を送る。いくつかの実施形態では、小売業者サーバ304が償還要求の有効性を判定した場合のみ、小売業者サーバ304はブロックチェーンネットワーク306に償還要求を送る。いくつかの実施形態では、小売業者サーバ304は、償還要求を受信した後、償還要求の有効性をチェックせず、ブロックチェーンネットワーク306に償還要求を転送する。
0057
430において、ブロックチェーンネットワーク306が、たとえば、償還要求内のプロモーションイベントのIDを登録されたプロモーションイベントのIDと照合することにより、償還要求で登録されたプロモーションイベントを識別する。
0058
440において、ブロックチェーンネットワーク306が、償還要求内のプロモーションコードの有効性を判定する。いくつかの実施形態では、プロモーションコードの有効性は、たとえば、スマート・コントラクト内で定義されたプロモーションコード確認演算を起動することによって判定することができる。たとえば、プロモーションコード確認演算は、償還要求内のプロモーションコードおよび/または他の情報を受信し、それを登録されたプロモーションイベントの規則と比較し、プロモーションコードが登録されたプロモーションイベントの規則を遵守するかどうかを判定することができる。いくつかの実施形態では、償還要求内のプロモーションコードの有効性を判定することは、償還要求に含まれるデジタル署名の有効性、プロモーションコードの満了日、および消費者ノード303に関連付けられた消費者の資格、または任意の他の情報を判定することを含むことができる。
0059
450において、プロモーションコードが有効であると判定することに応答して、ブロックチェーンネットワーク306は、プロモーションコードおよび/またはその関連情報を記録することができる。いくつかの実施形態では、ブロックチェーンネットワーク306は、プロモーションコードが償還されたこと、償還の時間、場所、または他の情報、プロモーションコードを償還した消費者および/または消費者ノード303を記録することができる。いくつかの実施形態では、プロモーションコードを償還した消費者の識別情報を記録し、その後の償還記録の照会に使用することができる。いくつかの実施形態では、ブロックチェーンネットワーク306は、プロモーションコードが1回だけの使用に有効である場合、償還後プロモーションコードを無効としてマークし、プロモーションコードが複数回の使用に有効である場合、償還回数を記録することができる。
0060
460において、ブロックチェーンネットワーク306が、プロモーションコードの償還の成功を示す通知を小売業者サーバ304に送ることができる。
0061
470において、小売業者サーバ304が、プロモーションコードの償還の成功の確認応答を消費者ノード303に返信し、プロモーションコードの対応する報酬または利益を消費者に供与することを可能にすることができる。
0062
別の例として、415において、消費者ノード303が、第2のプロモーションイベントの第2のプロモーションコードを償還するために、小売業者サーバ304に第2の償還要求を送る。通常、第2の償還要求は、410において小売業者サーバ304に償還要求が送られたときとは異なる時間に、小売業者サーバ304によって受信される。いくつかの実施形態では、第2のプロモーションコードは、410において説明されたプロモーションコードと同じであっても異なってもよい。いくつかの実施形態では、第2のプロモーションイベントは、410において説明されたプロモーションイベントと同じであっても異なってもよい。
0063
425において、小売業者サーバ304がブロックチェーンネットワーク306に第2の償還要求を送る。いくつかの実施形態では、小売業者サーバ304が第2の償還要求の有効性を判定した場合のみ、小売業者サーバ304はブロックチェーンネットワーク306に第2の償還要求を送る。いくつかの実施形態では、小売業者サーバ304は、第2の償還要求を受信した後、第2の償還要求の有効性をチェックせず、ブロックチェーンネットワーク306に第2の償還要求を転送する。
0064
435において、ブロックチェーンネットワーク306が、たとえば、第2の償還要求内のプロモーションイベントのIDを登録されたプロモーションイベントのIDと照合することにより、第2の償還要求で登録されたプロモーションイベントを識別する。
0065
445において、ブロックチェーンネットワーク306が、第2の償還要求内の第2のプロモーションコードの有効性を判定する。いくつかの実施形態では、プロモーションコードの有効性は、たとえば、スマート・コントラクト内で定義されたプロモーションコード確認演算を起動することによって判定することができる。たとえば、プロモーションコード確認演算は、第2の償還要求内の第2のプロモーションコードおよび/または他の情報を受信し、それを登録されたプロモーションイベントの規則と比較し、第2のプロモーションコードが登録されたプロモーションイベントの規則を遵守するかどうかを判定することができる。たとえば、第2の償還要求内の第2のプロモーションコードの有効性を判定することは、第2の償還要求に含まれるデジタル署名の有効性、第2のプロモーションコードの満了日、および消費者ノード303に関連付けられた消費者の資格、または任意の他の情報を判定することを含むことができる。
0066
455において、ブロックチェーンネットワーク306が、第2のプロモーションコードが無効であるか、または第2のプロモーションコードが償還されていると判定する。この場合、ブロックチェーンネットワーク306は、第2のプロモーションコードの償還の失敗または誤りの理由に関する詳細情報の有無にかかわらず、第2のプロモーションコードの償還の失敗または誤りを示す通知を小売業者サーバ304に送ることができる。
0067
465において、小売業者サーバ304が第2のプロモーションコードの償還の棄却を消費者ノード303に返信することができる。いくつかの実施形態では、小売業者サーバ304は、第2のプロモーションコードの償還の失敗または誤りの理由に関する詳細情報を消費者に通知することができる。いくつかの実施形態では、消費者ノード303は、たとえば、償還の失敗または誤りが、第2のプロモーションコードがすでに償還されているからであることを通知された場合、償還記録の照会を提出することができる。いくつかの実施形態では、償還記録に関する疑いがある場合、消費者または第三者は小売業者に報告書を提出することができる。いくつかの実施形態では、ブロックチェーンネットワーク306のデータストレージの透明性、安全性、および不変性は、たとえば、何らかの問題または不規則性が存在するかどうかを判定するために、プロモーションイベントのプロモーションコードの償還記録または償還履歴の追跡を可能にすることができる。
0068
図5は、本明細書の実施形態による、ブロックチェーンネットワーク内でスマート・コントラクトを使用する製品プロモーションのためのプロセス500の一例を描写する。プロセス500は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して実行されてよい。いくつかの実施形態では、プロセス500は、ブロックチェーンネットワーク内でスマート・コントラクトを使用する製品プロモーションのために、分散システム(たとえば、図1のブロックチェーンシステム100)によって実行することができる。便宜上、プロセス500は、1つまたは複数の場所に配置され、本明細書によって適切にプログラムされた、1つまたは複数のコンピュータのシステムによって実行されるものとして記載される。たとえば、適切にプログラムされた分散システム、たとえば、図1のブロックチェーン環境100がプロセス500を実行することができる。いくつかの実施形態では、プロセス500の一部またはすべての動作は、ブロックチェーンネットワークの合意ノードなどのノードによって実行することができる。たとえば、適切にプログラムされたアーキテクチャ200のノード214は、プロセス500の一部またはすべての動作を実行することができる。ノードは、たとえば、1つまたは複数のコンピューティングデバイス(たとえば、コンピューティングデバイス106、108)を使用して実装することができる。いくつかの実施形態では、プロセス500は、図3および図4に関して記載された一部またはすべての動作を含むことができる。
0069
502において、プロモーションイベントを作成する作成要求がブロックチェーンネットワークのノード(たとえば、ブロックチェーンネットワーク306のノード)によって受信される。プロモーションイベントは複数のプロモーションコードと関連付けられる。いくつかの実施形態では、作成要求は、たとえば、小売業者サーバ(たとえば、小売業者サーバ304)から受信される。
0070
いくつかの実施形態では、プロモーションイベントは、プロモーションイベントを識別および認証するための秘密鍵および公開鍵のペアと関連付けられる。いくつかの実施形態では、秘密鍵は、複数のプロモーションコードの強化されたデータセキュリティを実現するために、複数のプロモーションコードの各々のためのデジタル署名を生成するために使用することができる。公開鍵は、公開鍵およびプロモーションイベントのデジタル署名に基づいて、プロモーションコードの有効性を検証するために使用することができる。いくつかの実施形態では、秘密鍵は、複数のプロモーションコードの各々、複数のプロモーションコードの各々に基づいて生成されたハッシュ、または複数のプロモーションコードの各々のいくつかの変形形態に署名することにより、複数のプロモーションコードの各々のためのデジタル署名を生成するために使用することができる。プロモーションイベントの公開鍵は、デジタル署名を解読し、複数のプロモーションコードの各々を抽出するために使用することができる。
0071
いくつかの実施形態では、作成要求は、公開鍵、および秘密鍵を使用して生成されたデジタル署名を含む。デジタル署名は、たとえば、作成要求に含まれる情報の一部またはすべてに基づいてハッシュを生成し、秘密鍵を使用してハッシュに署名することにより、小売業者サーバによって生成することができる。いくつかの実施形態では、作成要求は、図3に関して記載された規則などの、プロモーションイベントの規則をさらに含むことができる。たとえば、規則には、プロモーションイベントの識別子(ID)、複数のプロモーションコードの総数、複数のプロモーションコードの範囲、複数のプロモーションコードの各々のタイプ、有効なプロモーションコードのスペリング規則、プロモーションイベントの満了時間、プロモーションイベントの領域、または複数のプロモーションコードのうちの1つを償還するための個人の資格のうちの1つまたは複数が含まれる。
0072
504において、ノードにより、公開鍵、および秘密鍵を使用して生成されたデジタル署名に基づいて、作成要求の有効性が判定される。いくつかの実施形態では、一例として、ノードは公開鍵を使用してデジタル署名を解読し、デジタル署名からハッシュを抽出することができる。ノードは、作成要求に含まれる情報の一部またはすべてに基づいてハッシュを生成することもできる。作成要求の有効性は、公開鍵がデジタル署名を解読することができ、デジタル署名から抽出されたハッシュがノードによって生成されたハッシュと一致すると判定することに応答して、判定することができる。
0073
506において、作成要求が有効であると判定することに応答して、ブロックチェーンネットワーク内に複数のプロモーションコードを記憶することなく、スマート・コントラクトを使用してプロモーションイベントがブロックチェーンネットワーク内にノードによって登録される。いくつかの実施形態では、スマート・コントラクトを使用してブロックチェーンネットワーク内にプロモーションイベントを登録することは、ノードにより、スマート・コントラクトの1つまたは複数の関数に規則を入力することと、ノードにより、スマート・コントラクトの1つまたは複数の関数を実行することと、ノードにより、ブロックチェーンネットワーク内に規則を記憶することとを含む。
0074
いくつかの実施形態では、スマート・コントラクトを使用してブロックチェーンネットワーク内にプロモーションイベントを登録することは、ブロックチェーンネットワーク内でプロモーションイベントを作成するために、スマート・コントラクト内で定義された1つまたは複数の論理、関数、または他の演算を呼び出し、実行することを含む。たとえば、プロモーションイベント用の複数の演算を定義するスマート・コントラクトを生成し、ブロックチェーンネットワーク内で展開することができる。スマート・コントラクトの複数の演算は、たとえば、プロモーションイベント作成演算、プロモーションイベント確認演算、プロモーションコード確認演算、プロモーションコード償還演算、または償還記録照会演算のうちの1つまたは複数を含むことができる。いくつかの実施形態では、演算の各々は、アプリケーションプログラミングインターフェース(API)、サービス、関数、またはそれらの組合せとして実装することができる。演算は、1つまたは複数のコンピュータ言語のルーチン、データ構造、およびオブジェクトクラスを使用して指定される。いくつかの実施形態では、ノードは、演算を呼び出し、1つまたは複数のパラメータまたは引数を演算に入力することにより、スマート・コントラクト内で定義された演算を実行することができる。
0075
508において、スマート・コントラクトを使用するブロックチェーンネットワーク内のプロモーションイベントの登録に応答して、プロモーションイベントの作成の成功を示す確認応答が、たとえば、小売業者サーバにノードによって返信される。
0076
510において、複数のプロモーションコードのうちの1つのプロモーションコードを償還する償還要求がノードによって受信される。償還要求は、プロモーションコード、プロモーションイベントの識別子(ID)、および秘密鍵を使用して署名された償還要求のデジタル署名を含む。償還要求のデジタル署名は、たとえば、償還要求に含まれる情報の一部またはすべてに基づいてハッシュを生成し、秘密鍵を使用してハッシュに署名することによって生成することができる。いくつかの実施形態では、償還要求は、さらなるまたは異なる情報を含むことができる。いくつかの実施形態では、複数のプロモーションコードは同時に生成されるが、複数のプロモーションコードのうちの2つ以上を償還する2つ以上の償還要求は、異なる時間にノードによって受信される。
0077
512において、ノードにより、プロモーションイベントのIDに基づいて、プロモーションイベントの公開鍵および規則が識別される。
0078
514において、署名された償還要求のデジタル署名および公開鍵に基づいて、償還要求が有効であるかどうかがノードによって判定される。いくつかの実施形態では、一例として、ノードは公開鍵を使用して償還要求のデジタル署名を解読し、償還要求のデジタル署名からハッシュを抽出することができる。ノードは、償還要求に含まれる情報の一部またはすべてに基づいてハッシュを生成することもできる。償還要求の有効性は、公開鍵が償還要求のデジタル署名を解読することができ、デジタル署名から抽出されたハッシュが、償還要求に含まれる情報の一部またはすべてに基づいてノードによって生成されたハッシュと一致すると判定することに応答して、判定することができる。
0079
518において、償還要求が無効であると判定することに応答して、償還要求が無効であることを示す通知が、たとえば、小売業者サーバに返信される。いくつかの実施形態では、ノードは、たとえば、公開鍵が償還要求のデジタル署名を解読することができず、デジタル署名から抽出されたハッシュが、償還要求に含まれる情報の一部またはすべてに基づいてノードによって生成されたハッシュと一致しない、またはその両方と判定することに応答して、償還要求が無効であると判定する。
0080
520において、償還要求が有効であると判定することに応答して、スマート・コントラクトを実行することにより、プロモーションコードが有効であるかどうかが、規則に基づいてノードによって判定される。たとえば、プロモーションコードが有効であるかどうかは、スマート・コントラクト内で定義された1つまたは複数のプロモーションコード確認演算を起動することにより、ノードによって判定することができる。プロモーションコード確認演算は、たとえば、プロモーションコードが規則によって規定された範囲内にあるかどうか、プロモーションコードが規則によって規定されたスペリング規則を遵守するかどうかなどをチェックすることができる。
0081
521において、プロモーションコードが無効であると判定することに応答して、プロモーションコードが無効であることを示す通知が、たとえば、小売業者サーバに返信される。
0082
522において、プロモーションコードが有効であると判定することに応答して、スマート・コントラクトを実行することにより、プロモーションイベントの償還履歴に従って、プロモーションコードが償還されているかどうかがノードによって判定される。
0083
523において、プロモーションコードが償還されていると判定することに応答して、プロモーションコードが償還されていることを示す通知が、たとえば、小売業者サーバに返信される。
0084
524において、プロモーションコードが有効であり、償還されていないと判定することに応答して、プロモーションコードの償還の成功を示す確認応答が、たとえば、小売業者サーバに返信される。いくつかの実施形態では、プロモーションコードの償還がブロックチェーンネットワーク内に記録される。
0085
図6は、本明細書の実施形態による装置600のモジュールの一例の図である。装置600は、ブロックチェーンネットワーク内でスマート・コントラクトを使用する製品プロモーションのための、ブロックチェーンネットワーク内のノードの実施形態の一例であってよい。装置600は上述された実施形態に対応することができ、装置600は、以下の、ブロックチェーンネットワークのノードにより、プロモーションイベントを作成する作成要求を受信するための第1の受信モジュール602であって、プロモーションイベントが複数のプロモーションコードと関連付けられ、プロモーションイベントがプロモーションイベントを識別するための秘密鍵および公開鍵のペアと関連付けられ、作成要求が、公開鍵、および秘密鍵を使用して生成されたデジタル署名を含む、第1の受信モジュール602と、ノードにより、公開鍵およびデジタル署名に基づいて、作成要求の有効性を判定するための第1の判定モジュール604と、ノードにより、作成要求が有効であると判定することに応答して、ブロックチェーンネットワーク内に複数のプロモーションコードを記憶することなく、スマート・コントラクトを使用してブロックチェーンネットワーク内にプロモーションイベントを登録するための登録モジュール606とを含む。
0086
オプションの実施形態では、装置600は、以下の、ノードにより、プロモーションイベントの作成の成功を示す確認応答を返信するための第1の返信モジュール608をさらに含む。
0087
オプションの実施形態では、作成要求はプロモーションイベントの規則をさらに含み、登録モジュール606は、ノードにより、スマート・コントラクトの1つまたは複数の関数に規則を入力するための入力サブモジュールと、ノードにより、スマート・コントラクトの1つまたは複数の関数を実行するための実行サブモジュールと、ノードにより、ブロックチェーンネットワーク内に規則を記憶するための記憶サブモジュールとを含む。
0088
オプションの実施形態では、規則は、プロモーションイベントの識別子(ID)、複数のプロモーションコードの総数、複数のプロモーションコードの範囲、複数のプロモーションコードの各々のタイプ、有効なプロモーションコードのスペリング規則、プロモーションイベントの満了時間、プロモーションイベントの領域、または複数のプロモーションコードのうちの1つを償還するための個人の資格のうちの1つまたは複数を含む。
0089
オプションの実施形態では、装置600は、以下の、ノードにより、複数のプロモーションコードのうちの1つのプロモーションコードを償還する償還要求を受信するための第2の受信モジュール610であって、償還要求が、プロモーションコード、プロモーションイベントの識別子(ID)、および秘密鍵を使用して署名された償還要求のデジタル署名を含む、第2の受信モジュール610と、ノードにより、プロモーションイベントのIDに基づいて、プロモーションイベントの公開鍵および規則を識別するための識別モジュール612と、ノードにより、償還要求のデジタル署名および公開鍵に基づいて、償還要求が有効であると判定するための第2の判定モジュール614とをさらに含む。
0090
オプションの実施形態では、装置600は、以下の、ノードにより、規則に基づいて、スマート・コントラクトを実行することにより、プロモーションコードが有効であるかどうかを判定するための第3の判定モジュール616をさらに含む。
0091
オプションの実施形態では、装置600は、以下の、ノードにより、スマート・コントラクトを実行することにより、プロモーションイベントの償還履歴に従って、プロモーションコードが償還されているかどうかを判定するための第4の判定モジュール618をさらに含む。
0092
オプションの実施形態では、装置600は、以下の、プロモーションコードが有効であり、プロモーションコードが償還されていないと判定することに応答して、プロモーションコードの償還の成功を示す確認応答を返信するための第2の返信モジュール620と、ブロックチェーンネットワーク内にプロモーションコードの償還を記録するための記録モジュール622とをさらに含む。
0093
オプションの実施形態では、装置600は、以下の、プロモーションコードが無効であると判定することに応答して、プロモーションコードが無効であることを示す通知を返信するための第3の返信モジュール624をさらに含む。
0094
オプションの実施形態では、装置600は、以下の、プロモーションコードが償還されていると判定することに応答して、プロモーションコードが償還されていることを示す通知を返信するための第4の返信モジュール626をさらに含む。
0095
オプションの実施形態では、複数のプロモーションコードが同時に生成され、第2の受信モジュール610は、ノードにより、異なる時間に複数のプロモーションコードのうちの2つ以上を償還する2つ以上の償還要求を受信する。
0096
前の実施形態において示されたシステム、装置、モジュール、またはユニットは、コンピュータチップもしくはエンティティを使用して実装することができるか、またはある特定の機能を有する製品を使用して実装することができる。典型的な実施形態のデバイスはコンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラフォン、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであってよい。
0097
装置内の各モジュールの機能および役割の実施形態のプロセスについては、前の方法における対応するステップの実施形態のプロセスに対して参照を行うことができる。簡潔にするために本明細書では詳細は省略される。
0098
装置実施形態は基本的に方法実施形態に対応するので、関連する部分については、方法実施形態における関連説明に対して参照を行うことができる。前述された装置実施形態は一例にすぎない。別々の部分として記載されたモジュールは物理的に別々であってもなくてもよく、モジュールとして表示された部分は、物理的なモジュールであってもなくてもよく、1つの場所に配置されてもよく、いくつかのネットワークモジュール上に分散されてもよい。モジュールの一部またはすべては、本明細書の解決策の目的を達成するために、実際の需要に基づいて選択することができる。当業者は、創造的な努力なしに本出願の実施形態を理解し実装することができる。
0099
再び図6を参照すると、それは、ブロックチェーンスマート・コントラクトプロモーションイベント管理装置の内部機能モジュールおよび構造を示すものとして解釈することができる。ブロックチェーンスマート・コントラクトプロモーション管理装置は、ブロックチェーンネットワーク内でスマート・コントラクトを使用する製品プロモーション用のブロックチェーンノードの一例であってよい。実質的な実行体は電子デバイスであってよく、電子デバイスは、以下の、1つまたは複数のプロセッサと、1つまたは複数のプロセッサの実行可能命令を記憶するように構成されたメモリとを含む。
0100
本明細書に記載された技法は、1つまたは複数の技術的効果をもたらす。いくつかの実施形態では、ブロックチェーンネットワーク内でスマート・コントラクトを使用して、製品プロモーションを実施することができる。いくつかの実施形態では、小売業者(たとえば、ブランドオーナ、小売商人、卸売業者、または製造業者)は、たとえば、マーケティング目的で、プロモーションイベントを作成することができる。いくつかの実施形態では、小売業者は、プロモーションイベント用のいくつかのデジタルチケットまたは電子チケット(たとえば、電子引換券、電子クーポン、または電子商品券)を発行することができる。デジタルチケットの各々は、一意のプロモーションコードと関連付けることができる。プロモーションコードの各々は、たとえば、プロモーションコードの有効性を検証するために、プロモーションイベントに対応する秘密鍵を使用して署名することができる。そのため、プロモーションイベントの秘密鍵なしに第三者によって生成されたいかなるプロモーションコードも、有効なプロモーションコードとして検証することができない。そのため、プロモーションコードのスペリング規則が解読された場合でも、デジタルチケットは、認可された小売業者のプロモーションイベントの秘密鍵を使用して署名された有効な署名なしに償還することができない。このようにして、プロモーションコードの偽造が阻止され、データセキュリティを強化することができる。
0101
いくつかの実施形態では、ブロックチェーンネットワーク内で(スマート・コントラクトベースのプロモーションイベントと呼ばれる)プロモーションイベントを実施して、小売業者によるプロモーションイベントの作成および消費者によるデジタルチケットの償還を容易にするために、スマート・コントラクトを使用することができる。いくつかの実施形態では、プロモーションイベントの多数のプロモーションコードを記憶する従来の方式とは異なり、スマート・コントラクトベースのプロモーションイベントは、ブロックチェーン内にいかなるプロモーションコードも記憶する必要がなく、したがって、ブロックチェーンネットワークの記憶スペースおよび計算リソースが節約される。いくつかの実施形態では、スマート・コントラクトベースのプロモーションイベントは、プロモーションイベントの作成段階からプロモーションイベントのプロモーションコードの償還段階まで、ブロックチェーンネットワークの計算負荷をオフロードし低減することができる。通常、プロモーションイベントの多数のプロモーションコードは、プロモーションイベントの作成段階の間に、一度に、たとえば同時に生成される。対照的に、プロモーションイベントの異なるプロモーションコードの償還は、通常、異なる時間に、たとえば異なる消費者によって行われる。いくつかの実施形態では、スマート・コントラクトベースのプロモーションイベントは、ブロックチェーンネットワークにプロモーションコードを同時にアップロードし記憶することを回避することができ、したがって、ブロックチェーンネットワークに計算的な負担が課されない。
0102
いくつかの実施形態では、スマート・コントラクトベースのプロモーションイベントは、プロモーションコード自体が記憶されないので、漏洩または悪意による解読からデジタルチケットを保護する際に強化されたデータセキュリティを実現することができる。
0103
いくつかの実施形態では、スマート・コントラクトベースのプロモーションイベントは、デジタルチケットの各々の償還履歴の検査を可能にし、したがって、プロモーションイベントの改善された透明性が実現される。
0104
本主題の記載された実施形態は、単独でまたは組み合わせて、1つまたは複数の特徴を含むことができる。
0105
たとえば、第1の実施形態では、ブロックチェーンネットワーク内でスマート・コントラクトを使用する製品プロモーションのためのコンピュータ実装方法が提供され、方法は、ブロックチェーンネットワークのノードにより、プロモーションイベントを作成する作成要求を受信することであって、プロモーションイベントが複数のプロモーションコードと関連付けられ、プロモーションイベントがプロモーションイベントを識別するための秘密鍵および公開鍵のペアと関連付けられ、作成要求が、公開鍵、および秘密鍵を使用して生成されたデジタル署名を含む、受信することと、ノードにより、公開鍵およびデジタル署名に基づいて、作成要求の有効性を判定することと、作成要求が有効であると判定することに応答して、ノードにより、ブロックチェーンネットワーク内に複数のプロモーションコードを記憶することなく、スマート・コントラクトを使用してブロックチェーンネットワーク内にプロモーションイベントを登録することとを含む。上記および他の記載された実施形態は、各々、場合によっては、以下の特徴のうちの1つまたは複数を含むことができる。
0106
以下の特徴のいずれとも組合せ可能な第1の特徴は、作成要求がプロモーションイベントの規則をさらに含み、ノードにより、スマート・コントラクトを使用してブロックチェーンネットワーク内にプロモーションイベントを登録することが、ノードにより、スマート・コントラクトの1つまたは複数の関数に規則を入力することと、ノードにより、スマート・コントラクトの1つまたは複数の関数を実行することと、ノードにより、ブロックチェーンネットワーク内に規則を記憶することとを含むことを指定する。
0107
前出または以下の特徴のいずれとも組合せ可能な第2の特徴は、規則が、プロモーションイベントの識別子(ID)、複数のプロモーションコードの総数、複数のプロモーションコードの範囲、複数のプロモーションコードの各々のタイプ、有効なプロモーションコードのスペリング規則、プロモーションイベントの満了時間、プロモーションイベントの領域、または複数のプロモーションコードのうちの1つを償還するための個人の資格のうちの1つまたは複数を含むことを指定する。
0108
前出または以下の特徴のいずれとも組合せ可能な第3の特徴は、方法が、ノードにより、複数のプロモーションコードのうちの1つのプロモーションコードを償還する償還要求を受信することであって、償還要求が、プロモーションコード、プロモーションイベントの識別子(ID)、および秘密鍵を使用して署名された償還要求のデジタル署名を含む、受信することと、ノードにより、プロモーションイベントのIDに基づいて、プロモーションイベントの公開鍵および規則を識別することと、ノードにより、償還要求のデジタル署名および公開鍵に基づいて、償還要求が有効であると判定することとをさらに含むことを指定する。
0109
前出または以下の特徴のいずれとも組合せ可能な第4の特徴は、方法が、ノードにより、規則に基づいて、スマート・コントラクトを実行することにより、プロモーションコードが有効であるかどうかを判定することをさらに含むことを指定する。
0110
前出または以下の特徴のいずれとも組合せ可能な第5の特徴は、方法が、ノードにより、スマート・コントラクトを実行することにより、プロモーションイベントの償還履歴に従って、プロモーションコードが償還されているかどうかを判定することをさらに含むことを指定する。
0111
前出または以下の特徴のいずれとも組合せ可能な第6の特徴は、方法が、プロモーションコードが有効であり、償還されていないと判定することに応答して、ブロックチェーンネットワーク内にプロモーションコードの償還を記録することと、プロモーションコードの償還の成功を示す確認応答を返信することとをさらに含むことを指定する。
0112
前出または以下の特徴のいずれとも組合せ可能な第7の特徴は、方法が、プロモーションコードが無効であると判定することに応答して、プロモーションコードが無効であることを示す通知を返信することをさらに含むことを指定する。
0113
前出または以下の特徴のいずれとも組合せ可能な第8の特徴は、方法が、プロモーションコードが償還されていると判定することに応答して、プロモーションコードが償還されていることを示す通知を返信することをさらに含むことを指定する。
0114
前出または以下の特徴のいずれとも組合せ可能な第9の特徴は、複数のプロモーションコードが同時に生成され、コンピュータ実装方法が、ノードにより、異なる時間に複数のプロモーションコードのうちの2つ以上を償還する2つ以上の償還要求を受信することをさらに含むことを指定する。
0115
本明細書に記載された主題の実施形態ならびにアクションおよび動作は、デジタル電子回路に、本明細書で開示された構造およびそれらの同等構造を含む、明白に具現化されたコンピュータソフトウェアもしくはファームウェアに、コンピュータハードウェアに、またはそれらの1つもしくは複数の組合せに実装することができる。本明細書に記載された主題の実施形態は、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、コンピュータプログラムキャリア上で符号化された、1つまたは複数のコンピュータプログラム、たとえば、コンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。たとえば、コンピュータプログラムキャリアは、命令を符号化し記憶した1つまたは複数のコンピュータ可読記憶媒体を含むことができる。キャリアは、磁気ディスク、光磁気ディスク、もしくは光ディスクなどの有形非一時的コンピュータ可読媒体、半導体ドライブ、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、または他のタイプの媒体であってよい。代替または追加として、キャリアは、人為的に生成された伝搬信号、たとえば、データ処理装置による実行のために、適切な受信装置への送信用の情報を符号化するために生成された、機械生成の電気信号、光信号、または電磁信号であってよい。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムアクセスメモリデバイスもしくはシリアルアクセスメモリデバイス、またはそれらの1つもしくは複数の組合せであるか、またはその一部であってよい。コンピュータ記憶媒体は伝搬信号ではない。
0116
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、エンジン、スクリプト、またはコードと呼ばれるか、またはそのように記述される場合もあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形式のプログラム言語で書くことができ、スタンドアロンプログラム、またはモジュール、構成要素、エンジン、サブルーチン、もしくはコンピューティング環境内で実行するのに適した他のユニットを含む任意の形態で展開することができ、コンピューティング環境は、1つまたは複数の場所においてデータ通信ネットワークによって相互接続された1つまたは複数のコンピュータを含んでよい。
0117
コンピュータプログラムは、ファイルシステム内のファイルに対応してもよいが、そうである必要はない。コンピュータプログラムは、当該のプログラムに専用の単一ファイルの中に、あるいは複数の連係ファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイルの中に、他のプログラムまたはデータ、たとえば、マークアップ言語文書に記憶された1つまたは複数のスクリプトを保持するファイルの一部分に記憶することができる。
0118
コンピュータプログラムの実行用のプロセッサには、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサが含まれる。一般に、プロセッサは、プロセッサに結合された非一時的コンピュータ可読媒体から、実行用のコンピュータプログラムの命令ならびにデータを受け取る。
0119
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。データ処理装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、またはGPU(グラフィックス処理装置)を含むことができる。装置は、ハードウェアに加えて、コンピュータプログラム用の実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つもしくは複数の組合せを構成するコードを含むこともできる。
0120
本明細書に記載されたプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって動作を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のコンピュータまたはプロセッサによって実行することができる。プロセスおよび論理フローは、専用論理回路、たとえば、FPGA、ASIC、もしくはGPUによって、または専用論理回路および1つもしくは複数のプログラムされたコンピュータの組合せによって実行することもできる。
0121
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくは両方、または任意の他の種類の中央処理装置に基づいてもよい。一般に、中央処理装置は、読取り専用メモリまたはランダムアクセスメモリまたは両方から命令およびデータを受け取る。コンピュータの要素は、命令を実行するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスとを含むことができる。中央処理装置およびメモリは、専用論理回路によって補完されるか、またはそれに組み込むことができる。
0122
一般に、コンピュータはまた、1つもしくは複数のストレージデバイスを含むか、またはそれらからデータを受信するか、もしくはそれらにデータを転送するように動作可能に結合される。ストレージデバイスは、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスク、半導体ドライブ、または任意の他のタイプの非一時的コンピュータ可読媒体であってよい。しかしながら、コンピュータはそのようなデバイスをもつ必要がない。したがって、コンピュータは、ローカルおよび/またはリモートである、1つまたは複数のメモリなどの1つまたは複数のストレージデバイスに結合されてよい。たとえば、コンピュータは、コンピュータの一体構成要素である1つもしくは複数のローカルメモリを含むことができ、またはコンピュータは、クラウドネットワーク内にある1つもしくは複数のリモートメモリに結合することができる。その上、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオプレーヤもしくはモバイルビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえばユニバーサルシリアルバス(USB)フラッシュドライブに組み込むことができる。
0123
構成要素は、直接、または1つもしくは複数の中間構成要素を介して、互いに電気的または光学的などの通信可能に接続されることにより、互いに「結合」することができる。構成要素はまた、構成要素のうちの1つが他の構成要素に統合される場合、互いに「結合」することができる。たとえば、プロセッサに統合された記憶構成要素(たとえば、L2キャッシュ構成要素)は、プロセッサに「結合」される。
0124
ユーザとの対話を実現するために、本明細書に記載された主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、LCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力をそれによって提供することができる入力デバイス、たとえばキーボード、およびポインティングデバイス、たとえばマウス、トラックボール、またはタッチパッドを有するコンピュータに実装されるか、またはそれと通信するように構成されてよい。ユーザとの対話を実現するために他の種類のデバイスも使用することができ、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってよく、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受け取ることができる。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送り、デバイスから文書を受信することにより、たとえば、ウェブブラウザから受け取った要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送ることにより、またはユーザデバイス、たとえばスマートフォンもしくは電子タブレット上で動作するアプリと対話することにより、ユーザと対話することができる。また、コンピュータは、メッセージアプリケーションを動作させているパーソナルデバイス、たとえばスマートフォンにテキストメッセージまたは他の形式のメッセージを送り、代わりにユーザから応答メッセージを受け取ることにより、ユーザと対話することができる。
0125
本明細書は、システム、装置、およびコンピュータプログラムの構成要素に関して「〜するように構成される」という用語を使用する。特定の動作またはアクションを実行するように構成されるべき1つまたは複数のコンピュータのシステムの場合、システムが、動作中に動作またはアクションをシステムに実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそこにインストールしていることを意味する。特定の動作またはアクションを実行するように構成されるべき1つまたは複数のコンピュータプログラムの場合、1つまたは複数のコンピュータプログラムが、データ処理装置によって実行されると動作またはアクションを装置に実行させる命令を含むことを意味する。特定の動作またはアクションを実行するように構成されるべき専用論理回路の場合、回路が動作またはアクションを実行する電子ロジックを有することを意味する。
0126
本明細書は多くの具体的な実施形態の詳細を含んでいるが、これらは、特許請求の範囲自体によって定義される特許請求されている範囲に対する制限として解釈されるべきでなく、むしろ、特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。別々の実施形態との関連で本明細書に記載されたいくつかの特徴は、単一の実施形態の組合せにおいて実現することもできる。反対に、単一の実施形態との関連で記載された様々な特徴は、複数の実施形態においてそれぞれ、または任意の適切な部分的組合せにおいて実現することもできる。その上、特徴は、いくつかの組合せにおいて動作するものとして上述され、最初にそのように特許請求さえされてよいが、特許請求された組合せからの1つまたは複数の特徴は、場合によっては、組合せから削除されてよく、その請求項は部分的組合せまたは部分的組合せの変形形態を対象としてもよい。
0127
同様に、動作は特定の順序で図面内で描写され、特許請求の範囲において列挙されるが、これは、望ましい結果を達成するために、そのような動作が示された特定の順序もしくは順番に実行されること、またはすべての示された動作が実行されることを必要とすると理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利な場合がある。その上、上述された実施形態における様々なシステムモジュールおよび構成部品の分離は、すべての実施形態においてそのような分離を必要とすると理解されるべきではなく、記載されたプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージ化されてよいと理解されるべきである。
0128
本主題の特定の実施形態が記載されている。他の実施形態は以下の特許請求の範囲内にある。たとえば、特許請求の範囲内に列挙されたアクションは、異なる順序で実行されてよく、それでも望ましい結果を達成することができる。一例として、添付の図に描写されたプロセスは、望ましい結果を達成するために、必ずしも示された特定の順序または順番を必要とするとは限らない。場合によっては、マルチタスキングおよび並列処理が有利な場合がある。
0129
100 環境
102コンソーシアムブロックチェーンネットワーク
106コンピューティングデバイス
108 コンピューティングデバイス
110 ネットワーク
200アーキテクチャ
202参加者のシステム
204 参加者のシステム
206 参加者のシステム
212 ブロックチェーンネットワーク
214ノード
216 ブロックチェーン
216' ブロックチェーン216の完全コピー
216'' ブロックチェーン216の完全コピー
216''' ブロックチェーン216の完全コピー
300 図
302小売業者
303消費者ノード
304小売業者サーバ
306 ブロックチェーンネットワーク
400 図
500 プロセス
600 装置
602 第1の受信モジュール
604 第1の判定モジュール
606登録モジュール
608 第1の返信モジュール
610 第2の受信モジュール
612識別モジュール
614 第2の判定モジュール
616 第3の判定モジュール
618 第4の判定モジュール
620 第2の返信モジュール
622記録モジュール
624 第3の返信モジュール
626 第4の返信モジュール