当業者に本出願における技術的ソリューションをより良く理解してもらうべく、本出願の実施形態における添付の図面を参照して本出願の実施形態における技術的ソリューションを以下に明確かつ包括的に説明している。説明した実施形態が本出願の実施形態のすべてではなく一部に過ぎないことは明白であろう。すべての創造的努力無しで本出願の実施形態に基づいて当業者によって得られる他の実施形態は本出願の保護範囲に含まれるものとする。
図1は、本出願の実施形態による、サービス実行プロセスを図示している概略図である。サービス実行プロセスは、以下のステップを含む。
S101. サービスプラットフォームが、あるサービスについてのエンドユーザデバイスによって送信された資格獲得リクエストを受信する。
本出願の本実施形態においては、各ユーザは、ユーザが把持しているエンドユーザデバイスを使用してサービスプラットフォームにサービスを実行するための資格獲得リクエストを送信し得る。ユーザは、サービス資格獲得アクティビティの開始に関する、サービスプラットフォームによって発表された、情報を閲覧すると、エンドユーザデバイスを使用してサービスプラットフォームにサービスを実行するための資格獲得リクエストを送信し得る。あるいは、サービスプラットフォームは、サービス資格獲得アクティビティが開始するとユーザのエンドユーザデバイスに誘因情報を送信し得るし、エンドユーザデバイスは、誘因情報を受信した後にサービスプラットフォームに資格獲得リクエストを送信し得る。あるいは、サービスプラットフォームは、サービス資格獲得アクティビティが開始する前の指定の期間においてユーザのエンドユーザデバイスに誘因情報を送信し得るし、誘因情報は、サービス資格獲得アクティビティの開始時間が到来したことを検出するとユーザのエンドユーザデバイスがサービスプラットフォームにサービスを実行するための資格獲得リクエストを送信するように、サービス資格獲得アクティビティが開始間近であることを示す。
上述したサービス資格獲得アクティビティの開始時間は、ユーザがサービスプラットフォームにサービスを実行するための資格獲得リクエストを送信することをサービスプラットフォームが許可する時間として理解され得る。例えば、特典期間限定アクティビティ(すなわち、サービス)が午前8:00に開始すると仮定する。ユーザは、午前8:00になるとサービスプラットフォームに特典期間限定資格獲得リクエストを送信することができる、ここで、午前8:00は、サービス資格獲得アクティビティの開始時間である。
当然のことながら、本出願の本実施形態においては、ユーザは、エンドユーザデバイスにインストールされたクライアントソフトウェアを使用してサービスプラットフォームに資格獲得リクエストを送信し得る。例えば、エンドユーザデバイスは、クライアントソフトウェアがユーザに操作インターフェースを表示するように、ユーザがクライアントソフトウェアに対して指定の操作を行ったことを検出すると(例えば、ユーザがクライアントソフトウェアのアイコンをタップしたことを検出すると、または、ユーザからクライアントソフトウェアを開始するための音声情報を受信すると)、クライアントソフトウェアを起動し得る。ユーザは、操作インターフェース上でサービス資格獲得アクティビティが開始したことを発見すると、操作インターフェース上で対応する資格獲得リクエストを編集し得る。クライアントソフトウェアは、ユーザが操作インターフェースに対する指定の入力操作を行ったことを検出すると対応する資格獲得リクエストを生成し、ユーザがサービスプラットフォームに資格獲得リクエストを送信するための指定の操作を行ったことを検出するとエンドユーザデバイスを使用してサービスプラットフォームに資格獲得リクエストを送信し得る。それに応じて、サービスプラットフォームは、エンドユーザデバイスによって送信された資格獲得リクエストを受信し得る。
S102. 資格獲得リクエストに基づいてエンドユーザデバイスに資格獲得ルールと結果生成ルールとを返信する。
エンドユーザデバイスによって送信された資格獲得リクエストを受信した後に、サービスプラットフォームは、資格獲得リクエストに対応するサービスを決定し、その後、サービスに対応する資格獲得ルールと結果生成ルールとをエンドユーザデバイスに返信し得る。
資格獲得リクエストを受信した後に、サービスプラットフォームは、資格獲得リクエストに含まれているサービス識別子をさらに決定し、さらに、決定したサービス識別子に基づいて、資格獲得リクエストに対応するサービスを決定し得る。
本出願の本実施形態においては、異なるサービスは、異なる資格獲得ルールおよび結果生成ルールに対応し得るし、資格獲得ルールは、どのようにすればユーザがサービス実行資格を取得することができるかを指定している。例えば、特典期間限定サービスに対応する資格獲得ルールは、サービスに対応するとともに各エンドユーザデバイスによってその後保存されることになるブロックチェーン内の資格獲得ルールを満足しているブロックを指定している。換言すれば、資格獲得ルールは、サービスの資格獲得アクティビティに関与するとともに、エンドユーザデバイスを使用して資格獲得ルールを満足しているブロックを生成した、ユーザを指定している。
資格獲得ルールは、サービスに対応するブロックチェーン内の資格獲得ルールを満足しているブロックを直接指定し得る。例えば、資格獲得ルールは、サービスに対応するブロックチェーン内の4番目のブロック、58番目のブロック、123番目のブロック、および356番目のブロックが資格獲得ルールを満足していることを直接指定し得る。換言すれば、エンドユーザデバイスを使用して4つのブロックを生成しているユーザが、サービスを実行するための資格を取得することができる。
資格獲得ルールは、あるいは、ブロックチェーン内の資格獲得ルールを満足しているブロックを決定するための条件を指定し得る。例えば、ブロックチェーンにおいてそのソート番号が16の倍数であるブロックが資格獲得ルールを満足していることを資格獲得ルールが指定していると仮定する。したがって、160個のブロックを含むブロックチェーンについては、16番目のブロック、32番目のブロック、48番目のブロック、64番目のブロック、80番目のブロック、96番目のブロック、112番目のブロック、128番目のブロック、144番目のブロック、および160番目のブロックが資格獲得ルールを満足している。
あるいは、資格獲得ルールは、サービスに対応するブロックチェーン内の資格獲得ルールを満足しているブロックを決定するための別の形式の条件を指定し得る。例をここで説明することはしない。本出願の本実施形態においては、資格獲得ルールは、あるいは、時間の特徴で、サービスに対応するブロックチェーン内の資格獲得ルールを満足しているブロックを指定し得る。
例えば、07:45:45〜07:46:45、07:50:30〜07:51:30、および08:00:28〜08:01:28といった3つの期間において生成されたブロックが資格獲得ルールを満足していることをサービスに対応する資格獲得ルールが指定していると仮定する。したがって、サービスに対応するブロックチェーンにおいては、その生成時間が3つの期間に含まれているブロックのみが資格獲得ルールを満足している。換言すれば、エンドユーザデバイスを使用してユーザによって生成されるとともにサービスに対応するブロックチェーンに書き込まれたブロックの生成時間が3つの期間に含まれている場合に、ユーザはサービスを実行するための資格を取得することができる。
当然のことながら、資格獲得ルールは、ブロックの生成時間以外の時間の特徴で、資格獲得ルールを満足しているブロックを指定し得る。例えば、資格獲得ルールは、前のブロックの生成時間からの差が指定の時間未満である時間に生成されたブロックが資格獲得ルールを満足していることを指定し得る。あるいは、指定の数の連続したブロックの生成時間の合計が指定の時間未満である場合には、これらのブロックが資格獲得ルールを満足している。加えて、資格獲得ルールは、別の時間の特徴で、資格獲得ルールを満足しているブロックを決定するための条件を指定し得る。例をここで説明することはしない。
資格獲得ルールは、時間の特徴以外の特徴で、資格獲得ルールを満足しているブロックを指定し得る。例えば、サービスに対応するブロックチェーン内の各ブロックは、ユーザ識別子を含む。ユーザ識別子(ユーザアカウントまたは身分証明書番号など)が、エンドユーザデバイスを使用してブロックを生成するためにユーザによって使用される。したがって、資格獲得ルールは、ブロックチェーン内のユーザ識別子が指定の条件を満足しているブロックが資格獲得ルールを満足していることを指定し得る。
資格獲得ルールは、上記の特徴以外の特徴で、資格獲得ルールを満足しているブロックを指定し得る。例をここで説明することはしない。
本出願の本実施形態においては、サービスプラットフォームは、エンドユーザデバイスによって送信された資格獲得リクエストを受信した後に、対応する資格獲得ルールに加えてエンドユーザデバイスに結果生成ルールをさらに返信し得る。結果生成ルールは、サービスに応じて変化し得る。結果生成ルールは、どのようにしてコンセンサスのために別のエンドユーザデバイスに送信されるプリプロセッシングブロックをエンドユーザデバイスが生成するかを指定し得る。
一般的に、結果生成ルールは、プルーフ・オブ・ワーク(POW)に基づいて決定され得る。換言すれば、結果生成ルールは、エンドユーザデバイスが指定の条件を満足している検証されるべき結果を計算を経て生成する必要があることを指定し得る。例えば、結果生成ルールが、エンドユーザデバイスがある値(値は検証されるべき結果である)を得る必要があることを指定しており、その値が満足する必要がある指定の条件が、ハッシュ変換を値に対して行った後のハッシュ値の得られた文字列の最初の6ビットが0であるべきことであると仮定する。したがって、別のエンドユーザデバイスは、エンドユーザデバイスによって得られる値に対してハッシュ変換を行った後に得られるハッシュ値の最初の6ビットが0である場合には、エンドユーザデバイスによって得られる値に対するコンセンサスにその後至り得る。当然のことながら、結果生成ルールは別の方法でも決定され得る。例をここで説明することはしない。
本出願の本実施形態においては、同一のサービスに対して、サービスプラットフォームは、サービスの資格獲得アクティビティ(本明細書では、資格獲得アクティビティは、サービスプラットフォームによって、エンドユーザデバイスによって送信された資格獲得リクエストを受信することの開始からサービスを実行するための資格を取得することができるユーザを決定することの開始までのプロセスを指す)が開始するたびに、エンドユーザデバイスに異なる結果生成ルールを送信し得ることを留意されたい。例えば、サービスプラットフォームが同一の特典(すなわち、同一のサービス)について複数の期間限定アクティビティを開催すると仮定する。サービスプラットフォームは、特典の各期間限定アクティビティについてエンドユーザデバイスに異なる結果生成ルールを送信し得る。換言すれば、特典の各期間限定アクティビティが1つの結果生成ルールに対応しており、各期間限定アクティビティが異なる結果生成ルールに対応し得る。
本出願の本実施形態においては、(同一のサービスについての)各アクティビティに対応する結果生成ルールが、実際のニーズに基づいてサービスプラットフォームのオペレーション要員およびメンテナンス要員によって設定され得る、または、サービスプラットフォームによって設定され得る。サービスプラットフォームは、前回のサービス資格獲得アクティビティにおけるブロックチェーン(サービスに対応するブロックチェーン)内のブロックの平均生成時間に基づいて結果生成ルールを設定し得る。
例えば、前回のサービス資格獲得アクティビティにおけるブロックチェーン内のブロックの平均生成時間が長くなりすぎていることにサービスプラットフォームが気付くと、指定の条件を満足する値をエンドユーザデバイスによって得ることの難易度を適切に下げ得る、ここで、難易度は、現在のサービスに対応する結果生成ルールに規定されている。前回のサービス資格獲得アクティビティにおけるブロックチェーン内のブロックの平均生成時間が短くなりすぎていることにサービスプラットフォームが気付くと、指定の条件を満足する値をエンドユーザデバイスによって得ることの難易度を適切に上げ得る、ここで、難易度は、現在のサービスに対応する結果生成ルールに規定されている。
サービスプラットフォームは、前回のサービス資格獲得アクティビティにおいて生成されたブロックチェーン内のブロックの平均生成時間に基づいて所定の調整ポリシーを使用して現在のサービス資格獲得アクティビティに対応する結果生成ルールを調整し得る。所定の調整ポリシーは、テーブル、式、またはアルゴリズムの形式で表され得る。
サービスプラットフォームは、上記の方法以外の方法で、各アクティビティ(各アクティビティは同一のサービスに対応する)に対応する結果生成ルールを調整し得る。例えば、サービスプラットフォームは、現在のサービス資格獲得アクティビティにおいてサービスを実行するための資格を取得することができる指定の数のユーザに基づいて現在のサービスに対応する結果生成ルールを調整し得る、または、現在のサービス資格獲得アクティビティの予測期間に基づいて現在のサービスに対応する結果生成ルールを調整し得る。当然のことながら、サービスに対応する結果生成ルールは別の方法でも調整され得る。例をここで説明することはしない。
サービスプラットフォームは、複数の方法を組み合わせてサービスに対応する結果生成ルールを調整し得る。単一の方法か方法の組合せかにかかわらず、サービスプラットフォームは、所定の調整ポリシーを使用して結果生成ルールを調整し得る。
エンドユーザデバイスは、サービスプラットフォームによって返信された資格獲得ルールと結果生成ルールとを受信した後に資格獲得ルールを保存し得る。エンドユーザデバイスは、エンドユーザデバイスが、取得した資格獲得ルールを使用して、サービスを実行するための資格を取得しているとともにサービスプラットフォームによってその後発表されるユーザに対して資格検証を行うことができるように、資格獲得ルールを保存する。
エンドユーザデバイスは、結果生成ルールを取得した後に結果生成ルールに従って対応する検証されるべき結果を生成し得る。例えば、エンドユーザデバイスによって生成された値(すなわち、検証されるべき結果)が、その最初の5ビットが0であるハッシュ値の文字列がハッシュ変換を値に対して行った後に得られるといった、条件を満足する必要があるとエンドユーザデバイスによって取得された結果生成ルールが指定していると仮定する。この場合には、エンドユーザデバイスは、結果生成ルールを満足する値(すなわち、検証されるべき結果)を得るために計算リソースを消費することによって結果生成ルールに従って継続的な演算を行う。
エンドユーザデバイスは、検証されるべき結果を取得した後に、検証されるべき結果、検証されるべき結果の生成時間、およびユーザ識別子をプリプロセッシングブロックにパッケージし得る。ユーザ識別子は、サービスプラットフォームがサービスを実行する資格があるユーザをその後決定する根拠として使用される。ユーザ識別子は、ユーザが資格獲得リクエストに応じる際にエンドユーザデバイスによって決定され得る、または、エンドユーザデバイスに入力されたユーザ情報から決定され得る。
例えば、ユーザ識別子がユーザアカウントであると仮定する。資格獲得リクエストを送信する場合には、エンドユーザデバイスは、資格獲得リクエストを送信するためにユーザによって使用されるユーザアカウントを決定し、プリプロセッシングブロックを生成する場合にはプリプロセッシングブロックにユーザ識別子としてユーザアカウントをパッケージし得る。
当然のことながら、ユーザ識別子は、ユーザアカウントとは異なる、例えば、身分証明書番号、指紋コード(ユーザ指紋に対してデータ変換を行うことによって得られる文字列)、またはユーザのニックネーム(ユーザのニックネームは一意である必要がある)であり得る。ユーザ識別子に加えて、エンドユーザデバイスは、エンドユーザデバイスの識別子をプリプロセッシングブロックにさらに追加し得る。それに応じて、サービスプラットフォームは、ブロックチェーン内のブロックに基づいて、現在のサービス資格獲得アクティビティに関与しているエンドユーザデバイスからサービスを実行するための資格を取得することができるエンドユーザデバイスを決定し得る。エンドユーザデバイスの識別子は、シーケンス番号、Bluetooth(登録商標)アドレス、またはエンドユーザデバイスのMedia Access Control(MAC)アドレスなどといった、エンドユーザデバイスを一意に識別することができる識別情報であり得る。
プリプロセッシングブロックを取得した後に、エンドユーザデバイスは、別のエンドユーザデバイスがプリプロセッシングブロックに対するコンセンサス処理を行うように、現在のサービス資格獲得アクティビティに関与している別のエンドユーザデバイスにプリプロセッシングブロックを送信し得る。別のエンドユーザデバイスは、プリプロセッシングブロックに含まれている検証されるべき結果に対するコンセンサス処理を行い、検証されるべき結果についてコンセンサスに至ったと決定した後にサービスに対応するローカルに保存されているブロックチェーンにプリプロセッシングブロックを書き込み得る。
本出願の本実施形態においては、エンドユーザデバイスが資格獲得リクエストをサービスプラットフォームに送信すると、サービスプラットフォームは、エンドユーザデバイスのアドレスを取得し、アドレスを保存し得る。同様に、サービスプラットフォームは、図2に示しているように、エンドユーザデバイスがサービスプラットフォームによって取得されたアドレスに基づいてコンセンサスのために別のエンドユーザデバイスにプリプロセッシングブロックを送信することができるように、現在のサービス資格獲得アクティビティに関与しているすべてのエンドユーザデバイスのアドレスを取得する必要がある。
図2は、本出願の実施形態による、サービスプラットフォームによるエンドユーザデバイスのアドレスの取得を図示している概略図である。
図2では、エンドユーザデバイスが資格獲得リクエストをサービスプラットフォームに送信すると、サービスプラットフォームは、エンドユーザデバイスのアドレスを取得し、アドレスを保存する。エンドユーザデバイスは、サービスプラットフォームにアドレスを能動的に提供し得る。換言すれば、エンドユーザデバイスは、アドレスを資格獲得リクエストに追加し得る。サービスプラットフォームは、資格獲得リクエストを解析することによってエンドユーザデバイスのアドレスを取得し、アドレスを保存し得る。
当然のことながら、サービスプラットフォームは、エンドユーザデバイスからエンドユーザデバイスのアドレスを能動的に取得し得る。例えば、サービスプラットフォームは、エンドユーザデバイスによって送信された資格獲得リクエストを受信した後にエンドユーザデバイスにアドレスクエリリクエストを送信し得る。エンドユーザデバイスは、アドレスクエリリクエストを受信した後にサービスプラットフォームにそのアドレスを返信し得る。
サービスプラットフォームは、現在のサービス資格獲得アクティビティに関与しているすべてのエンドユーザデバイスのアドレスを取得し、これらのアドレスを保存し得る。この場合には、別のエンドユーザデバイスにプリプロセッシングブロックをその後送信する際に、エンドユーザデバイスが、サービスプラットフォームにプリプロセッシングブロックをまず送信し得るし、その後、サービスプラットフォームが、エンドユーザデバイスの取得したアドレスに基づいてコンセンサスのために別のエンドユーザデバイスにプリプロセッシングブロックを送信する。当然のことながら、エンドユーザデバイスは、サービスプラットフォームから、サービスプラットフォームによって取得されているエンドユーザデバイスのアドレス(すなわち、現時点で現在の資格獲得アクティビティに関与済みのエンドユーザデバイスのアドレス)を取得し、その後、取得したアドレスに基づいてコンセンサスのために別のエンドユーザデバイスにプリプロセッシングブロックを送信し得る。
別のエンドユーザデバイスにプリプロセッシングブロックを送信すると、サービスプラットフォームは、現時点でサービス資格獲得アクティビティに関与済みのエンドユーザデバイスにプリプロセッシングブロックを送信する。実際には、複数のユーザがサービス資格獲得アクティビティに通常連続して関与してくるため、サービスプラットフォームは、現時点でサービス資格獲得アクティビティに関与済みのエンドユーザデバイスのアドレス(すなわち、現時点でサービスプラットフォームに資格獲得リクエストを送信済みのエンドユーザデバイスのアドレス)のみを取得し得る。
当然のことながら、サービス資格獲得アクティビティに対して予約を行うことができる場合には、現時点でサービス資格獲得アクティビティに関与済みのエンドユーザデバイスに加えて、サービスプラットフォームは、現時点でターゲット資格獲得アクティビティに関与していないが現在のサービス資格獲得アクティビティに関与する予約を行っているエンドユーザデバイスにプリプロセッシングブロックを送信し得る。それに応じて、予約を行うプロセスでは、現在のサービス資格獲得アクティビティに対して予約を行うエンドユーザデバイスは、サービスプラットフォームが、取得したアドレスに基づいて、現在のサービス資格獲得アクティビティに対して予約を行うエンドユーザデバイスにプリプロセッシングブロックを送信することができるように、記憶のためにサービスプラットフォームにエンドユーザデバイスのアドレスを送信する必要がある。
プリプロセッシングブロックを受信した後に、現在のサービス資格獲得アクティビティに関与している各エンドユーザデバイスは、プリプロセッシングブロックに含まれている検証されるべき結果に対するコンセンサス処理を行い、検証されるべき結果についてコンセンサスに至ったと決定した後にサービスに対応するブロックチェーン内のブロックチェーンブロックとしてプリプロセッシングブロックを記憶し得る。エンドユーザデバイスは、図3に示しているように、サービスに対応するブロックチェーンに各ブロックを各ブロックの生成時間に基づいて書き込み得る。
図3は、本出願の実施形態による、サービスに対応するブロックチェーンを図示している概略図である。
プリプロセッシングブロックについてコンセンサスに至ったと決定した後に、プリプロセッシングブロックに対するコンセンサス処理に関与している各エンドユーザデバイスは、プリプロセッシングブロック内の検証されるべき結果の生成時間に基づいて、サービスに対応するブロックチェーンにブロックチェーンブロックとしてプリプロセッシングブロックを書き込むことができる。ブロックチェーン内の各ブロックは、エンドユーザデバイスを使用してブロック(プリプロセッシングブロックはコンセンサスに至った後にブロックチェーンブロックとして機能し得る)を生成したユーザのユーザ識別子を含む。この場合には、ブロックチェーンから資格獲得ルールを満足している少なくとも1つのブロックをその後決定した後に、サービスプラットフォームは、最終的に、ブロックに含まれているユーザ識別子に基づいて、サービスを実行するための資格を取得しているユーザを決定し得る。
本出願の本実施形態においては、サービスに対応するブロックチェーンにコンセンサスに至ったプリプロセッシングブロック(コンセンサスに至ったプリプロセッシングブロックは、検証されるべき結果の生成時間に基づいたブロックチェーンブロックとも称する)を書き込む以外に、エンドユーザデバイスは、プリプロセッシングブロックについて至ったコンセンサスの時系列に基づいてブロックチェーンにブロックチェーンブロックとしてプリプロセッシングブロックを書き込み得る、または、プリプロセッシングブロックの生成時間に基づいてブロックチェーンにブロックチェーンブロックとしてプリプロセッシングブロックを書き込み得ることを留意されたい。あるいは、コンセンサス処理に関与しているエンドユーザデバイスは、別の基準に従ってブロックチェーンブロックとしてブロックチェーンにコンセンサスに至ったプリプロセッシングブロックを書き込み得る。例をここで説明することはしない。
S103. サービスが所定の条件を満足していると決定すると、少なくとも1つのエンドユーザデバイスからブロックチェーンを取得し、ブロックチェーンから資格獲得ルールを満足している少なくとも1つのブロックを選択する。
資格獲得ルールを満足しているブロックを決定すると、サービスプラットフォームは、サービスが所定の条件を満足しているかどうかを検出し得る。サービスが所定の条件を満足していると決定すると、サービスプラットフォームは、サービス資格獲得アクティビティに関与している少なくとも1つのエンドユーザデバイスからサービスに対応するブロックチェーンを取得し、ブロックチェーンから資格獲得ルールを満足している少なくとも1つのブロックを決定し得る。
所定の条件は、サービスに対して指定されている時間が到来しているかどうかを検出することであり得る。指定の時間は、サービス資格獲得アクティビティの資格関与期間の終了時間であり得る。サービス資格獲得アクティビティは、開始時間および終了時間を有する、ここで、終了時間は、サービスプラットフォームがエンドユーザデバイスによって送信された資格獲得リクエストをもはや受信または受理しない時間と理解することができる。サービスの資格関与期間は、サービスプラットフォームがサービスを実行するための資格を取得することができるユーザを決定することを開始する開始時間から前記終了時間までの期間と理解することができる。したがって、サービスが所定の条件を満足していると決定することは、現時点がサービスの資格関与期間の終了時間であるとサービスプラットフォームが決定することを意味し得る。
当然のことながら、本出願の本実施形態においては、指定の時間は、サービス資格獲得アクティビティの終了時間以外の時間であり得る。例えば、指定の時間は、サービスに対応するブロックチェーン内の指定のブロックの生成時間であり得る。それに応じて、サービスが所定の条件を満足していると決定することは、サービスプラットフォームが、エンドユーザデバイスからサービスに対応するブロックチェーンを取得し、現時点でブロックチェーンの終端に位置しているブロックの生成時間(生成時間はブロックに含まれている)を決定し、ブロックの生成時間がサービスに対して指定されている時間であると決定するとサービスが所定の条件を満足していると決定することを意味する。加えて、指定の時間は、別の形式の時間であり得る。例をここで説明することはしない。
本出願の本実施形態においては、所定の条件は、サービスに対して指定されているブロックの数を指し得る。それに応じて、サービスが所定の条件を満足していると決定することは、サービスプラットフォームが、サービスに対応するとともにサービス資格獲得アクティビティに関与している少なくとも1つのエンドユーザデバイスから取得されるブロックチェーンに含まれているブロックの数を決定し得るとともに、ブロックチェーンに含まれているブロックの数がサービスに対して指定されているブロックの数未満であると決定するとサービスが所定の条件を満足していると決定し得ることを意味し得る。
サービスについての所定の条件は、上記の2つの所定の条件とは異なり得る。例えば、サービスについての所定の条件は、現在のサービス資格獲得アクティビティに関与しているエンドユーザデバイスの数がサービスに対して指定されているエンドユーザデバイスの数を満足しているかどうか、換言すれば、エンドユーザデバイスによって送信されサービスプラットフォームによって受信される資格獲得リクエストの数がサービスに対して指定されている数に達したかどうかであり得る(通常は1つのエンドユーザデバイスがサービスプラットフォームに資格獲得リクエストを1つだけ送信する)。それに応じて、サービスプラットフォームは、サービスプラットフォームに現在のサービス資格獲得アクティビティについての資格獲得リクエストを送信したエンドユーザデバイスの数がサービスに対して指定されているエンドユーザデバイスの数に達したと決定すると、サービスが所定の条件を満足していると決定し得る。
当然のことながら、サービスについての所定の条件は別の形式も存在し得る。サービスプラットフォームのオペレーション要員およびメンテナンス要員は、実際のニーズに基づいて異なる所定の条件を設定し得る。例をここで説明することはしない。
サービスが所定の条件を満足していると決定すると、サービスプラットフォームは、現在のサービス資格獲得アクティビティに関与している少なくとも1つのエンドユーザデバイスからサービスに対応するブロックチェーンを取得し、その後、ブロックチェーンから資格獲得ルールを満足している少なくとも1つのブロックを決定し得る。
サービスプラットフォームは、現在のサービス資格獲得アクティビティに関与している複数のエンドユーザデバイスから、サービスに対応するとともにエンドユーザデバイスによって保存されているブロックチェーンを取得し、取得したブロックチェーンからメインチェーンを選択し、その後、メインチェーンに含まれているブロックから資格獲得ルールを満足しているブロックを選択し得る。メインチェーンは、最長のチェーンであり得る。
実際には、サービスに対応するとともに異なるエンドユーザデバイスによって保存されているブロックチェーンについては、最長のチェーンが現在のサービス資格獲得アクティビティにおいて生成された最大数のブロックを記録しているため、サービスプラットフォームは、最長のチェーンを選択する。したがって、サービスプラットフォームが最長のチェーンから資格獲得ルールを満足するブロックを決定することが最も効率的である。換言すれば、選択中にブロックを見落とすことはない。
当然のことながら、サービスに対応するブロックチェーンが複数のサイドチェーンを含んでいる場合には、サービスプラットフォームは、サービスに対応するブロックチェーンを取得した後に複数のサイドチェーンからメインチェーンを選択し得るし、選択したメインチェーンから資格獲得ルールを満足している少なくとも1つのブロックをその後選択し得る。最長のチェーン(すなわち、最大数のブロックを含むチェーン)が、メインチェーンとしてブロックチェーン内の複数のサイドチェーンから選択され得る。
本出願の本実施形態においては、メインチェーンが最長のチェーンを選択する上記で説明した方法以外の方法で選択され得ることを留意されたい。例えば、各エンドユーザデバイスからサービスに対応する各ブロックチェーンを取得した後に、サービスプラットフォームは、現在の資格獲得アクティビティにおける各ブロックチェーン内の始端ブロック(すなわち、現在の資格獲得アクティビティが開始した後に生成され各ブロックチェーンに記録される最初のブロック)の生成時間および終端ブロック(すなわち、現在の資格獲得アクティビティが開始した後に生成され各ブロックチェーンに記録される最終ブロック)の生成時間を決定し得る。その後、サービスプラットフォームは、メインチェーンとして、始端ブロックおよび終端ブロックの生成時間が現在の資格獲得アクティビティの開始時間および終了時間に最も近いブロックチェーンを使用し得る(資格獲得アクティビティの開始時間および終了時間はそれぞれ、上述した資格関与期間の開始時間および終了時間である)。
メインチェーンを決定する上記で説明した方法は、ブロックチェーンが複数のサイドチェーンを含んでいる場合にも適用可能である。具体的には、サービスプラットフォームは、各サイドチェーンに含まれている始端ブロックの生成時間および終端ブロックの生成時間(始端ブロックおよび終端ブロックは、現在の資格獲得アクティビティにおいて各サイドチェーンに記録されている)を決定し、その後、メインチェーンとして複数のサイドチェーンから始端ブロックおよび終端ブロックの生成時間が資格獲得アクティビティの開始時間および終了時間に最も近いサイドチェーンを選択する。当然のことながら、メインチェーンは別の方法でも決定され得る。例をここで説明することはしない。
サービスに対応するブロックチェーンを取得した後に、サービスプラットフォームは、ブロックチェーンに含まれているブロックから資格獲得ルールを満足している少なくとも1つのブロックを決定し得る。ある特定の決定方法は、サービスプラットフォームが、ブロックチェーン内の各ブロックの位置を決定することができ、その後、ブロックの位置が、ブロックチェーン内の資格獲得ルールを満足しているブロックの、資格獲得ルールに指定された、位置であるかどうかをサービスプラットフォームがさらに決定することができ、yesの場合には、ブロックが資格獲得ルールを満足していると決定するといったものであり得る。
例えば、ブロックチェーン(または、最長のチェーン)内の3番目のブロック、19番目のブロック、44番目のブロック、および88番目のブロック(3番目、19番目、44番目、および88番目は、ブロックチェーン内の資格獲得ルールを満足しているブロックの、資格獲得ルールに指定された、位置である)が資格獲得ルールを満足しているとサービスに対応する資格獲得ルールが指定していると仮定する。この場合には、サービスプラットフォームは、ブロックチェーン(または、最長のチェーン)からその4つのブロックを選択し、その後、資格獲得ルールを満足しているブロックとして4つのブロックを決定し、サービスを実行するための資格を取得しているユーザとして4つのブロックに含まれているユーザ識別子に対応するユーザをその後決定し得る。
当然のことながら、資格獲得ルールは、ブロックチェーン内のブロックの位置を使用する方法以外の方法で、資格獲得ルールを満足しているブロックを指定し得る。例えば、資格獲得ルールは、ブロックがブロックチェーンに追加された時間に基づいて、ブロックチェーン内のブロックが資格獲得ルールを満足しているかどうかを指定し得る。あるいは、資格獲得ルールは、ブロックチェーン内のブロックの生成時間(プリプロセッシングブロックの生成時間とも理解することができる)に基づいて、ブロックが資格獲得ルールを満足しているかどうかを指定し得る。当然のことながら、資格獲得ルールは、別の方法でも、ブロックチェーン内のブロックが資格獲得ルールを満足しているかどうか指定し得る。例をここで説明することはしない。
本出願の本実施形態においては、サービスは、各エンドユーザデバイス上の1つのブロックチェーンに対応する。ブロックチェーンは、各エンドユーザデバイスによって生成されたプリプロセッシングブロック(コンセンサスに至った後にサービス資格獲得アクティビティにおける結果生成ルールに基づいたブロックチェーンブロックとも称し得る)を含む。しかしながら、実際には、サービス資格獲得アクティビティは、複数回開催され得る。換言すれば、サービスプラットフォームは、同一のサービスについての複数の資格獲得アクティビティを開催し得る。したがって、エンドユーザデバイスは、通常、サービスのすべての資格獲得アクティビティにおいて生成されるブロックを記録する。
現在のサービス資格獲得アクティビティにおいて生成されるとともにサービスに対応するブロックチェーンから資格獲得ルールを満足している少なくとも1つのブロックをサービスプラットフォームが正確に決定することができるように、サービスプラットフォームは、ブロックチェーン内のブロックに含まれている検証されるべき結果の生成時間(または、ブロックの生成時間、ここで、ブロックの生成時間はプリプロセッシングブロックの生成時間とも理解することができる)に基づいて、現在のサービス資格獲得アクティビティにおいて生成されたブロックを決定する必要がある。換言すれば、サービスプラットフォームは、ブロックチェーンから、現在のサービスの資格関与期間において生成された少なくとも1つのブロックを決定する必要がある。
したがって、本出願の本実施形態においては、サービスプラットフォームは、取得したブロックチェーンに含まれているブロックを決定し、さらに、ブロックに含まれている検証されるべき結果の生成時間を決定し得る。その後、サービスプラットフォームは、ブロックに含まれている検証されるべき結果の決定した生成時間に基づいて、これらのブロックから、サービスに対して指定されている期間において生成されたブロックを決定し得る。サービスに対して指定されている期間は、現在のサービス資格獲得アクティビティの資格関与期間を指し得る。
サービスプラットフォームは、ブロックに含まれている検証されるべき結果の生成時間に基づいて、サービスに対応する取得したブロックチェーン内の現在のサービスの資格関与期間において生成された少なくとも1つのブロックを決定し、さらに、現在のサービス資格獲得アクティビティにおける結果生成ルールに基づいて少なくとも1つのエンドユーザデバイスによって生成された少なくとも1つのブロックとして少なくとも1つのブロックを決定し得る。
当然のことながら、上記で説明したサービスに対して指定されている期間は、資格関与期間とは異なり得る。サービスプラットフォームのオペレーション要員およびメンテナンス要員は、実際のニーズに基づいて指定の期間を設定し得る。例をここで説明することはしない。
サービスに対応するブロックチェーン内の現在のサービス資格獲得アクティビティにおいて生成された少なくとも1つのブロックは、ブロックに含まれているとともにブロックに含まれている検証されるべき結果の生成時間とは異なる情報を使用して決定され得る。例えば、エンドユーザデバイスがサービスプラットフォームから取得した結果生成ルール(または、資格獲得ルール)の識別情報を生成したプリプロセッシングブロックにさらに追加していると仮定する。サービス資格獲得アクティビティは、異なる結果生成ルール(または、資格獲得ルール)ではなく同一のサービスに対応し得る。それに応じて、異なる結果生成ルール(または、資格獲得ルール)は、異なる識別情報に対応し得る。このことに基づいて、エンドユーザデバイスが現在のサービス資格獲得アクティビティに対応する結果生成ルール(または、資格獲得ルール)の識別情報をプリプロセッシングブロックにさらに追加している場合には、サービスプラットフォームは、ブロックに含まれている結果生成ルール(または、資格獲得ルール)の識別情報をその後使用して、現在のサービス資格獲得アクティビティに対応する少なくとも1つのブロックを決定し得る(プリプロセッシングブロックは、コンセンサスに至った後にブロックチェーンブロックとして機能し、サービスに対応するブロックチェーンに書き込まれる)。
加えて、サービスプラットフォームは、別の方法でも、現在のサービス資格獲得アクティビティに対応するブロックを決定し得る。例えば、同一のサービスについて開催される異なる資格獲得アクティビティの各々は、1つのアクティビティ識別子に対応する。プリプロセッシングブロックを生成する場合には、エンドユーザデバイスは、アクティビティ識別子をプリプロセッシングブロックに追加し得る。この場合には、サービスプラットフォームは、ブロックに含まれているアクティビティ識別子をその後使用して、現在のサービス資格獲得アクティビティにおいて生成された少なくとも1つのブロックを決定し得る(コンセンサスに至った後に、プリプロセッシングブロックは、サービスに対応するブロックチェーンにブロックチェーンブロックとして書き込まれる)。当然のことながら、現在のサービス資格獲得アクティビティにおいて生成されるブロックは別の方法でも決定され得る。例をここで説明することはしない。
本出願の本実施形態においては、サービスプラットフォームは、エンドユーザデバイスが資格獲得リクエストをサービスプラットフォームに送信する際に、エンドユーザデバイスのアドレスを取得することができるため、サービスプラットフォームは、以前取得したアドレスのうちの少なくとも1つに基づいて、現在のサービス資格獲得アクティビティに関与している少なくとも1つのエンドユーザデバイスからサービスに対応するブロックチェーンを取得し、さらに、ブロックチェーンから資格獲得ルールを満足している少なくとも1つのブロックを取得し得ることを留意されたい。
S104. 少なくとも1つのブロックに含まれているユーザ識別子に対応するユーザのためにサービスを実行する。
サービスに対応する取得したブロックチェーンから資格獲得ルールを満足している少なくとも1つのブロックを決定した後に、サービスプラットフォームは、ブロックに含まれているユーザ識別子に基づいて、サービスを実行するための資格を取得しているユーザを決定し、さらに、決定したユーザのためのサービスを実行し得る。サービスを実行するための資格を取得しているユーザは、サービスプラットフォームを使用してサービスを実行し得る。
加えて、サービスプラットフォームは、さらに、現在のサービス資格獲得アクティビティに関与している別のユーザが、エンドユーザデバイスを使用して、サービスプラットフォームによって発表された結果を閲覧することができるように、資格獲得ルールを満足している少なくとも1つのブロックに含まれているユーザ識別子を発表し得る。サービスプラットフォームによって発表された結果を閲覧した後に、ユーザは、サービスプラットフォームによって発表された結果が真かつ有効であるかどうかを決定するためにエンドユーザデバイスを使用して結果を検証し得る。
サービスを実行するための資格を取得しているユーザの、サービスプラットフォームによって発表された、ユーザ識別子を取得した後に、エンドユーザデバイスは、サービスに対応するとともにエンドユーザデバイスによって保存されているブロックチェーンとサービスプラットフォームから以前取得した資格獲得ルールとに基づいてブロックチェーンから資格獲得ルールを満足している少なくとも1つのブロックを決定し、さらに、少なくとも1つのブロックに含まれているユーザ識別子を決定し得る。エンドユーザデバイスは、サービスを実行するための資格を取得しているユーザの、エンドユーザデバイスによって決定された、ユーザ識別子を、サービスプラットフォームから取得したユーザ識別子と比較し得る。エンドユーザデバイスは、エンドユーザデバイスによって決定されたユーザ識別子がサービスプラットフォームによって発表されたユーザ識別子と一致していると決定した場合には、サービスプラットフォームによって発表された結果が真かつ有効であると決定し得る。さもなければ、エンドユーザデバイスは、サービスプラットフォームが現在のサービス資格獲得アクティビティにおいて不正行為をしていると決定し得る。
各エンドユーザデバイスが結果生成ルールに従って生成した検証されるべき結果をサービスに対応するブロックチェーンに書き込み得るため、各エンドユーザデバイスが、サービスに対応するとともにエンドユーザデバイスによって保存されているブロックチェーンを使用して、別のエンドユーザデバイスによって生成されたブロックを閲覧し得ることが上記の方法から理解できよう。加えて、サービスプラットフォームは、エンドユーザデバイスが、取得した資格獲得ルールとサービスに対応するとともにエンドユーザデバイスによって保存されているブロックチェーンとに基づいて、サービスプラットフォームによって発表された結果を検証することができるように、各エンドユーザデバイスにサービスを実行するための資格を取得するための資格獲得ルールを送信し得る。ユーザのために、サービスプラットフォームは、サービスを実行するための資格を取得することができるユーザを決定するプロセスにおいて不正行為をすることを効率的に防止することができ、それによって、ユーザの権利および利益を保護している。サービスプラットフォームに関して、効率的な検証方法をユーザに提供しており、それによって、サービスプラットフォームの信憑性を改善している。
本出願の本実施形態においては、専用のサービスセンタが、図4に示しているように、現在のサービス資格獲得アクティビティに関与している各エンドユーザデバイスのアドレスを管理することを担当し得ることを留意されたい。
図4は、本出願の実施形態による、サービスセンタによるアドレス管理を図示している概略図である。
本出願の本実施形態においては、エンドユーザデバイスを使用して資格獲得リクエストをサービスプラットフォームに送信する場合には、現在のサービス資格獲得アクティビティに関与している各ユーザは、サービスセンタにエンドユーザデバイスのアドレスをまず送信し得る。それに応じて、サービスセンタは、アドレスを受信した後にエンドユーザデバイスによって送信されたアドレスを保存し得る。
当然のことながら、サービスセンタは、エンドユーザデバイスのアドレスを能動的に取得し得る。エンドユーザデバイスは、サービスセンタに資格獲得リクエストをまず送信し、その後、サービスセンタは、資格獲得リクエストをサービスプラットフォームに送信する。エンドユーザデバイスによって送信された資格獲得リクエストを受信した後に、サービスセンタは、エンドユーザデバイスがクエリメッセージを受信した後にサービスセンタにエンドユーザデバイスのアドレスを能動的に送信することができるように、エンドユーザデバイスにアドレスクエリメッセージを送信し得る。サービスセンタは、エンドユーザデバイスによって送信された資格獲得リクエストを受信した後に、エンドユーザデバイスから対応するアドレスを能動的に取得してアドレスを保存し得る。加えて、エンドユーザデバイスは、エンドユーザデバイスのアドレスを資格獲得リクエストに追加し、資格獲得リクエストをサービスセンタに送信し得る。サービスセンタは、資格獲得リクエストを解析して、エンドユーザデバイスのアドレスを取得する。
プリプロセッシングブロックのコンセンサスプロセス(検証されるべき結果のコンセンサスプロセスとも称する)においては、エンドユーザデバイスは、サービスセンタから、現時点で現在のサービス資格獲得アクティビティに関与しているエンドユーザデバイス(現在のサービス資格獲得アクティビティに対して予約を行うことができる場合には、これらのエンドユーザデバイスは、予約を行っているエンドユーザデバイスを含む)のアドレスを取得し、その後、コンセンサスのためにアドレスに対応するエンドユーザデバイスにエンドユーザデバイスによって生成されたプリプロセッシングブロックを送信し得る。
当然のことながら、エンドユーザデバイスは、プリプロセッシングブロックをサービスセンタに送信し得る。サービスセンタは、現時点で現在のサービス資格獲得アクティビティに関与しているエンドユーザデバイスの取得したアドレスに基づいて、コンセンサスのためにアドレスに対応するエンドユーザデバイスにプリプロセッシングブロックを送信し得る。
本出願の本実施形態においては、サービスプラットフォームまたはサービスセンタが、現在のサービス資格獲得アクティビティに関与しているエンドユーザデバイスのアドレスを保存する代わりに、現在のサービス資格獲得アクティビティに関与しているユーザのユーザ識別子(ユーザアカウントなど)を保存し得ることを留意されたい。この場合には、サービスプラットフォームまたはサービスセンタは、以前取得したユーザ識別子(現時点で現在のサービス資格獲得アクティビティに関与しているユーザのユーザ識別子)に基づいて、ユーザ識別子を使用して現在のサービス資格獲得アクティビティに関与するためにユーザによって現時点使用されているエンドユーザデバイスにプリプロセッシングブロックをその後送信し得る。
当然のことながら、サービスプラットフォームまたはサービスセンタは、エンドユーザデバイスが、取得したユーザ識別子に基づいて、ユーザ識別子を使用して現在のサービス資格獲得アクティビティに関与するためにユーザによって現時点使用されているエンドユーザデバイスにエンドユーザデバイスによって生成されたプリプロセッシングブロックを送信するように、エンドユーザデバイスに現時点で現在のサービス資格獲得アクティビティに関与しているユーザの以前取得したユーザ識別子を送信し得る。
ステップS104においては、各エンドユーザデバイスが、サービスに対応するとともにエンドユーザデバイスによって保存されているブロックチェーンとサービスプラットフォームから取得した資格獲得ルールとに基づいて、サービスプラットフォームによって発表された結果が真かつ有効ではない(換言すれば、サービスプラットフォームによって発表された少なくとも1つのユーザ識別子に対応するユーザがサービスを実行する資格がない)と決定した場合には、エンドユーザデバイスは、サービスプラットフォームが現在のサービス資格獲得アクティビティにおいて不正行為をしているとの通知を第三者認証局に協調して開始し得る。換言すれば、サービスプラットフォームによって発表された結果が真かつ有効ではないと決定すると、現在のサービス資格獲得アクティビティに関与している各エンドユーザデバイスは、サービスプラットフォームが現在のサービス資格獲得アクティビティにおいて不正行為をしているとの通知を第三者認証局に開始し得る。
サービスプラットフォームが現在のサービス資格獲得アクティビティにおいて不正行為をしているとの受信通知の数が指定の数に達したと決定すると、第三者認証局は、現在のサービス資格獲得アクティビティついてのサービスプラットフォームによって発表された結果が真ではないと決定し、その後、サービスプラットフォームによって発表された結果が無効であると決定し、サービスプラットフォームに責任を持たせ得る。
本出願の本実施形態においては、エンドユーザデバイスは、コンセンサスのためにコンセンサスネットワーク内の各エンドユーザデバイス(すなわち、現時点でターゲットサービスの資格獲得アクティビティに関与しているエンドユーザデバイス)に、サービスプラットフォームによって送信された結果生成ルールに従って取得した検証されるべき結果を送信し得る。検証されるべき結果についてコンセンサスに至った後に、エンドユーザデバイスは、ユーザ識別子を含むブロックに検証されるべき結果を書き込み、ブロックをコンセンサスネットワーク内の各エンドユーザデバイスに送信する。各エンドユーザデバイスは、ブロックをターゲットサービスに対応するブロックチェーンに書き込み得る。
各エンドユーザデバイスによって送信されたサービス資格獲得リクエストを受信する際に、サービスプラットフォームは、短期間に多数のサービス資格獲得リクエストを受信し得る。したがって、いくつかのサービス資格獲得リクエストを受信した後に、サービスプラットフォームは、エンドユーザデバイスに資格獲得ルールと結果生成ルールとを即座に返信する代わりに、これらのサービス資格獲得リクエストをいくつかのバッチにランダムにグループ分けし、その後、指定の時間間隔において、サービス資格獲得リクエストのバッチに対応するエンドユーザデバイスに対応する資格獲得ルールと結果生成ルールとを返信し得る。
実際には、ブロックチェーン内の現在のブロックのブロックヘッダは、前のブロックについてのヘッダハッシュを含む。このように、ブロックは数珠繋ぎとなっている。サービスプラットフォームは、ターゲットサービスの資格獲得アクティビティが開始すると、短期間に、エンドユーザデバイスによって送信された多数のサービス資格獲得リクエストを受信し得る。エンドユーザデバイスがサービスプラットフォームによって返信された結果生成ルールに従って対応する検証されるべき結果と検証されるべきブロックとを取得する場合には、検証されるべきブロックに含まれている以前のブロックについてのヘッダハッシュは、同一のブロックについてのヘッダハッシュであり得る。その結果として、多数のサイドチェーンが出現することになる。
本出願の本実施形態においては、サイドチェーンの出現を効率的に軽減するために、多数のサービス資格獲得リクエストを受信した後に、サービスプラットフォームは、エンドユーザデバイスに対応する資格獲得ルールと結果生成ルールとを即座に返信する代わりに、これらのサービス資格獲得リクエストをランダムにグループ分けし、指定の時間間隔において、サービス資格獲得リクエストのバッチに対応するエンドユーザデバイスに対応する資格獲得ルールと結果生成ルールとを返信し得る。この場合には、サービスプラットフォームによって返信された資格獲得ルールと結果生成ルールとを最初に受信したエンドユーザデバイスのバッチが、時間的優位性によりブロックチェーンにエンドユーザデバイスによって生成されコンセンサスに至ったブロックを最初に書き込み得る。エンドユーザデバイスの現在のバッチは、結果生成ルールに従って、エンドユーザデバイスの以前のバッチによって生成されたブロックに基づいて、検証されるべきブロックを生成し得る。換言すれば、エンドユーザデバイスの各バッチによって生成されたブロックは、エンドユーザデバイスの以前のバッチによって生成されたブロックのヘッダハッシュを含み得る。そのため、サイドチェーンの出現をある程度軽減し得るし、複雑度をある程度低減し得る。
サイドチェーンが長さで等しく、エンドユーザデバイスがサイドチェーンに基づいてブロックチェーンにエンドユーザデバイスによって生成されコンセンサスに至ったブロックをその後書き込む必要がある場合には、エンドユーザデバイスは、これらのサイドチェーンからサイドチェーンをランダムに選択し、プリプロセッシングブロックを生成する際にプリプロセッシングブロックにサイドチェーン内の現時点最終ブロックのヘッダハッシュを書き込み得る。この場合には、プリプロセッシングブロックについてコンセンサスに至ると、各エンドユーザデバイス(現在の資格獲得アクティビティに現時点関与するとともに予約を行っているエンドユーザデバイスを含み得る各エンドユーザデバイス)は、プリプロセッシングブロックに含まれている前のブロックのヘッダハッシュに基づいて、ヘッダハッシュに対応するブロックが位置しているサイドチェーンを決定し、さらに、サイドチェーンにブロックチェーンブロックとしてプリプロセッシングブロックを書き込み得る。
本出願の本実施形態においては、現時点で現在の資格獲得アクティビティに関与している各エンドユーザデバイスがあるエンドユーザデバイスによって送信されたプリプロセッシングブロックに対するコンセンサス処理を行う場合には、プリプロセッシングブロックについてコンセンサスに至ったと決定されると、エンドユーザデバイスは、サービスに対応するブロックチェーンにブロックチェーンブロックとしてプリプロセッシングブロックを書き込む代わりに、プリプロセッシングブロックに対するコンセンサス処理のプロセスにおいて別のエンドユーザデバイスおよびにエンドユーザデバイスそのものよって送信されたプリプロセッシングブロックを無視(または、削除)し得る。この場合には、別のエンドユーザデバイスとエンドユーザデバイスとは、サービスプラットフォームから取得した結果生成ルールに従って新たな検証されるべき結果を生成し、検証されるべき結果を新たに生成したプリプロセッシングブロックに追加し、コンセンサスのためにコンセンサスネットワーク内の各エンドユーザデバイスに新たに生成した処理ブロックを送信する。そのため、ブロックチェーン内にサイドチェーンを生成する可能性をさらに低減し得る。
現在の資格獲得アクティビティにおいて、エンドユーザデバイスは、同一の結果生成ルールを取得し得る。したがって、プリプロセッシングブロックに対するコンセンサス処理を行う場合には、検証されるべき結果が結果生成ルールを満足しているかどうかを決定するためにプリプロセッシングブロックに含まれている検証されるべき結果を検証することに加えて、各エンドユーザデバイスは、さらに、検証されるべき結果が前回のコンセンサスプロセスにおいてプリプロセッシングブロックに含まれている検証されるべき結果と同一であるかどうかを検証し、検証されるべき結果の生成時間と前回のコンセンサスプロセスにおけるプリプロセッシングブロックに含まれている検証されるべき結果の生成時間との間の時間間隔が指定の時間間隔を満足しているかどうかを検証し得る。検証されるべき結果が前回のコンセンサスプロセスにおけるプリプロセッシングブロックに含まれている検証されるべき結果と同一であり、検証されるべき結果の生成時間と前回のコンセンサスプロセスにおけるプリプロセッシングブロックに含まれている検証されるべき結果の生成時間との間の時間間隔が指定の時間間隔を満足していないと検証された場合には、検証されるべき結果を生成したエンドユーザデバイスが盗用していると決定され得る。換言すれば、エンドユーザデバイスが、計算リソースおよび時間を消費することなく、コンセンサスに以前至ったブロックから検証されるべき結果を直接取得している可能性がある。この場合には、コンセンサスネットワーク内のエンドユーザデバイスは、検証されるべき結果を含むプリプロセッシングブロックについてコンセンサスに至ることはできない。
本出願の本実施形態においては、サービス実行プロセスに含まれているいくつかの内容を、本出願において提供しているサービス実行プロセスを詳細かつ明確に説明するために、一例として特典期間限定シナリオを使用して説明していることをさらに留意されたい。しかしながら、本出願の本実施形態において提供したサービス実行方法は、特典期間限定シナリオに限定されず、特典クジ引き抽選およびナンバープレートクジ引き抽選などといった特典期間限定シナリオと同様の他のシナリオにも適用可能である。これらのシナリオに含まれるサービス実行プロセスは、本出願において提供しているサービス実行プロセスと基本的に同一である。簡潔にするために詳細はここでは省略する。
本出願の実施形態において提供したサービス実行方法を上記で説明している。同じ考えに基づいて、本出願の実施形態は、図5および図6に示しているように、2つのサービス実行デバイスをさらに提供している。
図5は、本出願の実施形態による、サービス実行デバイスを図示している概略図である。サービス実行デバイスは、あるサービスについてのエンドユーザデバイスによって送信された資格獲得リクエストを受信するように構成される、受信モジュール501と、エンドユーザデバイスが、結果生成ルールに対応する検証されるべき結果を生成し、検証されるべき結果とユーザ識別子とを含むプリプロセッシングブロックに対するコンセンサス処理を行い、コンセンサスに至った後にブロックチェーンにブロックチェーンブロックとしてプリプロセッシングブロックを書き込むように、資格獲得リクエストに基づいてエンドユーザデバイスに資格獲得ルールと結果生成ルールとを返信するように構成される、返信モジュール502と、サービスが所定の条件を満足していると決定すると、少なくとも1つのエンドユーザデバイスからブロックチェーンを取得し、ブロックチェーンから資格獲得ルールを満足している少なくとも1つのブロックを選択するように構成される、獲得モジュール503と、少なくとも1つのブロックに含まれているユーザ識別子に対応するユーザのためにサービスを実行するように構成される、実行モジュール504とを含む。
獲得モジュール503は、サービスの指定の時間が到来したと決定するとサービスが所定の条件を満足していると決定する、および/または、少なくとも1つのエンドユーザデバイスからサービスに対応するブロックチェーンを取得し、ブロックチェーンに含まれているブロックの数を決定し、数がサービスに対して指定されているブロックの数未満であると決定するとサービスが所定の条件を満足していると決定する。
獲得モジュール503は、ブロックチェーンからメインチェーンを選択し、メインチェーンから資格獲得ルールを満足している少なくとも1つのブロックを選択する。
獲得モジュール503は、メインチェーンとしてブロックチェーンのうちの最長のチェーンを選択する。
獲得モジュール503は、ブロックチェーン内の各ブロックの位置を決定し、ブロックチェーン内のブロックの位置が資格獲得ルールにおいて指定されたものであると決定するとブロックが資格獲得ルールを満足していると決定する。
プリプロセッシングブロックは、検証されるべき結果の生成時間を含む。
獲得モジュール503は、ブロックチェーン内の各ブロックに含まれている検証されるべき結果の生成時間に基づいて、サービスに対して指定されている時間において生成された少なくとも1つのブロックを決定し、決定した少なくとも1つのブロックから資格獲得ルールを満足している少なくとも1つのブロックを選択する。
実行モジュール504は、少なくとも1つのブロックに含まれているユーザ識別子を発表する。
図6は、本出願の実施形態による、別のサービス実行デバイスを図示している概略図である。サービス実行デバイスは、あるサービスのためのサービスプラットフォームに資格獲得リクエストを送信するように構成される、送信モジュール601と、資格獲得リクエストに基づいてサービスプラットフォームによって返信された資格獲得ルールと結果生成ルールとを受信するように構成される、第1の受信モジュール602と、結果生成ルールに従って対応する検証されるべき結果を生成するように構成される、結果生成モジュール603と、検証されるべき結果とユーザ識別子とを含むプリプロセッシングブロックを生成し、別のエンドユーザデバイスがプリプロセッシングブロックに対するコンセンサス処理を行うように、別のエンドユーザデバイスにプリプロセッシングブロックを送信するように構成される、プリプロセッシングブロック生成モジュール604と、別のエンドユーザデバイスがプリプロセッシングブロックについてコンセンサスに至ったと決定された後にデバイスに含まれているブロックチェーンにブロックチェーンブロックとしてプリプロセッシングブロックを書き込むように構成される、書込モジュール605と、サービスプラットフォームが、ブロックチェーンから資格獲得ルールを満足している少なくとも1つのブロックを選択し、少なくとも1つのブロックに含まれているユーザ識別子に対応するユーザのためにサービスを実行するように、サービスプラットフォームによって送信された資格確認情報を受信するとサービスプラットフォームにデバイスによって保存されているブロックチェーンを送信するように構成される、第2の受信モジュール606とを含む。
プリプロセッシングブロック生成モジュール604は、結果生成ルールに従って対応する検証されるべき結果を生成し、検証されるべき結果と、ユーザ識別子と、検証されるべき結果の生成時間とを含むプリプロセッシングブロックを生成する。
プリプロセッシングブロック生成モジュール604は、サービスプラットフォームから別のエンドユーザデバイスのアドレスを取得することであって、別のエンドユーザデバイスのアドレスは、サービスプラットフォームがサービスについての別のエンドユーザデバイスによって送信された資格獲得リクエストを受信した際に別のエンドユーザデバイスから取得される、取得することをし、別のエンドユーザデバイスの取得したアドレスに基づいて別のエンドユーザデバイスにプリプロセッシングブロックを送信する。
デバイスは、サービスプラットフォームによって発表された少なくとも1つのユーザ識別子を取得し、ブロックチェーンと資格獲得ルールとに基づいて、少なくとも1つのユーザ識別子に対応するユーザがサービスを実行する資格があるかどうかを検証するように構成される、検証モジュール607をさらに含む。
本出願の実施形態においては、サービスについての各エンドユーザデバイスによって送信された資格獲得リクエストを受信した後に、サービスプラットフォームは、各エンドユーザデバイスに資格獲得ルールと結果生成ルールとを返信し得る。各エンドユーザデバイスは、サービスプラットフォームによって返信された結果生成ルールに従って対応する検証されるべき結果を生成し、その後、プリプロセッシングブロックに検証されるべき結果とエンドユーザデバイスを使用しているユーザのユーザ識別子とを追加し、プリプロセッシングブロックを別のエンドユーザデバイスに送信し、別のエンドユーザデバイスがプリプロセッシングブロックについてコンセンサスに至ったと決定した後に、サービスに対応するとともにエンドユーザデバイスによって保存されているブロックチェーンにブロックチェーンブロックとしてプリプロセッシングブロックを書き込み得る。サービスを実行するための資格を取得することができるユーザを決定する際に、サービスプラットフォームは、少なくとも1つのエンドユーザデバイスからサービスに対応するブロックチェーンを取得し、取得したブロックチェーンに基づいて、資格獲得ルールを満足しているブロックを決定し、その後、ブロックに含まれているユーザ識別子に基づいて、ユーザ識別子に対応するユーザのためのサービスを実行し得る。各エンドユーザデバイスは結果生成ルールに従って生成した検証されるべき結果をサービスに対応するブロックチェーンに書き込み得るため、各エンドユーザデバイスは、サービスに対応するとともにエンドユーザデバイスによって保存されているブロックチェーンを使用して、別のエンドユーザデバイスによって生成されたブロックを閲覧し得る。加えて、サービスプラットフォームは、エンドユーザデバイスが、取得した資格獲得ルールとサービスに対応するとともにエンドユーザデバイスによって保存されているブロックチェーンとに基づいて、サービスを実行することができるとともにサービスプラットフォームによって決定されたユーザのユーザ識別子を検証することができるように、各エンドユーザデバイスにサービスを実行するための資格を取得するための資格獲得ルールを送信し得る。ユーザのために、サービスプラットフォームは、サービスを実行するための資格を取得することができるユーザを決定するプロセスにおいて不正行為をすることを効率的に防止することができ、それによって、ユーザの権利および利益を保護している。サービスプラットフォームに関して、効率的な検証方法をユーザに提供しており、それによって、サービスプラットフォームの信憑性を改善している。
1990年代においては、技術的改善がハードウェア改善(例えば、ダイオード、トランジスタ、またはスイッチなどの回路構造に対する改善)であるかソフトウェア改善(方法の手順に対する改善)であるかは明確に区別し得た。しかしながら、技術が進歩するにつれて、多くの方法の手順に対する今日の改善は、ハードウェア回路構造に対する直接的な改善として扱うことができるようになった。設計者は、通常、改善した方法の手順をハードウェア回路にプログラムして、対応するハードウェア回路構造を得る。したがって、方法の手順をハードウェアエンティティモジュールを使用して改善し得る。例えば、プログラマブルロジックデバイス(PLD)(例えば、フィールドプログラマブルゲートアレイ(FPGA))がそのような集積回路であり、PLDの論理機能がデバイスプログラミングによりユーザによって決定される。設計者は、チップ製造業者に特定用途向け集積回路チップを設計および製造するように要求することなく、プログラミングを行い、デジタルシステムをPLDに「統合」する。加えて、今日では、集積回路チップを手動で製造する代わりに、このタイプのプログラミングは、「ロジックコンパイラ」というソフトウェアを使用してほとんどが実施されている。ロジックコンパイラソフトウェアは、プログラムを開発および書くために使用されるソフトウェアコンパイラと同様である。元のコードをコンパイルのために特定のプログラミング言語で書く必要がある。そのような言語をハードウェア記述言語(HDL)と称する。Advanced Boolean Expression Language(ABEL)、Altera Hardware Description Language(AHDL)、Confluence、Cornell University Programming Language(CUPL)、HDCal、Java(登録商標) Hardware Description Language(JHDL)、Lava、Lola、MyHDL、PALASM、およびRuby Hardware Description Language(RHDL)などの多くのHDLが存在する。超高速集積回路ハードウェア記述言語(VHDL)およびVerilogがもっとも一般的に使用されている。ひとたび方法の手順がいくつか
の説明したハードウェア記述言語を使用して論理的にプログラムされ集積回路にプログラムされると論理的な方法の手順を実施するハードウェア回路を容易に得ることができることも当業者は理解すべきである。
コントローラは、任意の適切な方法を使用して実装され得る。例えば、コントローラは、例えば、マイクロプロセッサまたはプロセッサであり得るし、またはマイクロプロセッサもしくはプロセッサ、ロジックゲート、スイッチ、特定用途向け集積回路(ASIC)、プログラマブルロジックコントローラ、または組み込みマイクロプロセッサが実行することができるコンピュータ可読プログラムコード(ソフトウェアまたはファームウェアなど)を記憶するコンピュータ可読媒体であり得る。コントローラの例としては、ARC625D、Atmel AT91SAM、Microchip PIC18F26K20、およびSilicon Labs C8051F320といったマイクロプロセッサを含むがこれらに限定されない。メモリコントローラはまた、メモリの制御ロジックの一部として実装され得る。当業者も知っての通り、コンピュータ可読プログラムコードを使用してコントローラを実装することに加えて、コントローラがロジックゲート、スイッチ、特定用途向け集積回路、プログラマブルロジックコントローラ、および内蔵マイクロコントローラの形式で同一の機能を実装することができるように、ロジックプログラミングを方法のステップに対して行うことができる。したがって、コントローラは、ハードウェアコンポーネントとみなされ得るし、コントローラ内の様々な機能を実施するように構成されたデバイスも、ハードウェアコンポーネントにおける構造とみなされ得る。または、様々な機能を実施するように構成されたデバイスは、方法を実施するソフトウェアモジュールおよびハードウェアコンポーネントにおける構造の両方とみなされ得る。
上記の実施形態において示したシステム、デバイス、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用して実装され得る、または、ある機能を有する製品を使用して実装され得る。典型的な実施デバイスがコンピュータである。コンピュータは、例えば、パーソナルコンピュータ、ラップトップコンピュータ、セルラ電話、カメラ電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メールデバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
説明を簡潔にするために、機能を様々なユニットに分割することによって上記のデバイスを説明している。当然のことながら、本出願を実施する際には、各ユニットの機能は、ソフトウェアおよび/またはハードウェアの1つまたは複数の要素において実施され得る。
本開示の実施形態が方法、システム、またはコンピュータプログラム製品として提供され得ることを当業者は理解されたい。したがって、本開示は、ハードウェアのみの実施形態、ソフトウェアのみの実施形態、またはソフトウェアとハードウェアとの組合せを用いた実施形態の形式を使用し得る。さらに、本明細書の実施形態は、コンピュータ使用可能プログラムコードを含む1つまたは複数のコンピュータ使用可能記憶媒体(ディスクメモリ、CD-ROM、光学メモリなどを含むがこれらに限定されない)上で実施されるコンピュータプログラム製品の形式を使用し得る。
本開示は、本開示の実施形態に基づいて、方法のフローチャートおよび/またはブロック図、デバイス(システム)、ならびにコンピュータプログラム製品を参照して説明している。コンピュータプログラム命令がフローチャートおよび/またはブロック図中の各プロセスおよび/または各ブロックならびにフローチャートおよび/またはブロック図中のプロセスおよび/またはブロックの組合せを実施するために使用され得ることを留意されたい。このようなコンピュータプログラム命令は、コンピュータまたは別のプログラマブルデータ処理デバイスのプロセッサによって実行された命令がフローチャート中の1つまたは複数のプロセスにおけるおよび/またはブロック図中の1つまたは複数のブロックにおける特定の機能を実施するためのデバイスを生成するように、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、または別のプログラマブルデータ処理デバイスのプロセッサに提供され、機構を生成し得る。
このようなコンピュータプログラム命令は、コンピュータ可読メモリに記憶されている命令が命令デバイスを含むアーチファクトを生成するように、コンピュータ可読メモリに記憶され得るし、コンピュータまたは別のプログラマブルデータ処理デバイスが特定の方法で動作するように命令し得る。命令デバイスは、フローチャート中の1つまたは複数のプロセスにおけるおよび/またはブロック図中の1つまたは複数のブロックにおける特定の機能を実施する。
このようなコンピュータプログラム命令は、一連の処理およびステップがコンピュータまたは別のプログラマブルデバイス上で行われ、それによってコンピュータ実施処理を生成するように、コンピュータまたは別のプログラマブルデータ処理デバイスにロードされ得る。したがって、コンピュータまたは別のプログラマブルデバイス上で実行される命令は、フローチャート中の1つまたは複数のプロセスにおいておよび/またはブロック図中の1つまたは複数のブロックにおいて特定の機能を実施するためのステップを提供する。
典型的な設定においては、コンピューティングデバイスは、1つまたは複数のプロセッサ(CPU)、1つまたは複数の入力/出力インターフェース、1つまたは複数のネットワークインターフェース、および1つまたは複数のメモリを含む。
メモリは、例えば、リードオンリーメモリ(ROM)またはフラッシュメモリ(フラッシュRAM)といった、コンピュータ可読媒体に存在する、非持続性メモリ、ランダムアクセスメモリ(RAM)、不揮発性メモリ、および/または別の形式を含み得る。メモリは、コンピュータ可読媒体の例である。
コンピュータ可読媒体は、任意の方法または技術を使用して情報を記憶することができる、持続性、非持続性、リムーバブル、および非リームーバブルメディアを含む。情報は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータであり得る。コンピュータ記憶媒体の例としては、パラメータランダムアクセスメモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、別のタイプのランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、フラッシュメモリ、もしくは別のメモリ技術、コンパクトディスクリードオンリーメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、もしくは別の光学ストレージ、カセット磁気テープ、磁気テープ/磁気ディスクストレージ、別の磁気ストレージデバイス、または任意の他の非伝送媒体を含むがこれらに限定されない。コンピュータ記憶媒体は、コンピューティングデバイスによってアクセス可能な情報を記憶するために使用され得る。本明細書において説明しているように、コンピュータ可読媒体は、変調データ信号およびキャリアなどのコンピュータ可読一時的媒体は含まない。
「含む」、「備える」といった用語、またはそれらの任意の他の類型は、多くの要素を含むプロセス、方法、製品、もしくはデバイスが、これらの要素を含むだけでなく明示的に記載していない他の要素も含むように、またはそのようなプロセス、方法、製品、もしくはデバイスに本来備わっている要素をさらに含むように、非排他的な包含をカバーすることを意図していることをさらに留意されたい。「・・・を含む」と記載している要素は、さらなる制約がない状態で、要素を含むプロセス、方法、製品、またはデバイスにおいて別の同一または同じ要素をさらに含む。
本出願の実施形態が方法、システム、またはコンピュータプログラム製品として提供され得ることを当業者は理解されたい。したがって、本開示は、ハードウェアのみの実施形態、ソフトウェアのみの実施形態、またはソフトウェアとハードウェアとの組合せを用いた実施形態の形式を使用し得る。加えて、本出願は、コンピュータ使用可能プログラムコードを含む1つまたは複数のコンピュータ使用可能記憶媒体(ディスクメモリ、CD-ROM、光学メモリなどを含むがこれらに限定されない)上で実施されるコンピュータプログラム製品の形式を使用し得る。
本出願は、例えば、プログラムモジュールといった、コンピュータによって実行されるコンピュータ実行可能命令の一般的な状況において説明することができる。一般的に、プログラムモジュールは、特定のタスクを実行するまたは特定の抽象データタイプを実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本出願はまた、分散コンピューティング環境において実施することができる。分散コンピューティング環境においては、タスクは、通信ネットワークを介して接続されたリモート処理デバイスによって行われる。分散コンピューティング環境においては、プログラムモジュールは、ストレージデバイスを含むローカルコンピュータ記憶媒体およびリモートコンピュータ記憶媒体の両方に位置し得る。
本明細書における実施形態は、漸進的方法で説明している。実施形態の同一または同様の部分については、実施形態を参照されたい。各実施形態は、他の実施形態とは異なる部分に焦点を置いている。特に、システムの実施形態は、方法の実施形態と基本的に同様であるため、したがって、簡潔に説明している。関連する部分については、方法の実施形態における関連する説明を参照されたい。
上記の説明は、本出願の実施形態であり、本出願を限定することは意図していない。当業者は、本出願に対して様々な修正および変更をなし得る。本出願の精神および原理から逸脱することなくなされた任意の修正、均等物との置換、または改善は、本出願における特許請求の範囲の範囲に含まれるものとする。