(57)【特許請求の範囲】
【請求項１】
アカウントモデルに基づくブロックチェーントランザクションを検証するためのコンピュータ実装方法であって、
トランザクションデータおよび前記トランザクションデータのデジタル署名を、ブロックチェーンネットワークのコンセンサスノードによって受信するステップであって、前記トランザクションデータは、暗号化されたトランザクション量、乱数、および第1のユーザノードのパブリックアカウントから第2のユーザノードのプライベートアカウントに、または前記第1のユーザノードのプライベートアカウントから前記第2のユーザノードのパブリックアカウントに、移動されるべき暗号化されていないトランザクション量を含み、各パブリックアカウントは残高を含み、各プライベートアカウントは暗号化された残高を含み、前記デジタル署名は、前記第1のユーザノードの秘密鍵を使用して前記トランザクションデータをデジタル署名することによって生成され、前記暗号化されたトランザクション量は、コミットメントスキームを使用して前記乱数および前記暗号化されていないトランザクション量に基づいて生成される、ステップと、
前記第1のユーザノードの公開鍵を使用して前記トランザクションデータの前記デジタル署名を検証するステップと、
前記コミットメントスキームを使用して前記乱数および前記暗号化されていないトランザクション量に基づいて第2の暗号化されたトランザクション量を生成するステップと、
前記第2の暗号化されたトランザクション量が前記受信された暗号化されたトランザクション量に等しいと決定するステップと、
前記トランザクションが前記第1のユーザノードの前記パブリックアカウントから前記第2のユーザノードの前記プライベートアカウントへのものであるとき、前記暗号化されていないトランザクション量が移動前の前記第1のユーザノードの前記パブリックアカウントの残高以下であること、あるいは、前記トランザクションが前記第1のユーザノードの前記プライベートアカウントから前記第2のユーザノードの前記パブリックアカウントへのものであるとき、前記暗号化されていないトランザクション量が移動前の前記第1のユーザノードの前記プライベートアカウントの暗号化された残高の暗号化されていない値以下であることを決定するステップと、
前記トランザクションが前記第1のユーザノードの前記パブリックアカウントから前記第2のユーザノードの前記プライベートアカウントへのものであるとき、前記第1のユーザノードの前記パブリックアカウントの前記残高から前記暗号化されていないトランザクション量を差し引いて、前記受信した暗号化されたトランザクション量を前記第2のユーザノードの前記プライベートアカウントの暗号化された残高に追加する、あるいは、前記トランザクションが前記第1のユーザノードの前記プライベートアカウントから前記第2のユーザノードの前記パブリックアカウントへのものであるとき、前記第1のユーザノードの前記プライベートアカウントの暗号化された残高から前記受信した暗号化されたトランザクション量を差し引いて、前記暗号化されていないトランザクション量を前記第2のユーザノードの前記パブリックアカウントの残高に追加するステップと
を含み、
前記第1のユーザノードが、前記第1のユーザノードの前記パブリックアカウントおよび前記第1のユーザノードの前記プライベートアカウントの両方を有し、
前記第1のユーザノードに関連付けられるユーザが、前記第1のユーザノードの前記パブリックアカウントまたは前記第1のユーザノードの前記プライベートアカウントを使用して前記トランザクションを実行するかどうかを選択する、コンピュータ実装方法。
【請求項２】
前記第1のユーザノードまたは前記第2のユーザノードの前記パブリックアカウントの前記残高が、前記コンセンサスノードによって閲覧可能であり、前記第1のユーザノードまたは前記第2のユーザノードの前記プライベートアカウントの前記暗号化された残高の前記暗号化されていない値が、それぞれのユーザノードの秘密鍵を使用して閲覧可能である、請求項1に記載のコンピュータ実装方法。
【請求項３】
前記トランザクションが前記第1のユーザノードの前記プライベートアカウントから前記第2のユーザノードの前記パブリックアカウントへのものであり、前記方法が、
前記暗号化されていないトランザクション量が前記第1のユーザノードの前記プライベートアカウントの前記暗号化された残高の前記暗号化されていない値以下であることを証明する範囲証明を、前記第1のユーザノードから受信するステップをさらに含み、
前記暗号化されていないトランザクション量が前記範囲証明に基づいて前記第1のユーザノードの前記プライベートアカウントの前記暗号化された残高の前記暗号化されていない値以下である場合、前記移動が有効であると決定される、請求項1または2に記載のコンピュータ実装方法。
【請求項４】
前記コミットメントスキームが準同型である、請求項1〜3のいずれか一項に記載のコンピュータ実装方法。
【請求項５】
1つまたは複数のプロセッサに結合されるとともに命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに請求項1から4の1つまたは複数の方法に記載の動作を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項６】
コンピューティングデバイスと、
前記コンピューティングデバイスに結合されるとともに命令を記憶したコンピュータ可読記憶媒体とを備えるシステムであって、前記命令は、前記コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに請求項1から4の1つまたは複数の方法に記載の動作を実行させる、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アカウントモデルの下でパブリックおよびプライベートトランザクションをサポートするブロックチェーンシステムに関する。
【背景技術】
【０００２】
ブロックチェーンシステム、コンセンサスネットワーク、分散型台帳システム(DLS)ネットワーク、またはブロックチェーンとも呼ばれ得るブロックチェーンネットワークは、参加するエンティティが安全にかつ変更不可能にデータを記憶することを可能にする。ブロックチェーンはトランザクションの台帳として記述されることが可能であり、ブロックチェーンの複数のコピーがブロックチェーンネットワークにわたって記憶される。例示的なタイプのブロックチェーンには、パブリックブロックチェーンおよびプライベートブロックチェーンがあり得る。パブリックブロックチェーンは、そのブロックチェーンを使用してコンセンサスプロセスに参加することがすべてのエンティティに開かれている。プライベートブロックチェーンは、読取りパーミッションおよび書込みパーミッションを集中的に制御する特定のエンティティに提供される。
【０００３】
ブロックチェーンは、参加者が暗号通貨を使用して商品および/またはサービスを購入/販売するために取引を行うことを可能にする、暗号通貨ネットワークにおいて使用される。一般的な暗号通貨にはビットコインがある。暗号通貨ネットワークでは、ユーザ間の取引を記録するために記録管理モデルが使用される。例示的な記録管理モデルには、未使用トランザクションアウトプット(UTXO: unspent transaction output)モデルおよびアカウント残高(account balance)モデルがある。UTXOモデルでは、各トランザクションは、前のトランザクションからのアウトプットを使用し、後のトランザクションにおいて使用され得る新しいアウトプットを生成する。ユーザの未使用のトランザクションが追跡され、使用のためにユーザが有する残高が未使用のトランザクションの合計として計算される。アカウント残高モデルでは、各ユーザのアカウント残高がグローバル状態として追跡される。各トランザクションに対して、使用するアカウントの残高がトランザクションの量以上であることを確実にするために、その残高が確認される。これは従来の銀行業と同等である。
【０００４】
ブロックチェーンは一連のブロックを含み、その各々がネットワークにおいて実行される1つまたは複数のトランザクションを含む。各ブロックは台帳のページに類似していることがあるが、ブロックチェーン自体が台帳の完全なコピーである。個々のトランザクションが確認されてブロックに追加され、ブロックはブロックチェーンに追加される。ブロックチェーンのコピーは、ネットワークの複数のノードにわたって複製される。このようにして、ブロックチェーンの状態についてグローバルな合意ができる。さらに、ブロックチェーンは、少なくともパブリックネットワークの場合には、すべてのノードが閲覧のために公開されている。ブロックチェーンユーザのプライバシーを保護するために暗号化技術が実装される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本開示の実施形態は、ブロックチェーンネットワークのアカウント残高モデルの下でパブリックトランザクションおよびプライベートトランザクションのプライバシーを保護するためのコンピュータ実装方法を含む。より詳細には、本開示の実施形態は、ブロックチェーンネットワーク内のアカウント残高モデルの下でプライベートトランザクションおよびパブリックトランザクションを可能にすることを対象とする。このようにして、また本明細書でさらに詳細に説明されるように、ユーザは、各トランザクションがブロックチェーンネットワーク内のパブリックトランザクションであるかプライベートトランザクションであるかどうかを自由に選ぶことができる。
【０００６】
いくつかの実施形態では、動作は、トランザクションデータおよびトランザクションデータのデジタル署名を、ブロックチェーンネットワークのコンセンサスノードによって受信するステップであって、トランザクションデータは、コミットメント値、乱数、および第1のユーザノードのパブリックアカウントまたはプライベートアカウントのうちの一方から第2のユーザノードのパブリックアカウントまたはプライベートアカウントのうちの一方に移動されるべきトランザクション量を含み、デジタル署名は、第1のユーザノードの秘密鍵を使用してトランザクションデータをデジタル署名することによって生成され、コミットメント値は、コミットメントスキームを使用して乱数およびトランザクション量に基づいて生成される、ステップと、第1のユーザノードの公開鍵を使用してトランザクションデータのデジタル署名を検証するステップと、コミットメント値が乱数およびコミットメントスキームに基づいて正しく、かつトランザクション量がトランザクション量の移動前の第1のユーザノードのパブリックアカウントまたはプライベートアカウントのうちの一方の残高以下である場合、トランザクション量が有効であると決定するステップとを含む。他の実施形態は、対応するシステム、装置、およびコンピュータストレージデバイス上に符号化された方法の動作を実行するように構成されたコンピュータプログラムを含む。
【０００７】
これらの実施形態および他の実施形態はそれぞれ、以下の特徴の1つまたは複数を随意に含み得る。
【０００８】
第1の特徴は、後述の特徴のいずれかと組み合わせることができ、パブリックアカウントがコンセンサスノードによって閲覧可能なパブリック残高を有し、プライベートアカウントがそれぞれのユーザノードの秘密鍵を使用して閲覧可能なプライベート残高を有する。
【０００９】
第2の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、トランザクション量が第1のユーザノードに関連付けられたパブリックアカウントから第2のユーザノードに関連付けられたプライベートアカウントへのものである。
【００１０】
第3の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、トランザクション量が第1のユーザノードのプライベートアカウントから第2のユーザノードのパブリックアカウントへのものであり、方法が、トランザクション量が第1のユーザノードのプライベートアカウントの残高以下であることを証明する範囲証明を、第1のユーザノードから受信するステップをさらに含み、トランザクション量が範囲証明に基づいて第1のユーザノードのプライベートアカウントの残高以下である場合、移動が有効であると決定される。
【００１１】
第4の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、移動が有効である場合、トランザクション量に基づいて、第1のユーザノードのパブリックアカウントまたはプライベートアカウントのうちの一方の残高と、第2のユーザノードのパブリックアカウントまたはプライベートアカウントのうちの一方の残高とを更新するステップをさらに含む
【００１２】
第5の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、プライベートアカウントの残高が、トランザクション量のコミットメント値とコミットメントスキームを使用して生成されたプライベートアカウントの残高のコミットメントとに基づいて更新される。
【００１３】
第6の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、コミットメントスキームが準同型である。
【００１４】
本開示はさらに、本明細書で提供される方法を実施するためのシステムを提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると1つまたは複数のプロセッサに本明細書で提供される方法の実施形態に従って動作を実行させる命令が記憶された、1つまたは複数のプロセッサに結合されるコンピュータ可読記憶媒体とを含む。
【００１５】
本開示による方法は、本明細書で説明される態様および特徴の任意の組合せを含み得ることを理解されたい。すなわち、本開示による方法は、本明細書で特に説明される態様および特徴の組合せに限定されず、提供される態様および特徴の任意の組合せも含む。
【００１６】
本開示の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。本開示の他の特徴および利点が、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１７】
【図１】本開示の実施形態を実行するために使用され得る例示的な環境の図である。
【図２】本開示の実施形態による例示的な概念のアーキテクチャの図である。
【図３】本開示の実施形態による、ブロックチェーントランザクションの例示的な検証プロセスを示す図である。
【図４】本開示の実施形態による、パブリックアカウントからプライベートアカウントアへの例示的なブロックチェーントランザクションを示す図である。
【図５】本開示の実施形態による、プライベートアカウントからパブリックアカウントへの例示的なブロックチェーントランザクションを示す図である。
【図６】本開示の実施形態にしたがって実行され得る例示的な方法を示す図である。
【発明を実施するための形態】
【００１８】
様々な図面における同様の記号は、同様の要素を示す。
【００１９】
本開示の実施形態は、ブロックチェーンネットワークのアカウント残高モデル(本明細書ではアカウントモデルとしても記載される)の下でパブリックトランザクションおよびプライベートトランザクションのプライバシーを保護するためのコンピュータ実装形態を含む。より詳細には、本開示の実施形態は、ブロックチェーンネットワーク内のアカウント残高モデルの下でプライベートトランザクションおよびパブリックトランザクションを可能にすることを対象とする。このようにして、また本明細書にさらに詳細に説明されるように、ユーザは、各トランザクションがブロックチェーンネットワーク内のパブリックトランザクションであるかプライベートトランザクションであるかどうかを自由に選ぶことができる。いくつかの実施形態では、動作は、トランザクションデータおよびトランザクションデータのデジタル署名を、ブロックチェーンネットワークのコンセンサスノードによって受信するステップであって、トランザクションデータは、コミットメント値、乱数、および第1のユーザノードのパブリックアカウントまたはプライベートアカウントのうちの一方から第2のユーザノードのパブリックアカウントまたはプライベートアカウントのうちの一方に移動されるべきトランザクション量を含み、デジタル署名は、第1のユーザノードの秘密鍵を使用してトランザクションデータをデジタル署名することによって生成され、コミットメント値は、コミットメントスキームを使用して乱数およびトランザクション量に基づいて生成される、ステップと、第1のユーザノードの公開鍵を使用してトランザクションデータのデジタル署名を検証するステップと、コミットメント値が乱数およびコミットメントスキームに基づいて正しく、かつトランザクション量がトランザクション量の移動前の第1のユーザノードのパブリックアカウントまたはプライベートアカウントのうちの一方の残高以下である場合、トランザクション量が有効であると決定するステップとを含む。
【００２０】
本開示の、および上で紹介された実施形態のさらなる背景を提供すると、コンセンサスネットワーク(例えば、ピアツーピアノードからなる)、分散型台帳システム、または単にブロックチェーンとも呼ばれ得る、ブロックチェーンネットワークは、参加するエンティティが安全かつ変更不可能にトランザクションを行いデータを記憶することを可能にする。ブロックチェーンは、パブリックブロックチェーン、プライベートブロックチェーン、またはコンソーシアムブロックチェーンとして提供され得る。本開示の実施形態は、参加するエンティティの間で公開されているパブリックブロックチェーンに関して、本明細書でさらに詳細に説明される。しかしながら、本開示の実施形態はあらゆる適切なタイプのブロックチェーンにおいて実現され得ることが企図される。
【００２１】
パブリックブロックチェーンでは、コンセンサスプロセスはコンセンサスネットワークのノードによって制御される。例えば、数百、数千、さらには数百万ものエンティティがパブリックブロックチェーンに参加することができ、それらの各々がパブリックブロックチェーンの中の少なくとも1つのノードを運用する。したがって、パブリックブロックチェーンは、参加するエンティティに関して公開のネットワークであると見なされ得る。いくつかの例では、ブロックが有効となりブロックチェーンに追加されるには、過半数のエンティティ(ノード)がそれぞれのブロックに署名しなければならない。例示的なパブリックブロックチェーンには、ピアツーピア支払ネットワーク(暗号通貨ネットワーク)であるビットコインネットワークにおいて使用されるブロックチェーンがある。ブロックチェーンという用語は一般にビットコインネットワークに関して言及されるが、本明細書では、ブロックチェーンは、ビットコインネットワークに特に言及することなく分散型台帳を全般的に指す。
【００２２】
一般に、パブリックブロックチェーンはパブリックトランザクションをサポートする。パブリックトランザクションはブロックチェーン内のノードのすべてと共有され、ブロックチェーンはすべてのノードにわたって複製される。すなわち、すべてのノードがブロックチェーンに関して完全にコンセンサスのとれた状態にある。コンセンサス(例えば、ブロックチェーンへのブロックの追加に対する合意)を達成するために、ブロックチェーンネットワーク内でコンセンサスプロトコルが実装される。例示的なコンセンサスプロトコルには、限定はされないが、ビットコインネットワークにおいて実装されるプルーフオブワーク(POW)がある。
【００２３】
本開示の実施形態は、上述の文脈の観点で本明細書にさらに詳細に説明される。より詳細には、上に紹介したように、本開示の実施形態は、ブロックチェーンネットワーク内のアカウント残高モデルの下でプライベートトランザクションおよびパブリックトランザクションを可能にすることを対象とする。このようにして、本明細書にさらに詳細に説明するように、ユーザは、各トランザクションがブロックチェーンネットワーク内のパブリックトランザクションであるかプライベートトランザクションであるかどうかを自由に選ぶことができる。
【００２４】
本開示の実施形態では、アカウントモデルに基づくアカウント構造は、パブリックアカウント間のトランザクション、プライベートアカウント間のトランザクション、およびパブリックアカウントとプライベートアカウント間のトランザクションを可能にする。適切なプライバシー保護スキームが様々なアカウントタイプのために実装され得る。このようにして、ユーザ(例えば、ネットワーク内のノード)は、プライバシーの選好に基づいて、パブリックアカウントを使用してトランザクションを実行するか、プライベートアカウントを使用してトランザクションを実行するかを選択できる。
【００２５】
パブリックアカウントは、コンセンサスノードによって閲覧可能なアカウント残高を有し得る。プライベートアカウントは、アカウントの所有者(ユーザ)の秘密鍵を使用して閲覧可能なアカウント残高を有し得る。プライベートアカウント残高は、準同型暗号化を使用して暗号化されるか、または準同型を有するコミットメントスキームによりによるコミットされ得る。そのため、プライベートアカウント残高は、ブロックチェーンネットワーク内の他のノードによって決定されることができない。プライベートアカウントとの間で行われたトランザクション量もまた、準同型暗号化に基づいてプライベートアカウント残高を更新するためにコミットメントスキームに基づいて隠され得る。
【００２６】
図1は、本開示の実施形態を実行するために使用され得る例示的な環境100を図示する。いくつかの例では、例示的な環境100は、エンティティがパブリックブロックチェーン102に参加することを可能にする。例示的な環境100は、コンピューティングシステム106、108、およびネットワーク110を含む。いくつかの例では、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはこれらの組合せを含み、ウェブサイト、ユーザデバイス(例えば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例では、ネットワーク110は有線および/またはワイヤレス通信リンクを通じてアクセスされ得る。
【００２７】
図示される例では、コンピューティングシステム106、108は各々、パブリックブロックチェーン102の中のノードとしての参加を可能にする、任意の適切なコンピューティングシステムを含み得る。例示的なコンピューティングデバイスには、限定はされないが、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンがある。いくつかの例では、コンピューティングシステム106、108は、パブリックブロックチェーン102と対話するための、1つまたは複数のコンピュータ実装サービスをホストする。例えば、コンピューティングシステム106は、第1のエンティティ(例えば、ユーザA)が1つまたは複数の他のエンティティ(例えば、他のユーザ)とのトランザクションを管理するために使用するトランザクション管理システムなどの、第1のエンティティのコンピュータ実装サービスをホストすることができる。コンピューティングシステム108は、第2のエンティティ(例えば、ユーザB)が1つまたは複数の他のエンティティ(例えば、他のユーザ)とのトランザクションを管理するために使用するトランザクション管理システムなどの、第2のエンティティのコンピュータ実装サービスをホストすることができる。図1の例では、パブリックブロックチェーン102はノードのピアツーピアネットワークとして表され、コンピューティングシステム106、108はそれぞれ、パブリックブロックチェーン102に参加する第1のエンティティおよび第2のエンティティのノードを提供する。
【００２８】
図2は、本開示の実施形態による例示的な概念のアーキテクチャ200を図示する。例示的な概念のアーキテクチャ200は、エンティティレイヤ202、ホストされたサービスレイヤ204、およびパブリックブロックチェーンレイヤ206を含む。図示される例では、エンティティレイヤ202は、Entity_1(E1)、Entity_2(E2)、およびEntity_3(E3)という3つのエンティティを含み、各エンティティがそれぞれのトランザクション管理システム208をもつ。
【００２９】
図示される例では、ホストされるサービスレイヤ204は、各トランザクション管理システム208のためのブロックチェーンまたはDLSインターフェース210を含む。いくつかの例では、それぞれのトランザクション管理システム208は、通信プロトコル(例えば、ハイパーテキスト転送プロトコルセキュア(HTTPS))を使用してネットワーク(例えば、図1のネットワーク110)を通じてそれぞれのDLSインターフェース210と通信する。いくつかの例では、各DLSインターフェース210は、それぞれのトランザクション管理システム208とブロックチェーンレイヤ206との間の通信接続を提供する。より具体的には、各DLSインターフェース210は、それぞれのエンティティがブロックチェーンレイヤ206のブロックチェーンネットワーク212に記録されるトランザクションを行うことを可能にする。いくつかの例では、DLSインターフェース210とブロックチェーンレイヤ206との間の通信は、リモートプロシージャコール(RPC)を使用して行われる。いくつかの例では、DLSインターフェース210は、それぞれのトランザクション管理システム208のためのブロックチェーンノードを「ホスト」する。例えば、DLSインターフェース210は、ブロックチェーンネットワーク212へのアクセスのためにアプリケーションプログラミングインターフェース(API)を提供する。
【００３０】
本明細書で説明されるように、ブロックチェーンネットワーク212は、ブロックチェーン216に情報を変更不可能に記録する複数のノード214を含む、ピアツーピアネットワークとして提供される。単一のブロックチェーン216が概略的に図示されるが、ブロックチェーン216の複数のコピーが提供され、ブロックチェーン212にわたって維持される。例えば、各ノード214はブロックチェーン216のコピーを記憶する。いくつかの実施形態では、ブロックチェーン216は、パブリックブロックチェーンに参加する2つ以上のエンティティの間で実行されるトランザクションと関連付けられる情報を記憶する。
【００３１】
本開示は、コミットスキームに基づいてブロックチェーンネットワーク内のアカウント残高モデルの下でプライベートトランザクションおよびパブリックトランザクションが実行され得るようにできる方法を開示する。このように、ユーザは、各トランザクションまたはトランザクションのために使用されるアカウントがパブリックまたはプライベートであるかどうかを自由に選ぶことができる。
【００３２】
図3は、本開示の実施形態による、ブロックチェーントランザクションの例示的な検証プロセス300を示すスイムレーン図である。例示的な検証プロセス300を示す目的は、ユーザノードB(図3に図示せず)への資金移動トランザクションがユーザノードA302によって実行されると仮定し、トランザクションが検証のためにブロックチェーンノード304へユーザノードA302によって提出される。ユーザノードA302およびユーザノードBの各々は、パブリックアカウントとプライベートアカウントを有し得る。パブリックアカウントの残高はブロックチェーンネットワーク内のすべてのノードによって閲覧可能である。プライベートアカウントの残高は、秘密鍵を使用してアカウント所有者(ユーザ)によってのみ閲覧可能である。本開示の実施形態では、ユーザノードは、パブリックアカウントまたはプライベートアカウントを使用してパブリックにまたはプライベートにトランザクションを実行するかどうかを選択できる。
【００３３】
306において、ユーザノードA302は、トランザクション量tおよび乱数rに基づいてコミットメント値を生成できる。コミットメント値は、準同型コミットメントスキームによって生成され得る。例示的な準同型コミットメントスキームは、限定ではなく、ペダーセンコミットメント(PC)を含む。本開示の実施形態はPCを参照して本明細書にさらに詳細に説明されるが、本開示の実施形態は、任意の適切なコミットメントスキームを使用して実現され得ることが企図される。
【００３４】
PCを使用すると、例えば、コミットメント値は、PC(t)=rG+tHと表すことができる暗号テキストであり、ここで、GとHは楕円曲線のジェネレータであり、PC(t)は曲線点のスカラー乗算であり、tがコミットされる値である。PCコミットメントスキームは、準同型、すなわち、PC(t1)+PC(t2)＝PC(t1+t2)である。暗号テキストPC(t)の保有者は、乱数rを使用することによってトランザクション量tを検証できる。308において、ユーザノードA302は、秘密鍵を使用して、コミットメント値PC(t)、トランザクション量t、および乱数rにデジタル署名する。310において、ユーザノードA302は、コミットメント値PC(t)、トランザクション量t、乱数r、およびデジタル署名をブロックチェーンノード304に提出する。
【００３５】
いくつかの実施形態では、トランザクション量tは、ユーザノードA302のプライベートアカウントから送信され得る。プライベートアカウントの場合、アカウントがトランザクション量tを移動するのに十分な残高を有するかどうかは、ブロックチェーンの他のノードによって直接検証できない。そのような場合、ユーザノードA302は、トランザクション量tがゼロ以上であり、かつユーザノードA302のプライベートアカウントの残高以下であることを示すために1つまたは複数の範囲証明を生成できる。
【００３６】
312において、ブロックチェーンノード304は、ユーザノードA302の公開鍵を使用して、コミットメント値PC(r,t)のデジタル署名、トランザクション量t、および乱数rを検証する。デジタル署名が正しい場合、例示的な検証プロセス300は314に進む。
【００３７】
314において、ブロックチェーンノード304は、コミットメント値PC(t)が正しいか、かつトランザクション量tが有効であるかどうかを検証する。PC(t)が正しいかどうかを検証するために、受信された乱数rおよびトランザクション量tを使用して、PC’(r,t)として示されるPCを生成できる。PC’(r,t)が受信したコミットメントPC(r,t)に等しい場合、そのコミットメントPC(r,t)はトランザクション量tの正しいコミットメントであることが検証される。いくつかの実施形態では、ブロックチェーンノード304は、1つまたは複数の範囲証明に基づいて、トランザクション量tが0以上であり、かつトランザクション量の移動元のユーザノードA302のアカウントのアカウント残高以下である場合、トランザクション量tが有効であることを検証できる。
【００３８】
316において、ブロックチェーンノード304は、ブロックチェーン上のユーザノードA302およびユーザノードBの残高を更新し、ブロックチェーンネットワーク内の残りのノードにブロックチェーンをブロードキャストする。パブリックアカウントトランザクションの場合、トランザクション量は、トランザクションタイプに基づいてパブリックアカウントの残高から直接差し引かれるか、またはパブリックアカウントの残高に加算され得る。プライベートアカウントトランザクションについては、トランザクション量tは、PC(t)としてPCを使用してコミットされるとともに、PC(s)としてPCを使用してコミットされるプライベートアカウント残高sから差し引かれるか、またはプライベートアカウント残高sに追加され得る。PCは準同型であるので、PC(s)±PC(t)＝PC(s±t)である。パブリックアカウントおよびプライベートアカウントの残高の更新の詳細は、図4および図5を参照して本明細書にさらに詳細に説明される。
【００３９】
図4は、本開示の実施形態による、パブリックアカウントからプライベートアカウントへの例示的なトランザクション400を示すブロック図を示す。トランザクション例400に示されるように、トランザクションの前に、ユーザノードA402は、パブリックアカウント残高u、およびPCを使用してコミットされPC(v)として表されるプライベートアカウント残高vを有する。ユーザノードB406は、パブリックアカウント残高x、およびPCを使用してコミットされPC(y)として表されるプライベートアカウント残高yを有する。ユーザノードA402は、コミットメント値PC(t)のデジタル署名されたコピー、トランザクション量t、およびコミットメント値に対応する乱数aをブロックチェーンネットワーク408に送信することによって、ユーザノードAのパブリックアカウントからユーザノードB406のプライベートアカウントへのトランザクションを提出できる。トランザクション量tのコミットメント値PC(t)が、図3の例示的なプロセス300などの検証プロセスを使用して検証された後、ユーザノードA402とユーザノードB406のアカウントが更新され得る。トランザクションがブロックチェーンネットワーク408によって検証された後、トランザクション量tがユーザノードA402のパブリックアカウントから差し引かれ、ユーザノードB406のプライベートアカウントに追加される。トランザクションの後、ユーザノードA400は、パブリックアカウント残高u-t、およびプライベートアカウント残高PC(v)を有する。ユーザノードB406は、パブリックアカウント残高xとプライベートアカウント残高PC(y+t)を有する。
【００４０】
図5は、本開示の実施形態による、プライベートアカウントからパブリックアカウントへの例示的なトランザクション500を示すブロック図を示す。例示的なトランザクション500に示されるように、トランザクションの前に、ユーザノードA502は、パブリックアカウント残高uと、PCを使用してコミットされ、PC(v)として表されるプライベートアカウント残高vとを有する。ユーザノードB506は、パブリックアカウント残高xと、PCを使用してコミットされ、PC(y)として表されるプライベートアカウント残高yとを有する。ユーザノードA502は、コミットメント値PC(t)のデジタル署名されたコピー、トランザクション量t、コミットメント値に対応する乱数a、および1つまたは複数の範囲証明を送信することによって、ユーザノードA502のプライベートアカウントからユーザノードB506のパブリックアカウントへのトランザクションを提出できる。1つまたは複数の範囲証明は、ブロックチェーンネットワーク508に対して0≦t≦vであることを証明するために使用され得る。トランザクション量tのコミットメント値PC(t)が、図3の例示的なプロセス300のような検証プロセスを使用して検証された後、ユーザノードA502およびユーザノードB506のアカウントが更新され得る。トランザクションがブロックチェーンネットワーク508によって検証された後、トランザクション量tがユーザノードAのプライベートアカウントから差し引かれ、ユーザノードBのパブリックアカウント506に追加される。トランザクション後、ユーザノードA502は、パブリックアカウント残高uおよびプライベートアカウント残高PC(v-t)を有する。ユーザノードB504は、パブリックアカウント残高x＋tおよびプライベートアカウント残高PC(y)を有する。
【００４１】
図6は、本開示の実施形態にしたがって実行され得る例示的な方法600を示す。提示を明快にするために、以降の説明は、本明細書の他の図面の文脈において例示的な方法600を概略的に説明する。しかしながら、例示的な方法600が、必要に応じて、例えば、任意のシステム、環境、ソフトウェア、およびハードウェア、あるいは任意のシステム、環境、ソフトウェア、およびハードウェアの組み合わせによって実行され得ることが理解されるであろう。いくつかの実施形態では、例示的な方法600の様々なステップは、並列に、組み合わせて、ループして、あるいは任意の順序で実行され得る。
【００４２】
602において、ブロックチェーンネットワークのコンセンサスノードは、トランザクションデータおよびトランザクションデータのデジタル署名を受信する。いくつかの実施形態では、トランザクションデータは、コミットメント値、乱数、および第1のユーザノードのパブリックアカウントまたはプライベートアカウントのうちの1つから第2のユーザノードのパブリックアカウントまたはプライベートアカウントのうちの1つに移動されるべきトランザクション量を含む。デジタル署名は、第1のユーザノードの秘密鍵を使用して、トランザクションデータにデジタル署名することによって生成される。コミットメント値は、コミットメントスキームを使用して乱数とトランザクション量に基づいて生成される。いくつかの実施形態では、コミットメントスキームは準同型である。いくつかの実施形態では、トランザクション量は、第1のユーザノードに関連付けられたパブリックアカウントから第2のユーザノードに関連付けられたプライベートアカウントへのものである。いくつかの実施形態では、トランザクション量は、第1のユーザノードに関連付けられたプライベートアカウントから第2のユーザノードのパブリックアカウントへのものである。このような場合、コンセンサスノードは、トランザクション量が第1のユーザノードのプライベートアカウントの残高以下であることを証明するための範囲証明を第1のユーザノードから受信することもできる。
【００４３】
604において、コンセンサスノードは、第1のユーザノードの公開鍵を使用してトランザクションデータのデジタル署名を検証する。
【００４４】
606において、コンセンサスノードは、コミットメント値が乱数およびコミットメントスキームに基づいて正しい場合、トランザクション量が有効であると決定する。コンセンサスノードはまた、トランザクション量がトランザクション量の移動前の第1のユーザノードのパブリックアカウントまたはプライベートアカウントのうちの一方の残高以下であると決定する。いくつかの実施形態では、トランザクション量は、第1のユーザノードのプライベートアカウントから第2のユーザノードのパブリックアカウントへのものである。そのような場合、残高移動が有効であると決定することは、範囲証明に基づいて、トランザクション量が第1のユーザノードに関連付けられたプライベートアカウントの残高以下であるかどうかを判定することも含む。
【００４５】
いくつかの実施形態では、例示的な方法600はまた、第1のユーザノードに関連付けられたパブリックアカウントまたはプライベートアカウントのうちの一方の残高と、第2のユーザノードに関連付けられたパブリックアカウントまたはプライベートアカウントのうちの一方の残高とを更新することを含み得る。トランザクション量が有効である場合、トランザクション量に基づいて更新が実行され得る。いくつかの実施形態では、プライベートアカウントの残高は、トランザクション量のコミットメント値とコミットメントスキームを使用して生成されたプライベートアカウントの残高のコミットメント値とに基づいて更新される。
【００４６】
本明細書に記載された主題の実施形態は、特定の利点または技術的効果を実現するために実装され得る。例えば、本開示の実施形態は、ブロックチェーンネットワークが、パブリックアカウント間のトランザクション、プライベートアカウント間のトランザクション、およびパブリックアカウントとプライベートアカウントとの間のトランザクションをサポートすることを可能にする。したがって、アカウントタイプに関係なく適切なプライバシー保護を実装でき、よって、ブロックチェーンネットワークのユーザノードは、プライバシーの選好に基づいて、ユーザのパブリックアカウントまたはプライベートアカウントから資金を送受信することを柔軟に選択できる。
【００４７】
説明された方法は、様々なモバイルコンピューティングデバイスのアカウント／データセキュリティの強化を可能にする。プライベートアカウントの残高は、コミットメントスキームに基づいてコミットされ得る。したがって、プライベートアカウントの残高は、アカウントの実際のアカウント残高を明らかにすることなく、コミットメントに基づいて検証され得る。プライベートアカウントとの間で行われたトランザクション量もまた、コミットメントスキームに基づいてコミットされ、実際の送金額を明らかにすることなくトランザクション後にプライベートアカウントを更新できる。このようにして、プライベートアカウントトランザクションのセキュリティに対するより多くの制御が提供される。
【００４８】
説明される方法により、ブロックチェーンの効率的な更新を通して、コンピュータリソース(例えば、処理サイクル、ネットワーク帯域幅、およびメモリ使用)の効率的な使用を確実にする。アカウント運用をより単純なコンセンサスプロセスを通してより速くおよびより安全に行うことができる。
【００４９】
本明細書で説明される実施形態および動作は、本明細書で説明される構造もしくはそれらのうちの1つまたは複数の組合せを含めて、デジタル電子回路で、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアで実装され得る。動作は、1つまたは複数のコンピュータ可読記憶デバイスに記憶される、または他のソースから受信されるデータに対して、データ処理装置によって実行される動作として実施され得る。データ処理装置、コンピュータ、またはコンピューティングデバイスは、前述の1つのプログラマブルプロセッサ、1つのコンピュータ、1つのシステムオンチップ、またはこれらの複数、または組合せを例として含む、データを処理するための装置、デバイス、および機械を包含し得る。装置は、専用論理回路、例えば、中央処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)を含み得る。装置はまた、対象のコンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトロルスタック、データベース管理システム、オペレーティングシステム(例えば、1つのオペレーティングシステムまたはオペレーティングシステムの組合せ)、クロスプラットフォームランタイム環境、仮想マシン、またはこれらの1つまたは複数の組合せを構成するコードを含み得る。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【００５０】
コンピュータプログラム(例えば、プログラム、ソフトウェア、ソフトウェアアプリケーション、ソフトウェアモジュール、ソフトウェアユニット、スクリプト、またはコードとしても知られている)は、コンパイル型またはインタプリタ型言語、宣言型または手続き型言語を含む、任意の形式のプログラミング言語で書かれてよく、スタンドアロンプログラムとして、または、モジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットを含む、任意の形式で展開されてよい。プログラムは、他のプログラムもしくはデータ(例えば、マークアップ言語ドキュメントに記憶される1つまたは複数のスクリプト)を保持するファイルの一部分、対象のプログラムに専用の単一のファイル、または複数の協調的なファイル(例えば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つの場所に位置する、または、複数の場所に分散され通信ネットワークによって相互接続される、1つのコンピュータまたは複数のコンピュータ上で実行され得る。
【００５１】
コンピュータプログラムの実行のためのプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取り専用メモリまたはランダムアクセスメモリまたは両方から、命令およびデータを受信する。コンピュータの不可欠な要素は、命令に従って活動を実行するためのプロセッサ、ならびに、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータは、データを記憶するための1つまたは複数のマスストレージデバイスも含み、または、そのマスストレージデバイスからデータを受信し、もしくはそこへデータを移し、もしくはその両方を行うように、動作可能に結合される。コンピュータは、別のデバイス、例えば、モバイルデバイス、携帯情報端末(PDA)、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイスに埋め込まれ得る。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、磁気ディスク、および磁気光学ディスクを含む、不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完されても、またはそれに組み込まれてもよい。
【００５２】
モバイルデバイスは、ハンドセット、ユーザ機器(UE)、携帯電話(例えば、スマートフォン)、タブレット、ウェアラブルデバイス(例えば、スマートウォッチおよびスマート眼鏡)、人体に埋め込まれたデバイス(例えば、バイオセンサ、人工内耳)、または他のタイプのモバイルデバイスを含み得る。モバイルデバイスは、様々な通信ネットワーク(以下で説明される)にワイヤレスに(例えば、高周波(RF)信号を使用して)通信することができる。モバイルデバイスは、モバイルデバイスの現在の環境の特性を決定するためのセンサを含み得る。センサは、カメラ、マイクロフォン、近接センサ、GPSセンサ、モーションセンサ、加速度計、周辺光センサ、水分センサ、ジャイロスコープ、コンパス、気圧計、指紋センサ、顔認識システム、RFセンサ(例えば、Wi-Fiおよびセルラー無線)、温度センサ、または他のタイプのセンサを含み得る。例えば、カメラは、可動レンズまたは固定レンズ、フラッシュ、イメージセンサ、およびイメージプロセッサを伴う、前面カメラまたは後面カメラを含み得る。カメラは、顔認識および/または虹彩認識のための詳細を捉えることが可能なメガピクセルカメラであり得る。カメラは、データプロセッサ、およびメモリに記憶されるまたはリモートでアクセスされる認証情報とともに、顔認識システムを形成することができる。顔認識システムまたは1つまたは複数のセンサ、例えば、マイクロフォン、モーションセンサ、加速度計、GPSセンサ、またはRFセンサは、ユーザ認証のために使用され得る。
【００５３】
ユーザとの対話を提供するために、実施形態は、ディスプレイデバイスおよび入力デバイス、例えば、ユーザに情報を表示するための液晶ディスプレイ(LCD)または有機発光ダイオード(OLED)/仮想現実(VR)/拡張現実(AR)ディスプレイ、ならびに、ユーザがそれによってコンピュータに入力を提供できるタッチスクリーン、キーボード、およびポインティングデバイスを有する、コンピュータ上で実装され得る。他の種類のデバイスも、ユーザとの対話を提供するために使用され得る。例えば、ユーザに提供されるフィードバックは任意の種類の感覚的なフィードバック、例えば視覚的なフィードバック、聴覚的なフィードバック、または触覚的なフィードバックであってよく、ユーザからの入力は、音響入力、発話入力、または触覚入力を含む、任意の形式で受け取られ得る。加えて、コンピュータは、ドキュメントを送信してユーザによって使用されるデバイスからドキュメントを受信することによって、例えば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
【００５４】
実施形態は、有線またはワイヤレスデジタルデータ通信(またはそれらの組合せ)の任意の形式もしくは媒体、例えば通信ネットワークによって相互接続されるコンピューティングデバイスを使用して実装され得る。相互接続されたデバイスの例は、一般に互いから離れており典型的には通信ネットワークを介して対話する、クライアントおよびサーバである。クライアント、例えばモバイルデバイスは、例えば、購入、売却、支払、贈与、送付、もしくは貸付のトランザクションの実行、またはこれらの認可を行うサーバと、またはサーバを通じて、自身でトランザクションを実行することができる。そのようなトランザクションは、活動と応答が時間的に近くなるようにリアルタイムであり得る。例えば、ある個人は、活動および応答が実質的に同時に発生することを知覚し、その個人の活動に続く応答の時間差が1ミリ秒(ms)未満もしくは1秒(s)未満であり、または応答にシステムの処理制約を考慮した意図的な遅延がない。
【００５５】
通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、およびワイドエリアネットワーク(WAN)を含む。通信ネットワークは、インターネット、別の通信ネットワーク、または通信ネットワークの組合せの、すべてもしくは一部分を含み得る。情報は、LTE(Long Term Evolution)、5G、IEEE 802、インターネットプロトコル(IP)、または他のプロトコルもしくはプロトコルの組合せを含む、様々なプロトコルおよび規格に従って通信ネットワーク上で送信され得る。通信ネットワークは、接続されたコンピューティングデバイス間で、音声データ、ビデオデータ、バイオメトリックデータ、または認証データ、または他の情報を送信することができる。
【００５６】
別個の実施形態として説明される特徴は、組合せで、単一の実施形態で実装され得るが、単一の実施形態として説明される特徴は、複数の実施形態で、別々に、または任意の適切な部分組合せで実装され得る。特定の順序で説明され特許請求される動作は、特定の順序が実行されなければならないこと、またはすべての図示される動作が実行されなければならないことを要求するものとして理解されるべきではない(いくつかの動作は任意選択であり得る)。適宜、マルチタスキングまたは並列処理(またはマルチタスキングと並列処理の組合せ)が実行され得る。
【符号の説明】
【００５７】
110  ネットワーク
208  トランザクション管理システム
210  DLSインターフェース
302  ユーザノードA
304  ユーザノードB
【図１】
0006830530.tif 000002
【図２】
0006830530.tif 000003
【図３】
0006830530.tif 000004
【図４】
0006830530.tif 000005
【図５】
0006830530.tif 000006
【図６】
0006830530.tif 000007