(57)【要約】  データ管理を実行するために、コンピュータストレージ媒体上でエンコードされたコンピュータプログラムを含んでいる、方法、システム、および装置。方法のうちの１つは、ログインユーザの認証情報を取得することと、ログインユーザの認証情報のデジタル要約を生成することと、ログインユーザの認証情報のデジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の比較に基づいて、ログインユーザを認証することと、を含む。
2020511803.tif 000002
【特許請求の範囲】
【請求項１】
データ管理のためのコンピュータ実装方法であって、
ログインユーザの認証情報を取得することと、
前記ログインユーザの前記認証情報のデジタル要約を生成することと、
前記ログインユーザの前記認証情報の前記デジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の比較に基づいて、前記ログインユーザを認証することと、を含んでいる、コンピュータ実装方法。
【請求項２】
前記認証情報が前記ログインユーザに関連付けられたアカウント識別情報を含んでいる、請求項１に記載の方法。
【請求項３】
前記認証情報が前記アカウント識別情報に関連付けられたパスワードを含んでいる、請求項２に記載の方法。
【請求項４】
前記認証情報の前記デジタル要約が、前記認証情報のハッシュ値を含んでいる、請求項１から３のいずれかに記載の方法。
【請求項５】
前記ログインユーザの前記認証情報の前記デジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の前記比較に基づいて前記ログインユーザを認証することが、
前記ログインユーザの前記認証情報の前記デジタル要約を前記ブロックチェーンに格納された前記１つまたは複数のデジタル要約と比較することと、
前記認証情報の前記デジタル要約が前記ブロックチェーンに格納された前記デジタル要約のうちの１つと同じであるということに応答して、前記ログインユーザを認証することと、を含んでいる、請求項１から４のいずれかに記載の方法。
【請求項６】
前記ログインユーザの前記認証情報の前記デジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の前記比較に基づいて前記ログインユーザを認証することが、
前記ブロックチェーンの前記１つまたは複数のノードから前記比較の結果を取得することであって、前記比較が前記ブロックチェーンの前記１つまたは複数のノードによって実行される、取得することと、
前記取得された結果に従って、前記認証情報の前記デジタル要約が前記ブロックチェーンに格納された前記デジタル要約のうちの１つと同じであるということに応答して、前記ログインユーザを認証することと、を含んでいる、請求項１から５のいずれかに記載の方法。
【請求項７】
前記ブロックチェーンに格納された前記１つまたは複数のデジタル要約の各々が、対応する前記デジタル要約を前記ブロックチェーンに格納することに関連付けられたトランザクション識別情報を含んでおり、
前記方法が、前記ログインユーザを正常に認証することに応答して、前記認証情報の前記デジタル要約に一致する前記ブロックチェーンに格納されたデジタル要約のうちの１つを格納することに関連付けられたトランザクション識別情報を取得することをさらに含んでいる、請求項１から６のいずれかに記載の方法。
【請求項８】
前記ログインユーザの前記認証情報を取得する前に、
登録対象のユーザの認証情報を取得することと、
前記登録対象のユーザの前記認証情報に基づいてデジタル要約を生成することと、
前記登録対象のユーザの前記認証情報に基づいて生成された前記デジタル要約を、前記ブロックチェーンに格納するために前記ブロックチェーンの１つまたは複数のノードに送信することであって、前記送信されたデジタル要約が、前記ブロックチェーンに格納された前記１つまたは複数のデジタル要約のうちの１つである、送信することと、をさらに含んでいる、請求項１から７のいずれかに記載の方法。
【請求項９】
前記登録対象のユーザの前記認証情報を取得することが、
サービスシステムから転送された登録要求を受信することであって、前記登録要求が、前記登録対象のユーザによって要求される、受信することと、
リダイレクトアドレスを前記サービスシステムに提供し、前記サービスシステムが、前記リダイレクトアドレスに対応する登録ページを描画することと、
前記登録ページを介して、前記登録対象のユーザから前記認証情報を収集することと、を含んでいる、請求項８に記載の方法。
【請求項１０】
前記登録対象のユーザの前記認証情報を取得することが、
前記認証情報を使用して、前記登録対象のユーザを１つまたは複数の他のサービスシステムで認証するための許可を、前記登録対象のユーザから取得することをさらに含んでいる、請求項９に記載の方法。
【請求項１１】
前記登録対象のユーザの認証情報を取得することが、
前記登録対象のユーザの認証情報およびユーザ詳細情報を取得することと、
前記ユーザ詳細情報をストレージシステムに格納することと、を含んでいる、請求項８に記載の方法。
【請求項１２】
トランザクションを実行することの要求を前記ログインユーザから取得することと、
前記トランザクションを実行するために、前記ログインユーザのユーザ詳細情報を前記ストレージシステムから取得することと、
前記ログインユーザの前記ユーザ詳細情報に少なくとも基づいて前記トランザクションを実行することと、をさらに含んでいる、請求項１１に記載の方法。
【請求項１３】
前記トランザクションを実行することの前記要求を取得した後に、前記トランザクションを実行するために、前記ユーザ詳細情報を前記ストレージシステムから取得する前に、
前記ログインユーザの前記認証情報の前記デジタル要約と前記ブロックチェーンに格納された前記１つまたは複数のデジタル要約との間の別の比較に基づいて、前記ログインユーザの認証を取得することをさらに含んでいる、請求項１２に記載の方法。
【請求項１４】
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサに結合されており、請求項１から１３のいずれかの前記方法を実行するために前記１つまたは複数のプロセッサによって実行可能な命令が格納されている、１つまたは複数のコンピュータ可読メモリと、を備えている、データ管理システム。
【請求項１５】
請求項１から１３のいずれかに記載の前記方法を実行するために複数のモジュールを備えている、データ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、一般に、ブロックチェーンベースのデータ管理のための方法およびデバイスに関連している。
【背景技術】
【０００２】
多くのインターネットベースのアプリケーションの場合、ユーザは、特定の機能にアクセスするために、ユーザ自身の情報を登録する必要があることが多い。例えば、ユーザは、ユーザアカウントおよびユーザアカウントのパスワードを作成し、連絡先情報および支払い方法などを入力する必要があることがある。ユーザアカウントおよびパスワードなどの登録情報の一部は、ユーザがアカウントにアクセスしようとするときに、ユーザの身元の認証に使用されることがある。インターネットへの自由なアクセスに起因して、プライベートデータの漏洩事件が頻繁に発生している。それらの事件の少なくとも一部では、漏洩が、ユーザ登録情報を収集して格納するオンラインサービスプロバイダから発生した。
【０００３】
現在の技術では、オンラインサービスプロバイダまたはプライベートデータのその他の保有者は、そのようなプライベートデータを保護するための十分な保護機構を欠いていることがあり、それが頻繁なデータ漏洩につながった。複数の場所でのデータ格納は、データ漏洩の可能性をさらに増やすことがある。例えば、ハッカーは、オンラインサービスプロバイダによって維持されているそのようなデータ格納場所のうちの１つまたは複数に侵入し、ユーザデータを悪用するためにエクスポートすることがある。さらに、現在のソリューションでは、オンラインサービスプロバイダは、多くの場合、独自の格納ルールおよびアクセスルールを実施し、単独の制御を維持する。データアクセスは、セキュリティ分析のため、またはユーザが権利を主張するために、追跡してほとんど証拠を残さないことが困難である。したがって、プライバシー保護のための強化されたデータセキュリティは、解決されるべく、残されている困難な問題である。
【０００４】
加えて、各ユーザは、同じような個人情報が入力されるにもかかわらず、複数のアカウントをさまざまなオンラインアプリケーションに登録する必要があることがある。このプロセスは反復的で退屈であり、アカウントとパスワードの組み合わせは、混乱しやすい。そのようなユーザにとっての不利益が、ハッカーにとっては利益になることが分かっている。ハッカーは、特定のオンラインアプリケーションに関する特定の盗まれたアカウントとパスワードの組み合わせに基づいて、ダミーのアカウントとパスワードの組み合わせのライブラリを生成し、このダミーの組み合わせを使用して試行錯誤することによって、他のオンラインアプリケーションにログインすることができる。ユーザは、異なるオンラインアプリケーションに対して、共通のアカウントとパスワードの組み合わせを使用することが多いため、データ漏洩の連鎖が、異なるオンラインアプリケーションにわたって広がることがある。したがって、プライベートデータを安全に格納できるシステムを持つことが望ましい。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書のさまざまな実施形態は、ブロックチェーンベースのデータ管理のためのシステム、方法、および非一時的コンピュータ可読媒体を含むが、これらに限定されない。
【０００６】
一実施形態によれば、データ管理のためのコンピュータ実装方法は、ログインユーザの認証情報を取得することと、ログインユーザの認証情報のデジタル要約を生成することと、ログインユーザの認証情報のデジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の比較に基づいて、ログインユーザを認証することと、を含む。
【０００７】
一部の実施形態では、この認証情報は、ログインユーザに関連付けられたアカウント識別情報またはアカウント識別情報に関連付けられたパスワードのうちの少なくとも１つを含む。
【０００８】
他の実施形態では、認証情報のデジタル要約は、認証情報のハッシュ値を含む。
【０００９】
さらに他の実施形態では、この方法は、ログインユーザの認証情報を取得する前に、登録対象のユーザの認証情報を取得することと、登録対象のユーザの認証情報に基づいてデジタル要約を生成することと、登録対象のユーザの認証情報に基づいて生成されたデジタル要約を、ブロックチェーンに格納するためにブロックチェーンの１つまたは複数のノードに送信することであって、送信されたデジタル要約が、ブロックチェーンに格納された１つまたは複数のデジタル要約のうちの１つである、送信することと、をさらに含む。
【００１０】
さらに他の実施形態では、登録対象のユーザの認証情報を取得することが、サービスシステムから転送された登録要求を受信することであって、この登録要求が、登録対象のユーザによって要求される、受信することと、     リダイレクトアドレスをサービスシステムに提供し、サービスシステムが、このリダイレクトアドレスに対応する登録ページを描画することと、この登録ページを介して、登録対象のユーザから認証情報を収集することと、を含む。
【００１１】
一部の実施形態では、登録対象のユーザの認証情報を取得することが、認証情報を使用して、登録対象のユーザを１つまたは複数の他のサービスシステムで認証するための許可を、登録対象のユーザから取得することをさらに含む。
【００１２】
他の実施形態では、登録対象のユーザの認証情報を取得することが、登録対象のユーザの認証情報およびユーザ詳細情報を取得することと、ユーザ詳細情報をストレージシステムに格納することと、を含む。
【００１３】
さらに他の実施形態では、この方法は、トランザクションを実行することの要求をログインユーザから取得することと、トランザクションを実行するために、ログインユーザのユーザ詳細情報をストレージシステムから取得することと、ログインユーザのユーザ詳細情報に少なくとも基づいてトランザクションを実行することと、をさらに含む。
【００１４】
さらに他の実施形態では、この方法は、トランザクションを実行することの要求を取得した後に、トランザクションを実行するために、ユーザ詳細情報をストレージシステムから取得する前に、ログインユーザの認証情報のデジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の別の比較に基づいて、ログインユーザの認証を取得することをさらに含む。
【００１５】
一部の実施形態では、ログインユーザの認証情報のデジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の比較に基づいてログインユーザを認証することが、ログインユーザの認証情報のデジタル要約を、ブロックチェーンに格納された１つまたは複数のデジタル要約と比較することと、認証情報のデジタル要約がブロックチェーンに格納されたデジタル要約のうちの１つと同じであるということに応答して、ログインユーザを認証することと、を含む。
【００１６】
他の実施形態では、ログインユーザの認証情報のデジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の比較に基づいてログインユーザを認証することが、ブロックチェーンの１つまたは複数のノードから比較の結果を取得することであって、この比較がブロックチェーンの１つまたは複数のノードによって実行される、取得することと、取得された結果に従って、認証情報のデジタル要約がブロックチェーンに格納されたデジタル要約のうちの１つと同じであるということに応答して、ログインユーザを認証することと、を含む。
【００１７】
さらに他の実施形態では、ブロックチェーンに格納された１つまたは複数のデジタル要約の各々は、対応するデジタル要約をブロックチェーンに格納することに関連付けられたトランザクション識別情報を含んでおり、この方法は、ログインユーザを正常に認証することに応答して、認証情報のデジタル要約に一致するブロックチェーンに格納されたデジタル要約のうちの１つを格納することに関連付けられたトランザクション識別情報を取得することをさらに含む。
【００１８】
一部の実施形態では、データ管理システムは、１つまたは複数のプロセッサと、１つまたは複数のプロセッサに結合されており、前述の実施形態のいずれかの方法を実行するために１つまたは複数のプロセッサによって実行可能な命令が格納されている、１つまたは複数のコンピュータ可読メモリとを備える。
【００１９】
他の実施形態では、データ管理装置が、前述の実施形態のいずれかの方法を実行するために、複数のモジュールを備える。
【００２０】
別の実施形態によれば、データ管理システムは、１つまたは複数のプロセッサと、１つまたは複数のプロセッサに結合されており、システムに動作を実行させるように１つまたは複数のプロセッサによって実行可能な命令を使用して構成されている、１つまたは複数の非一時的コンピュータ可読メモリとを備えており、それらの動作は、ログインユーザの認証情報を取得することと、ログインユーザの認証情報のデジタル要約を生成することと、ログインユーザの認証情報のデジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の比較に基づいてログインユーザを認証することと、を含む。
【００２１】
さらに別の実施形態によれば、非一時的コンピュータ可読記憶媒体が、１つまたは複数のプロセッサに動作を実行させるように１つまたは複数のプロセッサによって実行可能な命令を使用して構成されており、それらの動作は、ログインユーザの認証情報を取得することと、ログインユーザの認証情報のデジタル要約を生成することと、ログインユーザの認証情報のデジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の比較に基づいてログインユーザを認証することと、を含む。
【００２２】
さらに別の実施形態によれば、データ管理装置が、ログインユーザの認証情報を取得するための取得モジュールと、ログインユーザの認証情報のデジタル要約を生成するための生成モジュールと、ログインユーザの認証情報のデジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の比較に基づいて、ログインユーザを認証するための認証モジュールとを備えてよい。
【００２３】
本明細書において開示される実施形態は、１つまたは複数の技術的効果を有する。一部の実施形態では、方法およびシステムは、認証情報を安全に格納できる。ブロックチェーンに格納することで、元のデータの正確な記録維持を可能にする。他の実施形態では、ある実体がその情報を登録するときに、登録情報（例えば、アカウントおよびパスワード）をブロックチェーントランザクションでブロックチェーンに格納することができる。したがって、登録情報は、認証中のユーザにとって変更不可能かつ取得可能になる。さらに他の実施形態では、方法およびシステムは、認証情報の相互利用を許可することができる。さらに他の実施形態では、ユーザは、あるサービスである登録を実行し、認証情報の相互利用を許可することによって、同じ認証情報を使用して他のサービスにアクセスすることができる。これによって、複数のサービスで登録を繰り返す必要性をなくし、認証情報を忘れる可能性を低くする。さらに他の実施形態では、方法およびシステムは、ログインユーザに関連するユーザ詳細情報（例えば、連絡先、住所、銀行口座）の格納をストレージクラスターなどに集中させることができる。ログインユーザが認証されるときに、トランザクションの開始などのより複雑な動作をさらに検証するために、対応するユーザ詳細情報を取得することができる。一部の実施形態では、オンラインサービスプロバイダはユーザデータをローカルに格納する必要がなく、これによって、システム保守のコストを下げ、データセキュリティを強化する。他の実施形態では、ユーザ詳細情報またはその表現をブロックチェーンに格納し、改ざんを防ぐこともできる。全体的に、ユーザデータがより安全に格納され、データ漏洩の可能性が低くなる。
【００２４】
本明細書で開示されたシステム、方法、および非一時的コンピュータ可読媒体のこれらおよびその他の特徴だけでなく、構造の関連する要素および部分の組み合わせの動作および機能の方法ならびに製造の経済性が、添付の図面を参照して以下の説明および添付の特許請求の範囲を検討したときに、さらに明らかになってよく、それらすべてが、類似する参照番号がさまざまな図内の対応する部分を指定している本明細書の一部を形成する。しかし、それらの図面が単に例示および説明を目的としており、制限として意図されていないということが、明確に理解されるべきである。
【図面の簡単な説明】
【００２５】
【図１Ａ】さまざまな実施形態に従って、ブロックチェーンベースのデータ管理システムの例を示す図である。
【図１Ｂ】さまざまな実施形態に従って、ブロックチェーンネットワークの例を示す図である。
【図２】さまざまな実施形態に従って、ユーザデータを収集して格納するための方法の例を示す図である。
【図３】さまざまな実施形態に従って、ユーザアカウントを認証するための方法の例を示す図である。
【図４】さまざまな実施形態に従って、ユーザデータを取得するための方法の例を示す図である。
【図５】さまざまな実施形態に従って、ブロックチェーンベースのデータ管理のための方法の例のフローチャートを示す図である。
【図６】さまざまな実施形態に従って、ブロックチェーンベースのデータ管理コンピュータシステムの例のブロック図を示している。
【図７】本明細書に記載された実施形態のいずれかが実装されてよいコンピュータシステムの例のブロック図を示している。
【発明を実施するための形態】
【００２６】
本明細書において開示される実施形態は、ブロックチェーンベースのデータ管理システム、方法、および非一時的コンピュータ可読媒体を含むが、これらに限定されない。さまざまな実施形態では、特定のユーザデータが、ブロックチェーンに格納されるか、またはブロックチェーンを介して共有されてよい。例えば、データ管理は、さまざまなオンラインアプリケーション用のユーザデータの収集を管理してよい。一部の実施形態では、ユーザデータは、データ管理センター（ストレージシステムと呼ばれる）に登録されてよく、このデータ管理センターは、ユーザ詳細情報を格納し、認証情報の要約をブロックチェーンにアップロードする。この１回限りの登録によって、ユーザは、データ管理センターにリンクした複数のオンラインサービスプロバイダへのアクセスを実現することができ、プロバイダごとに登録を繰り返す必要がない。他の実施形態では、オンラインサービスプロバイダは、ユーザデータを格納する個別のデータベースを維持する必要がない。他の実施形態では、異なるオンラインサービスプロバイダが、ブロックチェーンにアクセスすることによってユーザを認証し、ユーザ詳細情報をデータ管理センターから取得して、トランザクションを実行するか、またはユーザによって要求されたその他の動作を実行することができる。ユーザデータを集中した場所に格納することによって、ユーザがプライベートデータを複数回サブミットする必要がなくなり、複数の場所にサブミットする必要もなくなるため、データ漏洩の可能性が低くなる。さらに他の実施形態では、ユーザは、一度登録すれば、ブロックチェーンへのアクセスを介して認証情報を相互利用する異なるオンラインサービスプロバイダで認証されることが可能になる。
【００２７】
さまざまな実施形態では、開示されたデータ管理システム、方法、および非一時的コンピュータ可読媒体は、誰がネットワークへの参加、合意プロトコルの実行、および共有ブロックチェーン台帳の維持を許可されるかに応じて、さまざまなタイプのブロックチェーンに基づいてよい。さまざまなタイプのブロックチェーンは、例えば、パブリックブロックチェーン、コンソーシアムブロックチェーン、プライベートブロックチェーンなどを含んでよい。以下の説明では、コンソーシアムブロックチェーンを参照する。それにもかかわらず、開示されたデータ管理システム、方法、および非一時的コンピュータ可読媒体は、他のタイプのブロックチェーンに対して適用されてもよい。
【００２８】
ブロックチェーンは、ネットワーク内のさまざまなノード（例えば、コンピューティングデバイス）によって動作が実行されるため、分散化されているか、または部分的に集中化されたデータベースであると考えることができ、一般に分散型台帳と呼ばれる。すべての情報がブロックチェーンに書き込まれて保存されるか、またはブロックチェーンから読み取られてよい。ノードは、例えば、ブロックチェーンネットワークをサポートし、ブロックチェーンネットワークの円滑な実行を維持する、コンピューティングデバイスまたは大規模なコンピュータシステムである。各ノードは、ブロックチェーンの機能の一部または全部を提供してよい。例えば、合意の検証を行うノードは、合意参加ノード（または合意ノード）と呼ばれてよい。合意は、一般に受け入れられる処理結果を達成するための、ブロックチェーンノードのネットワークに関するルールのアルゴリズムであってよい。合意を通じて、データが継続的にブロックのチェーンに追加される。ブロックに対して変更が行われた場合、そのブロックの、チェーン内の先行するブロックへのリンクが無効になり、それがすべてのネットワーク参加者に見えるようになり、ネットワーク参加者は、合意ルールを通じて、さらなる不正な動作を防ぐことができる。
【００２９】
コンソーシアムブロックチェーンとは、事前に設定されたノードによって制御される合意手順を伴うブロックチェーンのことである。このブロックチェーンは、すべての参加者または承認された参加者のみが、アクセスすること、またはハイブリッドアクセス方法を採用することを、許可することができる。例えば、ルートハッシュおよびそのＡＰＩ（アプリケーションプログラムインターフェイス：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）が一般公開されてよく、外部の関係者は、ＡＰＩを使用して特定の数の照会を行い、ブロックチェーンの状態に関連する情報を取得することを許可される。
【００３０】
コンソーシアムブロックチェーンは、より一般的なブロックチェーンであるパブリックブロックチェーンと比較した場合に、最もよく理解することができる。パブリックブロックチェーンは、アクセス制限を有せず、つまり、インターネットに接続している完全にすべての人が、パブリックブロックチェーンの参加者になることができる。さらに具体的には、世界中のすべての人が、ブロックチェーンに含まれているデータを読み取ることができ、世界中のすべての人が、パブリックブロックチェーン上でブロックチェーントランザクションを実行することを許可される。また、誰がブロックチェーンの合意プロセスに参加できるかに関して制限がなく、合意プロセスは、ブロックをブロックチェーンに追加できる個人または実体を決定するプロセスである。パブリックブロックチェーンは、ブロックチェーンに対する制御がどの個人または実体の管理下にもなく、完全に分散化されていると考えられる。
【００３１】
コンソーシアムブロックチェーンは、許可されるという点において、パブリックブロックチェーンとは異なっており、したがって、インターネット接続を有しているだけで、誰もがコンソーシアムブロックチェーンにアクセスできるわけではない。このタイプのブロックチェーンは、半分散化されているとして説明することもできる。コンソーシアムブロックチェーンに対する制御は、単一の実体に対して許可されず、承認された個人のグループに対して許可される。コンソーシアムブロックチェーンでは、合意プロセスがパブリックブロックチェーンの合意プロセスと異なる可能性が高い。誰でもこの手順に参加できるのではなく、コンソーシアムブロックチェーンの合意の参加者は、ネットワーク上の事前に承認されたノードのグループである可能性が高い。それらのノードは、さまざまな国、企業、またはその他の実体に対応してよい。したがって、コンソーシアムブロックチェーンは、パブリックブロックチェーンに固有のセキュリティ機能を有しながら、ネットワークに対するより高度な制御も可能にする。
【００３２】
図１Ａは、さまざまな実施形態に従ってさまざまな開示されたステップおよび方法を実行するためのシステム１１０の例を示している。図に示されているように、システム１１０は、ストレージシステム１１１、ブロックチェーンシステム１１２、および１つまたは複数のサービスシステム（例えば、サービスシステム１１３、サービスシステム１１４など）を備えてよく、これらの各々は、ネットワーク１１９によって表されたさまざまなタイプの通信を介して一緒に結合された１つまたは複数の物理ハードウェアデバイスまたは仮想デバイスに対応してよい。サービスシステムは、「サービス」という単語が単にさまざまなシステムの名前を区別するためであるため、サービスを提供することに限定されない。サービスシステム１１３およびサービスシステム１１４のみが示されているが、多くのその他のサービスシステムが同様にシステム１１０に含まれてよい。
【００３３】
ストレージシステム１１１、ブロックチェーンシステム１１２、サービスシステム１１３、およびサービスシステム１１４の各々は、サーバ、コンピュータ、携帯電話などの、１つまたは複数のコンピューティングデバイスにおいて実装されてよい。例えば、システムの各々は、サーバのクラスターにおいて実装されてよい。サーバのクラスターは、負荷バランシングを採用してよい。
【００３４】
ストレージシステム１１１、ブロックチェーンシステム１１２、サービスシステム１１３、およびサービスシステム１１４は、この図では単一のコンポーネントとして示されているが、これらのシステムを単一のデバイスまたは一緒に結合された複数のデバイスとして実装できるということが理解されるべきである。すなわち、図１Ａのシステムのうちの２つ以上が単一のシステムに統合されるか、または別々のシステムとして実装されてよい。例えば、ストレージシステム１１１およびサービスシステム１１３は、１つまたは複数のコンピューティングデバイスを備えているデータ管理システム１１８に統合されてよい。データ管理システム１１８は、ブロックチェーンベースのデータ管理システムと呼ばれてもよい。ストレージシステム１１１およびサービスシステム１１３は、統合された場合、統合されたシステムのさまざまなモジュールまたは同様のコンポーネントとして実装されてよい。
【００３５】
さまざまな実施形態では、ストレージシステム１１１は、さまざまなサービスシステムがアクセスできる集中化されたストレージデバイス（例えば、サーバ）のクラスターとして実装されてよい。ストレージシステム１１１は、認証情報以外のユーザデータを収集し、格納してよい。例えば、ユーザ詳細情報は、ストレージシステム１１１によって維持されるデータベースに格納されてよい。ブロックチェーンシステム１１２Ａは、ユーザごとの認証データなどの、特定のユーザデータの表現を収集し、格納してよい。例えば、認証データのデジタル要約は、ブロックチェーンを維持する各ノードのブロックチェーンのローカルコピーに格納されてよい。したがって、個々のサービスシステムがユーザデータを格納する必要はない。
【００３６】
ストレージシステム１１１、ブロックチェーンシステム１１２、サービスシステム１１３、およびサービスシステム１１４の各々は、システム１１０の他のデバイスにアクセスするために、適切なソフトウェア（例えば、データ管理アプリケーションプログラムインターフェイス）および／またはハードウェア（例えば、ワイヤ、無線接続）と共にインストールされてよい。ストレージシステム１１１、ブロックチェーンシステム１１２、サービスシステム１１３、およびサービスシステム１１４の各々は、１つまたは複数のプロセッサおよび１つまたは複数のプロセッサに結合された１つまたは複数のメモリを含んでよい。それらのメモリは、非一時的かつコンピュータ可読であってよく、１つまたは複数のプロセッサに、本明細書に記載された動作を実行させるように、１つまたは複数のプロセッサによって実行可能な命令を使用して構成されてよい。
【００３７】
一般に、ストレージシステム１１１、ブロックチェーンシステム１１２、サービスシステム１１３、およびサービスシステム１１４は、ネットワーク１１９を介して互いに通信可能であってよい。例えば、ストレージシステム１１１、ブロックチェーンシステム１１２、サービスシステム１１３、およびサービスシステム１１４は、データを伝達できる１つまたは複数の有線ネットワークまたは無線ネットワーク（例えば、インターネット）を介して互いに通信可能であってよい。システムコンポーネントのさまざまな態様が、図１Ｂ〜７を参照して下でさらに詳細に説明される。
【００３８】
図１Ｂは、さまざまな実施形態に従って、ブロックチェーンネットワーク１２０の例を示している。図に示されているように、ブロックチェーンネットワーク１２０は、前述したブロックチェーンシステム１１２を備えてよい。ブロックチェーンシステム１１２は、複数のブロックチェーンノード（例えば、ノード１、ノード２、ノード３、ノード４、ノードｉなど）を備えてよい。複数のブロックチェーンノードは、あるブロックチェーンノードが別のブロックチェーンノードと通信するネットワーク（例えば、ピアツーピアネットワーク）を形成してよい。図に示されているブロックチェーンノードの順序および数は、説明を簡単にするための単なる例である。ブロックチェーンノードは、サーバ、コンピュータなどにおいて実装されてよい。各ブロックチェーンノードは、ＴＣＰ／ＩＰなどのさまざまなタイプの通信方法を介して一緒に結合された１つまたは複数の物理ハードウェアデバイスまたは仮想デバイスに対応してよい。分類に応じて、ブロックチェーンノードは、満杯になったノード、Ｇｅｔｈノード、合意ノードなどを含んでよい。
【００３９】
さまざまな実施形態では、ブロックチェーンシステム１１２の１つまたは複数のノードは、前述したストレージシステム１１１、サービスシステム１１３、およびサービスシステム１１４などの、他のシステムおよびデバイスと情報をやりとりしてよい。この情報のやりとりは、例えばトランザクション、認証、契約などの目的で、データの送信および／または受信を含んでよい。１つの例では、ノードＡ（例えば、携帯電話、コンピュータなど）は、データ管理システム１１８のデバイスに対応してよく、情報をブロックチェーンに格納するためにノード１（または、ブロックチェーンシステム１１２の複数のノード）に送信してよい。例えば、ノードＡは、サーバクラスターとして実装されたストレージシステム１１１のサーバであってよい。格納プロセスは、ブロックチェーントランザクションを介して実行されてよい。例えば、情報がブロックチェーン契約（例えば、スマートコントラクト）に書き込まれてよく、ブロックチェーントランザクションがノード１（または、ブロックチェーンの合意ルールに基づいてそのような権限を有する１つまたは複数の他のノード）によって開始され、契約をブロックチェーンにデプロイしてよい。他のブロックチェーントランザクションと同様に、ここでブロックチェーントランザクションは、トランザクションハッシュに対応してよい。このハッシュは、ハッシュ値を表し、データ（例えば、実行されるトランザクションに関連付けられた身元情報、トランザクション情報）に対して実行されるハッシュ関数またはアルゴリズムの数値出力であってよい。ブロックチェーンは、ブロックチェーントランザクションのハッシュ値を格納してよい。
【００４０】
後で（例えば、検証のために）情報を取得する必要があるときに、ノードＡ／ノードＢ（例えば、携帯電話、コンピュータなど）は、別のブロックチェーントランザクションを開始してブロックチェーンから情報を取得するように、ノード１／ノード２（または、ブロックチェーンシステム１１２の複数のノード）に対して指示してよい。別のブロックチェーントランザクションは、トランザクションハッシュに従って情報を取得するために、アドレスを照会してよい。代替として、ノードＡ／ノードＢは、特定の情報をノード１／ノード２を送信し、１つまたは複数のブロックチェーンノードに対して、別のトランザクションを開始して、ブロックチェーンに格納された情報に対して特定の情報を検証するように、指示してよい。ノードＢは、データ管理システム１１８、サービスシステムのうちの１つ、またはブロックチェーンシステム１１２に結合された別のシステム（図示されていない）に属してよい。例えば、ノードＢは、サービスシステム１１３または１１４のコンピュータであってよい。
【００４１】
ブロックチェーンシステム１１２との情報のやりとりにおいて、ノードＡおよびノードＢは、ブロックチェーントランザクションの開始、転送、またはアクセスを実行するための適切なブロックチェーンソフトウェアと共にインストールされてよい。ノードＡは、ブロックチェーンのノード１または１つまたは複数の他のノードとの通信を介して、ブロックチェーンにアクセスしてよく、ノードＢは、ブロックチェーンのノード２または１つまたは複数の他のノードとの通信を介して、ブロックチェーンにアクセスしてよい。ノードＡは、ノード１または同様のノードを介してトランザクションをブロックチェーンにサブミットし、トランザクションをブロックチェーンに追加することを要求してよい。
【００４２】
ブロックチェーンは、それぞれメモリを備えているか、またはメモリに結合している、複数のブロックチェーンノードによって維持されてよい。一部の実施形態では、このメモリは、プールデータベースを格納してよい。プールデータベースは、分散方式で、複数のブロックチェーンノードによってアクセス可能であってよい。例えば、プールデータベースは、ブロックチェーンノードのメモリにそれぞれ格納されてよい。プールデータベースは、ノードＡに類似する１つまたは複数のユーザデバイスによってサブミットされた複数のトランザクションを格納してよい。
【００４３】
一部の実施形態では、受信者ブロックチェーンノードは、未確認のトランザクションのトランザクション要求を受信した後に、トランザクションの何らかの予備的検証を実行してよい。例えば、図１Ｂを参照すると、ノード１は、ノードＡからトランザクションを受信した後に、予備的検証を実行してよい。トランザクションは、検証された後に、受信者ブロックチェーンノード（例えば、ノード１）のプールデータベースに格納されてよく、受信者ブロックチェーンノードが、このトランザクションを１つまたは複数の他のブロックチェーンノード（例えば、ノード３、ノード４）に転送してもよい。それらの１つまたは複数の他のブロックチェーンノードは、受信者ノードによって実行されたプロセスを繰り返してよい。対応するプールデータベース内のトランザクションが特定のレベル（例えば、しきい値）に達した後に、ブロックチェーンノードはそれぞれ、合意ルールまたはその他のルールに従って、対応するプールデータベース内の一組のトランザクションを検証してよい。ブロックチェーントランザクションがブロックチェーン契約（例えば、スマートコントラクト）を含んでいる場合、ブロックチェーンノードは、ブロックチェーン契約をローカルに実行してよい。
【００４４】
ブロックチェーン契約は、契約の交渉または実行をデジタル的に容易にするか、検証するか、または実施するよう意図されたコンピュータプロトコルである。ブロックチェーン契約は、第三者が存在せずに、信頼できるブロックチェーントランザクションの実行を許可する。ブロックチェーントランザクションの例は、データの（契約のデプロイメントによる）格納および（契約へのアクセスまたは契約の実行による）取得のために、データを契約コードでエンコードしてよい。ブロックチェーン契約は、認証情報、認証情報のハッシュ値などの、ユーザによって記述された契約コードを含んでよい。合意ルールに従って一組のブロックチェーントランザクションを正常に検証した特定のブロックチェーンノードは、それらのブロックチェーントランザクションを圧縮して、ブロックチェーンのローカルコピーに追加し、その結果を他のブロックチェーンノードに拡散してよい。この特定のブロックチェーンノードは、検証を最初に正常に完了したブロックチェーンノードであるか、検証権限を取得したブロックチェーンノードであるか、または別の合意ルールに基づいて決定されたブロックチェーンノードなどであってよい。次に、他のブロックチェーンノードが、ブロックチェーントランザクションをローカルに実行し、（例えば、ハッシュ計算を実行することによって）実行結果を互いに検証し、ブロックチェーンのコピーを特定のブロックチェーンノードのブロックチェーンのコピーと同期させてよい。他のブロックチェーンノードは、ブロックチェーンのローカルコピーを更新することによって、ブロックチェーントランザクション内のそのような情報を各ローカルメモリに同様に書き込んでよい。このようにして、ブロックチェーン契約がデプロイされる。デプロイされた契約は、実行するために、ブロックチェーン上の対応するアドレスを介して後でアクセスすることができる。例えば、契約に格納されたデータを取得することができる。ある時点で検証が失敗した場合、ブロックチェーントランザクションが拒否される。上記にかかわらず、他のタイプのブロックチェーンシステムおよび関連する合意ルールが、開示されたブロックチェーンシステムに適用されてよい。
【００４５】
図２は、さまざまな実施形態に従って、ユーザデータを収集して格納するための方法２００の例を示している。方法２００は、図１Ａのシステム１１０の１つまたは複数のコンポーネント（例えば、ストレージシステム１１１、ブロックチェーンシステム１１２、およびサービスシステム１１３、サービスシステム１１４などのうちの１つまたは複数）によって実装されてよい。前述したように、ストレージシステム１１１およびサービスシステム１１３、サービスシステム１１４などは、１つまたは複数のコンピューティングデバイスを備えているデータ管理システム１１８に統合されてよい。以下で提示される動作は、例示的であるよう意図されている。実装に応じて、方法２００は、さまざまな順序で、または並列に実行される、追加のステップ、より少ないステップ、または代替のステップを含んでよい。
【００４６】
一部の実施形態では、ステップ２１１で、第１の実体が、サービスシステム（例えば、サービスシステム１１３、サービスシステム１１４など）のうちの１つまたは複数を介して、情報登録または別の動作を開始してよい。以下では、サービスシステム１１３が一例として使用される。第１の実体は、ユーザと呼ばれることがある。第１の実体は、個人、会社、企業、組織などに関連付けられてよい。例えば、個人ユーザは、サービスシステムのオンラインサービスプロバイダを使用して、アカウント登録（例えば、オンラインバンクのアカウント登録、オンラインショッピングのアカウント登録、オンラインゲームのアカウント登録など）を開始してよい。一例として登録が使用されるが、他のタイプの動作が実行されてよく、登録データ以外のデータが収集されてよい。
【００４７】
ステップ２１２で、サービスシステム１１３が、ステップ２１１の動作要求をストレージシステム１１１にリダイレクトし、ユーザデータを収集するためのストレージシステム１１１に向かう対応するアドレス（例えば、ＵＲＬ（ユニフォームリソースロケータ：ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ））を取得してよい。このようにして、ユーザデータは、サービスシステムを迂回し、ストレージシステム１１１によって収集することができる。例えば、サービスシステム１１３（例えば、オンラインショッピングプラットフォーム）およびサービスシステム１１４（例えば、オンラインバンキングプラットフォーム）が、データ管理システム１１８に参加していてよい。各サービスシステムでのユーザ登録は、ストレージシステム１１１によって提供されたアドレスにリダイレクトされてよく、ユーザ登録をサービスシステムのいずれかで格納する必要がない。さらに、ユーザ登録情報は、ストレージシステム１１１に登録された後に、ユーザを認証するためにデータ管理システム１１８に参加しているすべての既存のサービスシステムおよび将来のサービスシステムの間で、（ブロックチェーンに格納された検索可能なデジタル要約の形態で）共有することができる。そのため、ユーザは、異なるサービスシステム間でのユーザ登録の相互利用を許可するように要求され、そのような許可を与えてよい。相互利用とは、１つのサービスでの登録を他のサービスに適用するということである。例えば、ＷｅｂサイトＡでのある人の登録を相互利用することによって、その人のアカウント認証が他のＷｅｂサイトで共有され、その人は、他のＷｅｂサイトごとに登録することを必要とせずに、他のＷｅｂサイトにアクセスすることができる。したがって、ユーザは、複数のサイトで登録プロセスを繰り返す煩わしさから救われる。
【００４８】
ステップ２１３で、ストレージシステム１１１は、対応するアドレスをサービスシステム１１３に送信してよい。
【００４９】
ステップ２２１で、サービスシステム１１３は、ユーザを、登録情報などのユーザデータを収集するためのアドレスにリダイレクトしてよい。例えば、登録動作は、提供されたサービスへのアクセスを得るために、特定の個人情報（例えば、名前、ＩＤ番号、自宅の住所、連絡先電話番号、支払い口座情報など）を入力するようにユーザに要求することがある。サービスシステム１１３は、ストレージシステム１１１に直接リンクされたＷｅｂページなどの、ユーザデータを収集するためのアドレスに関連付けられた情報の描画を引き起こしてよい。このようにして、ストレージシステム１１１は、ユーザによって入力されたユーザデータを取得してよい。
【００５０】
ステップ２３１で、サービスシステム１１３は、収集されたユーザデータをストレージシステム１１１に送信してよい。この送信は、リダイレクトアドレス（例えば、ストレージシステム１１１にリンクされたページ）を介して実行されてよい。一部の実施形態では、収集されたユーザデータは、ユーザアカウント、パスワード、ユーザ名、ユーザ識別情報、ユーザの連絡先、ユーザの住所、支払い方法などを含んでよい。ユーザアカウントおよび／またはパスワードは、ユーザの識別情報として役立ってよい。パスワードは、ユーザアカウントに関連付けられてよい。パスワードは、従来のテキストのパスワードに限定されず、生体認証パスワード、指紋パスワード、音声パスワード、虹彩パスワード、ジェスチャーパスワードなどの、さまざまなタイプのパスワードを含んでよい。
【００５１】
ステップ２３２で、ストレージシステム１１１は、認証情報（例えば、ユーザアカウントおよびパスワード）のデジタル要約を生成し、ユーザ詳細情報（例えば、連絡先情報、住所、支払い情報、または認証情報以外の同様のユーザデータ）を格納してよい。デジタル要約およびユーザ詳細情報は、互いに関連付けられる。ストレージシステム１１１は、プライバシーおよびセキュリティに対する懸念のため、認証情報を格納しなくてよい。一部の実施形態では、デジタル要約は、認証情報の暗号表現（例えば、ＳＨＡ−２５６を介して取得されるハッシュ値）を含んでよく、ユーザの身元（例えば、誰かがユーザアカウントにログインしようとしている場所）を認証するために使用されてよい。ユーザ詳細情報は、概要と呼ばれることがあり、平文データとして格納されてよい。ユーザ詳細情報は、構成に応じて、対応する各サービスシステムに合わせて調整されてよい。例えば、各サービスシステムは、ユーザが入力する必要がある情報の異なるセットを有してよい。
【００５２】
ステップ２３３で、ストレージシステム１１１は、デジタル要約をブロックチェーンに追加するためにブロックチェーンシステム１１２に送信してよい。ステップ２４１で、ブロックチェーンシステム１１２は、合意プロトコルに従って、デジタル要約を圧縮してブロックチェーンに入れてよい。
【００５３】
さまざまな実施形態では、ストレージシステム１１１は、１つまたは複数の軽量ノード（例えば、ノードＡ、ノードＢ）を含んでよい。ストレージシステム１１１は、軽量ノードに結合されたブロックチェーンシステム１１２のノード（例えば、ノード１）を介して、第１のブロックチェーントランザクション（または、略して第１のトランザクション）を開始してよい。例えば、デジタル要約がブロックチェーン契約（例えば、スマートコントラクト）に書き込まれてよく、第１のブロックチェーントランザクションが開始されて、契約をブロックチェーンにデプロイしてよい。デプロイメントによって、契約が、実行、取得、またはその他の動作のために、ブロックチェーンからアクセス可能になる。この場合、第１のブロックチェーントランザクションは、第１のトランザクション識別情報（例えば、第１のトランザクションハッシュ）に対応してよい。例えば、第１のブロックチェーントランザクション識別情報は、第１のブロックチェーントランザクションのハッシュ値であることができる。第１のトランザクション識別情報は、登録中の実体に関連付けられてもよい。ブロックチェーンは、デジタル要約（例えば、認証情報のハッシュ値）を格納してよいが、ブロックチェーンに格納されたデータがさまざまなブロックチェーンノードから見えるため、セキュリティおよびプライバシーを保証するために、認証情報の詳細（例えば、平文）を格納しなくてよい。第１のトランザクション識別情報は、サービスシステム１１３および／またはストレージシステム１１１に送信されてよい。ブロックチェーンは、第１のトランザクション識別情報を格納してもよい。このようにして、第１のブロックチェーントランザクション識別情報および登録中の実体が固定される（関連付けられる）。第１のトランザクション識別情報を照会することによって、ブロックチェーンに格納されたデジタル要約を取得できる。例えば、第１のブロックチェーントランザクション識別情報がブロックチェーンシステム１１２（例えば、ブロックチェーンノード）に送信された場合、ブロックチェーンシステム１１２はブロックチェーン契約を実行し、ブロックチェーンに格納されたデジタル要約を取得してよい。デジタル要約をブロックチェーンに格納し、格納されたデジタル要約を取得するための、多くのその他の適切な方法が存在する。当業者は、本明細書の実施形態が上記の例に限定されないということを理解するはずである。
【００５４】
方法２００は、登録を完了するために、複数のユーザに対して繰り返されてよい。したがって、ブロックチェーンは、最終的に、１つまたは複数のサービスシステムにアクセスする複数のユーザの認証データの複数のデジタル要約を格納してよい。
【００５５】
図３は、さまざまな実施形態に従って、ユーザアカウントを認証するための方法３００の例を示している。方法３００は、図１Ａのシステム１１０の１つまたは複数のコンポーネント（例えば、ブロックチェーンシステム１１２、およびサービスシステム１１３、サービスシステム１１４などのうちの１つまたは複数）によって実装されてよい。前述したように、サービスシステム１１３、サービスシステム１１４などは、１つまたは複数のコンピューティングデバイスを備えているデータ管理システム１１８に統合されてよい。以下で提示される動作は、例示的であるよう意図されている。実装に応じて、方法３００は、さまざまな順序で、または並列に実行される、追加のステップ、より少ないステップ、または代替のステップを含んでよい。
【００５６】
一部の実施形態では、ステップ３１１で、第２の実体（第１の実体と同じであるか、または異なっている）が、前述したユーザ情報（例えば、ユーザアカウントとパスワードの組み合わせなどの登録データ）を使用して、データ管理システム１１８のサービスシステムのうちの１つ（例えば、サービスシステム１１３）にログインしようとしてよい。第２の実体は、ユーザと呼ばれることがある。
【００５７】
ステップ３１２で、サービスシステムが認証データを組み立ててよい。異なるサービスシステムがデータの異なるセットの認証を要求することがあるため、認証データは、特定のサービスシステムに従って組み立てられてよい。例えば、サービスシステムは、認証情報（例えば、ユーザアカウントおよびパスワード）を取得し、認証情報のデジタル要約（例えば、ハッシュ値）を生成してよい。ストレージシステム１１１および／またはブロックチェーンシステム１１２は、ステップ２３２で認証情報のデジタル要約の生成に使用される暗号プロセス（例えば、ＳＨＡ−２５６）を公表していてよい。したがって、サービスシステムは、同じ暗号プロセスを使用して認証情報のデジタル要約を生成してよい。
【００５８】
ステップ３２１で、サービスシステム１１３は、組み立てられた認証データ（例えば、認証情報のデジタル要約）をブロックチェーンシステム１１２に送信してよい。サービスシステム１１３は、認証情報のデジタル要約を生成してよい。
【００５９】
代替として、ブロックチェーンシステム１１２（例えば、ブロックチェーンシステム１１２のノード）は、ログインユーザの認証情報を直接取得し、認証情報のデジタル要約を生成してよい。
【００６０】
ステップ３２２で、ブロックチェーンシステム１１２は、ログインユーザが存在するかどうか（ユーザがデータ管理システム１１８に登録したかどうか）を検証してよい。その際に、ブロックチェーンシステム１１２は、１人または複数のユーザに対応する認証情報の１つまたは複数のブロックチェーンに格納されたデジタル要約をブロックチェーンから取得してよい。ブロックチェーンシステム１１２は、対応するデジタル要約を比較することによって、ログインユーザの認証情報のデジタル要約が認証情報のいずれかのブロックチェーンに格納されたデジタル要約に一致するかどうかを判定してよい。デジタル要約は、ハッシュ値であってよい。したがって、ブロックチェーンシステム１１２は、ログインユーザの認証情報のデジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の比較に基づいて、ログインユーザの認証を取得してよい。
【００６１】
ステップ３２３で、ブロックチェーンシステム１１２は、認証結果をサービスシステム１１３に返してよい。ステップ３２２で一致が存在する場合、認証結果は、ログインユーザが存在することであってよい。このようにしてログインユーザが認証され、ログインが成功する。ログインユーザが存在するということは、アカウントが正当に作成されており、ログインアカウントが有効であるということである。任意選択的に、ステップ３２２で一致が存在する場合、認証結果は、ブロックチェーンへの認証情報の格納に関連付けられたトランザクション識別情報を含んでよい。ステップ３２２で一致が存在しない場合、認証結果は、ログインユーザが存在しないことであってよく、ログインの試みが拒否される。
【００６２】
ステップ３２２および３２３の代わりに、サービスシステム１１３は、第１のトランザクション識別情報に従って、認証情報のブロックチェーンに格納されたデジタル要約を取得してよい。次に、サービスシステム１１３は、デジタル要約を比較することによって、認証情報のデジタル要約が認証情報のブロックチェーンに格納されたデジタル要約に一致するかどうかを判定してよい。したがって、サービスシステム１１３は、ログインユーザの認証情報のデジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の比較に少なくとも基づいて、ログインユーザの認証を取得してよい。
【００６３】
図４は、さまざまな実施形態に従って、ユーザデータを取得するための方法４００の例を示している。方法４００は、図１Ａのシステム１１０の１つまたは複数のコンポーネント（例えば、ストレージシステム１１１、ブロックチェーンシステム１１２、およびサービスシステム１１３、サービスシステム１１４などのうちの１つまたは複数）によって実装されてよい。前述したように、ストレージシステム１１１、サービスシステム１１３、サービスシステム１１４などは、１つまたは複数のコンピューティングデバイスを備えているデータ管理システム１１８に統合されてよい。以下で提示される動作は、例示的であるよう意図されている。実装に応じて、方法４００は、さまざまな順序で、または並列に実行される、追加のステップ、より少ないステップ、または代替のステップを含んでよい。
【００６４】
一部の実施形態では、ステップ４１１で、第２の実体が、サービスシステム（例えば、サービスシステム１１３）のうちの１つを介して、金融トランザクションまたは別の動作を開始してよい。例えば、第２の実体（例えば、ユーザ）は、オンラインショッピングのアカウントにログインした後に、支払い動作を開始し、商品を購入してよい。支払い動作を実行するために、ユーザの名前、連絡先電話番号、および支払い方法などの特定のユーザ詳細情報を入力することが必要であってよい。
【００６５】
ステップ４１２、４１３、および４１４は、任意選択的であり、前述したステップ３２１、３２２、および３２３と同じであってよい。ステップ４１２、４１３、および４１４を実行することによって、２つの目的が果たされてよい。第１に、ユーザの身元をもう１回認証することよって、前のユーザがログインを完了してログアウトするのを忘れた公共のコンピュータにやって来た見知らぬ人などの、他の誰かによってではなく、本物のユーザがトランザクションを実施していることを確認する。このようにして、データセキュリティがさらに改善され、個人の資金の不正使用のリスクが低減される。第２に、ユーザ詳細情報が取得されることがユーザに通知される。ステップ３２３および／または４１４で、サービスシステムに返される認証結果は、認証情報をブロックチェーンに格納することに関連付けられたトランザクション識別情報を含む。
【００６６】
ステップ４２１で、サービスシステム１１３は、返されたトランザクション識別情報に従って、ユーザ詳細情報の少なくとも一部をストレージシステム１１１から取得してよい。例えば、ストレージシステム１１１がトランザクション識別情報およびユーザ詳細情報に関連付けられた実体の情報を格納しているため、サービスシステムは、開始された金融トランザクションを実施するために、トランザクション識別情報に基づいて、ログインユーザのユーザ詳細情報をストレージシステム１１１から取得してよい。取得されたユーザ詳細情報は、例えば、受信者名、支払者名、連絡先電話番号、配送先住所、支払い方法などを含んでよい。
【００６７】
ステップ４２２で、ストレージシステム１１１は、少なくとも一部のユーザ詳細情報をサービスシステム１１３に返してよい。
【００６８】
ステップ４３１で、サービスシステム１１３は、少なくとも一部のユーザ詳細情報に基づいて、金融トランザクションまたは別の動作を実行してよい。例えば、サービスシステム１１３は、取得されたユーザ詳細情報を使用することによって、購入トランザクションを終了してよい。
【００６９】
図５は、さまざまな実施形態に従って、データ管理のための方法５１０の例のフローチャートを示している。方法５１０は、図１Ａのシステム１１０の１つまたは複数のコンポーネント（例えば、データ管理システム１１８）またはブロックチェーンシステム１１２のノードによって実装されてよい。方法５１０は、さまざまなハードウェアマシンおよび／またはソフトウェアを備えているシステムによって実装されてよい。例えば、データ管理システム１１８は、１つまたは複数のシステムまたはデバイス（例えば、コンピュータ、サーバ）によって実装されてよい。方法５１０を実装するシステムは、１つまたは複数のプロセッサと、１つまたは複数のプロセッサに結合され、システム（例えば、プロセッサ）に方法５１０を実行させるように１つまたは複数のプロセッサによって実行可能な命令を使用して構成された、１つまたは複数の非一時的コンピュータ可読記憶媒体（例えば、１つまたは複数のメモリ）とを備えてよい。以下で提示される動作は、例示的であるよう意図されている。実装に応じて、方法５１０は、さまざまな順序で、または並列に実行される、追加のステップ、より少ないステップ、または代替のステップを含んでよい。方法５１０の実装の例は、図２〜４を参照して上で説明されている。
【００７０】
ステップ５１１は、ログインユーザの認証情報を取得することを含んでいる。一部の実施形態では、この認証情報は、ログインユーザに関連付けられたアカウント識別情報および／またはアカウント識別情報に関連付けられたパスワードを含む。例えば、ログインのためにユーザによって入力されたアカウントおよびパスワード、またはアカウントのみが捕捉されてよい。さらに詳細については、前述したステップ３１１を参照することができる。
【００７１】
ステップ５１２は、ログインユーザの認証情報のデジタル要約を生成することを含む。一部の実施形態では、認証情報のデジタル要約は、認証情報のハッシュ値を含む。一部の実施形態では、ログインユーザの認証情報のデジタル要約は、ブロックチェーンに格納されているデジタル要約の暗号プロセスと同じ暗号プロセス（例えば、ＳＨＡ−２５６）によって生成される。一部の実施形態では、認証情報のデジタル要約は、認証情報のハッシュ値を含む。さらに詳細については、前述したステップ３１２を参照することができる。
【００７２】
ステップ５１３は、ログインユーザの認証情報のデジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の比較に基づいて、ログインユーザを認証することを含む。
【００７３】
一部の実施形態では、ログインユーザの認証情報のデジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の比較に基づいてログインユーザを認証することが、ログインユーザの認証情報のデジタル要約を、ブロックチェーンに格納された１つまたは複数のデジタル要約と比較することと、認証情報のデジタル要約がブロックチェーンに格納されたデジタル要約のうちの１つと同じであるということに応答して、ログインユーザを認証することと、を含む。すなわち、ログインユーザの認証は、システム１１０の１つまたは複数のコンポーネント（例えば、データ管理システム１１８）によって実行されてよい。
【００７４】
他の実施形態では、ログインユーザの認証情報のデジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の比較に基づいてログインユーザを認証することが、ブロックチェーンの１つまたは複数のノードから比較の結果を取得することであって、この比較がブロックチェーンの１つまたは複数のノードによって実行される、取得することと、取得された結果に従って、認証情報のデジタル要約がブロックチェーンに格納されたデジタル要約のうちの１つと同じであるということに応答して、ログインユーザを認証することと、を含む。すなわち、ログインユーザの認証は、ブロックチェーンシステム１１２の１つまたは複数のノードによって実行されてよい。例えば、データ管理システム１１８は、ブロックチェーンの１つまたは複数のノードに対して、照会によってログインユーザの認証情報のデジタル要約およびブロックチェーンに格納された１つまたは複数のデジタル要約を比較するように、指示してよい。この照会は、ログインユーザの認証情報のデジタル要約がブロックチェーンに格納されたデジタル要約のいずれかと一致するかどうかの結果をもたらしてよい。
【００７５】
ログインユーザの認証がシステム１１０の１つまたは複数のコンポーネントによって実行されるか、またはブロックチェーンシステム１１２の１つまたは複数のノードによって実行されるかにかかわらず、認証情報のデジタル要約がブロックチェーンに格納されたデジタル要約のいずれかに一致する場合に、ログインユーザがシステム内に存在する（ログインが有効である）という結果が取得されてよく、認証情報のデジタル要約がブロックチェーンに格納されたデジタル要約のいずれにも一致しない場合に、ログインユーザがシステム内に存在しない（ログインが無効である）という結果が取得されてよい。さらに詳細については、前述したステップ３１１、３１２、３２１、３２２、および３２３を参照することができる。
【００７６】
さらに他の実施形態では、ブロックチェーンに格納された１つまたは複数のデジタル要約の各々は、対応するデジタル要約をブロックチェーンに格納することに関連付けられたトランザクション識別情報（例えば、トランザクションハッシュ）を含んでおり、この方法は、ログインユーザを正常に認証することに応答して、認証情報のデジタル要約に一致するブロックチェーンに格納されたデジタル要約のうちの１つを格納することに関連付けられたトランザクション識別情報を取得することをさらに含む。さらに詳細については、前述したステップ３２３または４１４を参照することができる。トランザクション識別情報に基づいて、格納されたデジタル要約を取得できる。
【００７７】
一部の実施形態では、この方法は、ステップ５１１でログインユーザの認証情報を取得する前に、登録対象のユーザの認証情報を取得することと、登録対象のユーザの認証情報に基づいてデジタル要約を生成することと、登録対象のユーザの認証情報に基づいて生成されたデジタル要約を、ブロックチェーンに格納するためにブロックチェーンの１つまたは複数のノードに送信することであって、送信されたデジタル要約が、ブロックチェーンに格納された１つまたは複数のデジタル要約のうちの１つである、送信することと、をさらに含む。登録対象のユーザとは、サービスシステムに登録しているユーザのことを指してよい。これらのステップによって、さまざまなユーザが、アカウントの認証情報を登録することができ、認証情報のデジタル要約を、ブロックチェーンに安全に格納し、今後の認証のために取得可能とすることができる。
【００７８】
一部の実施形態では、登録対象のユーザの認証情報を取得することが、サービスシステムから転送された登録要求を受信することであって、この登録要求が、登録対象のユーザによって要求される、受信することと、リダイレクトアドレス（例えば、ＵＲＬ）をサービスシステムに提供し、サービスシステムが、このリダイレクトアドレスに対応する登録ページを描画することと、この登録ページを介して、登録対象のユーザから認証情報を収集することと、を含む。このようにして、さまざまなサービスシステムで登録しようとしているさまざまなユーザの認証情報を、集中化されたシステム（例えば、ストレージシステム１１１）によって収集することができ、データ格納のセキュリティを向上し、データの収集および保護からサービスシステムを解放する。一実施形態では、登録対象のユーザの認証情報を取得することが、認証情報を使用して、登録対象のユーザを１つまたは複数の他のサービスシステムで認証するための許可を、登録対象のユーザから取得することをさらに含む。したがって、ユーザは、複数のサービスシステムで登録を繰り返す必要がない。さらに詳細については、前述したステップ２１１、２１２、２１３、２２１、および２３１を参照することができる。
【００７９】
他の実施形態では、登録対象のユーザの認証情報を取得することが、登録対象のユーザの認証情報およびユーザ詳細情報を取得することと、ユーザ詳細情報をストレージシステムに格納することと、を含む。例えば、ユーザ詳細情報は、連絡先情報、住所情報、識別情報などを含んでよい。ユーザ詳細情報は、サービスシステムによって提供されるさまざまなトランザクションまたはその他の動作の実行において使用されてよい。一実施形態では、この方法は、トランザクションを実行することの要求をログインユーザから取得することと、トランザクションを実行するために、ログインユーザのユーザ詳細情報をストレージシステムから取得することと、ログインユーザのユーザ詳細情報に少なくとも基づいてトランザクションを実行することと、をさらに含む。さらに詳細については、前述したステップ４１１、４２１、４２２、および４３１を参照することができる。この方法は、トランザクションを実行することの要求を取得した後に、トランザクションを実行するために、ユーザ詳細情報をストレージシステムから取得する前に、ログインユーザの認証情報のデジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の別の比較に基づいて、ログインユーザの認証を取得することをさらに含む。さらに詳細については、前述したステップ４１２、４１３、および４１４を参照することができる。例えば、ユーザは、オンラインショッピングサイトなどのサービスシステムで認証情報を入力することによって、アカウントにログインしてよい。ユーザは、閲覧した後に、特定の商品を購入することを決定し、それによってトランザクションを開始してよい。サービスシステムは、任意選択的に、認証情報を再入力するようにユーザに要求してよい。次に、サービスシステムは、トランザクションを実行するために、配送先住所、連絡先電話番号、および支払い情報などのユーザ詳細情報を取得してよい。
【００８０】
一部の実施形態では、登録対象のユーザの認証情報に基づいて生成されたデジタル要約を、ブロックチェーンに格納するためにブロックチェーンの１つまたは複数のノードに送信することが、登録対象のユーザの認証情報に基づいて生成されたデジタル要約をブロックチェーン契約に書き込むことと、１つまたは複数のノードに、ブロックチェーン契約をデプロイするためのブロックチェーントランザクションを開始させることと、を含む。さらに詳細については、前述したステップ２３２、２３３、および２４１を参照することができる。
【００８１】
図６は、さまざまな実施形態に従って、ブロックチェーンベースのデータ管理コンピュータシステム６１０の例のブロック図を示している。システム６１０は、図１Ａのシステム１１０の１つまたは複数のコンポーネント（例えば、データ管理システム１１８）またはブロックチェーンシステム１１２のノードの実装の例であってよい。方法５１０は、コンピュータシステム６１０によって実装されてよい。コンピュータシステム６１０は、１つまたは複数のプロセッサと、１つまたは複数のプロセッサに結合され、システムまたはデバイス（例えば、プロセッサ）に方法５１０を実行させるように１つまたは複数のプロセッサによって実行可能な命令を使用して構成された、１つまたは複数の非一時的コンピュータ可読記憶媒体（例えば、１つまたは複数のメモリ）と、を備えてよい。コンピュータシステム６１０は、命令（例えば、ソフトウェア命令）に対応するさまざまなユニット／モジュール／サブモジュールを備えてよい。一部の実施形態では、コンピュータシステム６１０は、データ管理装置と呼ばれてよい。このデータ管理装置は、ログインユーザの認証情報を取得するための第１の取得モジュール６１１と、ログインユーザの認証情報のデジタル要約を生成するための生成モジュール６１２と、ログインユーザの認証情報のデジタル要約とブロックチェーンに格納された１つまたは複数のデジタル要約との間の比較に基づいて、ログインユーザを認証するための認証モジュール６１３と、を備えてよい。
【００８２】
図に示されているように、複数のサービスシステムのユーザデータの格納を集中化することによって、ユーザのプライバシーを、改善された基準で適切に保護することができる。ユーザ登録データが共通のストレージシステムを介して収集され、この共通のストレージシステムがユーザ詳細情報を格納し、一方、認証情報のデジタル要約がブロックチェーンに格納される。このようにして、認証情報の表現を、安全に維持することができ、ユーザを認証するためにサービスシステムによって呼び出すことができる。ハッシュ処理を含んでいるブロックチェーンの合意ルールに基づいて、認証情報の改ざんを防ぐことができる。認証情報のデジタル要約表現は、平文情報を隠蔽し、ユーザ情報の漏洩を防ぐこともできる。ストレージシステムを照会することによって、トランザクションを実行するため、またはその他の動作を実行するために、ユーザ詳細情報を取得することができる。このようにして、ユーザは、反復的な登録プロセスを経験せず、データ漏洩を恐れずに、複数のサービスシステムに安全にアクセスすることができる。
【００８３】
本明細書に記載された技術は、１つまたは複数の専用コンピューティングデバイスによって実装される。それらの専用コンピューティングデバイスは、デスクトップコンピュータシステム、サーバコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルドデバイス、ネットワークデバイス、あるいは本技術を実装するために配線論理および／またはプログラム論理を組み込む任意のその他デバイスまたはデバイスの組み合わせであってよい。それらの専用コンピューティングデバイスは、パーソナルコンピュータ、ラップトップ、携帯電話、カメラ付き携帯電話、スマートフォン、パーソナルデジタルアシスタント、メディアプレーヤー、ナビゲーションデバイス、電子メールデバイス、ゲーム機、タブレットコンピュータ、ウェアラブルデバイス、またはこれらの組み合わせとして実装されてよい。コンピューティングデバイスは、通常、オペレーティングシステムソフトウェアによって制御され、調整される。従来のオペレーティングシステムは、特に、実行のためにコンピュータプロセッサを制御およびスケジューリングし、メモリ管理を実行し、ファイルシステム、ネットワーク、Ｉ／Ｏサービスを提供し、グラフィカルユーザインターフェイス（ＧＵＩ：ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）などのユーザインターフェイス機能を提供する。本明細書に記載されたさまざまなシステム、装置、ストレージ媒体、モジュール、およびユニットは、専用コンピューティングデバイス、あるいは１つまたは複数の専用コンピューティングデバイスの１つまたは複数のコンピューティングチップにおいて実装されてよい。一部の実施形態では、本明細書に記載された命令は、専用コンピューティングデバイス上の仮想マシンにおいて実装されてよい。それらの命令は、実行されたときに、専用コンピューティングデバイスに、本明細書に記載されたさまざまな方法を実行させてよい。この仮想マシンは、ソフトウェア、ハードウェア、またはこれらの組み合わせを含んでよい。例えば、仮想マシンは、イーサリアム内でスマートコントラクト用の実行時環境を提供するイーサリアム仮想マシン（ＥＶＭ：Ｅｔｈｅｒｅｕｍ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）ソフトウェアを含んでよい。
【００８４】
図７は、本明細書に記載された実施形態のいずれかが実装されてよいコンピュータシステム７００を示すブロック図である。システム７００は、本明細書に記載されたノードのいずれかにおいて実装されてよく、ブロックチェーン契約を実装するために、対応するステップを実行するように構成されてよい。コンピュータシステム７００は、情報を伝達するためのバス７０２またはその他の通信機構、情報を処理するためにバス７０２に結合された１つまたは複数のハードウェアプロセッサ７０４を含んでいる。ハードウェアプロセッサ７０４は、例えば、１つまたは複数の汎用マイクロプロセッサであってよい。
【００８５】
コンピュータシステム７００は、情報およびプロセッサ７０４によって実行可能な命令を格納するためにバス７０２に結合された、ランダムアクセスメモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）などのメインメモリ７０６、キャッシュ、および／またはその他の動的ストレージデバイスも含んでいる。メインメモリ７０６は、プロセッサ７０４によって実行可能な命令の実行中にテンポラリ変数またはその他の中間情報を格納するために使用されてもよい。そのような命令は、プロセッサ７０４によってアクセス可能なストレージ媒体に格納された場合、コンピュータシステム７００を、命令で指定された動作を実行するようにカスタマイズされた専用マシンにする。コンピュータシステム７００は、プロセッサ７０４用の静的情報および命令を格納するためにバス７０２に結合された、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）７０８またはその他の静的ストレージデバイスをさらに含んでいる。磁気ディスク、光ディスク、またはＵＳＢサムドライブ（フラッシュドライブ）などのストレージデバイス７１０が、情報および命令を格納するために提供され、バス７０２に結合される。
【００８６】
コンピュータシステム７００は、コンピュータシステムと組み合わせてコンピュータシステム７００が専用マシンになることを引き起こすか、または専用マシンになるようにプログラムする、カスタマイズされた配線論理、１つまたは複数のＡＳＩＣもしくはＦＰＧＡ、ファームウェア、および／またはプログラム論理を使用して、本明細書に記載された技術を実装してよい。一実施形態によれば、本明細書に記載された動作、方法、およびプロセスは、プロセッサ７０４がメインメモリ７０６に含まれている１つまたは複数の命令の１つまたは複数のシーケンスを実行することに応答して、コンピュータシステム７００によって実行される。そのような命令は、ストレージデバイス７１０などの別のストレージ媒体からメインメモリ７０６に読み取られてよい。メインメモリ７０６に含まれている命令のシーケンスの実行は、プロセッサ７０４に、本明細書に記載されたプロセスのステップを実行させる。代替の実施形態では、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて、配線接続された回路が使用されてよい。
【００８７】
メインメモリ７０６、ＲＯＭ７０８、および／またはストレージ７１０は、非一時的ストレージ媒体を含んでよい。「非一時的媒体」という用語および類似の用語は、本明細書において使用されるとき、マシンを特定の方法で動作させるデータおよび／または命令を格納する媒体を指しており、この媒体は、一時的信号を除外する。そのような非一時的媒体は、不揮発性媒体および／または揮発性媒体を含んでよい。不揮発性媒体の例としては、ストレージデバイス７１０などの、光ディスクまたは磁気ディスクが挙げられる。揮発性媒体の例としては、メインメモリ７０６などの、動的メモリが挙げられる。非一時的媒体の一般的形態の例としては、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、半導体ドライブ、磁気テープ、または任意のその他の磁気データストレージ媒体、ＣＤ−ＲＯＭ、任意のその他の光データストレージ媒体、穴のパターンを有する任意の物理的媒体、ＲＡＭ、ＰＲＯＭ、およびＥＰＲＯＭ、フラッシュＥＰＲＯＭ、ＮＶＲＡＭ、任意のその他のメモリチップまたはメモリカートリッジ、ならびにこれらのネットワーク化されたバージョンが挙げられる。
【００８８】
コンピュータシステム７００は、バス７０２に結合されたネットワークインターフェイス７１８も含んでいる。ネットワークインターフェイス７１８は、１つまたは複数のローカルネットワークに接続された１つまたは複数のネットワークリンクに結合している双方向データ通信を提供する。例えば、ネットワークインターフェイス７１８は、総合デジタル通信網（ＩＳＤＮ：ｉｎｔｅｇｒａｔｅｄ  ｓｅｒｖｉｃｅｓ  ｄｉｇｉｔａｌ  ｎｅｔｗｏｒｋ）カード、ケーブルモデム、衛星モデム、または対応するタイプの電話回線とのデータ通信接続を提供するためのモデムであってよい。別の例として、ネットワークインターフェイス７１８は、互換性のあるＬＡＮとのデータ通信接続を提供するためのローカルエリアネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）カード（またはＷＡＮと通信するためのＷＡＮコンポーネント）であってよい。無線リンクが実装されてもよい。いずれかのそのような実装では、ネットワークインターフェイス７１８は、さまざまなタイプの情報を表すデジタルデータストリームを運ぶ電気信号、電磁信号、または光信号を送信および受信する。
【００８９】
コンピュータシステム７００は、ネットワーク、ネットワークリンク、およびネットワークインターフェイス７１８を介して、メッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバが、インターネット、ＩＳＰ、ローカルネットワーク、およびネットワークインターフェイス７１８を介して、アプリケーションプログラムの要求されたコードを送信してよい。
【００９０】
受信されたコードは、受信されたときにプロセッサ７０４によって実行されてよく、かつ／または後で実行するために、ストレージデバイス７１０またはその他の不揮発性ストレージに格納されてよい。
【００９１】
上記のセクションにおいて説明されたプロセス、方法、およびアルゴリズムの各々は、コンピュータハードウェアを備えている１つまたは複数のコンピュータシステムまたはコンピュータプロセッサによって実行されるコードモジュールにおいて具現化され、完全に、または部分的に自動化されてよい。プロセスおよびアルゴリズムは、特定用途向け回路において部分的または全体的に実装されてよい。
【００９２】
前述したさまざまな特徴およびプロセスが、互いに独立して使用されてよく、またはさまざまな方法で組み合わせられてよい。可能性のあるすべての組み合わせおよび部分的組み合わせが、本明細書の範囲に含まれるよう意図されている。加えて、一部の実装では、特定の方法またはプロセスのブロックが省略されてよい。また、本明細書に記載された方法およびプロセスは、いずれかの特定のシーケンスに限定されず、それらに関連するブロックまたは状態を、適切な他のシーケンスで実行することができる。例えば、説明されたブロックまたは状態は、具体的に開示された順序以外の順序で実行されてよく、または複数のブロックまたは状態が、単一のブロックまたは状態と組み合わせられてよい。ブロックまたは状態の例は、直列、並列、または何らかのその他の方法で実行されてよい。ブロックまたは状態は、開示された実施形態に追加されるか、または開示された実施形態から削除されてよい。本明細書に記載されたシステムおよびコンポーネントの例は、説明された方法とは異なって構成されてよい。例えば、要素が、開示された実施形態に追加されるか、開示された実施形態から削除されるか、または開示された実施形態と比較して再配置されてよい。
【００９３】
本明細書に記載された方法のさまざまな動作は、少なくとも部分的に、アルゴリズムによって実行されてよい。このアルゴリズムは、メモリ（例えば、上で説明された非一時的コンピュータ可読記憶媒体）に格納されたプログラムコードまたは命令に含まれてよい。そのようなアルゴリズムは、機械学習アルゴリズムを含んでよい。一部の実施形態では、機械学習アルゴリズムは、機能を実行するためにコンピュータを明示的にプログラムしなくてよく、トレーニングデータから学習し、機能を実行する予測モデルを作成することができる。
【００９４】
本明細書に記載された方法のさまざまな動作は、関連する動作を実行するように（例えば、ソフトウェアによって）一時的に構成されるか、または永続的に構成される１つまたは複数のプロセッサによって、少なくとも部分的に実行されてよい。一時的に構成されるか、または永続的に構成されるかにかかわらず、そのようなプロセッサは、本明細書に記載された１つまたは複数の動作または機能を実行するように動作するプロセッサ実装エンジンを構成してよい。
【００９５】
同様に本明細書に記載された方法は、少なくとも部分的にプロセッサ実装であってよく、特定の１つまたは複数のプロセッサがハードウェアの例である。例えば、方法の動作の少なくとも一部が、１つまたは複数のプロセッサまたはプロセッサ実装エンジンによって実行されてよい。さらに、１つまたは複数のプロセッサが、「クラウドコンピューティング」環境内で、または「ＳａａＡ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）」として、関連する動作の実行をサポートするように動作してもよい。例えば、動作の少なくとも一部は、（プロセッサを含んでいるマシンの例として）コンピュータのグループによって実行されてよく、それらの動作は、ネットワーク（例えば、インターネット）を介して、および１つまたは複数の適切なインターフェイス（例えば、アプリケーションプログラムインターフェイス（ＡＰＩ））を介してアクセス可能である。
【００９６】
特定の動作の実行は、単一のマシン内に存在するだけでなく、複数のマシンにわたってデプロイされて、プロセッサ間で分散されてよい。一部の実施形態では、プロセッサまたはプロセッサ実装エンジンは、単一の地理的位置（例えば、住居環境内、オフィス環境内、またはサーバファーム内）に配置されてよい。他の実施形態では、プロセッサまたはプロセッサ実装エンジンは、複数の地理的位置にわたって分散されてよい。
【００９７】
本明細書全体を通じて、複数のインスタンスが、単一のインスタンスとして説明されたコンポーネント、動作、または構造を実装してよい。１つまたは複数の方法の個別の動作が別々の動作として示され、説明されているが、個別の動作のうちの１つまたは複数が同時に実行されてよく、各動作が、示された順序で実行される必要はない。構成において別々のコンポーネントとして提示された構造および機能は、結合された構造またはコンポーネントとして実装されてよい。同様に、単一のコンポーネントとして提示された構造および機能は、別々のコンポーネントとして実装されてよい。これらおよびその他の変形、変更、追加、および改良は、本明細書における対象の範囲に含まれる。
【００９８】
対象の概要が特定の実施形態を参照して説明されているが、本明細書の実施形態のより広い範囲を逸脱することなく、それらの実施形態に対してさまざまな修正および変更が行われてよい。「発明を実施するための形態」は、制限する意味で受け取られるべきではなく、さまざまな実施形態の範囲は、添付の特許請求の範囲に資格が与えられるあらゆる同等のものと共に、添付の特許請求の範囲によってのみ定義される。さらに、本明細書において使用されている関連用語（「第１の」、「第２の」、「第３の」など）は、どのような順序、高さ、または重要性も意味しておらず、ある要素を別の要素から区別するために使用されている。さらに、「１つの（ａ）」、「１つの（ａｎ）」、および「複数の」という用語は、本明細書では数量の制限を意味しておらず、言及されている項目が少なくとも１つ存在すること意味している。
【図１Ａ】
2020511803.tif 000003
【図１Ｂ】
2020511803.tif 000004
【図２】
2020511803.tif 000005
【図３】
2020511803.tif 000006
【図４】
2020511803.tif 000007
【図５】
2020511803.tif 000008
【図６】
2020511803.tif 000009
【図７】
2020511803.tif 000010
【国際調査報告】
2020511803.tif 000011
2020511803.tif 000012
2020511803.tif 000013