(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-14
(54)【発明の名称】クライアント・サーバ環境におけるトランザクション検証のための方法及びシステム
(51)【国際特許分類】
A63F 13/792 20140101AFI20240806BHJP
G06Q 50/10 20120101ALI20240806BHJP
A63F 13/35 20140101ALI20240806BHJP
A63F 13/75 20140101ALI20240806BHJP
G06Q 20/38 20120101ALI20240806BHJP
【FI】
A63F13/792
G06Q50/10
A63F13/35
A63F13/75
G06Q20/38
【審査請求】未請求
【予備審査請求】有
(21)【出願番号】P 2023577844
(86)(22)【出願日】2022-06-01
(85)【翻訳文提出日】2023-12-18
(86)【国際出願番号】 FI2022050374
(87)【国際公開番号】W WO2023281155
(87)【国際公開日】2023-01-12
(32)【優先日】2021-07-07
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】513136528
【氏名又は名称】スーパーセル オーワイ
【氏名又は名称原語表記】Supercell Oy
【住所又は居所原語表記】Jatkasaarenlaituri 1 FI-00180 HELSINKI Finland
(74)【代理人】
【識別番号】100127188
【氏名又は名称】川守田 光紀
(72)【発明者】
【氏名】フォーステン ヴィサ
(72)【発明者】
【氏名】デローム ニコ
【テーマコード(参考)】
5L020
5L050
【Fターム(参考)】
5L020AA71
5L050CC18
(57)【要約】
クライアント・サーバ環境においてトランザクションを検証する方法(300)が開示される。この方法は、クライアントデバイス(102)において、ユーザからトランザクション要求を受け取ることと;クライアントデバイスにおいて、ユーザに対応する状態データに基づいて、トランザクション要求に関連するコマンドをクライアントデバイスで実行することと;クライアントデバイスでコマンドが実行されると、前記コマンドをサーバ(104)で実行するために、クライアントデバイスからサーバにリクエストを送信することと;クライアントデバイスから前記リクエストを受信すると、トランザクションをサーバで検証するために、サーバに格納された前記状態データのコピーを使用して、前記コマンドをサーバによって実行することと;サーバにおけるコマンドの実行に基づいて、トランザクションの許可又は阻止することと;を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
クライアント・サーバ環境においてトランザクションを検証する方法であって、前記方法は、
・ クライアントデバイスにおいて、ユーザからトランザクション要求を受け取ることと;
・ 前記ユーザに対応する状態データであって前記クライアントデバイスにおける状態データに基づいて、前記トランザクション要求に関連するコマンドを、前記クライアントデバイスで実行することと;
・ 前記クライアントデバイスで前記コマンドが実行されると、前記コマンドをサーバで実行するために、前記クライアントデバイスから前記サーバにリクエストを送信することと;
・ 前記クライアントデバイスから前記リクエストを受信すると、前記トランザクション要求に関連するトランザクションであって前記クライアントデバイスで行われるトランザクションを前記サーバで検証するために、前記サーバに格納された前記状態データのコピーを使用して、前記コマンドをサーバによって実行することと;
・ 前記サーバにおける前記コマンドの実行に基づいて、前記クライアントデバイスにおける前記トランザクションの許可又は阻止のいずれかを、前記サーバによって実行することと;
を含む、方法。
【請求項2】
前記サーバによる前記コマンドの実行は、前記クライアントデバイスのロジックコードに基づいて、前記クライアントデバイスに関連付けられる前記コマンドを、前記サーバで実行可能なサーバコマンドに変換することを含む、請求項1に記載の方法。
【請求項3】
前記コマンドの実行は、前記トランザクションを完了するために十分なリソース残高が存在することの検証に基づく、請求項1又は2に記載の方法。
【請求項4】
前記サーバ上の前記状態データのコピーに十分なリソース残高が存在する場合は前記トランザクションが許可され、前記サーバ上の前記状態データのコピーに十分なリソース残高が存在しない場合はトランザクションは阻止される、請求項3に記載の方法。
【請求項5】
前記クライアントデバイスにおける前記トランザクションを許可又は阻止することは、
前記ユーザの1つ又は複数の過去のトランザクションに少なくとも基づいて、前記サーバによって前記ユーザの信頼スコアを生成することと;
前記信頼スコアに基づいて前記トランザクションを検証することと;
を含む、請求項1から4のいずれかに記載の方法。
【請求項6】
前記リソースは、前記クライアントデバイスのアプリケーションで前記ユーザによって取得されたクレジットを含む、請求項1から5のいずれかに記載の方法。
【請求項7】
前記トランザクションは、前記クライアントデバイスのアプリケーションで前記ユーザが資産を取得するためにリソースを交換することを含む、請求項1から6のいずれかに記載の方法。
【請求項8】
クライアント・サーバ環境においてトランザクションを検証するためのシステムであって、クライアントデバイスと、ネットワークを介して前記クライアントデバイスと通信可能に結合されるサーバとを備え、前記クライアントデバイスは、
・ ユーザからトランザクション要求を受け取り、
・ 前記ユーザに対応する状態データに基づいて、トランザクション要求に関連するコマンドを実行し、
・ 前記クライアントデバイスで前記コマンドが実行されると、前記コマンドをサーバで実行するためのリクエストを前記サーバに送信する、
ように構成され、前記サーバは、
・ 前記クライアントデバイスから前記リクエストを受信すると、前記トランザクション要求に関連するトランザクションであって前記クライアントデバイスで行われるトランザクションを検証するために、前記サーバに格納された前記状態データのコピーを使用して、前記コマンドを実行し、
・ 前記サーバにおける前記コマンドの実行に基づいて、前記クライアントデバイスにおける前記トランザクションの許可又は阻止のいずれかを実行する、
ように構成される、システム。
【請求項9】
前記サーバは、前記コマンドを前記サーバで実行するために、前記クライアントデバイスに関連する前記コマンドを、前記クライアントデバイスのロジックコードに基づいて、前記サーバで実行可能なサーバコマンドに変換するように構成される、請求項8に記載のシステム。
【請求項10】
前記コマンドの実行は、前記トランザクションを完了するために十分なリソース残高が存在することの検証に基づく、請求項8又は9に記載のシステム。
【請求項11】
前記サーバ上の前記状態データのコピーに十分なリソース残高が存在する場合は前記トランザクションが許可され、前記サーバ上の前記状態データのコピーに十分なリソース残高が存在しない場合はトランザクションは阻止される、請求項10に記載のシステム。
【請求項12】
前記サーバは、
前記ユーザの1つ又は複数の過去のトランザクションに少なくとも基づいて、前記サーバによって前記ユーザの信頼スコアを生成し、
前記信頼スコアに基づいて前記トランザクションを検証する、
ように構成される、請求項8から11のいずれかに記載のシステム。
【請求項13】
前記リソースは、前記クライアントデバイスのアプリケーションで前記ユーザによって取得されたクレジットを含む、請求項8から12のいずれかに記載のシステム。
【請求項14】
前記トランザクションは、前記クライアントデバイスのアプリケーションで前記ユーザが資産を取得するためにリソースを交換することを含む、請求項8から13のいずれかに記載のシステム。
【請求項15】
請求項1から7のいずれかに記載の方法を実行するための処理ハードウェアを含むコンピュータ装置によって実行可能なコンピュータ可読命令が記憶された不揮発性のコンピュータ可読記憶媒体を含む、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、クライアント・サーバシステムに関し、より具体的には、クライアント・サーバ環境におけるトランザクションを検証するための方法及びシステムに関する。
【背景】
【0002】
クライアント・サーバ環境を使用するゲームアプリケーションにおいて、クライアントデバイスのプレーヤー(ユーザ)に、他のプレーヤーより不当な利益を与えるために、クライアントデバイスでチートアプリケーション(不正なことを行うアプリケーション)が使用されることがある。そのようなチートアプリケーションは、本来はプレーヤーには隠されている1つ又は複数のゲーム状態やその他の情報を、一般に公開する。多くの場合、チートアプリケーションは、アプリケーションの期待されるロジックフローを変更したり、アプリケーションメモリ内の値を変更したり、クライアントサーバメッセージを傍受して変更したりするためにも使用される。通常、チートアプリケーションは、ゲームクライアントプログラムを操作してプレーヤーの能力を向上させることができる。チートアプリケーションは通常、ゲームプログラムと共に提供されるアプリケーションプログラミングインターフェース(API)を使用して、プログラムの動作を操作し、ゲームに関する情報を抽出したり、プレーヤーがプログラムからオペレーティングシステムに発行されるグラフィックコマンドを傍受したりする。
【0003】
ここで、クライアントデバイスを使用するプレーヤーによる不正行為やその他の不正行為も、他のプレーヤーに損害を加えるために行われる可能性があり、ゲームの運営全般を混乱させる原因となる。例えば、ゲーム環境において、あるプレーヤーがゲームストアからカードを購入しようとしたところ、コインの残高がゼロであり、カードを合法的に購入するには不十分であることに気づく。そのプレーヤーは、その後、チートアプリケーションを利用して、ゲームクライアント上の銀行の残高を変更し、カードを購入するのに十分な通貨があることを報告し、購入取引の完了時に、権利を与えられていないカードを受け取る。これは、そのプレーヤーとゲームをプレイする他の全てのユーザのゲームの残高や整合性を壊し、またゲームの経済を損なう原因となる。
【0004】
クライアント・サーバ環境の一貫性と安全性を保つためには、クライアント端末又はサーバのどちらかの制御下で権威ある決定を下す必要がある。しかし、サーバ側で権威のある決定を行うには、サーバコードとクライアントコードを別々に管理する必要があり、クライアントコードベースとサーバコードベースを別々に管理するための開発時間がかかるため、手間がかかる。また、クライアントデバイスとサーバで複数のプログラミング言語を扱うため、複雑で、ゲームプレイにエラーが発生する可能性がある。更に、クライアントのコードベースとサーバのコードベースを別々に維持することは、サーバのオーバーヘッドだけでなく、クライアントデバイスとサーバ間の通信レイヤのオーバーヘッドを引き起こす。更に、クライアントデバイスがサーバと通信する必要がある場合、失敗の結果を得るためだけにサーバと通信することになり、さらなるオーバーヘッドにつながる。
【0005】
従って、クライアント・サーバ環境においてトランザクションを検証するための方法及びシステムを提供するための既存の技術に関連する、前述の欠点を克服する必要がある。
【摘要】
【0006】
本願の開示事項(以下「本開示」という)は、クライアント・サーバ環境において、トランザクションを検証する方法を提供しようとするものである。本開示はまた、クライアント・サーバ環境においてトランザクションを検証するためのシステムを提供しようとするものである。本開示の目的は、セキュリティ及び一貫したプレーヤー体験を保証するために、クライアントデバイス及びサーバ上のゲームロジックに敏感な共通ロジックコードを使用して、クライアント・サーバ環境においてトランザクションを検証するための技術を提供することによって、従来技術で遭遇した問題を少なくとも部分的に克服する解決策を提供することである。本開示においては、サーバによるトランザクションを検証するために、共通ロジックコードに関連するコマンドが、サーバ上でセキュリティが破られていない状態(uncompromised state)に維持されている状態データのコピーを使用して、サーバと同様にクライアントデバイス上で実行される。このコマンドは、クライアントデバイス又はサーバのいずれか一方のためのプログラミング言語で記述され、他方のための別のプログラミング言語に変換され、ロジックの同期を維持しながらクライアントデバイスとサーバの両方で実行される。コマンドの実行結果は整合性のために比較され、トランザクションが検証される。
【0007】
ある捉え方によれば、本開示は、クライアント・サーバ環境においてトランザクションを検証するための、次のような方法を提供する。この方法は、
・ クライアントデバイスにおいて、ユーザからトランザクション要求を受け取ることと;
・ 前記ユーザに対応する状態データであって前記クライアントデバイスにおける状態データに基づいて、前記トランザクション要求に関連するコマンドを、前記クライアントデバイスで実行することと;
・ 前記クライアントデバイスでコマンドが実行されると、前記コマンドをサーバで実行するために、前記クライアントデバイスから前記サーバにリクエストを送信することと;
・ 前記クライアントデバイスから前記リクエストを受信すると、前記トランザクション要求に関連するトランザクションであって前記クライアントデバイスで行われるトランザクションを前記サーバで検証するために、前記サーバに格納された前記状態データのコピーを使用して、前記コマンドをサーバによって実行することと;
・ 前記サーバにおけるコマンドの実行に基づいて、前記クライアントデバイスにおける前記トランザクションの許可又は阻止のいずれかを、前記サーバによって実行することと;
を含む。
【0008】
別の捉え方によれば、本開示の一実施形態は、クライアント・サーバ環境においてトランザクションを検証するためのシステムを提供する。このシステムは、クライアントデバイスと、ネットワークを介して前記クライアントデバイスと通信可能に結合されるサーバとを備え、前記クライアントデバイスは、
・ ユーザからトランザクション要求を受け取り、
・ 前記ユーザに対応する状態データに基づいて、トランザクション要求に関連するコマンドを実行し、
・ 前記クライアントデバイスで前記コマンドが実行されると、前記コマンドをサーバで実行するためのリクエストを前記サーバに送信する、
ように構成され、前記サーバは、
・ 前記クライアントデバイスから前記リクエストを受信すると、前記トランザクション要求に関連するトランザクションであって前記クライアントデバイスで行われるトランザクションを検証するために、前記サーバに格納された前記状態データのコピーを使用して、前記コマンドを実行し、
・ 前記サーバにおけるコマンドの実行に基づいて、前記クライアントデバイスにおける前記トランザクションの許可又は阻止のいずれかを実行する、
ように構成される。
【0009】
本開示の実施形態は、従来技術における前述の問題を実質的に排除するか、又は少なくとも部分的に解決し、ロジック同期に基づいて、クライアントデバイス及びサーバ上で共通のコマンドを使用することによって、クライアント・サーバ環境においてトランザクションを検証する技術を提供する。ロジック同期に基づいて、クライアントデバイス及びサーバ上で共通のコマンドを使用することは、クライアントコードベースとサーバコードベースとを別々に維持するために必要なオーバーヘッドや両者の間の通信レイヤを維持するためのオーバーヘッドを低減し、また、クライアントデバイスが失敗結果を得るためだけにサーバと通信することによって引き起こされる更なるオーバーヘッドも低減する。
【0010】
本願に開示されるものの更なる側面や利点、特徴及び目的は、添付の特許請求の範囲と共に解釈される、添付図面及び例示的実施形態の詳細説明によって明らかにされよう。
【0011】
本開示の特徴は、添付の特許請求の範囲によって定義される範囲から逸脱することなく、様々な組み合わせで組み合わせることが可能であることも理解されよう。
【図面の簡単な説明】
【0012】
上記の摘要、及び例示的な実施形態に関する以下の詳細説明は、添付の図面と併せて読むとより良く理解される。本開示を説明する目的で、本開示の例示的構成を図面に示す。ただし本開示は、本明細書に開示される特定の方法及び装置に限定されるものではない。また、図面の縮尺は正しいものではない。同様の要素は可能な限り同一の番号で示されている。
以下、本開示の実施形態を、例として次の図面を参照しながら説明する。
【
図1】本開示の一実施形態による、クライアント・サーバ環境においてトランザクションを検証するためのシステムの概略図である。
【
図2】例示的なシナリオに従って、ゲーム環境におけるトランザクションを検証する例示的なシナリオを示す相互作用図(interaction diagram)である。
【
図3】本開示の一実施形態に従った、クライアント・サーバ環境におけるトランザクションを検証するためのステップを列挙した、方法のフローチャートである。 添付図面において、下線付きの番号は、その番号が書かれている場所のアイテム又はその番号に隣接するアイテムを表わすのに使用される。下線無しの番号は、その番号を繋ぐ線によって特定されるアイテムに関連付けられる。番号に下線が無く矢印を伴って書かれている場合、その番号は矢印が示す汎用アイテムを特定するのに使用される。
【実施形態の詳細説明】
【0013】
以下の詳細説明は、本開示の実施形態及びそれらが実施され得る方法を例示する。本開示を実施するための形態をいくつか開示したが、当業者であれば、本開示を実施するための他の形態も実現可能であることを認識するであろう。
【0014】
ある捉え方によれば、本開示は、クライアント・サーバ環境においてトランザクションを検証するための、次のような方法を提供する。この方法は、
・ クライアントデバイスにおいて、ユーザからトランザクション要求を受け取ることと;
・ 前記ユーザに対応する状態データであって前記クライアントデバイスにおける状態データに基づいて、前記トランザクション要求に関連するコマンドを、前記クライアントデバイスで実行することと;
・ 前記クライアントデバイスでコマンドが実行されると、前記コマンドをサーバで実行するために、前記クライアントデバイスから前記サーバにリクエストを送信することと;
・ 前記クライアントデバイスから前記リクエストを受信すると、前記トランザクション要求に関連するトランザクションであって前記クライアントデバイスで行われるトランザクションを前記サーバで検証するために、前記サーバに格納された前記状態データのコピーを使用して、前記コマンドをサーバによって実行することと;
・ 前記サーバにおけるコマンドの実行に基づいて、前記クライアントデバイスにおける前記トランザクションの許可又は阻止のいずれかを、前記サーバによって実行することと;
を含む。
【0015】
別の捉え方によれば、本開示は、クライアント・サーバ環境においてトランザクションを検証するためのシステムを提供する。このシステムは、クライアントデバイスと、ネットワークを介して前記クライアントデバイスと通信可能に結合されるサーバとを備える。そして前記クライアントデバイスでは、
・ ユーザからトランザクション要求を受け取り、
・ 前記ユーザに対応する状態データに基づいて、トランザクション要求に関連するコマンドを実行し、
・ 前記クライアントデバイスで前記コマンドが実行されると、前記コマンドをサーバで実行するためのリクエストを前記サーバに送信する、
ように構成される。また前記サーバは、
・ 前記クライアントデバイスから前記リクエストを受信すると、前記トランザクション要求に関連するトランザクションであって前記クライアントデバイスで行われるトランザクションを検証するために、前記サーバに格納された前記状態データのコピーを使用して、前記コマンドを実行し、
・ 前記サーバにおけるコマンドの実行に基づいて、前記クライアントデバイスにおける前記トランザクションの許可又は阻止のいずれかを実行する、
ように構成される。
【0016】
本開示は、クライアント・サーバ環境においてトランザクションを検証する方法を提供する。本開示の方法は、クライアントデバイスのユーザからトランザクション要求を受け取ると、クライアントデバイスとサーバでコマンドを実行することによってトランザクションを検証する。クライアントデバイス及びサーバでの上記コマンドの実行は、セキュリティ及び一貫したプレーヤー体験を保証する。本開示の方法は、サーバ上の、不正な改変等がなされていない状態データのコピーを使用して、サーバで共通コマンドを実行し、当該コマンドの実行に基づいてトランザクションを検証することにより、チートアプリケーションがユーザに不当な利益を提供することを防止する。
【0017】
本方法は、クライアントデバイスにおいて、ユーザからトランザクション要求を受け取ることを含む。本開示を通じて、「トランザクション要求」という用語は、クライアントデバイス上のアプリケーションにおいて、ユーザが資産を取得するために1つ以上のリソースを交換することを含む取引の要求を表す。クライアントデバイスは、コンピュータ、携帯電話、ラップトップコンピュータ、タブレット、シン・コンピューティング・デバイス、パーソナル・デジタル・アシスタント(PDA)、ポータブル・コンピューティング・デバイス、仮想マシン、又はプロセッサを備えた適切なデバイスを含むが、これらに限定されない。特定の構成では、クライアントデバイスは、オーディオプレーヤー、ゲーム機、カメラ、カムコーダー、オーディオデバイス、ビデオデバイス、マルチメディアデバイス、又はリモートコンピューティングデバイスへの接続をサポートできるデバイスを表すことができる。実施形態によっては、クライアントデバイスは、少なくともプロセッサ及びメモリを備える。
【0018】
本方法は、ユーザに対応する状態データであってクライアントデバイスにおける状態データに基づいて、トランザクション要求に関連するコマンドを、クライアントデバイスで実行することを含む。本開示を通じて、「状態データ」という用語は、クライアント・サーバ環境におけるクライアント・サーバ相互作用に関連する1つ以上の状態パラメータに関連するデータを表す。クライアント・サーバ環境は、1つ又は複数のプロセッサ及びメモリを有するクライアントデバイスと、サーバとを含む。クライアントデバイスは、マイクやスピーカ、ディスプレイを有する場合もある。状態データは、コンピュータ実装ゲームアプリケーションに関連する任意のデータを表すことができる。このデータは1つ又は複数のゲーム状態パラメータに影響を及ぼす可能性がある。このゲーム状態パラメータには、限定するものではないが、例えば、プレーヤーデータやメタデータの変更、プレーヤーのSNS接続又は連絡先の変更、ゲームへのプレーヤー入力、及びゲームロジックによって生成されたイベントが含まれてもよい。実施形態によっては、各アプリケーションデータは、名前と値を有する。アプリケーションデータの値は、プレーヤーのゲームプレイに応じて、又はゲームエンジンに応答して(例えばゲームロジックに基づいて)、いつでも変更することができる。
【0019】
実施形態によっては、状態データは、クライアントデバイスに関連するメモリに格納される。メモリは、クライアント・サーバ環境の動作に関連してクライアント・サーバ環境の動作を可能にするコンテンツやデータを、デジタルデータオブジェクトとして記憶してもよい。デジタルデータオブジェクトはデジタル情報のオブジェクトを含んでもよい。デジタル情報は通常、データファイルやデータベース、レコードに格納又は具現化される。コンテンツは、例えば、テキスト、画像、(ベクトルベース又はビットマップの)グラフィック、オーディオ、ビデオ、又は他のマルチメディア、及びそれらの組み合わせを含んでもよい。また、コンテンツオブジェクトデータは、実行可能なコードオブジェクト(例えば、ブラウザウィンドウ又はフレーム内で実行可能なゲーム)などを含んでもよい。
【0020】
実施形態によっては、状態データは、クライアントデバイスに関連する様々な個別データベース・統合データベースの1つ又は複数に格納される。例えば、1つ又は複数の物理システムに格納された論理的に関連するレコード又はファイルの統合されたコレクションとして情報を保持する、リレーショナルデータベースやオブジェクト指向データベースなどに格納される。
【0021】
実施形態によっては、リソースは、クライアントデバイス上のアプリケーションでユーザによって取得されたクレジットを含む。アプリケーションは、例えば、ゲームアプリケーション、仮想現実アプリケーション、拡張現実アプリケーションを含んでもよく、また、その他のクライアントサーバインタラクションベースのアプリケーションを含んでもよい。このようなリソースは、実際の通貨を使用することによって、及び/又は、いくつかの課題又はレベルを完了することなどによって、ゲームプレイの過程でユーザによって獲得されてもよい。
【0022】
実施形態によっては、コマンドの実行は、トランザクション(取引)を完了するために十分なリソース残高が存在することの検証に基づく。すなわち、コマンドは、取引を完了するために必要な十分なリソース残高がある場合にのみ実行される。上に説明したように、リソース残高は、アプリケーション(例えばゲームアプリケーション)で使用される仮想通貨やクレジットの現在の残高を表す場合がある。
【0023】
実施形態によっては、取引は、クライアントデバイスのアプリケーションで、ユーザが資産を取得するために、リソースを交換することを含む。説明したように、リソース残高は、アプリケーションで使用される仮想通貨又はクレジットを表す場合がある。このようなリソースは、ゲームプレイにおいて、ゲームプレイの強化などのために、新しい武器、パワー、キャラクターのアップグレードなどの様々なアイテムの購入のために、ユーザによって使用される場合がある。
【0024】
ここで、上記コマンドは、トランザクション要求に基づいて取引を開始するために、クライアントデバイス上で実行される。例えば、ユーザがクライアントデバイスでゲームアプリケーションを使用中に、一部のクレジットを使用して購入取引を実行しようとする場合、ユーザは、購入取引の要求をクライアントデバイスに送り、クライアントデバイスは、取引を開始するためにコマンドを実行する。コマンドの実行は、ユーザに関連付けられた状態データに十分なリソース残高が存在する場合に成功し、ユーザに関連付けられた状態データに十分なリソース残高が存在しない場合は失敗する。
【0025】
本方法は、クライアントデバイスでコマンドが実行されると、当該コマンドをサーバでも実行するために、クライアントデバイスからサーバにリクエストを送信することを含む。実施形態によっては、当該リクエストは、ユーザに関連付けられた状態データにおいて十分なリソース残高が存在し、クライアントデバイスにおけるコマンドの実行が成功した場合に、サーバに送信される。状態データに十分なリソース残高が存在しない場合、コマンドの実行はトランザクションを終了することに失敗し、実施形態によっては、メッセージはサーバに送信されない。コマンドの実行リクエストはサーバに送信され、サーバは、サーバ上の状態データのコピーを使用して、トランザクション要求に関連付けられたトランザクションを検証する。いくつかの例では、クライアントデバイス上の状態データは、クライアントデバイス上でチートアプリケーションを使用するユーザによって、不正に改変される可能性がある。しかし、サーバ上の状態データのコピーは改竄されていないため、トランザクションの検証に使用される。
【0026】
実施形態によっては、クライアントデバイスは、通信ネットワークを介してサーバと通信可能に結合される。実施形態によっては、サーバは、コンピュータ、ラップトップコンピュータ、コンピューティングデバイス、仮想マシン、デスクトップセッション、公開アプリケーション、又はプロセッサを有する適切なデバイスを含む。また、これらに限定されない。実施形態によっては、サーバは、1つ以上のコンピューティングデバイスを含む。
【0027】
実施形態によっては、クライアントデバイスは、例えばモデム接続、例えばイーサネットやブロードバンドを含むローカルエリアネットワーク接続、ワイドエリアネットワーク接続、又はモバイルネットワーク接続を介して、通信ネットワークを介してサーバに接続する。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)ネットワーク、ワイドエリアネットワーク(WAN)ネットワーク、ワイヤレスネットワーク、インターネット、イントラネット又はその他のネットワークが挙げられる。また、これらに限定されるものではない。
【0028】
本方法は更に、クライアントデバイスから前記リクエストを受信すると、トランザクション要求に関連するトランザクションであってクライアントデバイスで行われるトランザクションをサーバで検証するために、サーバに格納された状態データのコピーを使用して、前記コマンドをサーバによって実行することを含む。ここで、サーバによる前記コマンドの実行は、クライアントデバイスのロジックコードに基づいて、クライアントデバイスに関連付けられる前記コマンドを、サーバで実行可能なサーバコマンドに変換することを含む。注目すべきは、クライアントデバイス用に一度書かれたロジックコードがサーバで再利用されることである。実施形態によっては、ロジックコードは複数のプラットフォームで再利用することができ、様々なデバイスやプラットフォームでロジックを処理するために別々のコードを書く必要がなくなる。更に、クライアントデバイスからサーバへのメッセージングレイヤーも、ロジックコードを再利用することで変換される。ロジックコードや共通コマンドを再利用することで、クライアントコードベースとサーバコードベースを別々に維持するために必要な開発時間や、クライアントデバイスとサーバ間の通信レイヤを維持するために必要な開発時間のオーバーヘッドが削減される。
【0029】
サーバ上の状態データのコピーはサーバメモリ上に保存され、クライアントデバイス上のユーザが使用する可能性のある不正なアプリケーションによって、不正にアクセスされることはない。サーバ上の状態データのコピーの完全性は保たれるため、サーバ上でコマンドを実行することにより、トランザクションの検証が可能となる。例えば、クライアントデバイス上でのコマンドの実行が、クライアントデバイス上の状態データに十分なリソース残高が存在することを示す場合、サーバ上でのコマンドの実行は、十分なリソース残高が状態データのコピーに本当に存在し、クライアントデバイス上でチートアプリケーションを使用するユーザによって改ざんや不正アクセスされていないかどうかを検証する。このため、トランザクションの検証が可能となる。
【0030】
本方法は更に、サーバにおけるコマンドの実行に基づいて、クライアントデバイスにおけるトランザクションの許可又は阻止のいずれかを、サーバによって実行することを含む。コマンドがサーバでも成功した場合、サーバは、コマンドの成功をクライアントデバイスに通知する。コマンドの成功は、状態データにおける十分なリソース残高の存在の正当性を確認するものとなるだろう。従ってコマンドは、クライアントデバイスとサーバとの両方で実行され、状態データと状態データのコピーとの同期が維持される。コマンドが失敗した場合、サーバは、コマンドの失敗をクライアントデバイスに通知する。クライアントデバイスは、例えばセッションを終了することにより、エラーケースを処理する。そして状態データは有効な状態に維持される。トランザクション(取引)は、サーバが保有する状態データのコピーに十分なリソース残高が存在する場合に許可され、当該コピーに十分なリソース残高が存在しない場合は阻止される。
【0031】
実施形態によっては、サーバによる前記コマンドの実行は、クライアントデバイスのロジックコードに基づいて、クライアントデバイスに関連付けられる前記コマンドを、サーバで実行可能なサーバコマンドに変換することを含む。ここで、コマンド(以下、共通コマンドと称することがある)は、クライアントデバイス又はサーバのいずれか一方のプログラミング言語で記述され、他方のプログラミング言語に変換され、コマンドの実行結果がトランザクションの整合性と検証のために比較される。共通コマンドは、共通のロジックコードと関連付けられる。(それによってロジックの同期が維持される。)共通コマンドは、クライアントデバイスとサーバ上のゲームロジックにセンシティブであり、サーバによるトランザクションの検証のために、クライアントデバイスではユーザに関連付けられた状態データを使用して実行され、サーバでは、サーバで改竄の恐れがない状態(encompromisedな状態)に保持された当該状態データのコピーを使用して実行される。クライアントデバイス用に一度書かれたロジックコードをサーバ上で再利用するという、ロジックコードの再利用によるロジック同期に基づくサーバによるトランザクションの検証は、クライアントコードベースとサーバコードベースを別々に維持するためには必要となるオーバーヘッドを削減し、また、クライアントデバイスとサーバで別々のコードベースを使用する際に必要となる、クライアントデバイスとサーバ間の通信レイヤによるオーバーヘッドを削減する。
【0032】
実施形態によっては、ロジックコードは、クライアント・サーバ環境に関連する複数のプラットフォームで再利用することができ、様々なデバイス又はプラットフォームでロジックを処理するために別個のコードを記述する必要がなくなる。更に、クライアントデバイスからサーバへのメッセージングレイヤーも、ロジックコードを再利用することで変換される。本開示の方法はまた、クライアントデバイスがサーバと通信して失敗結果を得るためだけに生じる余計なオーバーヘッドを低減する。
【0033】
実施形態によっては、サーバによりクライアントデバイスで取引を許可すること又は取引を阻止することは、少なくともユーザの1つ以上の過去の取引に基づいてサーバによりユーザの信頼スコアを生成することと、ユーザの信頼スコアに基づいて取引を検証することとを含む。いくつかのインスタンスにおいて繰り返しトランザクションの許可を得る第1のユーザは、いくつかのインスタンスにおいて失敗する可能性のある第2のユーザと比較した場合、より高い信頼スコアを得てもよい。高い信頼スコアを有する場合、インスタンスごとにサーバでトランザクションを検証する必要なしに、サーバは、いくつかのインスタンスで第1ユーザによるトランザクションを許可することにつながってもよい。これは、各トランザクションを検証するためのサーバのオーバーヘッドを削減するのに役立ちうる。高い信頼スコア(すなわち予め定義された閾値以上の信頼スコア)を持つユーザがサーバでトランザクションを検証されない可能性があるインスタンスは、高い信頼スコアを持つユーザでさえサーバのトランザクション検証機能を騙すことができないように、ランダムに(擬似ランダムに)決定され得る。
【0034】
本開示はまた、上述のシステムに関する。上に開示された様々な実施形態及び変形例は、本システムに準用される。
【0035】
本開示のシステムは、クライアントデバイスのユーザからのトランザクション要求を受けて、クライアントデバイスとサーバでそれぞれ共通コマンドを実行することにより、取引の正当性を確認する。本開示のシステムは、クライアントデバイスとサーバで共通コマンドを実行することにより、セキュリティと一貫したプレーヤー体験を確保する。この共通コマンドは共通ロジックコードに関連付けられ、クライアントデバイス及びサーバのゲームロジックにセンシティブであり、クライアントデバイスで実行されるだけでなく、改竄され得ない状態にサーバで保持されている状態データのコピーを使用してサーバでも実行され、それによってサーバによるトランザクションの検証が行われる。また、共通コマンド(以下コマンドと称する)は、クライアントデバイス又はサーバのいずれか一方のプログラミング言語で記述され、他方のプログラミング言語に変換され、コマンドの実行結果がトランザクションの整合性と検証のために比較される。本開示のシステムは、クライアントデバイス用に一度書かれたロジックコードをサーバで再利用することによるロジックの同期に基づく、サーバによるトランザクションの検証によって、クライアントコードベースとサーバコードベースを別々に維持するために必要なオーバーヘッドを削減し、また、クライアントデバイスとサーバで別々のコードベースを使用する場合に必要となる、クライアントデバイスとサーバ間の通信レイヤによるオーバーヘッドを削減する。 本開示のシステムはまた、クライアントデバイスが失敗結果を得るためだけにサーバと通信することによって引き起こされる余計なオーバーヘッドを低減する。実施形態によっては、ロジックコードは、クライアント・サーバ環境に関連する複数のプラットフォームで再利用することができ、様々なデバイス又はプラットフォームでロジックを処理するために別個のコードを記述する必要がなくなる。更に、クライアントデバイスからサーバへのメッセージングレイヤーも、ロジックコードを再利用することで変換される。
【0036】
本システムは、クライアントデバイスと、ネットワークを介してクライアントデバイスと通信可能に結合されたサーバとを備える。クライアントデバイスは、ユーザからトランザクション要求を受け取り、前記ユーザに対応する状態データに基づいて、トランザクション要求に関連するコマンドを実行し、 前記コマンドが実行されると、前記コマンドをサーバで実行するためのリクエストを前記サーバに送信するように構成される。
【0037】
実施形態によっては、コマンドの実行は、トランザクション(取引)を完了するために十分なリソース残高が存在することの検証に基づく。
【0038】
実施形態によっては、取引は、クライアントデバイスのアプリケーションで、ユーザが資産を取得するために、リソースを交換することを含む。
【0039】
実施形態によっては、リソースは、クライアントデバイス上のアプリケーションでユーザによって取得されたクレジットを含む。
【0040】
上記システムはまたサーバを有する。このサーバは、クライアントデバイスから上記リクエストを受信すると、上記トランザクション要求に関連するトランザクションであってクライアントデバイスで行われるトランザクションを検証するために、サーバに格納された前記状態データのコピーを使用して、上記コマンドを実行するように構成される。またこのサーバは、サーバにおけるコマンドの実行に基づいて、クライアントデバイスにおける上記トランザクションの許可又は阻止のいずれかを実行するように構成される。
【0041】
ここで、「サーバ」という用語は、情報を記憶、処理、及び/又は共有するように構成された、プログラム可能なコンポーネント及び/又はプログラム不可能なコンポーネントを含む構造及び/又はモジュールを表す。具体的には、サーバは、様々な計算タスクを実行するために情報を引き出すことが可能な物理的又は仮想的な計算エンティティの任意の構成を含む。サーバは、単一のハードウェアサーバであってもよいし、並列又は分散アーキテクチャで動作する複数のハードウェアサーバであってもよい。一例では、サーバは、メモリ、少なくとも1つのプロセッサ、ネットワークアダプタなどのコンポーネントを含み、ブロードキャストネットワークや、状態データのコピーを格納するためのデータベースなどの他のエンティティに関して、情報の格納、処理、及び/又は共有を行うことができる。
【0042】
実施形態によっては、サーバは、クライアントデバイスに関連するコマンドをサーバで実行するために、当該コマンドを、クライアントデバイスのロジックコードに基づいて、サーバで実行可能なサーバコマンドに変換するように構成される。例えば、クライアントデバイスとサーバは、それぞれ異なるオペレーティングシステム上で動作するように構成されているかもしれない。この場合、クライアントデバイス上で実行可能なコマンドは、サーバのオペレーティングシステム上で実行可能なコマンドに変換される。
【0043】
実施形態によっては、サーバ上の状態データのコピーに十分なリソース残高が存在する場合、トランザクションは許可され、サーバ上の状態データのコピーに十分なリソース残高が存在しない場合、トランザクションは阻止される。
【0044】
実施形態によっては、サーバは、少なくともユーザの1つ以上の過去のトランザクションに基づいてサーバがユーザの信頼スコアを生成し、ユーザの信頼スコアに基づいてトランザクションを検証するように構成される。
【0045】
本開示は更に、上述の方法を実行するための処理ハードウェアを含むコンピュータ装置によって実行可能なコンピュータ可読命令が記憶された不揮発性のコンピュータ可読記憶媒体を含むコンピュータプログラム製品を提供する。
[図面の詳細説明]
【0046】
図1は、本開示の一実施形態による、クライアント・サーバ環境においてトランザクションを検証するためのシステム100の概略図である。システム100は、クライアントデバイス102と、クライアントデバイス102に通信可能に結合されたサーバ104とを備える。図示されているように、クライアントデバイス102は、通信ネットワーク(図示せず)を介してサーバ104に通信可能に結合されている。クライアントデバイス102は、メモリ106とプロセッサ108とを備える。サーバ104は、サーバメモリ110とサーバプロセッサ112とを備える。
【0047】
メモリ106及び/又はサーバメモリ110は、大型クラスのデータストレージ及び管理システムの1つ以上を含み、1つ又は複数の任意の適切な物理システムによって実装されてもよい。例えば、1つ以上のデータベースサーバ、大容量記憶媒体、メディアライブラリシステム、ストレージエリアネットワーク、データストレージクラウド、データベース(例えばMySQL)、及び/又はデータウェアハウスのような要素を含んでもよい。
【0048】
プロセッサ108及び/又はサーバプロセッサ112は、1つ又は複数の汎用処理装置を含む。例えば、マイクロプロセッサ、中央処理装置、複合命令セット・コンピューティング(CISC)マイクロプロセッサ、縮小命令セット・コンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサなどを含んでもよい。または、他の命令セットを実装するプロセッサや命令セットの組合せを実装するプロセッサを含んでもよい。または、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなどの1つ又は複数の特殊用途処理デバイスを含んでもよい。プロセッサ108及び/又はサーバプロセッサ112は、本明細書で説明する動作及びステップを実行するための命令を実行するように構成される。メモリ106は、ユーザに関連付けられた状態データを記憶するように構成される。またサーバメモリ110は、ユーザに関連付けられた状態データのコピーを記憶するように構成される。
【0049】
サーバ104及びクライアントデバイス102は、他のエンティティとの情報の保存、処理及び/又は共有を行うために、ネットワークアダプタのような1つ又は複数の他のコンポーネントを含んでもよい。例えば、放送ネットワークやデータベースなどから状態日付のコピーを受信して保存するために、そのようなコンポーネントを含んでもよい。
【0050】
当業者であれば、
図1は明瞭化のための単なる例示であり、本明細書における特許請求の範囲を不当に制限するものではないことが理解されよう。当業者は、本開示の実施形態の多くの変形、代替、及び修正を認識するであろう。
【0051】
図2は、例示的なシナリオに従って、ゲーム環境におけるトランザクションを検証する例示的なシナリオを示す相互作用図(interaction diagram)である。
図2に示されているように、ステップ202で、ユーザ201は、ゲームアカウントのリソース残高がゼロであるにもかかわらず、クライアントデバイス(
図1のクライアントデバイス102など)のゲーム環境のストアからカードを購入しようとする。そこでクライアントデバイス102にトランザクション要求を送る。ユーザ201は、チートアプリケーションを使用してリソース残高を変更し、トランザクション中に、カードを購入するのに十分な通貨があることをクライアントデバイス102に報告する。チートアプリケーションによって、ユーザに関連付けられた状態データが不正に改ざんされ、当該状態データで十分なリソース残高がクライアントデバイス102に示されたため、ステップ204で、トランザクション要求に関連するコマンドがクライアントデバイス102で実行される。コマンドが成功すると、ステップ206で、クライアントデバイスからサーバ(
図1のサーバ104など)へ、サーバでのコマンド実行のための要求が送信される。ステップ208で、サーバ104は、サーバ104に保存されている状態データのコピーを使用してコマンドを実行する。状態データのコピーは、チートアプリケーションによって改ざんされておらず、状態データのコピーには十分なリソース残高の存在が反映されていないため、コマンドは失敗する。ステップ210で、サーバ104はトランザクションを阻止し、クライアントデバイス102に通知する。
【0052】
図3は、本開示の一実施形態に従った、クライアント・サーバ環境におけるトランザクションを検証するためのステップを列挙した、方法300のフローチャートである。ステップ302で、クライアントデバイスにおいて、ユーザからトランザクション要求が受け取られる。ステップ304で、ユーザに対応する状態データであってクライアントデバイスにおける状態データに基づいて、トランザクション要求に関連するコマンドがクライアントデバイスで実行される。クライアントデバイスでコマンドが実行されると、ステップ306で、上記コマンドをサーバで実行するための要求がクライアントデバイスによってサーバに送信される。クライアントデバイスから要求を受信すると、ステップ308で、前記トランザクション要求に関連するトランザクションであって前記クライアントデバイスで行われるトランザクションをサーバで検証するために、サーバに格納された上記状態データのコピーを使用して、上記コマンドがサーバによって実行される。ステップ310で、サーバにおけるコマンドの実行に基づいて、クライアントデバイスにおけるトランザクションの許可又は阻止のいずれかがサーバによって実行される。
【0053】
本願明細書に記載された全ての装置、モジュール、及び手段は、ソフトウェア又はハードウェア要素、あるいはそれらの任意の種類の組み合わせで実装され得ることに留意しなければならない。本願明細書に記載されている様々なエンティティによって実行される全てのステップ、及び様々なエンティティによって実行されるように記載されている機能は、それぞれのエンティティがそれぞれのステップ及び機能を実行するように構成されていることを意味することを意図している。以下の特定の実施形態の説明において、外部のエンティティによって実行される特定の機能又はステップが、その特定のステップ又は機能を実行するそのエンティティの特定の詳細な要素の説明に反映されていないとしても、これらの方法及び機能は、それぞれのソフトウェア又はハードウェア要素、又はそれらの任意の種類の組み合わせで実装され得ることは、当業者にとって明らかであるはずである。本開示の特徴は、添付の特許請求の範囲によって定義される範囲から逸脱することなく、様々な組み合わせで組み合わせることが可能であることも理解されよう。
【0054】
添付の特許請求の範囲によって定義される範囲から逸脱することなく、前述の本開示の実施形態を変更することが可能である。本開示を説明及び請求するために使用される「含む」、「備える」、「組み込む」、「有する」、「である」などの表現は、非排他的に解釈されることを意図しており、すなわち、明示的に記載されていない項目や部品、構成要素が存在することを許容する。要素が複数であることを明示しなかったとしても、当該要素が複数存在することを妨げない。
【手続補正書】
【提出日】2023-03-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
クライアント・サーバ
・ゲーム環境において
購入取引を検証する方法であって、
前記購入取引は、クライアントデバイスのゲームアプリケーションにおいてユーザが資産を取得するためにリソースを交換することを含み、前記方法は、
・
前記クライアントデバイスにおいて、
前記ユーザから
購入取引要求を受け取ることと;
・ 前記ユーザに対応する状態データであって前記クライアントデバイスにおける状態データに基づいて、前記
購入取引要求に関連するコマンドを、前記クライアントデバイスで実行することと;
・ 前記クライアントデバイスで前記コマンドが実行されると、前記コマンドをサーバで実行するために、前記クライアントデバイスから前記サーバにリクエストを送信することと;
・ 前記クライアントデバイスから前記リクエストを受信すると、前記
購入取引要求に関連する
購入取引であって前記クライアントデバイスで行われる
購入取引を前記サーバで検証するために、前記サーバに格納された前記状態データのコピーを使用して、前記コマンドをサーバによって実行することと;
・ 前記サーバにおける前記コマンドの実行に基づいて、前記クライアントデバイスにおける前記
購入取引の許可又は阻止のいずれかを、前記サーバによって実行することと;
を含
み、
前記サーバによる前記コマンドの実行は、前記クライアントデバイスのロジックコードに基づいて、前記クライアントデバイスに関連付けられる前記コマンドを、前記サーバで実行可能なサーバコマンドに変換することを含み、
前記サーバによる前記購入取引の検証は、あるプログラム言語で記述された前記コマンドを別のプログラミング言語に変換することに基づく、
方法。
【請求項2】
前記コマンドの実行は、前記
購入取引を完了するために十分なリソース残高が存在することの検証に基づ
き、ただし前記リソース残高は、前記ゲームアプリケーションで使用される仮想通貨やクレジットを含む、請求項
1に記載の方法。
【請求項3】
前記サーバ上の前記状態データのコピーに十分なリソース残高が存在する場合は前記
購入取引が許可され、前記サーバ上の前記状態データのコピーに十分なリソース残高が存在しない場合は
購入取引は阻止される、請求項
2に記載の方法。
【請求項4】
前記クライアントデバイスにおける前記
購入取引を許可又は阻止することは、
前記ユーザの1つ又は複数の過去の
購入取引に少なくとも基づいて、前記サーバによって前記ユーザの信頼スコアを生成することと;
前記信頼スコアに基づいて前記
購入取引を検証することと;
を含む、請求項1から
3のいずれかに記載の方法。
【請求項5】
前記リソースは、前記クライアントデバイスの
前記ゲームアプリケーションで前記ユーザによって取得されたクレジットを含む、請求項1から4のいずれかに記載の方法。
【請求項6】
クライアント・サーバ
・ゲーム環境において
ゲームアプリケーション内での購入取引を検証するためのシステムであって、クライアントデバイスと、ネットワークを介して前記クライアントデバイスと通信可能に結合されるサーバとを備え、
前記購入取引は、前記クライアントデバイスの前記ゲームアプリケーションにおいてユーザが資産を取得するためにリソースを交換することを含み、前記クライアントデバイスは、
・ ユーザから
購入取引要求を受け取り、
・ 前記ユーザに対応する状態データに基づいて、
購入取引要求に関連するコマンドを実行し、
・ 前記クライアントデバイスで前記コマンドが実行されると、前記コマンドをサーバで実行するためのリクエストを前記サーバに送信する、
ように構成され、前記サーバは、
・ 前記クライアントデバイスから前記リクエストを受信すると、前記
購入取引要求に関連する
購入取引であって前記クライアントデバイスで行われる
購入取引を検証するために、前記サーバに格納された前記状態データのコピーを使用して、前記コマンドを実行し、
・ 前記サーバにおける前記コマンドの実行に基づいて、前記クライアントデバイスにおける前記
購入取引の許可又は阻止のいずれかを実行する、
ように構成され
、
前記サーバは、前記コマンドを前記サーバで実行するために、前記クライアントデバイスに関連する前記コマンドを、前記クライアントデバイスのロジックコードに基づいて、前記サーバで実行可能なサーバコマンドに変換するように構成され、
前記サーバによる前記購入取引の検証は、あるプログラム言語で記述された前記コマンドを別のプログラミング言語に変換することに基づく、
システム。
【請求項7】
前記コマンドの実行は、前記
購入取引を完了するために十分なリソース残高が存在することの検証に基づ
き、ただし前記リソース残高は、前記ゲームアプリケーションで使用される仮想通貨やクレジットを含む、請求項
6に記載のシステム。
【請求項8】
前記サーバ上の前記状態データのコピーに十分なリソース残高が存在する場合は前記
購入取引が許可され、前記サーバ上の前記状態データのコピーに十分なリソース残高が存在しない場合は
購入取引は阻止される、請求項
7に記載のシステム。
【請求項9】
前記サーバは、
前記ユーザの1つ又は複数の過去の
購入取引に少なくとも基づいて、前記サーバによって前記ユーザの信頼スコアを生成し、
前記信頼スコアに基づいて前記
購入取引を検証する、
ように構成される、請求項
6から
8のいずれかに記載のシステム。
【請求項10】
前記リソースは、前記クライアントデバイスの
前記ゲームアプリケーションで前記ユーザによって取得されたクレジットを含む、請求項
6から
9のいずれかに記載のシステム。
【請求項11】
請求項1から
5のいずれかに記載の方法を実行するための処理ハードウェアを含むコンピュータ装置によって実行可能なコンピュータ可読命令が記憶された不揮発性のコンピュータ可読記憶媒体を含む、コンピュータプログラム製品。
【国際調査報告】