(58)【調査した分野】(Int.Cl.,DB名)
前記運用情報の前記取得されたデジタル要約に対して、前記監査データの前記生成されたデジタル要約を検証することによって、前記監査データの前記信頼性を決定することが、
前記監査データの前記生成されたデジタル要約が前記運用情報の前記取得されたデジタル要約と一致するということの決定に応答して、前記監査データが真正であるということを決定することと、
前記監査データの前記生成されたデジタル要約が前記運用情報の前記取得されたデジタル要約と一致しないということの決定に応答して、前記監査データが不正であるということを決定することとを含んでいる、請求項1に記載の方法。
前記運用情報の前記デジタル要約を前記ブロックチェーンから取得することが、前記運用情報の前記デジタル要約を、前記運用情報の前記デジタル要約に関連付けられた前記ブロックチェーン・トランザクション識別情報に従って前記ブロックチェーンから取得することを含んでいる、請求項1に記載の方法。
前記監査データの前記デジタル要約を生成することが、前記運用情報の前記デジタル要約を生成するために使用される前記暗号プロセスに基づいて前記監査データの前記デジタル要約を生成することを含んでいる、請求項4に記載の方法。
前記トランザクションの前記トランザクション情報が、前記トランザクションを実行するための1つまたは複数のURL(ユニフォーム・リソース・ロケータ)を含んでいる、請求項1〜5のいずれか一項に記載の方法。
前記トランザクションの前記トランザクション情報が、前記1つまたは複数のURLを呼び出すための1つまたは複数のパラメータおよび前記1つまたは複数のURLを呼び出すことから返された1つまたは複数の結果を含んでいる、請求項6に記載の方法。
【発明の概要】
【0003】
本明細書のさまざまな実施形態は、ブロックチェーンベースの認証のためのシステム、方法、および非一時的コンピュータ可読媒体を含むが、これらに限定されない。
【0004】
1つの態様によれば、コンピュータ実装認証方法が、実行されたトランザクションに関連付けられた運用情報に対する認証に関する監査データを取得することと、監査データのデジタル要約を生成することと、運用情報のデジタル要約をブロックチェーンから取得することと、運用情報の取得されたデジタル要約に対して、監査データの生成されたデジタル要約を検証することによって、監査データの信頼性を決定することとを備える。この方法は、監査データを取得する前に、運用情報のデジタル要約を、ブロックチェーンに格納するために、ブロックチェーンの1つまたは複数のノードに送信することをさらに含んでよい。
【0005】
一部の実施形態では、運用情報の取得されたデジタル要約に対して、監査データの生成されたデジタル要約を検証することによって、監査データの信頼性を決定することが、監査データの生成されたデジタル要約が運用情報の取得されたデジタル要約と一致するということの決定に応答して、監査データが真正であるということを決定することと、監査データの生成されたデジタル要約が運用情報の取得されたデジタル要約と一致しないということの決定に応答して、監査データが不正であるということを決定することとを含む。
【0006】
他の実施形態では、運用情報のデジタル要約をブロックチェーンから取得することが、運用情報のデジタル要約を、運用情報のデジタル要約に関連付けられたブロックチェーン・トランザクション識別情報に従ってブロックチェーンから取得することを含む。
【0007】
さらに他の実施形態では、この方法は、監査データを取得する前に、ログインに応答して、ログインの身元情報のデジタル要約を生成することと、身元情報のデジタル要約を、ブロックチェーンに格納するために、ブロックチェーンの1つまたは複数のノードに送信することと、身元情報のデジタル要約に関連付けられたブロックチェーン・トランザクション識別情報を取得することと、トランザクションを実行することと、運用情報のデジタル要約を生成することであって、運用情報が、トランザクションのトランザクション情報ならびに身元情報のデジタル要約、身元情報、および身元情報のデジタル要約に関連付けられたブロックチェーン・トランザクション識別情報のうちの1つまたは複数を含んでいる、生成することと、運用情報のデジタル要約を、ブロックチェーンに格納するために、ブロックチェーンの1つまたは複数のノードに送信することと、運用情報のデジタル要約に関連付けられたブロックチェーン・トランザクション識別情報を取得することとをさらに含む。
【0008】
さらに他の実施形態では、トランザクションのトランザクション情報が、トランザクションを実行するための1つまたは複数のURL(ユニフォーム・リソース・ロケータ:uniform resource locators)を含む。
【0009】
一部の実施形態では、トランザクションのトランザクション情報が、1つまたは複数のURLを呼び出すための1つまたは複数のパラメータおよび1つまたは複数のURLを呼び出すことから返された1つまたは複数の結果を含む。
【0010】
他の実施形態では、身元情報が、トランザクションの実行を許可するユーザの権限付与レベルを含む。
【0011】
さらに他の実施形態では、身元情報が、トランザクションの実行を要求するユーザの権限付与レベルを含む。
【0012】
さらに他の実施形態では、運用情報のデジタル要約を、ブロックチェーンに格納するために、ブロックチェーンの1つまたは複数のノードに送信することが、運用情報のデジタル要約および運用情報のデジタル要約を生成するために使用される暗号プロセスをブロックチェーン契約に書き込むことと、1つまたは複数のノードに、ブロックチェーン契約をデプロイするためのブロックチェーン・トランザクションを開始させることとを含む。
【0013】
一部の実施形態では、監査データのデジタル要約を生成することが、運用情報のデジタル要約を生成するために使用される暗号プロセスに基づいて監査データのデジタル要約を生成することを含む。
【0014】
他の実施形態では、ブロックチェーンはコンソーシアム・ブロックチェーンである。
【0015】
さらに他の実施形態では、運用情報のデジタル要約は、運用情報のハッシュ値を含む。ブロックチェーン・トランザクション識別情報は、ブロックチェーン・トランザクションのトランザクション・ハッシュ値を含む。
【0016】
一部の他の実施形態では、運用情報が、トランザクションのトランザクション情報を含む。
【0017】
他の実施形態では、認証システムが、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合されており、前述の実施形態のいずれかの方法を実行するために1つまたは複数のプロセッサによって実行可能な命令が格納されている、1つまたは複数のコンピュータ可読メモリとを備える。
【0018】
さらに他の実施形態では、認証装置が、前述の実施形態のいずれかの方法を実行するために複数のモジュールを備える。
【0019】
別の態様によれば、認証システムが、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合されており、システムに、実行されたトランザクションに関連付けられた運用情報に対する認証に関する監査データを取得することと、監査データのデジタル要約を生成することと、運用情報のデジタル要約をブロックチェーンから取得することと、運用情報の取得されたデジタル要約に対して、監査データの生成されたデジタル要約を検証することによって、監査データの信頼性を決定することとを含んでいる動作を実行させるように、1つまたは複数のプロセッサによって実行可能な命令を使用して構成されている、1つまたは複数の非一時的コンピュータ可読メモリとを備える。
【0020】
別の態様によれば、非一時的コンピュータ可読記憶媒体が、1つまたは複数のプロセッサに、実行されたトランザクションに関連付けられた運用情報に対する認証に関する監査データを取得することと、監査データのデジタル要約を生成することと、運用情報のデジタル要約をブロックチェーンから取得することと、運用情報の取得されたデジタル要約に対して、監査データの生成されたデジタル要約を検証することによって、監査データの信頼性を決定することとを含んでいる動作を実行させるように、1つまたは複数のプロセッサによって実行可能な命令を使用して構成される。
【0021】
別の態様によれば、認証装置が、実行されたトランザクションに関連付けられた運用情報に対する認証に関する監査データを取得するための取得モジュールと、監査データのデジタル要約を生成するための生成モジュールと、運用情報のデジタル要約をブロックチェーンから取得するための取得モジュールと、運用情報の取得されたデジタル要約に対して、監査データの生成されたデジタル要約を検証することによって、監査データの信頼性を決定するための決定モジュールとを備えてよい。
【0022】
本明細書において開示される実施形態は、1つまたは複数の技術的効果を有する。一部の実施形態では、方法およびシステムは、元のデータと同じはずである監査データに対する認証に関して、元のデータ(例えば、実行されたトランザクションに関連付けられた運用情報)を格納することができる。ブロックチェーンに格納することで、元のデータの正確な記録維持を可能にする。他の実施形態では、トランザクションが実行されるときに、トランザクションの表現が圧縮されてブロックチェーンに入れられ、変更不可能になる。さらに他の実施形態では、方法およびシステムは、ブロックチェーンに格納された元のデータに対して比較することによって、監査データの信頼性をチェックする能力を提供する。さらに他の実施形態では、監査データのデジタル要約を、元のデータのブロックチェーンに格納されたデジタル要約と比較して、監査データが改ざんされていないことを保証することができる。これによって、監査データを提供することにおいて不正確さ、不足、操作、および不正行為を防ぐ。一部の実施形態では、元のデータをデジタル要約としてブロックチェーンに格納することによって、プライバシーの保護を保証しながら、情報の真実の記録を実現する。他の実施形態では、デジタル要約は、さまざまなブロックチェーン・ノードによって検証される合意であるが、元のデータの内容を明らかにしない。このようにして、元のデータが秘密に保たれる。さらに他の実施形態では、方法およびシステムは、監査に必要な情報をデジタル要約に含める能力を提供する。さらに他の実施形態では、元のトランザクションを実行しているユーザの身元および権限付与レベルを、元のデータ(例えば、元のトランザクション)に関連付け、デジタル要約に含めることができる。これによって、監査機関によって監査される予定の監査データを認証するために取得できる十分な情報を提供する。その結果、監査の信頼性および品質が向上する。
【0023】
本明細書で開示されたシステム、方法、および非一時的コンピュータ可読媒体のこれらおよびその他の特徴だけでなく、構造の関連する要素および部分の組み合わせの動作および機能の方法ならびに製造の経済性が、添付の図面を参照して以下の説明および添付の特許請求の範囲を検討したときに、さらに明らかになってよく、それらすべてが、類似する参照番号がさまざまな図内の対応する部分を指定している本明細書の一部を形成する。しかし、それらの図面が単に例示および説明を目的としており、制限として意図されていないということが、明確に理解されるべきである。
【発明を実施するための形態】
【0025】
本明細書において開示される実施形態は、ブロックチェーンベースの認証システム、方法、および非一時的コンピュータ可読媒体を含むが、これらに限定されない。さまざまな実施形態では、運用情報(例えば、金融トランザクション・データ)のデジタル要約が、固定することによってブロックチェーンに格納される。格納されたデジタル要約を、ブロックチェーンから取得することができ、監査に提供されるデータに対して検証するために使用できる。格納されたデジタル要約の信頼性およびオリジナリティを、ブロックチェーンの不変性、一貫性、および正確さに基づいて保証できる。一部の実施形態では、データ改ざんの試みを防ぐことができる。他の実施形態では、要約を格納することによって、平文情報の格納におけるような重要な情報の過度の開示を防ぐことができる。さらに他の実施形態では、情報漏洩のリスクが低減し、情報を隠蔽する可能性が低下し、かつ/または監査データのセキュリティが向上する。
【0026】
さまざまな実施形態では、開示された認証システム、方法、および非一時的コンピュータ可読媒体は、誰がネットワークへの参加、合意プロトコルの実行、および共有ブロックチェーン台帳の維持を許可されるかに応じて、さまざまなタイプのブロックチェーンに基づいてよい。さまざまなタイプのブロックチェーンは、例えば、パブリック・ブロックチェーン、コンソーシアム・ブロックチェーン、プライベート・ブロックチェーンなどを含んでよい。以下の説明では、コンソーシアム・ブロックチェーンを参照する。それにもかかわらず、開示された認証システム、方法、および非一時的コンピュータ可読媒体は、他のタイプのブロックチェーンに対して適用されてもよい。
【0027】
ブロックチェーンは、ネットワーク内のさまざまなノード(例えば、コンピューティング・デバイス)によって動作が実行されるため、分散化されているか、または部分的に集中化されたデータベースであると考えることができ、一般に分散型台帳と呼ばれる。すべての情報がブロックチェーンに書き込まれて保存されるか、またはブロックチェーンから読み取られてよい。ノードは、例えば、ブロックチェーン・ネットワークをサポートし、ブロックチェーン・ネットワークの円滑な実行を維持する、コンピューティング・デバイスまたは大規模なコンピュータ・システムである。各ノードは、ブロックチェーンの機能の一部または全部を提供してよい。例えば、合意の検証を行うノードは、合意参加ノード(または合意ノード)と呼ばれてよい。合意は、一般に受け入れられる処理結果を達成するための、ブロックチェーン・ノードのネットワークに関するルールのアルゴリズムであってよい。合意を通じて、データが継続的にブロックのチェーンに追加される。ブロックに対して変更が行われた場合、そのブロックの、チェーン内の先行するブロックへのリンクが無効になり、それがすべてのネットワーク参加者に見えるようになり、ネットワーク参加者は、合意ルールを通じて、さらなる不正な動作を防ぐことができる。
【0028】
コンソーシアム・ブロックチェーンとは、事前に設定されたノードによって制御される合意手順を伴うブロックチェーンのことである。このブロックチェーンは、すべての参加者または承認された参加者のみが、アクセスすること、またはハイブリッド・アクセス方法を採用することを、許可することができる。例えば、ルート・ハッシュおよびそのAPI(アプリケーション・プログラム・インターフェイス:Application Program Interface)が一般公開されてよく、外部の関係者は、APIを使用して特定の数の照会を行い、ブロックチェーンの状態に関連する情報を取得することを許可される。
【0029】
コンソーシアム・ブロックチェーンは、より一般的なブロックチェーンであるパブリック・ブロックチェーンと比較した場合に、最もよく理解することができる。パブリック・ブロックチェーンは、アクセス制限を有せず、つまり、インターネットに接続している完全にすべての人が、パブリック・ブロックチェーンの参加者になることができる。さらに具体的には、世界中のすべての人が、ブロックチェーンに含まれている可能性のあるデータを読み取ることができ、世界中のすべての人が、パブリック・ブロックチェーン上でブロックチェーン・トランザクションを実行することを許可される。また、誰がブロックチェーンの合意プロセスに参加できるかに関して制限がなく、合意プロセスは、ブロックをブロックチェーンに追加できる個人または実体を決定するプロセスである。パブリック・ブロックチェーンは、ブロックチェーンに対する制御がどの個人または実体の管理下にもなく、完全に分散化されていると考えられる。
【0030】
コンソーシアム・ブロックチェーンは、許可されるという点において、パブリック・ブロックチェーンとは異なっており、したがって、インターネット接続を有しているだけで、誰もがコンソーシアム・ブロックチェーンにアクセスできるわけではない。このタイプのブロックチェーンは、半分散化されているとして説明することもできる。コンソーシアム・ブロックチェーンに対する制御は、単一の実体に対して許可されず、承認された個人のグループに対して許可される。コンソーシアム・ブロックチェーンでは、合意プロセスがパブリック・ブロックチェーンの合意プロセスと異なる可能性が高い。誰でもこの手順に参加できるのではなく、コンソーシアム・ブロックチェーンの合意の参加者は、ネットワーク上の事前に承認されたノードのグループである可能性が高い。それらのノードは、さまざまな国、企業、またはその他の実体に対応してよい。したがって、コンソーシアム・ブロックチェーンは、パブリック・ブロックチェーンに固有のセキュリティ機能を有しながら、ネットワークに対するより高度な制御も可能にする。
【0031】
図1は、さまざまな実施形態に従ってさまざまな開示されたステップおよび方法を実行するためのシステム110の例を示している。図に示されているように、システム110は、実体のシステム111、ブロックチェーン・システム112、アンカー・システム113、および監査システム114を備えてよく、これらの各々は、ネットワーク119によって表されたさまざまなタイプの通信を介して一緒に結合された1つまたは複数の物理ハードウェア・デバイスまたは仮想デバイスに対応してよい。
【0032】
実体のシステム111、ブロックチェーン・システム112、アンカー・システム113、および監査システム114の各々は、サーバ、コンピュータ、携帯電話などの、1つまたは複数のコンピューティング・デバイスにおいて実装されてよい。例えば、システムの各々は、サーバのクラスターにおいて実装されてよい。サーバのクラスターは、負荷バランシングを採用してよい。
【0033】
実体のシステム111、ブロックチェーン・システム112、アンカー・システム113、および監査システム114は、この図では単一のコンポーネントとして示されているが、これらのシステムを単一のデバイスまたは一緒に結合された複数のデバイスとして実装できるということが理解されるべきである。すなわち、
図1のシステムのうちの2つ以上が単一のシステムに統合されるか、または別々のシステムとして実装されてよい。例えば、実体のシステム111およびアンカー・システム113は、1つまたは複数のコンピューティング・デバイスを備えている認証システム118に統合されてよい。認証システム118は、ブロックチェーンベースの認証システムと呼ばれてよい。実体のシステム111およびアンカー・システム113は、統合された場合、統合されたシステムのさまざまなモジュールまたは同様のコンポーネントとして実装されてよい。
【0034】
実体のシステム111、ブロックチェーン・システム112、アンカー・システム113、および監査システム114の各々は、システム110の他のデバイスにアクセスするために、適切なソフトウェア(例えば、認証アプリケーション・プログラム・インターフェイス)および/またはハードウェア(例えば、ワイヤ、無線接続)と共にインストールされてよい。実体のシステム111、ブロックチェーン・システム112、アンカー・システム113、および監査システム114の各々は、1つまたは複数のプロセッサおよび1つまたは複数のプロセッサに結合された1つまたは複数のメモリを含んでよい。それらのメモリは、非一時的かつコンピュータ可読であってよく、1つまたは複数のプロセッサに、本明細書に記載された動作を実行させるように、1つまたは複数のプロセッサによって実行可能な命令を使用して構成されてよい。
【0035】
一般に、実体のシステム111、ブロックチェーン・システム112、アンカー・システム113、および監査システム114は、ネットワーク119を介して互いに通信可能であってよい。例えば、実体のシステム111、ブロックチェーン・システム112、アンカー・システム113、および監査システム114は、データを伝達できる1つまたは複数の有線ネットワークまたは無線ネットワーク(例えば、インターネット)を介して互いに通信可能であってよい。システム・コンポーネントのさまざまな態様が、
図2〜7を参照して下でさらに詳細に説明される。
【0036】
図2は、さまざまな実施形態に従って、ブロックチェーン・ネットワーク120の例を示している。図に示されているように、ブロックチェーン・ネットワーク120は、前述したブロックチェーン・システム112を備えてよい。ブロックチェーン・システム112は、複数のブロックチェーン・ノード(例えば、ノード1、ノード2、ノード3、ノード4、ノードiなど)を備えてよい。複数のブロックチェーン・ノードは、あるブロックチェーン・ノードが別のブロックチェーン・ノードと通信するネットワーク(例えば、ピアツーピア・ネットワーク)を形成してよい。図に示されているブロックチェーン・ノードの順序および数は、説明を簡単にするための単なる例である。ブロックチェーン・ノードは、サーバ、コンピュータなどにおいて実装されてよい。各ブロックチェーン・ノードは、TCP/IPなどのさまざまなタイプの通信方法を介して一緒に結合された1つまたは複数の物理ハードウェア・デバイスまたは仮想デバイスに対応してよい。分類に応じて、ブロックチェーン・ノードは、満杯になったノード、Gethノード、合意ノードなどを含んでよい。
【0037】
さまざまな実施形態では、ブロックチェーン・システム112の1つまたは複数のノードは、前述した実体のシステム111、アンカー・システム113、および監査システム114などの、他のシステムおよびデバイスと情報をやりとりしてよい。この情報のやりとりは、例えばトランザクション、認証、契約などの目的で、データの送信および/または受信を含んでよい。1つの例では、ノードA(例えば、携帯電話、コンピュータなど)は、認証システム118のデバイスに対応してよく、情報をブロックチェーンに格納するためにノード1(または、ブロックチェーン・システム112の複数のノード)に送信してよい。格納プロセスは、ブロックチェーン・トランザクションを介して実行されてよい。例えば、情報がブロックチェーン契約(例えば、スマート・コントラクト)に書き込まれてよく、ブロックチェーン・トランザクションがノード1(または、ブロックチェーンの合意ルールに基づいてそのような権限を有する1つまたは複数の他のノード)によって開始され、契約をブロックチェーンにデプロイしてよい。他のブロックチェーン・トランザクションと同様に、ここでブロックチェーン・トランザクションは、トランザクション・ハッシュに対応してよい。このハッシュは、ハッシュ値を表し、データ(例えば、実行されるトランザクションに関連付けられた身元情報、トランザクション情報)に対して実行されるハッシュ関数またはアルゴリズムの数値出力であってよい。ブロックチェーンは、ブロックチェーン・トランザクションのハッシュ値を格納してよい。後で(例えば、検証のために)情報を取得する必要があるときに、ノードA/ノードB(例えば、携帯電話、コンピュータなど)は、別のブロックチェーン・トランザクションを開始してブロックチェーンから情報を取得するように、ノード1/ノード2(または、ブロックチェーン・システム112の複数のノード)に対して指示してよい。別のブロックチェーン・トランザクションは、情報を取得するために、アドレスを照会してよい。ノードBは、認証システム118、監査システム114、またはブロックチェーン・システム112に結合された別のシステム(図示されていない)に属してよい。
【0038】
ブロックチェーン・システム112との情報のやりとりにおいて、ノードAおよびノードBは、ブロックチェーン・トランザクションの開始、転送、またはアクセスを実行するための適切なブロックチェーン・ソフトウェアと共にインストールされてよい。ノードAは、ブロックチェーンのノード1または1つまたは複数の他のノードとの通信を介して、ブロックチェーンにアクセスしてよく、ノードBは、ブロックチェーンのノード2または1つまたは複数の他のノードとの通信を介して、ブロックチェーンにアクセスしてよい。ノードAは、ノード1または同様のノードを介してブロックチェーン・トランザクションをブロックチェーンにサブミットし、ブロックチェーン・トランザクションをブロックチェーンに追加することを要求してよい。
【0039】
ブロックチェーンは、それぞれメモリを備えているか、またはメモリに結合している、複数のブロックチェーン・ノードによって維持されてよい。一部の実施形態では、このメモリは、プール・データベースを格納してよい。プール・データベースは、分散方式で、複数のブロックチェーン・ノードによってアクセス可能であってよい。例えば、プール・データベースは、ブロックチェーン・ノードのメモリにそれぞれ格納されてよい。プール・データベースは、ノードAに類似する1つまたは複数のユーザ・デバイスによってサブミットされた複数のブロックチェーン・トランザクションを格納してよい。
【0040】
一部の実施形態では、受信者ブロックチェーン・ノードは、未確認のブロックチェーン・トランザクションのブロックチェーン・トランザクション要求を受信した後に、ブロックチェーン・トランザクションの何らかの予備的検証を実行してよい。例えば、
図2を参照すると、ノード1は、ノードAからブロックチェーン・トランザクションを受信した後に、予備的検証を実行してよい。ブロックチェーン・トランザクションは、検証された後に、受信者ブロックチェーン・ノード(例えば、ノード1)のプール・データベースに格納されてよく、受信者ブロックチェーン・ノードが、このブロックチェーン・トランザクションを1つまたは複数の他のブロックチェーン・ノード(例えば、ノード3、ノード4)に転送してもよい。それらの1つまたは複数の他のブロックチェーン・ノードは、受信者ノードによって実行されたプロセスを繰り返してよい。対応するプール・データベース内のブロックチェーン・トランザクションが特定のレベル(例えば、しきい値)に達した後に、ブロックチェーン・ノードはそれぞれ、合意ルールまたはその他のルールに従って、対応するプール・データベース内の一組のブロックチェーン・トランザクションを検証してよい。ブロックチェーン・トランザクションがブロックチェーン契約(例えば、スマート・コントラクト)を含んでいる場合、ブロックチェーン・ノードは、ブロックチェーン契約をローカルに実行してよい。ブロックチェーン契約は、契約の交渉または実行をデジタル的に容易にするか、検証するか、または実施するよう意図されたコンピュータ・プロトコルである。ブロックチェーン契約は、第三者が存在せずに、信頼できるブロックチェーン・トランザクションの実行を許可する。ブロックチェーン・トランザクションの例は、データの(契約のデプロイメントによる)格納および(契約へのアクセスまたは契約の実行による)取得のために、データを契約コードでエンコードしてよい。ブロックチェーン契約は、身元情報のハッシュ値、実行されたブロックチェーン・トランザクションに関連付けられたブロックチェーン・トランザクション情報などの、ユーザによって記述された契約コードを含んでよい。合意ルールに従って一組のブロックチェーン・トランザクションを正常に検証した特定のブロックチェーン・ノードは、それらのブロックチェーン・トランザクションを圧縮して、ブロックチェーンのローカル・コピーに追加し、その結果を他のブロックチェーン・ノードに拡散してよい。この特定のブロックチェーン・ノードは、検証を最初に正常に完了したブロックチェーン・ノードであるか、検証権限を取得したブロックチェーン・ノードであるか、または別の合意ルールに基づいて決定されたブロックチェーン・ノードなどであってよい。次に、他のブロックチェーン・ノードが、ブロックチェーン・トランザクションをローカルに実行し、(例えば、ハッシュ計算を実行することによって)実行結果を互いに検証し、ブロックチェーンのコピーを特定のブロックチェーン・ノードのブロックチェーンのコピーと同期させてよい。他のブロックチェーン・ノードは、ブロックチェーンのローカル・コピーを更新することによって、ブロックチェーン・トランザクション内のそのような情報を各ローカル・メモリに同様に書き込んでよい。このようにして、ブロックチェーン契約がデプロイされる。デプロイされた契約は、実行するために、ブロックチェーン上の対応するアドレスを介して後でアクセスすることができる。例えば、契約に格納されたデータを取得することができる。ある時点で検証が失敗した場合、ブロックチェーン・トランザクションが拒否される。上記にかかわらず、他のタイプのブロックチェーン・システムおよび関連する合意ルールが、開示されたブロックチェーン・システムに適用されてよい。
【0041】
図3は、さまざまな実施形態に従って、データをブロックチェーンに格納するための方法300の例を示している。方法300は、
図1のシステム110の1つまたは複数のコンポーネント(例えば、実体のシステム111、ブロックチェーン・システム112)によって実装されてよい。前述したように、実体のシステム111は、1つまたは複数のコンピューティング・デバイスを備えている認証システム118の一部であってよい。実体のシステム111は、銀行システムなどの金融システムであってよい。以下で提示される動作は、例示的であるよう意図されている。実装に応じて、方法300は、さまざまな順序で、または並列に実行される、追加のステップ、より少ないステップ、または代替のステップを含んでよい。
【0042】
一部の実施形態では、ステップ311で、実体のシステム111を介して、実体が身元検証要求(例えば、ログイン)を開始してよい。実体は、個人、会社または企業、組織などに関連付けられてよい。例えば、ある人が、検証のためにログイン・ユーザの特定の身元情報(例えば、アカウントおよびパスワードなどの認証情報、ログイン・ユーザの権限付与レベルなど)を入力することによって、実体のシステム111または実体のシステム111に結合された同様のシステム(例えば、銀行によって運用され、ノードA上に実装されているオンライン銀行システム)にログインしようとしてよい。
【0043】
ステップ312で、実体のシステム111が、身元情報を検証し、身元検証要求のための身元情報の第1のデジタル要約を取得してよい。身元検証要求のための身元情報は、例えば、ログイン・ユーザの経歴情報(例えば、名前、性別、住所、識別情報、連絡先電話番号など)、ログインのタイムスタンプおよび場所、ログイン・デバイス、ログインが成功したか失敗したかなどのうちの1つまたは複数に関連するが、これらに限定されない、任意の情報を含んでよい。身元情報の第1のデジタル要約は、身元情報のハッシュ(例えば、SHA−256ハッシュ)であってよい。実体のシステム111は、身元情報に対してハッシュ・プロセスを実行し、第1のデジタル要約を取得してよい。例えば、第1のデジタル要約は、身元情報に対してハッシュ・アルゴリズムを実行することによって取得されたハッシュ値を含んでよい。実体のシステム111は、第1のデジタル要約をブロックチェーン・システム112に送信し、ブロックチェーン・システム112によって維持されているブロックチェーンに格納してよい。第1のブロックチェーン・トランザクションによって、第1のデジタル要約が、ブロックチェーン・システム112に格納される。ブロックチェーンは、第1のデジタル要約(例えば、身元情報のハッシュ値)を格納してよいが、ブロックチェーンに格納されたデータがさまざまなブロックチェーン・ノードから見えるため、プライバシーを保証するために、身元情報の詳細(例えば、平文)を格納しなくてよい。
【0044】
一部の実施形態では、実体のシステム111は、1つまたは複数の軽量ノード(例えば、ノードA、ノードB)を含んでよい。実体のシステム111は、軽量ノードに結合されたブロックチェーン・システム112のノード(例えば、ノード1)を介して、第1のブロックチェーン・トランザクションを開始してよい。例えば、第1のデジタル要約がブロックチェーン契約(例えば、スマート・コントラクト)に書き込まれてよく、第1のブロックチェーン・トランザクションが開始されて、契約をブロックチェーンにデプロイしてよい。デプロイメントによって、契約が、実行、取得、またはその他の動作のために、ブロックチェーンからアクセス可能になる。この場合、第1のブロックチェーン・トランザクションは、第1のブロックチェーン・トランザクション識別情報(例えば、第1のトランザクション・ハッシュ)に対応してよい。例えば、第1のブロックチェーン・トランザクション識別情報は、第1のブロックチェーン・トランザクションのハッシュ値であることができる。ブロックチェーン・システム112は、第1のブロックチェーン・トランザクション識別情報を格納してもよい。このようにして、第1のブロックチェーン・トランザクション識別情報および第1のデジタル要約が固定される。この固定関係が、アンカー・システム113に格納されてよい。第1のブロックチェーン・トランザクション識別情報を照会することによって、ブロックチェーンに格納されたデジタル要約を取得できる。例えば、第1のブロックチェーン・トランザクション識別情報がブロックチェーン・システム112に送信された場合、ブロックチェーン・システム112はブロックチェーン契約を実行し、第1のデジタル要約を取得してよい。デジタル要約をブロックチェーン・システム112に格納し、格納されたデジタル要約を取得するための、多くのその他の適切な方法が存在する。当業者は、本明細書の実施形態が上記の例に限定されないということを理解するはずである。
【0045】
ステップ313で、上記のステップが正常に実行された場合、ブロックチェーン・システム112が、第1のデジタル要約がブロックチェーンに正常に格納されたことを示す結果を返してよい。例えば、実体のシステム111は、ログインが成功したという通知を取得してよい。ブロックチェーン・システム112は、身元情報の第1のデジタル要約をブロックチェーンに格納することに関連付けられた第1のブロックチェーン・トランザクション識別情報を返してもよい。
【0046】
ステップ321で、実体が、実体のシステム111を介してトランザクション要求(例えば、金融トランザクションまたは別の活動)を開始してよい。
【0047】
ステップ322で、ログインが成功したことに応答して、実体のシステム111が、トランザクション要求に従ってトランザクションを実行し、トランザクション結果を取得してよい。ここで、トランザクションは、送金、資金の引き出し、アカウント情報の変更、情報の要求、資金の要求、トランザクションの承認または拒否などの、任意のタイプの活動にすることができる。トランザクションは、本明細書に記載された例に限定されない。本明細書では、トランザクション情報は、トランザクションに関連する情報を参照するために使用される。例えば、トランザクション情報は、トランザクション要求、トランザクション結果、ユーザ識別情報および権限付与レベルなどのアカウント・ユーザ情報、ユーザまたは実体のシステム111がトランザクションを実行しているときにアクセスしたURL(ユニフォーム・リソース・ロケータ)、トランザクションの実行に関連する変数または係数、トランザクションの前および/または後の預金残高、アカウント活動ログなどのうちの1つまたは複数を含むことができる。当業者は、トランザクション情報が上記の例に限定されないということを理解するはずである。
【0048】
以下の例では、運用情報という用語が使用される。一部の実施形態では、運用情報は、トランザクション情報を含むことができる。一部の他の実施形態では、運用情報は、トランザクション情報に加えて、ログイン・ステップ311および313に関連付けられた情報を含むことができる。一部の実施形態では、ログイン・ステップ311および313に関連付けられた情報は、第1のデジタル要約、実体(ユーザ)の身元情報、または第1のブロックチェーン・トランザクション識別情報のうちの1つまたは複数を含んでよい。例えば、ある状況では、運用情報は、トランザクション情報に加えて、第1のデジタル要約を含む。運用情報に何を含めるかは、開示された実施形態を実装する人の設計上の選択であってよい。
【0049】
実体のシステム111は、運用情報の第2のデジタル要約をさらに取得(例えば、生成)してよい。運用情報の第2のデジタル要約は、運用情報のハッシュ(例えば、SHA−256ハッシュ)であってよい。実体のシステム111は、運用情報に対してハッシュ・プロセスを実行し、第2のデジタル要約を取得してよい。例えば、第2のデジタル要約は、運用情報に対してハッシュ・アルゴリズムを実行することによって取得されたハッシュ値を含んでよい。実体のシステム111は、第2のデジタル要約をブロックチェーン・システム112に送信し、ブロックチェーン・システム112によって維持されているブロックチェーンに格納してよい。
【0050】
さまざまな実施形態では、実体のシステム111は、第2のブロックチェーン・トランザクションを開始し、ブロックチェーン・システム112のノードを介して第2のデジタル要約をブロックチェーンに格納してよい。例えば、第2のデジタル要約がブロックチェーン契約(例えば、スマート・コントラクト)に書き込まれてよく、第2のブロックチェーン・トランザクションがこのノードまたは別のノードによって開始されて、契約をブロックチェーンにデプロイしてよい。この場合、第2のブロックチェーン・トランザクションは、第2のデジタル要約にも関連付けられている第2のブロックチェーン・トランザクション識別情報(例えば、第2のトランザクション・ハッシュ)に対応してよい。ブロックチェーンは、第2のデジタル要約(例えば、運用情報のハッシュ値)を格納してよいが、ブロックチェーンに格納されたデータがさまざまなブロックチェーン・ノードから見えるため、プライバシーを保証するために、トランザクション情報の詳細(例えば、平文)を格納しなくてよい。ブロックチェーンは、第2のブロックチェーン・トランザクション識別情報を格納してもよい。このようにして、第2のブロックチェーン・トランザクション識別情報および第2のデジタル要約が固定される。この固定関係が、アンカー・システム113に格納されてよい。第2のブロックチェーン・トランザクション識別情報を照会することによって、ブロックチェーンに格納された第2のデジタル要約を取得できる。ブロックチェーンへの運用情報の第2のデジタル要約の格納を実現するために、スマート・コントラクトのその他の代替方法が採用されてよい。
【0051】
ステップ323で、上記のステップが正常に実行された場合、ブロックチェーン・システム112が、第2のデジタル要約がブロックチェーンに正常に格納されたことを示す結果を実体のシステム111に返してよい。ブロックチェーン・システム112は、運用情報の第2のデジタル要約をブロックチェーンに格納することに関連付けられた第2のブロックチェーン・トランザクション識別情報を返してもよい。第2のブロックチェーン・トランザクション識別情報または同様のトランザクション識別情報は、実体のシステム111および/または別のシステム(例えば、アンカー・システム113)に格納されてよい。したがって、実体のシステム111は、運用情報のデジタル要約をブロックチェーンに格納することに関連付けられたトランザクション識別情報を取得してよい。
【0052】
代替として、ステップ311は、ステップ321と結合されてよい。すなわち、識別情報の検証およびトランザクションが同時に要求されてよい。それに応じて、ステップ312がステップ322と結合されてよく、ステップ313が323と結合されてよい。
【0053】
図4は、さまざまな実施形態に従って、データの固定および検証のための方法400の例を示している。方法400は、
図1のシステム110の1つまたは複数のコンポーネント(例えば、実体のシステム111、ブロックチェーン・システム112、アンカー・システム113、監査システム114)によって実装されてよい。前述したように、実体のシステム111およびアンカー・システム113は、別々のシステムとして示されているが、1つまたは複数のコンピューティング・デバイスを備えている認証システム118に統合されてよい。以下で提示される動作は、例示的であるよう意図されている。実装に応じて、方法400は、さまざまな順序で、または並列に実行される、追加のステップ、より少ないステップ、または代替のステップを含んでよい。
【0054】
一部の実施形態では、ステップ411で、監査システム114が、実体のシステム111と共に監査要求を開始してよい。例えば、監査機関のシステムが、実体のシステム111との通信を開始し、監査用のデータを提供するように実体に要求してよい。本明細書では、通常、監査するために実体のシステム111によって提供されるデータを監査データと呼ぶ。要求された監査データは、1つまたは複数のトランザクションに関する運用情報の1つまたは複数の完全なセットであってよく、または運用情報の一部(例えば、アカウント活動ログ、ユーザ識別情報および権限付与レベルなどのアカウント・ユーザ情報など)であってよい。実体のシステム111によって提供された監査データが真実である場合、監査データは、運用情報と同じであるはずである。
【0055】
ステップ412で、実体のシステム111は、要求された監査データを監査システム114に送信してよい。したがって、監査システム114は、運用情報に対する認証に関する監査データを取得してよい。例えば、監査データは、1つまたは複数の実行されたトランザクションに対応するとされている、1つまたは複数のトランザクションのログを含んでよい。以降のステップは、監査データが過去のトランザクションに本当に対応しているかどうかを認証するために実行されてよい。このようにして、監査データの操作を防ぐことができる。
【0056】
ステップ421で、監査システム114は、アンカー・システム113を介して監査データの検証を開始してよい。監査システム114は、監査データをアンカー・システム113に転送してよい。本明細書では、アンカーまたは固定は、関連付けること、またはその他の方法で関連付けを確立することを意味してよい。アンカー・システム113は、相関関係を格納する。例えば、アンカー・システム113は、ブロックチェーン・トランザクション識別情報とデジタル要約の相関関係を格納する。アンカー・システム113は、相関関係を実体のシステム111から取得していてよい。
【0057】
ステップ422で、それに応じて、アンカー・システム113が、監査データに基づいてブロックチェーン・トランザクション識別情報を取得してよい。例えば、監査データは、監査対象の実行されたトランザクションの識別情報を含んでよい。実行されたトランザクションは、ブロックチェーン・トランザクション識別情報に関連付けられてよい。ブロックチェーン・トランザクションは、
図3と併せて上で説明されたブロックチェーン・トランザクションであることができる。前述したように、アンカー・システム113は、実行されたトランザクションに対応するデジタル要約をブロックチェーンに格納するブロックチェーン・トランザクションに対応するブロックチェーン・トランザクション識別情報を格納していてよい。アンカー・システム113は、ブロックチェーン・トランザクション識別情報を、監査システム114から直接、または実体のシステム111から、取得してよい。ステップ422で取得されたこのブロックチェーン・トランザクション識別情報は、第3のブロックチェーン・トランザクション識別情報(例えば、第3のトランザクション・ハッシュ)と呼ぶことができる。
図3に関連して上で説明されたブロックチェーン・トランザクション識別情報と同様に、第3のブロックチェーン・トランザクション識別情報は、ブロックチェーン・システム112上のデジタル要約に関連付けられる。このデジタル要約は、すでにブロックチェーン・システム112に格納されている監査対象の運用情報のデジタル要約である。第3のブロックチェーン・トランザクション識別情報を使用して、ブロックチェーン・システム112からデジタル要約を識別および取得することができる。このステップで、アンカー・システム113は、対応するデジタル要約を識別および取得するために、第3のブロックチェーン・トランザクション識別情報をブロックチェーン・システム112に送信することができる。
【0058】
アンカー・システム113は、監査データのデジタル要約を生成してもよい。このデジタル要約は、第3のデジタル要約と呼ぶことができる。
【0059】
ステップ423で、ブロックチェーン・システム112が、第3のブロックチェーン・トランザクション識別情報に関連付けられたデジタル要約のブロックチェーンに格納されたコピーをアンカー・システム113に送信してよい。
【0060】
ステップ424で、アンカー・システム113が、第3のブロックチェーン・トランザクション識別情報に関連付けられたデジタル要約のブロックチェーンに格納されたコピーが、生成された第3のデジタル要約と一致するかどうかを、検証してよい。
【0061】
ステップ431で、アンカー・システム113が、検証結果を監査システム114に返してよい。第3のブロックチェーン・トランザクション識別情報に関連付けられたデジタル要約のブロックチェーンに格納されたコピーが、生成された第3のデジタル要約と一致する場合、検証結果は、監査データが真正であることを示してよい。そうでない場合、検証結果は、監査データが不正であることを示してよい。
【0062】
前述したように、一部の実施形態では、アンカー・システム113が監査システム114と統合されてよい。一部の他の実施形態では、ステップのうちの一部または全部が、アンカー・システム113の代わりに、監査システム114によって実行されてよい。例えば、監査システム114は、第3のブロックチェーン・トランザクション識別情報を、実体のシステム111またはアンカー・システム113から取得してよい。代替として、監査システム114は、それ自身のデータベースから第3のブロックチェーン・トランザクション識別情報を取得してよく、このデータベースは、実行されたトランザクションとブロックチェーン・トランザクション識別情報の間の対応関係を格納してよい。監査システム114は、ブロックチェーン・トランザクション識別情報に基づいて、実行されたトランザクションに関連付けられた運用情報のデジタル要約を取得してよい。監査システム114は、監査データの第3のデジタル要約を生成してもよい。次に、監査システム114は、第3のデジタル要約をブロックチェーンから取得されたデジタル要約と比較し、監査データを検証してよい。
【0063】
図5は、さまざまな実施形態に従って、ブロックチェーンベースの認証を実装するための方法510の例のフロー・チャートを示している。方法510は、
図1のシステム110の1つまたは複数のコンポーネント(例えば、認証システム118)によって実装されてよい。例えば、ステップ514〜517は、認証システム118のアンカー・システム113によって実行されてよい。例えば、ステップ501〜504および511〜513は、認証システム118の実体のシステム111およびアンカー・システム113の組み合わせによって実行されてよい。方法510は、さまざまなハードウェア・マシンおよび/またはソフトウェアを備えているシステムによって実装されてよい。例えば、認証システム118は、1つまたは複数のシステムまたはデバイス(例えば、コンピュータ、サーバ)によって実装されてよい。方法510を実装するシステムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、システム(例えば、プロセッサ)に方法510を実行させるように1つまたは複数のプロセッサによって実行可能な命令を使用して構成された、1つまたは複数の非一時的コンピュータ可読記憶媒体(例えば、1つまたは複数のメモリ)とを備えてよい。以下で提示される動作は、例示的であるよう意図されている。実装に応じて、方法510は、さまざまな順序で、または並列に実行される、追加のステップ、より少ないステップ、または代替のステップを含んでよい。方法510の実装の例は、
図3〜4を参照して上で説明されている。
【0064】
一部の実施形態では、一部の任意選択的なステップが、ステップ514の前に実行されてよい。任意選択的なステップ501は、ユーザからのログインに応答して、このログインの身元情報のデジタル要約(例えば、第1のデジタル要約)を生成することを含む。任意選択的なステップ502は、身元情報のデジタル要約(例えば、第1のデジタル要約)を、ブロックチェーンに格納するために、ブロックチェーンの1つまたは複数のノードに送信することを含む。任意選択的なステップ503は、身元情報の第1のデジタル要約に関連付けられたブロックチェーン・トランザクション識別情報(例えば、第1のブロックチェーン・トランザクション識別情報)を取得することを含む。
【0065】
任意選択的なステップ504は、ユーザの要求通りにトランザクション(例えば、金融トランザクション)を実行することを含む。任意選択的なステップ511は、実行されたトランザクションに関連付けられた運用情報のデジタル要約(例えば、第2のデジタル要約)を生成することを含む。一部の実施形態では、運用情報の第2のデジタル要約は、運用情報のハッシュ値を含む。特定のデータのハッシュまたはハッシュ値は、ハッシュ値(例えば、データに対するハッシュ・アルゴリズムの実行の数値結果)を意味してよい。例えば、特定のデータ(例えば、運用情報)のデジタル要約を生成することは、データに対してハッシュ・アルゴリズムを実行して、数値結果を取得することを含んでよい。運用情報の内容は、監査要求事項に従って構成されてよい。運用情報は、トランザクションのトランザクション情報ならびに身元情報のデジタル要約、身元情報、および身元情報のデジタル要約に関連付けられたブロックチェーン・トランザクション識別情報(例えば、第1のブロックチェーン・トランザクション識別情報)のうちの1つまたは複数を含んでよい。
【0066】
一部の実施形態では、トランザクションのトランザクション情報が、トランザクションを実行するための1つまたは複数のURLを含んでよい。トランザクションのトランザクション情報は、1つまたは複数のURLを呼び出すための1つまたは複数のパラメータ(例えば、アカウントID)および1つまたは複数のURLの呼び出しから返された1つまたは複数の結果(例えば、最終預金残高)を含んでよい。例えば、運用情報は、実行されたトランザクションに関連付けられたトランザクション情報および第1のデジタル要約を含んでよい。特定の例では、運用情報内のトランザクション情報は、トランザクションを実行するために呼び出されるURLを含んでいる、トランザクションを実行することの要求を含んでよい。別の例の場合、運用情報は、トランザクションを要求するか、または許可するユーザの識別情報を含んでもよい。別の例の場合、運用情報は、動作の実行結果(例えば、送金額または残高)を含んでもよい。一部の実施形態では、識別情報は、トランザクションの実行を要求するか、または許可するユーザの権限付与レベルを含み、この権限付与レベルは、ユーザがトランザクションを実施または承認するための十分に高い権限付与レベルを持っているかどうかを検証するために、使用することができる。
【0067】
任意選択的なステップ512は、運用情報のデジタル要約(例えば、第2のデジタル要約)を、ブロックチェーンに格納するために、ブロックチェーンの1つまたは複数のノードに送信することを含む。一部の実施形態では、運用情報のデジタル要約を、ブロックチェーンに格納するためにブロックチェーンの1つまたは複数のノードに送信することが、運用情報の第2のデジタル要約および運用情報のデジタル要約を生成するために使用される暗号プロセス(例えば、SHA−256ハッシュ)をブロックチェーン契約に書き込むことと、1つまたは複数のノードに、ブロックチェーン契約をデプロイするためのブロックチェーン・トランザクションを開始させることとを含む。さらに詳細については、前述したステップ322を参照することができる。
【0068】
任意選択的なステップ513は、運用情報の第2のデジタル要約に関連付けられたブロックチェーン・トランザクション識別情報(例えば、第2のブロックチェーン・トランザクション識別情報)を取得することを含む。一部の実施形態では、トランザクション識別情報は、ブロックチェーン契約をデプロイするブロックチェーン・トランザクションのトランザクション・ハッシュ値を含む。トランザクション・ハッシュの例については、前述した第1のブロックチェーン・トランザクション識別情報および第2のブロックチェーン・トランザクション識別情報を参照できる。
【0069】
ステップ514は、実行されたトランザクションに関連付けられた運用情報(例えば、ステップ504〜513で実行されたトランザクションに関連付けられた運用情報)に対して、認証に関する監査データを取得することを含む。ここで、本明細書は、「実行されたトランザクション」を参照する。当業者は、本明細書では、実行されたトランザクションが、複数の実行されたトランザクションまたは実行されたトランザクションの一部を含むことができるということを、理解するべきである。監査データは、実体によって提供されるか、または監査用の他の場所から取得されてよい。監査データは、監査する必要があるか、またはその他の方法で検証する必要がある、任意のタイプの記録データを含んでよい。以降のステップによって、運用情報との一致に基づいて、監査データの信頼性が検証されてよい。さらに詳細については、前述したステップ411、412、および421を参照することができる。
【0070】
ステップ515は、監査データのデジタル要約(例えば、第3のデジタル要約)を生成することを含む。一部の実施形態では、監査データの第3のデジタル要約を生成することが、運用情報の第2のデジタル要約を生成するために使用される暗号プロセス(例えば、SHA−256ハッシュ)に基づいて監査データの第3のデジタル要約を生成することを含む。
【0071】
ステップ516は、運用情報のデジタル要約をブロックチェーンから取得することを含む。ここで、ブロックチェーンからの監査データに対応するはずであるデジタル要約が、取得されてよい。一部の実施形態では、デジタル要約をブロックチェーンから取得することが、監査対象のトランザクションに関連付けられたブロックチェーン・トランザクション識別情報に従ってデジタル要約を取得することを含む。一部の実施形態では、監査システムが、監査データ内の監査対象のトランザクションに関する情報に基づいて、ブロックチェーン・トランザクション識別情報を取得してよい。監査データが真正である状況では、ブロックチェーン・トランザクション識別情報は、ステップ513で第2のデジタル要約に関連付けられた第2のブロックチェーン・トランザクション識別情報と同じはずである。さらに詳細については、前述したステップ422および423を参照することができる。
【0072】
ステップ517は、運用情報の取得されたデジタル要約に対して、監査データの生成されたデジタル要約(例えば、第3のデジタル要約)を検証することによって、監査データの信頼性を決定することを含む。さらに詳細については、前述したステップ424を参照することができる。一部の実施形態では、ステップ517は、監査データの生成された第3のデジタル要約が取得されたデジタル要約と一致するということの決定に応答して、監査データが真正であるということを決定することと、監査データの生成された第3のデジタル要約が取得されたデジタル要約と一致しないということの決定に応答して、監査データが不正であるということを決定することとを含む。
【0073】
図6は、さまざまな実施形態に従って、ブロックチェーンベースの認証を実装するためのコンピュータ・システム610の例のブロック図を示している。システム610は、
図1のシステム110の1つまたは複数のコンポーネント(例えば、認証システム118)の実装の例であってよい。方法510は、コンピュータ・システム610によって実装されてよい。コンピュータ・システム610は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、システムまたはデバイス(例えば、プロセッサ)に方法510を実行させるように1つまたは複数のプロセッサによって実行可能な命令を使用して構成された、1つまたは複数の非一時的コンピュータ可読記憶媒体(例えば、1つまたは複数のメモリ)とを備えてよい。コンピュータ・システム610は、命令(例えば、ソフトウェア命令)に対応するさまざまなユニット/モジュールを備えてよい。一部の実施形態では、コンピュータ・システム610は、認証装置と呼ばれてよい。認証装置は、実行されたトランザクションに関連付けられた運用情報に対する認証に関する監査データを取得するための取得モジュール611と、監査データのデジタル要約を生成するための生成モジュール612と、運用情報のデジタル要約をブロックチェーンから取得するための取得モジュール613と、運用情報の取得されたデジタル要約に対して、監査データの生成されたデジタル要約を検証することによって、監査データの信頼性を決定するための決定モジュール614とを備えてよい。
【0074】
図に示されているように、実行されたトランザクションに関連付けられた運用情報のデジタル要約を生成し、このデジタル要約をブロックチェーンに格納することによって、運用情報の表現を安全に維持することができ、検証のためにアクセス可能にすることができる。デジタル要約は、今後の監査のために、ブロックチェーンの記録データに格納される。ハッシュ処理を含んでいるブロックチェーンの合意ルールに基づいて、格納されたデータの改ざんを防ぐことができる。運用情報のデジタル要約表現は、平文情報を隠蔽し、プライバシーを保護することもできる。ブロックチェーン・トランザクション識別情報を照会することによって、ブロックチェーンに格納されたデジタル要約を、検証のためにブロックチェーンから取得することができる。このようにして、監査データのオリジナリティおよび信頼性を保証することができ、監査の不正行為の可能性を低くする。
【0075】
本明細書に記載された技術は、1つまたは複数の専用コンピューティング・デバイスによって実装される。それらの専用コンピューティング・デバイスは、デスクトップ・コンピュータ・システム、サーバ・コンピュータ・システム、ポータブル・コンピュータ・システム、ハンドヘルド・デバイス、ネットワーク・デバイス、あるいは本技術を実装するために配線論理および/またはプログラム論理を組み込む任意のその他デバイスまたはデバイスの組み合わせであってよい。それらの専用コンピューティング・デバイスは、パーソナル・コンピュータ、ラップトップ、携帯電話、カメラ付き携帯電話、スマートフォン、パーソナル・デジタル・アシスタント、メディア・プレーヤー、ナビゲーション・デバイス、電子メール・デバイス、ゲーム機、タブレット・コンピュータ、ウェアラブル・デバイス、またはこれらの組み合わせとして実装されてよい。コンピューティング・デバイスは、通常、オペレーティング・システム・ソフトウェアによって制御され、調整される。従来のオペレーティング・システムは、特に、実行のためにコンピュータ・プロセッサを制御およびスケジューリングし、メモリ管理を実行し、ファイル・システム、ネットワーク、I/Oサービスを提供し、グラフィカル・ユーザ・インターフェイス(GUI:graphical user interface)などのユーザ・インターフェイス機能を提供する。本明細書に記載されたさまざまなシステム、装置、ストレージ媒体、モジュール、およびユニットは、専用コンピューティング・デバイス、あるいは1つまたは複数の専用コンピューティング・デバイスの1つまたは複数のコンピューティング・チップにおいて実装されてよい。一部の実施形態では、本明細書に記載された命令は、専用コンピューティング・デバイス上の仮想マシンにおいて実装されてよい。それらの命令は、実行されたときに、専用コンピューティング・デバイスに、本明細書に記載されたさまざまな方法を実行させてよい。この仮想マシンは、ソフトウェア、ハードウェア、またはこれらの組み合わせを含んでよい。例えば、仮想マシンは、イーサリアム内でスマート・コントラクト用の実行時環境を提供するイーサリアム仮想マシン(EVM:Ethereum Virtual Machine)ソフトウェアを含んでよい。
【0076】
図7は、本明細書に記載された実施形態のいずれかが実装されてよいコンピュータ・システム700を示すブロック図である。システム700は、本明細書に記載されたノードのいずれかにおいて実装されてよく、ブロックチェーン契約を実装するために、対応するステップを実行するように構成されてよい。コンピュータ・システム700は、情報を伝達するためのバス702またはその他の通信機構、情報を処理するためにバス702に結合された1つまたは複数のハードウェア・プロセッサ704を含んでいる。ハードウェア・プロセッサ704は、例えば、1つまたは複数の汎用マイクロプロセッサであってよい。
【0077】
コンピュータ・システム700は、情報およびプロセッサ704によって実行可能な命令を格納するためにバス702に結合された、ランダム・アクセス・メモリ(RAM:random access memory)などのメイン・メモリ706、キャッシュ、および/またはその他の動的ストレージ・デバイスも含んでいる。メイン・メモリ706は、プロセッサ704によって実行可能な命令の実行中にテンポラリ変数またはその他の中間情報を格納するために使用されてもよい。そのような命令は、プロセッサ704によってアクセス可能なストレージ媒体に格納された場合、コンピュータ・システム700を、命令で指定された動作を実行するようにカスタマイズされた専用マシンにする。コンピュータ・システム700は、プロセッサ704用の静的情報および命令を格納するためにバス702に結合された、読み取り専用メモリ(ROM:read only memory)708またはその他の静的ストレージ・デバイスをさらに含んでいる。磁気ディスク、光ディスク、またはUSBサム・ドライブ(フラッシュ・ドライブ)などのストレージ・デバイス710が、情報および命令を格納するために提供され、バス702に結合される。
【0078】
コンピュータ・システム700は、コンピュータ・システムと組み合わせてコンピュータ・システム700が専用マシンになることを引き起こすか、または専用マシンになるようにプログラムする、カスタマイズされた配線論理、1つまたは複数のASICもしくはFPGA、ファームウェア、および/またはプログラム論理を使用して、本明細書に記載された技術を実装してよい。一実施形態によれば、本明細書に記載された動作、方法、およびプロセスは、プロセッサ704がメイン・メモリ706に含まれている1つまたは複数の命令の1つまたは複数のシーケンスを実行することに応答して、コンピュータ・システム700によって実行される。そのような命令は、ストレージ・デバイス710などの別のストレージ媒体からメイン・メモリ706に読み取られてよい。メイン・メモリ706に含まれている命令のシーケンスの実行は、プロセッサ704に、本明細書に記載されたプロセスのステップを実行させる。代替の実施形態では、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて、配線接続された回路が使用されてよい。
【0079】
メイン・メモリ706、ROM708、および/またはストレージ710は、非一時的ストレージ媒体を含んでよい。「非一時的媒体」という用語および類似の用語は、本明細書において使用されるとき、マシンを特定の方法で動作させるデータおよび/または命令を格納する媒体を指しており、この媒体は、一時的信号を除外する。そのような非一時的媒体は、不揮発性媒体および/または揮発性媒体を含んでよい。不揮発性媒体の例としては、ストレージ・デバイス710などの、光ディスクまたは磁気ディスクが挙げられる。揮発性媒体の例としては、メイン・メモリ706などの、動的メモリが挙げられる。非一時的媒体の一般的形態の例としては、フロッピー・ディスク、フレキシブル・ディスク、ハード・ディスク、半導体ドライブ、磁気テープ、または任意のその他の磁気データ・ストレージ媒体、C−ROM、任意のその他の光データ・ストレージ媒体、穴のパターンを有する任意の物理的媒体、RAM、PROM、およびEPROM、フラッシュEPROM、NVRAM、任意のその他のメモリ・チップまたはメモリ・カートリッジ、ならびにこれらのネットワーク化されたバージョンが挙げられる。
【0080】
コンピュータ・システム700は、バス702に結合されたネットワーク・インターフェイス718も含んでいる。ネットワーク・インターフェイス718は、1つまたは複数のローカル・ネットワークに接続された1つまたは複数のネットワーク・リンクに結合している双方向データ通信を提供する。例えば、ネットワーク・インターフェイス718は、総合デジタル通信網(ISDN:integrated services digital network)カード、ケーブル・モデム、衛星モデム、または対応するタイプの電話回線とのデータ通信接続を提供するためのモデムであってよい。別の例として、ネットワーク・インターフェイス718は、互換性のあるLANとのデータ通信接続を提供するためのローカル・エリア・ネットワーク(LAN:local area network)カード(またはWANと通信するためのWANコンポーネント)であってよい。無線リンクが実装されてもよい。いずれかのそのような実装では、ネットワーク・インターフェイス718は、さまざまなタイプの情報を表すデジタル・データ・ストリームを運ぶ電気信号、電磁信号、または光信号を送信および受信する。
【0081】
コンピュータ・システム700は、ネットワーク、ネットワーク・リンク、およびネットワーク・インターフェイス718を介して、メッセージを送信し、プログラム・コードを含むデータを受信することができる。インターネットの例では、サーバが、インターネット、ISP、ローカル・ネットワーク、およびネットワーク・インターフェイス718を介して、アプリケーション・プログラムの要求されたコードを送信してよい。
【0082】
受信されたコードは、受信されたときにプロセッサ704によって実行されてよく、かつ/または後で実行するために、ストレージ・デバイス710またはその他の不揮発性ストレージに格納されてよい。
【0083】
上記のセクションにおいて説明されたプロセス、方法、およびアルゴリズムの各々は、コンピュータ・ハードウェアを備えている1つまたは複数のコンピュータ・システムまたはコンピュータ・プロセッサによって実行されるコード・モジュールにおいて具現化され、完全に、または部分的に自動化されてよい。プロセスおよびアルゴリズムは、特定用途向け回路において部分的または全体的に実装されてよい。
【0084】
前述したさまざまな特徴およびプロセスが、互いに独立して使用されてよく、またはさまざまな方法で組み合わせられてよい。可能性のあるすべての組み合わせおよび部分的組み合わせが、本明細書の範囲に含まれるよう意図されている。加えて、一部の実装では、特定の方法またはプロセスのブロックが省略されてよい。また、本明細書に記載された方法およびプロセスは、いずれかの特定のシーケンスに限定されず、それらに関連するブロックまたは状態を、適切な他のシーケンスで実行することができる。例えば、説明されたブロックまたは状態は、具体的に開示された順序以外の順序で実行されてよく、または複数のブロックまたは状態が、単一のブロックまたは状態と組み合わせられてよい。ブロックまたは状態の例は、直列、並列、または何らかのその他の方法で実行されてよい。ブロックまたは状態は、開示された実施形態に追加されるか、または開示された実施形態から削除されてよい。本明細書に記載されたシステムおよびコンポーネントの例は、説明された方法とは異なって構成されてよい。例えば、要素が、開示された実施形態に追加されるか、開示された実施形態から削除されるか、または開示された実施形態と比較して再配置されてよい。
【0085】
本明細書に記載された方法のさまざまな動作は、関連する動作を実行するように(例えば、ソフトウェアによって)一時的に構成されるか、または永続的に構成される1つまたは複数のプロセッサによって、少なくとも部分的に実行されてよい。一時的に構成されるか、または永続的に構成されるかにかかわらず、そのようなプロセッサは、本明細書に記載された1つまたは複数の動作または機能を実行するように動作するプロセッサ実装エンジンを構成してよい。
【0086】
同様に本明細書に記載された方法は、少なくとも部分的にプロセッサ実装であってよく、特定の1つまたは複数のプロセッサがハードウェアの例である。例えば、方法の動作の少なくとも一部が、1つまたは複数のプロセッサまたはプロセッサ実装エンジンによって実行されてよい。さらに、1つまたは複数のプロセッサが、「クラウド・コンピューティング」環境内で、または「SaaA(Software as a Service)」として、関連する動作の実行をサポートするように動作してもよい。例えば、動作の少なくとも一部は、(プロセッサを含んでいるマシンの例として)コンピュータのグループによって実行されてよく、それらの動作は、ネットワーク(例えば、インターネット)を介して、および1つまたは複数の適切なインターフェイス(例えば、アプリケーション・プログラム・インターフェイス(API))を介してアクセス可能である。
【0087】
特定の動作の実行は、単一のマシン内に存在するだけでなく、複数のマシンにわたってデプロイされて、プロセッサ間で分散されてよい。一部の実施形態では、プロセッサまたはプロセッサ実装エンジンは、単一の地理的位置(例えば、住居環境内、オフィス環境内、またはサーバ・ファーム内)に配置されてよい。他の実施形態では、プロセッサまたはプロセッサ実装エンジンは、複数の地理的位置にわたって分散されてよい。
【0088】
本明細書全体を通じて、複数のインスタンスが、単一のインスタンスとして説明されたコンポーネント、動作、または構造を実装してよい。1つまたは複数の方法の個別の動作が別々の動作として示され、説明されているが、個別の動作のうちの1つまたは複数が同時に実行されてよく、各動作が、示された順序で実行される必要はない。構成において別々のコンポーネントとして提示された構造および機能は、結合された構造またはコンポーネントとして実装されてよい。同様に、単一のコンポーネントとして提示された構造および機能は、別々のコンポーネントとして実装されてよい。これらおよびその他の変形、変更、追加、および改良は、本明細書における対象の範囲に含まれる。
【0089】
対象の概要が特定の実施形態を参照して説明されているが、本明細書の実施形態のより広い範囲を逸脱することなく、それらの実施形態に対してさまざまな修正および変更が行われてよい。「発明を実施するための形態」は、制限する意味で受け取られるべきではなく、さまざまな実施形態の範囲は、添付の特許請求の範囲に資格が与えられるあらゆる同等のものと共に、添付の特許請求の範囲によってのみ定義される。さらに、本明細書において使用されている関連用語(「第1の」、「第2の」、「第3の」など)は、どのような順序、高さ、または重要性も意味しておらず、ある要素を別の要素から区別するために使用されている。さらに、「1つの(a)」、「1つの(an)」、および「複数の」という用語は、本明細書では数量の制限を意味しておらず、言及されている項目が少なくとも1つ存在すること意味している。