(57)【要約】      （修正有）【課題】ブロックチェーン機密トランザクションの管理を提供する。【解決手段】ブロックチェーンネットワークのクライアントノードＡにおいて、レギュレータノードの公開鍵を取得するステップと、機密トランザクションのトランザクションデータに暗号コミットメントスキームの適用によりクライアントノードの機密トランザクションの1つ又は複数のコミットメント値を生成するステップと、レギュレータノードの公開鍵を使用したトランザクションデータの暗号化により機密トランザクションの暗号化されたレギュレーション情報を生成するステップと、ブロックチェーンネットワークのコンセンサスノードに、実行のために機密トランザクション内容を送信するステップと、を含む。機密トランザクション内容は、1つ又は複数のコミットメント値と、暗号化されたレギュレーション情報と、トランザクションデータの1つまたは複数のゼロ知識証明と、を含む。【選択図】図３
2020078081.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに結合されるとともに命令を記憶した、1つまたは複数のコンピュータ可読メモリであって、前記命令は、前記1つまたは複数のコンピュータによって、
ブロックチェーンネットワークのレギュレータノードによって、公開鍵と秘密鍵とのペアを生成するステップと、
前記レギュレータノードによって、前記公開鍵を前記ブロックチェーンネットワークの複数のクライアントノードに公開するステップと、
前記レギュレータノードによって、前記ブロックチェーンネットワークのコンセンサスノードから、クライアントノードの機密トランザクションの内容を取得するステップであって、前記機密トランザクションの前記内容は、
前記機密トランザクションのトランザクションデータに暗号コミットメントスキームを適用することによって前記クライアントノードによって生成された前記機密トランザクションの1つまたは複数のコミットメント値と、
前記トランザクションデータの1つまたは複数のゼロ知識証明と、
前記レギュレータノードの前記公開鍵を使用して前記トランザクションデータを暗号化することによって前記クライアントノードによって生成された暗号化されたレギュレーション情報と
を含む、ステップと、
前記レギュレータノードの前記秘密鍵を使用して前記暗号化されたレギュレーション情報を復号することによって前記トランザクションデータを取得するステップと、
前記レギュレータノードによって、前記機密トランザクションの前記内容および前記トランザクションデータに基づいて前記機密トランザクションが正規のものであることを検証するステップと
を含む処理を行うように実行可能である、1つまたは複数のコンピュータ可読メモリと
を含む、システム。
【請求項２】
前記機密トランザクションの前記トランザクションデータは、前記機密トランザクションの前の前記クライアントノードのアカウント残高または前記機密トランザクションのトランザクション金額の1つまたは複数を含む、請求項1に記載のシステム。
【請求項３】
前記トランザクションデータの前記1つまたは複数のゼロ知識証明は、前記トランザクションデータの値がそれぞれの範囲内にあるという1つまたは複数のゼロ知識範囲証明を含む、請求項1に記載のシステム。
【請求項４】
前記機密トランザクションの前記内容および前記復号したトランザクションデータに基づいて前記機密トランザクションが正当なものであることを検証するステップは、
前記コミットメントスキームに基づいて前記1つまたは複数のコミットメント値が正しいと決定するステップ、
前記トランザクションデータの前記1つまたは複数のゼロ知識証明を検証するステップ、または、
前記トランザクションデータの値がレギュレーションを順守していると決定するステップのうちの1つまたは複数を含む、請求項1に記載のシステム。
【請求項５】
前記トランザクションデータの前記1つまたは複数のゼロ知識証明を検証するステップは、
前記機密トランザクションの前の前記クライアントノードのアカウント残高がゼロより大きいと決定するステップと、
前記機密トランザクションのトランザクション金額がゼロより大きいと決定するステップと、
前記機密トランザクションのトランザクション金額が前記機密トランザクションの前の前記クライアントノードのアカウント残高以下であると決定するステップとのうちの1つまたは複数を含む、請求項4に記載のシステム。
【請求項６】
コンピュータシステムによって実行可能な1つまたは複数の命令を記憶している非一時的コンピュータ可読媒体であって、前記命令は、
公開鍵と秘密鍵とのペアを生成するステップと、
前記公開鍵をブロックチェーンネットワークの複数のクライアントノードに公開するステップと、
前記ブロックチェーンネットワークのコンセンサスノードから、クライアントノードの機密トランザクションの内容を取得するステップであって、前記機密トランザクションの前記内容は、
前記機密トランザクションのトランザクションデータに暗号コミットメントスキームを適用することによって前記クライアントノードによって生成された前記機密トランザクションの1つまたは複数のコミットメント値と、
前記トランザクションデータの1つまたは複数のゼロ知識証明と、
レギュレータノードの前記公開鍵を使用して前記トランザクションデータを暗号化することによって前記クライアントノードによって生成された暗号化されたレギュレーション情報と
を含む、ステップと、
前記レギュレータノードの前記秘密鍵を使用して前記暗号化されたレギュレーション情報を復号することによって前記トランザクションデータを取得するステップと、
前記機密トランザクションの前記内容および前記トランザクションデータに基づいて前記機密トランザクションが正規のものであることを検証するステップと
を含む処理を行う、非一時的コンピュータ可読媒体。
【請求項７】
前記機密トランザクションの前記トランザクションデータは、前記機密トランザクションの前の前記クライアントノードのアカウント残高または前記機密トランザクションのトランザクション金額の1つまたは複数を含む、請求項6に記載の非一時的コンピュータ可読媒体。
【請求項８】
前記トランザクションデータの前記1つまたは複数のゼロ知識証明は、前記トランザクションデータの値がそれぞれの範囲内にあるという1つまたは複数のゼロ知識範囲証明を含む、請求項6に記載の非一時的コンピュータ可読媒体。
【請求項９】
前記機密トランザクションの前記内容および前記復号したトランザクションデータに基づいて前記機密トランザクションが正当なものであることを検証するステップは、
前記コミットメントスキームに基づいて前記1つまたは複数のコミットメント値が正しいと決定するステップ、
前記トランザクションデータの前記1つまたは複数のゼロ知識証明を検証するステップ、または、
前記トランザクションデータの値がレギュレーションを順守していると決定するステップのうちの1つまたは複数を含む、請求項6に記載の非一時的コンピュータ可読媒体。
【請求項１０】
前記トランザクションデータの前記1つまたは複数のゼロ知識証明を検証するステップは、
前記機密トランザクションの前の前記クライアントノードのアカウント残高がゼロより大きいと決定するステップと、
前記機密トランザクションのトランザクション金額がゼロより大きいと決定するステップと、
前記機密トランザクションのトランザクション金額が前記機密トランザクションの前の前記クライアントノードのアカウント残高以下であると決定するステップとのうちの1つまたは複数を含む、請求項9に記載の非一時的コンピュータ可読媒体。
【請求項１１】
ブロックチェーンネットワークのレギュレータノードによって、公開鍵と秘密鍵とのペアを生成するステップと、
前記レギュレータノードによって、前記公開鍵を前記ブロックチェーンネットワークの複数のクライアントノードに公開するステップと、
前記ブロックチェーンネットワークのクライアントノードによって、前記レギュレータノードの前記公開鍵を取得するステップと、
前記クライアントノードによって、機密トランザクションのトランザクションデータに暗号コミットメントスキームを適用することによって前記クライアントノードの前記機密トランザクションの1つまたは複数のコミットメント値を生成するステップと、
前記クライアントノードによって、前記レギュレータノードの前記公開鍵を使用して前記トランザクションデータを暗号化することによって前記機密トランザクションの暗号化されたレギュレーション情報を生成するステップと、
前記クライアントノードによって、前記ブロックチェーンネットワークのコンセンサスノードに、実行のために前記機密トランザクションの内容を送信するステップであって、前記機密トランザクションの前記内容は、
前記1つまたは複数のコミットメント値と、
前記暗号化されたレギュレーション情報と、
前記トランザクションデータの1つまたは複数のゼロ知識証明と
を含む、ステップと
を含む、方法。
【請求項１２】
前記レギュレータノードによって、前記ブロックチェーンネットワークの前記コンセンサスノードから、前記クライアントノードの前記機密トランザクションの前記内容を取得するステップと、
前記レギュレータノードの前記秘密鍵を使用して前記暗号化されたレギュレーション情報を復号することによって前記トランザクションデータを取得するステップと、
前記機密トランザクションの前記内容および前記トランザクションデータに基づいて前記機密トランザクションが正規のものであることを検証するステップと
をさらに含む、請求項11に記載の方法。
【請求項１３】
前記機密トランザクションの前記トランザクションデータは、前記機密トランザクションの前の前記クライアントノードのアカウント残高または前記機密トランザクションのトランザクション金額の一方または両方を含む、請求項11に記載の方法。
【請求項１４】
前記トランザクションデータの前記1つまたは複数のゼロ知識証明は、前記トランザクションデータの値がそれぞれの範囲内にあるという1つまたは複数のゼロ知識範囲証明を含む、請求項11に記載の方法。
【請求項１５】
前記トランザクションデータの前記1つまたは複数のゼロ知識証明は、前記クライアントノードが前記機密トランザクションの前記暗号化されたレギュレーション情報を生成する際に前記レギュレータノードの前記公開鍵を使用しているというゼロ知識証明を含む、請求項11に記載の方法。
【請求項１６】
前記暗号コミットメントスキームは、Pedersenコミットメントスキームを含み、
トランザクションデータに暗号コミットメントスキームを適用することによって前記クライアントノードの機密トランザクションの1つまたは複数のコミットメント値を生成するステップは、前記トランザクションデータおよび前記トランザクションデータに対応する乱数に基づいて前記クライアントノードの前記機密トランザクションの前記1つまたは複数のコミットメント値を生成するステップを含み、
前記機密トランザクションの暗号化されたレギュレーション情報を生成するステップは、前記レギュレータノードの前記公開鍵を使用して前記トランザクションデータおよび前記トランザクションデータに対応する乱数を暗号化することによって前記機密トランザクションの暗号化されたレギュレーション情報を生成するステップを含む、請求項11に記載の方法。
【請求項１７】
前記機密トランザクションの前記内容は、前記クライアントノードのデジタルシグニチャをさらに含む、請求項11に記載の方法。
【請求項１８】
ブロックチェーンシステムであって、
クライアントノードと、
レギュレータノードとを含み、前記レギュレータノードは、
ブロックチェーンネットワークのレギュレータノードによって、公開鍵と秘密鍵とのペアを生成するステップと、
前記レギュレータノードによって、前記公開鍵を前記ブロックチェーンネットワークの複数のクライアントノードに公開するステップと
を含む処理を行い、
前記クライアントノードは、
前記レギュレータノードの前記公開鍵を取得するステップと、
機密トランザクションのトランザクションデータに暗号コミットメントスキームを適用することによって前記クライアントノードの前記機密トランザクションの1つまたは複数のコミットメント値を生成するステップと、
前記クライアントノードによって、前記レギュレータノードの前記公開鍵を使用して前記トランザクションデータを暗号化することによって前記機密トランザクションの暗号化されたレギュレーション情報を生成するステップと、
前記クライアントノードによって、前記ブロックチェーンネットワークのコンセンサスノードに、実行のために前記機密トランザクションの内容を送信するステップであって、前記機密トランザクションの前記内容は、
前記1つまたは複数のコミットメント値と、
前記暗号化されたレギュレーション情報と、
前記トランザクションデータの1つまたは複数のゼロ知識証明と
を含む、ステップと
を含む処理を行う、システム。
【請求項１９】
前記機密トランザクションの前記トランザクションデータは、前記機密トランザクションの前の前記クライアントノードのアカウント残高または前記機密トランザクションのトランザクション金額の一方または両方を含む、請求項18に記載のシステム。
【請求項２０】
前記トランザクションデータの前記1つまたは複数のゼロ知識証明は、前記トランザクションデータの値がそれぞれの範囲内にあるという1つまたは複数のゼロ知識範囲証明を含む、請求項18に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
ブロックチェーン機密トランザクションの管理に関する。
【背景技術】
【０００２】
コンセンサスネットワークおよび/またはブロックチェーンネットワークとも称することができる分散型台帳システム(DLS)は、参加エンティティが安全かつ変更不可能な形でデータを記憶することを可能にする。DLSは、いかなる特定のユーザケース(例えば、暗号通貨)を指すわけではなく、ブロックチェーンネットワークと一般には称される。例示的なタイプのブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、およびコンソーシアムブロックチェーンネットワークを含み得る。パブリックブロックチェーンネットワークは、DLSを使用し、コンセンサスプロセスに参加するように、すべてのエンティティに対してオープンとなっている。プライベートブロックチェーンネットワークは、特定のエンティティに提供されており、読込みおよび書込みの許可を中央集権的に制御する。コンソーシアムブロックチェーンネットワークは、エンティティの選抜グループに提供されており、コンセンサスプロセスを制御し、アクセス制御レイヤを含む。
【０００３】
ブロックチェーンは、暗号通貨ネットワークにおいて使用されており、物品を売買するための取引および/または暗号通貨を使用したサービスを参加者が実施することを可能にする。共通の暗号通貨は、Bitcoinを含む。暗号通貨ネットワークにおいては、レコードキーピングモデルは、ユーザ間のトランザクションを記録するために使用される。例示的なレコードキーピングモデルは、未使用トランザクションアウトプット(UTXO)モデル、およびアカウントモデル(アカウントベースモデルまたはアカウント/残高モデルとも称する)を含む。
【０００４】
UTXOモデルにおいては、チェーン上のアセットは、トランザクションの形式となっている。各トランザクションは、以前のトランザクションからのアウトプットを使用し、以後のトランザクションにおいて使用され得る新規アウトプットを生成する。ユーザの未使用トランザクションはトラッキングされ、ユーザが使用する必要がある残高は未使用トランザクションの合計として算出される。各トランザクションは、インプットとして1つまたは複数の未使用アウトプット(且つ未使用アウトプットのみ)を取り込み、1つまたは複数のアウトプットを有することができる。未使用アウトプットのみがさらなるトランザクションにおいて使用され得るという要件は、二重支払および不正行為を防ぐために必要である。UTXOモデルは、トランザクションの検証および証明機能をサポートするが、スマートコントラクトに関するサポートは不得手である。
【０００５】
アカウントモデルは、Ethereumによって採用されている。アカウントモデルは、レコードキーピングを行い、従来の銀行のようにアカウント残高を管理する。このモデルの下では、アカウントは、アドレスおよび対応するアカウント残高を有し得る。チェーン上のアセットは、アカウントの残高として表される。各送金トランザクションは、送金されたアセットのアカウントアドレスおよび着金したアセットのアカウントアドレスを有し得る。トランザクション金額は、アカウントの残高に関して直接更新される。送金アカウントがトランザクションに対する支払いをするのに十分な残高を有していることを各トランザクションが確認するだけでよいため、アカウントモデルは効率的である。トランザクションの検証および証明機能をサポートすることに加えて、アカウントモデルは、スマートコントラクト、特に、状態情報を必要とするまたは複数の関係者が関与するスマートコントラクトを完全にサポートし得る。
【発明の概要】
【課題を解決するための手段】
【０００６】
本開示の実施形態は、ブロックチェーン技術(ブロックチェーン機密トランザクション、または単に、機密トランザクションと称する)に基づいた機密トランザクションのためのコンピュータ実施方法を含む。より詳細には、本開示の実施形態は、ブロックチェーン機密トランザクションを管理することを目的としている。
【０００７】
いくつかの実施形態においては、動作は、ブロックチェーンネットワークのクライアントノードによって、レギュレータノードの公開鍵を取得するステップと、クライアントノードによって、機密トランザクションのトランザクションデータに暗号コミットメントスキームを適用することによってクライアントノードの機密トランザクションの1つまたは複数のコミットメント値を生成するステップと、クライアントノードによって、レギュレータノードの公開鍵を使用してトランザクションデータを暗号化することによって機密トランザクションの暗号化されたレギュレーション情報を生成するステップと、クライアントノードによって、ブロックチェーンネットワークのコンセンサスノードに、実行のために機密トランザクションの内容を送信するステップであって、機密トランザクションの内容は、1つまたは複数のコミットメント値と、暗号化されたレギュレーション情報と、トランザクションデータの1つまたは複数のゼロ知識証明とを含む、ステップとを含む。他の実施形態は、対応する、システムと、装置と、コンピュータストレージデバイス上に符号化された、方法のアクションを行うように構成される、コンピュータプログラムとを含む。
【０００８】
いくつかの実施形態においては、動作は、ブロックチェーンネットワークのレギュレータノードによって、公開鍵と秘密鍵とのペアを生成するステップと、レギュレータノードによって、公開鍵をブロックチェーンネットワークの複数のクライアントノードに公開するステップと、レギュレータノードによって、ブロックチェーンネットワークのコンセンサスノードから、クライアントノードの機密トランザクションの内容を取得するステップであって、機密トランザクションの内容は、機密トランザクションのトランザクションデータに暗号コミットメントスキームを適用することによってクライアントノードによって生成された機密トランザクションの1つまたは複数のコミットメント値と、トランザクションデータの1つまたは複数のゼロ知識証明と、レギュレータノードの公開鍵を使用してトランザクションデータを暗号化することによってクライアントノードによって生成された暗号化されたレギュレーション情報とを含む、ステップと、レギュレータノードの秘密鍵を使用して暗号化されたレギュレーション情報を復号することによってトランザクションデータを取得するステップと、レギュレータノードによって、機密トランザクションの内容および復号したトランザクションデータに基づいて機密トランザクションが正規のものであることを検証するステップとを含む。
【０００９】
これらおよび他の実施形態の各々は、以下の特徴の1つまたは複数を必要に応じて含み得る。
【００１０】
下記の特徴のいずれかと組み合わせることが可能な第1の特徴としては、機密トランザクションのトランザクションデータは、機密トランザクションの前のクライアントノードのアカウント残高または機密トランザクションのトランザクション金額の一方または両方を含む。
【００１１】
上記または下記の特徴のいずれかと組み合わせることが可能な第2の特徴としては、トランザクションデータの1つまたは複数のゼロ知識証明は、トランザクションデータの値がそれぞれの範囲内にあるという1つまたは複数のゼロ知識範囲証明を含む。
【００１２】
上記または下記の特徴のいずれかと組み合わせることが可能な第3の特徴としては、トランザクションデータの1つまたは複数のゼロ知識証明は、クライアントノードが機密トランザクションの暗号化されたレギュレーション情報を生成する際にレギュレータノードの公開鍵を使用しているというゼロ知識証明を含む。
【００１３】
上記または下記の特徴のいずれかと組み合わせることが可能な第4の特徴としては、暗号コミットメントスキームは、Pedersenコミットメントスキームを含み、トランザクションデータに暗号コミットメントスキームを適用することによってクライアントノードの機密トランザクションの1つまたは複数のコミットメント値を生成するステップは、トランザクションデータおよびトランザクションデータに対応する乱数に基づいてクライアントノードの機密トランザクションの1つまたは複数のコミットメント値を生成するステップを含み、機密トランザクションの暗号化されたレギュレーション情報を生成するステップは、レギュレータノードの公開鍵を使用してトランザクションデータおよびトランザクションデータに対応する乱数を暗号化することによって機密トランザクションの暗号化されたレギュレーション情報を生成するステップを含む。
【００１４】
上記または下記の特徴のいずれかと組み合わせることが可能な第5の特徴としては、機密トランザクションの内容は、クライアントノードのデジタルシグニチャをさらに含む。
【００１５】
上記または下記の特徴のいずれかと組み合わせることが可能な第6の特徴としては、機密トランザクションの内容および復号したトランザクションデータに基づいて機密トランザクションが正当なものであることを検証するステップは、コミットメントスキームに基づいて1つまたは複数のコミットメント値が正しいと決定するステップ、トランザクションデータの1つまたは複数のゼロ知識証明を検証するステップ、または、トランザクションデータの値がレギュレーションを順守していると決定するステップのうちの1つまたは複数を含む。
【００１６】
上記または下記の特徴のいずれかと組み合わせることが可能な第7の特徴としては、トランザクションデータの1つまたは複数のゼロ知識証明を検証するステップは、機密トランザクションの前のクライアントノードのアカウント残高がゼロより大きいと決定するステップと、機密トランザクションのトランザクション金額がゼロより大きいと決定するステップと、機密トランザクションのトランザクション金額が機密トランザクションの前のクライアントノードのアカウント残高以下であると決定するステップとのうちの1つまたは複数を含む。
【００１７】
本開示はまた、1つまたは複数のプロセッサに結合されるとともに命令を記憶した1つまたは複数の非一時的コンピュータ可読記憶媒体であって、1つまたは複数のプロセッサによって実行されると、命令は、1つまたは複数のプロセッサに、本明細書で提供した方法の実施形態に従って動作を行わせる、非一時的コンピュータ可読記憶媒体を提供している。
【００１８】
本開示は、本明細書で提供した方法を実施するためのシステムをさらに提供している。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合されるとともに命令を記憶したコンピュータ可読記憶媒体であって、1つまたは複数のプロセッサによって実行されると、命令は、1つまたは複数のプロセッサに、本明細書で提供した方法の実施形態に従って動作を行わせる、コンピュータ可読記憶媒体とを含む。
【００１９】
本開示による方法が本明細書に記載の態様と特徴との任意の組合せを含み得ることは諒解されよう。すなわち、本開示による方法は、特に本明細書に記載の態様と特徴との組合せに限定されるわけではなく、提供した態様と特徴との任意の組合せも含む。
【００２０】
本開示についての1つまたは複数の実施形態の詳細を添付の図面および以下の説明に記載している。本開示についての他の特徴および利点が、説明および図面から、および特許請求の範囲から明らかとなるであろう。
【図面の簡単な説明】
【００２１】
【図１】本開示の実施形態を実行するために使用され得る例示的な環境を示す図である。
【図２】本開示の実施形態による、例示的な概念的機構を示す図である。
【図３】本開示の実施形態による、ブロックチェーン機密トランザクションの例示的なレギュレーションプロセスを示す図である。
【図４】本開示の実施形態による、ブロックチェーン機密トランザクションの例示的な内容を示す図である。
【図５】本開示の実施形態による、実行され得る例示的なプロセスを示す図である。
【発明を実施するための形態】
【００２２】
様々な図面における類似の参照記号は類似の要素を示す。
【００２３】
本開示の実施形態は、ブロックチェーン技術(ブロックチェーン機密トランザクション、または単に、機密トランザクションと称する)に基づいた機密トランザクションのためのコンピュータ実施方法を含む。より詳細には、本開示の実施形態は、ブロックチェーン機密トランザクションを管理することを目的としている。
【００２４】
いくつかの実施形態においては、動作は、ブロックチェーンネットワークのクライアントノードによって、レギュレータノードの公開鍵を取得するステップと、クライアントノードによって、機密トランザクションのトランザクションデータに暗号コミットメントスキームを適用することによってクライアントノードの機密トランザクションの1つまたは複数のコミットメント値を生成するステップと、クライアントノードによって、レギュレータノードの公開鍵を使用してトランザクションデータを暗号化することによって機密トランザクションの暗号化されたレギュレーション情報を生成するステップと、クライアントノードによって、ブロックチェーンネットワークのコンセンサスノードに、実行のために機密トランザクションの内容を送信するステップであって、機密トランザクションの内容は、1つまたは複数のコミットメント値と、暗号化されたレギュレーション情報と、トランザクションデータの1つまたは複数のゼロ知識証明とを含む、ステップとを含む。
【００２５】
いくつかの実施形態においては、動作は、ブロックチェーンネットワークのレギュレータノードによって、公開鍵と秘密鍵とのペアを生成するステップと、レギュレータノードによって、公開鍵をブロックチェーンネットワークの複数のクライアントノードに公開するステップと、レギュレータノードによって、ブロックチェーンネットワークのコンセンサスノードから、クライアントノードの機密トランザクションの内容を取得するステップであって、機密トランザクションの内容は、機密トランザクションのトランザクションデータに暗号コミットメントスキームを適用することによってクライアントノードによって生成された機密トランザクションの1つまたは複数のコミットメント値と、トランザクションデータの1つまたは複数のゼロ知識証明と、レギュレータノードの公開鍵を使用してトランザクションデータを暗号化することによってクライアントノードによって生成された暗号化されたレギュレーション情報とを含む、ステップと、レギュレータノードの秘密鍵を使用して暗号化されたレギュレーション情報を復号することによってトランザクションデータを取得するステップと、レギュレータノードによって、機密トランザクションの内容および復号したトランザクションデータに基づいて機密トランザクションが正規のものであることを検証するステップとを含む。
【００２６】
他の実施形態は、対応する、システムと、装置と、コンピュータストレージデバイス上に符号化された、方法のアクションを行うように構成される、コンピュータプログラムとを含む。
【００２７】
本開示の実施形態についてのさらなる状況をあげるとすれば、および上述したように、コンセンサスネットワーク(例えば、ピア・ツー・ピアノードで構成される)およびブロックチェーンネットワークとも称することができる分散型台帳システム(DLS)は、参加エンティティが安全かつ変更不可能な形で取引を実施しデータを記憶することを可能にする。ブロックチェーンという用語は、Bitcoinといった暗号通貨ネットワークと一般的に関連深いが、本明細書では、いかなる特定のユースケースを指すわけではなく一般的にDLSを指すために、ブロックチェーンを使用している。上述したように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供され得る。
【００２８】
パブリックブロックチェーンネットワークにおいては、コンセンサスプロセスは、コンセンサスネットワークのノードによって制御される。例えば、数百、数千、さらには数百万のエンティティがパブリックブロックチェーンネットワークに協力し得るし、その各々がパブリックブロックチェーンネットワーク内の少なくとも1つのノードを管理する。それゆえ、パブリックブロックチェーンネットワークを、参加エンティティに対するパブリックネットワークとみなすことができる。いくつかの例においては、ブロックを有効とするためにおよびブロックチェーンネットワークのブロックチェーン(分散型台帳)に追加するために、大部分のエンティティ(ノード)はブロックごとに記帳する必要がある。例示的なパブリックブロックチェーンネットワークは、ピア・ツー・ピア決済ネットワークであるBitcoinネットワークを含む。Bitcoinネットワークは、ブロックチェーンと称する分散型台帳を活用する。しかしながら、上述したように、ブロックチェーンという用語は、Bitcoinネットワークを特に指すわけではなく分散型台帳を一般的に指すために使用される。
【００２９】
一般に、パブリックブロックチェーンネットワークは、パブリックトランザクションをサポートする。パブリックトランザクションは、パブリックブロックチェーンネットワーク内のノードのすべてと共有され、グローバルブロックチェーンに記憶されている。グローバルブロックチェーンは、すべてのノードにわたって複製されるブロックチェーンである。すなわち、すべてのノードは、グローバルブロックチェーンに関して完全ステータスコンセンサスとなる。コンセンサス(例えば、ブロックチェーンへのブロックの追加に対する合意)を得るために、コンセンサスプロトコルがパブリックブロックチェーンネットワークにおいて実施される。例示的なコンセンサスプロトコルは、限定を意図したものではないが、Bitcoinネットワークにおいて実施されるプルーフ・オブ・ワーク(POW)を含む。
【００３０】
一般に、プライベートブロックチェーンネットワークは、特定のエンティティに提供されており、読込みおよび書込みの許可を中央集権的に制御する。エンティティは、どのノードがブロックチェーンネットワークに参加することができるかを制御する。それゆえ、プライベートブロックチェーンネットワークは、誰がネットワークに参加することができるかについての制約、およびそれらの参加のレベル(例えば、あるトランザクションに限定)についての制約を設定している、許可型ネットワークと一般的には称される。(例えば、既存の参加者が新規エンティティの追加について表決する、監督機関が許可を制御することができるといった)様々なタイプのアクセス制御機構を使用することができる。
【００３１】
一般に、コンソーシアムブロックチェーンネットワークは、参加エンティティの間でプライベートなものとなっている。コンソーシアムブロックチェーンネットワークにおいては、コンセンサスプロセスは権限を与えられたノードのセットによって制御され、1つまたは複数のノードがそれぞれのエンティティ(例えば、金融機関、保険会社)によって管理される。例えば、十(10)のコンソーシアムエンティティ(例えば、金融機関、保険会社)がコンソーシアムブロックチェーンネットワークを管理してもよく、その各々がコンソーシアムブロックチェーンネットワーク内の少なくとも1つのノードを管理する。それゆえ、コンソーシアムブロックチェーンネットワークを、参加エンティティに対するプライベートネットワークとみなすことができる。いくつかの例においては、ブロックを有効とするためにおよびブロックチェーンに追加するために、各エンティティ(ノード)はブロックごとに記帳する必要がある。いくつかの例においては、ブロックを有効とするためにおよびブロックチェーンに追加するために、少なくともエンティティ(ノード)のサブセット(例えば、少なくとも7つのエンティティ)はブロックごとに記帳する必要がある。
【００３２】
本開示の実施形態を、コンソーシアムブロックチェーンネットワークを参照して本明細書ではさらに詳細に説明する。しかしながら、本開示の実施形態を任意の適切なタイプのブロックチェーンネットワークにおいて実現することができることは念頭に置かれたい。
【００３３】
本開示の実施形態は、上記の事情を考慮して本明細書ではさらに詳細に説明する。より詳細には、および上述したように、本開示の実施形態は、ブロックチェーン機密トランザクションを管理することを目的としている。
【００３４】
ブロックチェーンは、パブリックまたはプライベートピア・ツー・ピアネットワーク内のトランザクションを記録する、改竄耐性のある、共有デジタル台帳である。台帳はネットワーク内のすべてのメンバノードに分散されており、ネットワークにおいて生じるアセットトランザクションの履歴はブロックに恒久的に記録される。台帳が参加エンティティに対して完全に公になっているため、ブロックチェーン台帳自体は、プライバシー保護機能を有しておらず、アセットトランザクションの内容のプライバシーを保護する追加の技術を必要とする。
【００３５】
ブロックチェーンのためのプライバシー保護のための技法は、機密トランザクションを実現してトランザクションの内容のプライバシーを保護するための技法を含み得る。機密トランザクションにおいては、トランザクションの内容は、いかなる他の部外者も対象外であり、トランザクションの参加者によってのみアクセス可能または知るところとなる。例えば、機密トランザクションは、トランザクションに参加する2人の関係者のみが取引される金額に関与することができ、外部の監視者がこの情報を知ることを防ぐ。機密トランザクションを実現するためのそのような技法が、例えば、MONEROおよびZCASHにおいて、使用されている。
【００３６】
ブロックチェーンのためのプライバシー保護のための技法はまた、あるトランザクションに対する関係者の識別情報を保護するための技法を含んでいてもよく、例えば、ステルスアドレスまたはリングシグニチャ機構を使用して実現され得る。
【００３７】
プライバシー保護が(例えば、機密トランザクションとの関連で)ブロックチェーンに追加されている場合には、1つまたは複数のレギュレータ(政府、業界団体など)がトランザクションを監査、検査、調査、監視、またさもなければ管理することが困難となる。例えば、ブロックチェーン上に記憶されたトランザクションの情報が暗号化されているため、コンソーシアムブロックチェーンネットワーク内のレギュレータ(またはスーパーバイザ)が機密トランザクションの内容の正規性および正当性をチェックすることが困難となり、そのことがブロックチェーンの適用を制限することとなっている。
【００３８】
その問題を解決し、レギュレータが、特にブロックチェーン機密トランザクションのケースにおいて、ブロックチェーン上の内容を管理することを可能およびより容易にする例示的な技法を説明する。例示的な技法は、アカウントモデルに基づくものであり、スマートコントラクトをサポートする利点を有し得る。
【００３９】
例えば、機密トランザクションを送信する際に、ユーザは、トランザクションにおいてPedersenコミットメント(以下により詳細に説明する)に対応する乱数および平文値(例えば、機密トランザクションの前のアカウント残高または機密トランザクションの送金金額)の両方を暗号化し得るし、レギュレータの公開鍵を使用してトランザクションデータの一部としてそれを暗号化および送信をし得る。レギュレータは、その秘密鍵を使用して任意の時点で各トランザクションについてのPedersenコミットメントを復号することができる、そのため、監査の時点においてチェーン内の各参加者にクエリを送信し、各参加者から返信された結果を受信し、返信された結果を解析して各トランザクションを検証するなどといった、任意の追加のチェーンインタラクションがなくても、各トランザクションがレギュレータの要件を満たしているかどうかを決定することができる。
【００４０】
提案した技法は、ブロックチェーンの分散型の特性を保持し得るため、例えば、ブロックチェーントランザクションのプライバシー保護においてレギュレーションのソリューションを実施する際に、グループシグニチャベースの技術または他の技法において信頼するに値する中央ノードまたは第三者を必要としない。提案した技法は、各トランザクションが送信される前に各トランザクションを記帳することをレギュレータに要求しない。それゆえ、提案した技法は、中央ノードを当てにしておらず、そのため、ブロックチェーンネットワーク内の中央ノードがシステムパフォーマンス、セキュリティなどにおけるボトルネックとなってしまうことを回避している。
【００４１】
図1は、本開示の実施形態を実行するために使用され得る例示的な環境100を図示している。いくつかの例においては、例示的な環境100は、エンティティがコンソーシアムブロックチェーンネットワーク102に参加することを可能にする。例示的な環境100は、コンピューティングデバイスまたはシステム106、108、およびネットワーク110を含む。いくつかの例においては、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはその組合せを含み、ウェブサイト、ユーザデバイス(例えば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例においては、ネットワーク110は、有線および/または無線通信リンクを介してアクセスされ得る。
【００４２】
図示した例においては、コンピューティングシステム106、108の各々は、コンソーシアムブロックチェーンネットワーク102内のノードとしての参加を可能にする任意の適切なコンピューティングシステムを含み得る。例示的なコンピューティングデバイスは、限定を意図したものではないが、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンを含む。いくつかの例においては、コンピューティングシステム106、108は、コンソーシアムブロックチェーンネットワーク102とやりとりするための1つまたは複数のコンピュータ実施サービスをホストする。例えば、コンピューティングシステム106は、第1のエンティティが1つまたは複数の他のエンティティ(例えば、他のユーザ)とのトランザクションを管理するために使用するトランザクション管理システムなどといった、第1のエンティティ(例えば、ユーザA)のコンピュータ実施サービスをホストすることができる。コンピューティングシステム108は、第2のエンティティが1つまたは複数の他のエンティティ(例えば、他のユーザ)とのトランザクションを管理するために使用するトランザクション管理システムなどといった、第2のエンティティ(例えば、ユーザB)のホストコンピュータ実施サービスをホストすることができる。図1の例においては、コンソーシアムブロックチェーンネットワーク102を、ノードからなるピア・ツー・ピアネットワークとして表しており、コンピューティングシステム106、108は、コンソーシアムブロックチェーンネットワーク102に参加する、第1のエンティティおよび第2のエンティティのノードをそれぞれ提供する。
【００４３】
図2は、本開示の実施形態による、例示的な概念的機構200を図示している。例示的な概念的機構200は、エンティティレイヤ202、ホステッドサービスレイヤ204、およびブロックチェーンネットワークレイヤ206を含む。図示した例においては、エンティティレイヤ202は、3つのエンティティEntity_1(E1)、Entity_2(E2)、およびEntity_3(E3)を含み、各エンティティは、それぞれのトランザクション管理システム208を有する。
【００４４】
図示した例においては、ホステッドサービスレイヤ204は、各トランザクション管理システム208のためのインターフェース210を含む。いくつかの例においては、それぞれのトランザクション管理システム208は、プロトコル(例えば、ハイパーテキスト・トランスファー・プロトコル・セキュア(HTTPS))を使用してネットワーク(例えば、図1のネットワーク110)を介してそれぞれのインターフェース210と通信する。いくつかの例においては、各インターフェース210は、それぞれのトランザクション管理システム208とブロックチェーンネットワークレイヤ206との間の通信接続を提供する。より詳細には、インターフェース210は、ブロックチェーンネットワークレイヤ206のブロックチェーンネットワーク212と通信する。いくつかの例においては、インターフェース210とブロックチェーンネットワークレイヤ206との間の通信は、リモートプロシージャコール(RPC)を使用して実施される。いくつかの例においては、インターフェース210は、それぞれのトランザクション管理システム208のためのブロックチェーンネットワークノードを「ホスト」する。例えば、インターフェース210は、ブロックチェーンネットワーク212へのアクセスのためのアプリケーションプログラミングインターフェース(API)を提供する。
【００４５】
本明細書に記載しているように、ブロックチェーンネットワーク212は、ブロックチェーン216内の情報を変更不可能な形で記録する複数のノード214を含むピア・ツー・ピアネットワークとして提供される。単一のブロックチェーン216を概略的に図示しているが、ブロックチェーン216の複数のコピーが、提供され、ブロックチェーンネットワーク212にわたって保持される。例えば、各ノード214は、ブロックチェーンのコピーを記憶する。いくつかの実施形態においては、ブロックチェーン216は、コンソーシアムブロックチェーンネットワークに参加する2つ以上のエンティティの間で行われるトランザクションに関連付けられた情報を記憶する。
【００４６】
図3は、本開示の実施形態による、ブロックチェーン機密トランザクション(単にトランザクション)の例示的なレギュレーションプロセス300を図示している。A302およびB304は、あるトランザクションの2人のユーザの2つのクライアントノード(クライアント、エンティティ、参加者、または関係者とも称する)を表し、S306は、ブロックチェーンネットワーク350内にあるレギュレータ(またはスーパーバイザ)ノードである。ブロックチェーンネットワーク350は、複数のコンセンサスノード(図3中のブロックチェーンノード308として示した)を含み得る。
【００４７】
いくつかの実施形態においては、A302およびB304は、図1および図2に示したような第1および第2のユーザまたはエンティティに対応するコンピューティングシステム106、108の例である。各クライアントノードA302またはB304は、ブロックチェーンネットワーク350を介したトランザクションについての対応するアカウント(例えば、パブリックアカウントまたはプライベートアカウント)を有する。
【００４８】
いくつかの実施形態においては、クライアントノードA302は、トランザクション情報がクライアントノードA302およびクライアントノードB304によってのみ閲覧可能またさもなければ知るところとなるがブロックチェーンネットワーク350内の他の関係者(例えば、ブロックチェーンノード308)によっては閲覧可能またさもなければ知るところとならないように、クライアントノードB304との機密トランザクションを提供し得る。
【００４９】
いくつかの実施形態においては、ブロックチェーンネットワーク350において行われる一部またはすべてのトランザクションは、レギュレータノードS306によるレギュレーションに従うものであり得る。例えば、レギュレータノードS306は、例えば、トランザクションをモニタリング、調査、監査、監視、またさもなければ管理することによって特定のトランザクションがあるルールまたはレギュレーションを順守しているかどうかを決定し得る。いくつかの実施形態においては、機密トランザクションのトランザクション情報は、レギュレータノードS306によって利用可能および閲覧可能となり得る。
【００５０】
いくつかの実施形態においては、機密トランザクションのプライバシーを維持しつつ機密トランザクションのトランザクション情報へのアクセスを有するように、レギュレータノードS306は、鍵のペア、公開鍵Spub316および秘密鍵Spriv326を生成し得る。レギュレータノードS306は、クライアントノードが公開鍵Spub316を使用してトランザクション情報を暗号化することができるように、ブロックチェーンネットワーク350内のクライアントノード(例えば、A302およびB304)に公開鍵Spub316を公開または発行し得る。暗号化されるため、トランザクション情報は、他の第三者には閲覧可能ではないが、レギュレータノードS306はその秘密鍵Spriv326を使用して暗号化されたトランザクション情報を復号することができるため、レギュレータノードS306に対してはアクセス可能となる。
【００５１】
例えば、図3に示しているように、トランザクションの前に、クライアントノードA302はアカウント残高aを有し、クライアントノードB304はアカウント残高bを有する。310において、クライアントノードA302が、金額tをクライアントノードB304に送金する機密トランザクションを作成する。いくつかの実施形態においては、クライアントノードA302は、ローカルで機密トランザクションの内容を構築し、機密トランザクションの内容をブロックチェーンネットワーク350(例えば、ブロックチェーンネットワーク350内の1つまたは複数のブロックチェーンノード308)に送信し得る。
【００５２】
図4は、本開示の実施形態による、例示的な機密トランザクション450の例示的な内容400を図示している。図示しているように、例示的な機密トランザクション450は、図3を参照して説明したようなクライアントノードA302からクライアントノードB304へのトランザクション金額tの送金である。
【００５３】
いくつかの実施形態においては、機密トランザクション450は、トランザクションデータ(例えば、トランザクションの前のアカウント残高、およびトランザクション金額)を秘匿するために、コミットメントスキームに基づいて構築され得る。例示的なコミットメントスキームは、限定を意図したものではないが、Pedersenコミットメント(PC)を含む。例えば、クライアントノードA302は、PCを使用してトランザクション金額tおよび乱数rに基づいてコミットメント値を生成する。例えば、コミットメント値は、PC(t)=rG+tHに従って取得することができる暗号文を含む、ここで、GおよびHは楕円曲線の生成元であり得るし、PC(t)は曲線の点についてのスカラ乗算であり、tはコミットされることになる値である。PCコミットメントスキームは準同型を有し、すなわち、PC(t1)+PC(t2)=PC(t1+t2)である。暗号文PC(t)の所持者は、乱数rを使用することによってトランザクション金額tを検証することができる。PCを参照して、本開示の実施形態を本明細書ではさらに詳細に説明しているが、本開示の実施形態が任意の適切なコミットメントスキームを使用して実現することができることは念頭に置かれたい。
【００５４】
例示的な機密トランザクション450において、クライアントノードA302は、トランザクション前のアカウント残高aおよび送金金額tをコミットし得る。いくつかの実施形態においては、クライアントノードA302は、トランザクション前のアカウント残高aおよび対応する乱数raに基づいてPCを使用してコミットメント値PC(a)を生成し得る。同様に、クライアントノードA302は、トランザクション前のアカウント残高tおよび対応する乱数rtに基づいてPCを使用してコミットメント値PC(t)を生成し得る。いくつかの実施形態においては、クライアントノードA302はまた、トランザクション後の残高a-tが0以上となるような十分な資金をそれが有していることをコミットし得る。例えば、クライアントノードA302は、例えば、PCの準同型の特性を前提としたコミットメント値PC(a)およびPC(t)に基づいて、コミットメント値PC(a-t)を生成し得る。コミットメント値は、例示的な機密トランザクション450の内容400に含まれ得る。
【００５５】
いくつかの実施形態においては、追加のまたは異なるコミットメント値が含まれ得る。例えば、クライアントノードA302は、トランザクション情報を暗号化するためにレギュレータの公開鍵(例えば、公開鍵Spub316)をそれが使用していることをコミットし得る。例えば、クライアントノードA302は、Spubおよびトランザクション情報に基づいてコミットメント値PC(Spub)を生成し得る。
【００５６】
レギュレータのレギュレーションを促進するために、クライアントノードA302はまた、レギュレータの公開鍵Spubを使用してトランザクションに関与する各Pedersenコミットメントの金額a、tおよび対応する乱数ra、rtなどのトランザクション情報を暗号化し得る。例えば、クライアントノードA302はまた、Spubを使用してトランザクション情報(例えば、ra、a、rt、t)を暗号化し、暗号化されたレギュレーション情報、例えば、encrypt(Spub,(ra|a|rt|t))として示した暗号文Mを取得し得る。一例としては、暗号文Mは、4つの要素ra、a、rt、tの暗号化されたテキストの連結、または別のフォーマットであり得る。いくつかの実施形態においては、暗号化されたレギュレーション情報は、追加のまたは異なるトランザクション情報を含み得るし、別の方式で生成され得る。
【００５７】
いくつかの実施形態においては、例示的な機密トランザクション450の内容400は、送信関係者が送信している情報が正当なものであることを受信関係者が確認することができるように、1つまたは複数のゼロ知識証明を含み得る。ゼロ知識証明は、確認される情報についての実際の知識がなくとも受信関係者がこれを行うことを可能にする。ゼロ知識証明は、Proof(a-t>0)、Proof(t>0)、およびProof(a>0)などといった範囲証明、または他のタイプの証明を含み得る。ゼロ知識証明は、受信関係者(例えば、クライアントノードB)が、金額が送金される元となる残高aを知らずともまたは送金金額tさえ知らずとも、送信関係者(例えば、クライアントノードA)が送金するのに十分な資金を有している(すなわち、a-t>0)ことおよび送金金額がゼロより大きいことを確認することを可能にする。
【００５８】
いくつかの実施形態においては、例示的な機密トランザクション450の内容400は、トランザクション上のAのデジタルシグニチャなどといった他のトランザクション関連情報を含み得る。
【００５９】
図3に戻って参照すれば、トランザクション内容(例えば、例示的な機密トランザクションの内容400)を生成した後に、クライアントノードA302は、機密トランザクションの内容をブロックチェーンネットワーク350(例えば、ブロックチェーンネットワーク350内の1つまたは複数のブロックチェーンノード308)に送信し得る。320において、ブロックチェーンネットワーク350が、機密トランザクションを実行し得る。いくつかの実施形態においては、機密トランザクションは、ブロックチェーンネットワーク350内のブロックチェーンノード308の各々によって実行され得る。例えば、ブロックチェーンノード308の各々は、例えば、機密トランザクションの内容に含まれるコミットメント値およびゼロ知識証明のうちの1つまたは複数を検証することによって、機密トランザクションの内容が正規のものであるかどうかを決定し得る。例えば、ブロックチェーンノード308の各々は、PC(a)=PC(t)+PC(a-t)、すなわち、インプットされたトランザクション値がアウトプットされたトランザクション値に等しいことを検証することによって、コミットメント値を検証し得る。ブロックチェーンノード308の各々は、例えば、Bulletproof、MoneroのRingCTアルゴリズム、または任意の他の適切なアルゴリズムに基づいて、ゼロ知識証明を検証し得る。
【００６０】
コミットメント値およびゼロ知識証明の検証が済むと、ブロックチェーンノード308の各々は、トランザクションを記録し、クライアントノードA302およびクライアントノードB304のアカウントを更新することができる。例えば、トランザクション後には、クライアントノードA302はアカウント残高a-tを有し、クライアントノードB304はアカウント残高b+tを有する。いくつかの実施形態においては、クライアントノードA302とクライアントノードB304とのトランザクション後の残高は、コミットメントスキームの準同型に起因してコミットメント値の直接的な操作によって反映され得る。例えば、クライアントノードA302は、この時点では、トランザクション後のアカウント残高のコミットメント値PC(a-t)=PC(a)-PC(t)を有し得る。クライアントノードB304は、この時点では、トランザクション後のアカウント残高のコミットメント値PC(b+t)=PC(b)+PC(t)を有し得る。
【００６１】
330において、機密トランザクションを管理するために、レギュレータノードS306が、ブロックチェーンネットワーク350から機密トランザクションの内容を取得し、トランザクション情報がレギュレータの基準または要件を満たしているかどうかを決定する。例えば、レギュレータノード306は、暗号化されたレギュレーション情報(例えば、図4に示しているような暗号文M=encrypt(Spub,(ra|a|rt|t))を含む機密トランザクションの内容を取得し得る。レギュレータノードS306は、その秘密鍵Spriv326を使用して暗号化されたレギュレーション情報を復号し、トランザクション内のPCに対応する平文トランザクション情報(例えば、ra、a、rt、t)を取得する。レギュレータノードS306は、トランザクション情報がレギュレータの基準または要件を満たしているかどうかを決定し、平文トランザクション情報に基づいてコミットメント値の正当性を検証し得る。例えば、レギュレータノードS306は、トランザクション金額が最大許容トランザクション金額を下回っているかどうかを決定することなどといった、従来のレギュレーションを行い得る。
【００６２】
いくつかの実施形態においては、レギュレータノードS306は、トランザクションのトランザクションデータを自動的にレギュレータノードS306にプッシュすることができるように、ブロックチェーンネットワーク350内で行われる一部またはすべてのトランザクションに予約申込し得る。いくつかの実施形態においては、レギュレータノードS306は、ブロックチェーンネットワーク350から(例えば、ブロックチェーンネットワーク350内の1つまたは複数のブロックチェーンノード308から)一部またはすべてのトランザクションのトランザクションデータをフェッチ、プル、または取得し得る。
【００６３】
図5は、本開示の実施形態による、実行され得る例示的なプロセス500を図示している。いくつかの実施形態においては、例示的なプロセス500は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して行われ得る。概要説明を明確にするために、以下の説明では、本説明においては他の図に則して方法500を一般的に説明している。例えば、図3を参照して説明したように、レギュレータノード510はレギュレータノードS306であり得るし、ブロックチェーンノード520はブロックチェーンノード308であり得るし、クライアントノードA530はクライアントノードA302であり得るし、クライアントノードB540はクライアントノードB304であり得る。しかしながら、必要に応じて、例えば、任意の適切なシステム、環境、ソフトウェア、およびハードウェア、またはシステムと、環境と、ソフトウェアと、ハードウェアとの組合せによって、方法500を行い得ることを理解されよう。いくつかの実施形態においては、方法500の様々なステップは、並行して、組み合わせて、繰り返して、または任意の順序で実行され得る。
【００６４】
512において、ブロックチェーンネットワークのレギュレータノード510が、公開鍵と秘密鍵とのペアを生成する。公開鍵および秘密鍵のペアは、レギュレーションのためのトランザクション情報を暗号化または復号するために使用され得る。
【００６５】
514において、レギュレータノード510が、公開鍵をブロックチェーンネットワークの複数のクライアントノード(例えば、クライアントノードA530およびクライアントノードB540)に公開する。例えば、レギュレータノード510は、レギュレータノードのレギュレーションに従うブロックチェーンネットワーク(例えば、コンソーシアムブロックチェーンネットワーク)内のすべてのクライアントノードに公開鍵を発行し得る。
【００６６】
532において、ブロックチェーンネットワークのクライアントノードであるクライアントノードA530が、レギュレータノード510の公開鍵を取得する。クライアントノードA530は、レギュレータノード510の公開鍵を使用してレギュレーションに従うトランザクションデータを暗号化し得るし、それによって、レギュレータノード510が公開鍵に対応する秘密鍵を使用してトランザクションデータを復号することを可能にする。
【００６７】
クライアントノードA530は、クライアントノードA530のアカウントからブロックチェーンネットワークの別のクライアントノードであるクライアントノードB540のアカウントへの資金の金額の送金などといった、機密トランザクション535の準備をし得る。クライアントノードA530は、トランザクションの参加者(すなわち、本例においてはクライアントノードA530およびクライアントノードB540)およびレギュレータノード510を除く他のエンティティによる調査からトランザクションデータのプライバシーを保護するとともにトランザクションデータを秘匿するように、機密トランザクションの内容を構築し得る。いくつかの実施形態においては、クライアントノードA530は、コミットメントスキームに基づいて機密トランザクションのトランザクションデータを秘匿し得る。
【００６８】
いくつかの実施形態においては、機密トランザクションのトランザクションデータは、機密トランザクションの前のクライアントノードA530のアカウント残高または機密トランザクションのトランザクション金額の一方または両方を含む。いくつかの実施形態においては、機密トランザクションのトランザクションデータは、追加のトランザクション情報(例えば、トランザクションの時間、トランザクションの関係者、アセットタイプ(例えば、株式証券または別のタイプ))を含み得る。
【００６９】
534において、クライアントノードA530が、機密トランザクションのトランザクションデータに暗号コミットメントスキームを適用することによってクライアントノードA530の機密トランザクションの1つまたは複数のコミットメント値を生成する。いくつかの実施形態においては、暗号コミットメントスキームは、Pedersenコミットメントスキームまたは別のタイプのコミットメントスキームなどといった準同型暗号コミットメントスキームを含む。
【００７０】
536において、クライアントノードA530が、レギュレータノード510の公開鍵を使用してトランザクションデータを暗号化することによって機密トランザクションの暗号化されたレギュレーション情報を生成する、ここで、暗号化されたレギュレーション情報は、公開鍵に対応する秘密鍵を使用したレギュレータノード510による復号を可能にするように構成される。
【００７１】
いくつかの実施形態においては、暗号コミットメントスキームは、Pedersenコミットメントスキームを含む。この場合には、トランザクションデータに暗号コミットメントスキームを適用することによってクライアントノードA530の機密トランザクションの1つまたは複数のコミットメント値を生成するステップは、トランザクションデータおよびトランザクションデータに対応する乱数に基づいてクライアントノードA530の機密トランザクションの1つまたは複数のコミットメント値を生成するステップを含み、機密トランザクションの暗号化されたレギュレーション情報を生成するステップは、レギュレータノードの公開鍵を使用してトランザクションデータおよびトランザクションデータに対応する乱数を暗号化することによって機密トランザクションの暗号化されたレギュレーション情報を生成するステップを含む。
【００７２】
538において、クライアントノードA530が、例えば機密トランザクションの内容をブロックチェーンノード520(例えば、ブロックチェーンネットワークのコンセンサスノード)に送信することによって、実行のためにブロックチェーンネットワークに機密トランザクションの内容を送信する。いくつかの実施形態においては、機密トランザクションの内容は、機密トランザクションのトランザクションデータに暗号コミットメントスキームを適用することによってクライアントノードA530によって生成された機密トランザクションの1つまたは複数のコミットメント値と、レギュレータノードS510の公開鍵を使用してトランザクションデータを暗号化することによってクライアントノードA530によって生成された暗号化されたレギュレーション情報と、トランザクションデータの1つまたは複数のゼロ知識証明とを含み得る。
【００７３】
いくつかの実施形態においては、トランザクションデータの1つまたは複数のゼロ知識証明は、トランザクションデータの値がそれぞれの範囲内にあるという1つまたは複数のゼロ知識範囲証明を含む。例えば、1つまたは複数のゼロ知識範囲証明は、機密トランザクションの前のクライアントノードA530のアカウント残高がゼロより大きいというゼロ知識範囲証明と、機密トランザクションのトランザクション金額がゼロより大きいというゼロ知識範囲証明と、トランザクション金額が機密トランザクションの前のクライアントノードA530のアカウント残高以下であるというゼロ知識範囲証明とを含み得る。
【００７４】
いくつかの実施形態においては、トランザクションデータの1つまたは複数のゼロ知識証明は、クライアントノードA530が機密トランザクションの暗号化されたレギュレーション情報を生成する際にレギュレータノード510の公開鍵を使用しているというゼロ知識証明を含む。
【００７５】
いくつかの実施形態においては、機密トランザクションの内容は、クライアントノードA530のデジタルシグニチャをさらに含む。いくつかの実施形態においては、機密トランザクションの内容は、追加のまたは異なる情報を含み得る。
【００７６】
522において、機密トランザクションの内容を受信する際に、ブロックチェーンノード520が、例えば機密トランザクションの内容に基づいて機密トランザクションが正当なものであることを検証することによって、機密トランザクションを実行し得る。いくつかの実施形態においては、機密トランザクションの内容に基づいて機密トランザクションが正当なものであることを検証することは、コミットメントスキームおよび/または1つまたは複数のゼロ知識証明に基づいて1つまたは複数のコミットメント値が正しいと決定すること、または、例えば図3を参照して説明したようなアルゴリズムに従ってトランザクションデータの1つまたは複数のゼロ知識証明を検証することのうちの1つまたは複数を含み得る。
【００７７】
524において、機密トランザクションが正当なものであると検証した後に、ブロックチェーンノード520が、例えば、(例えばブロックチェーンネットワーク上のブロックチェーンに機密トランザクションの内容を記憶することによって)トランザクションを記録し、例えば図3を参照して説明した技法または他の技法に従って、機密トランザクションによってもたらされるアカウント情報(例えばクライアントノードA530およびクライアントノードB540のアカウント残高)を更新し得る。
【００７８】
516において、レギュレータノード510が、ブロックチェーンノード520(例えば、ブロックチェーンネットワークのコンセンサスノード)からクライアントノードA530の機密トランザクションの内容を取得する。機密トランザクションの内容は、図4を参照して説明したような例示的な機密トランザクション450の例示的な内容400を含み得る。
【００７９】
518において、レギュレータノード510が、レギュレータノードの秘密鍵を使用して暗号化されたレギュレーション情報を復号することによってトランザクションデータを取得する。
【００８０】
519において、レギュレータノード510が、機密トランザクションの内容およびトランザクションデータに基づいて機密トランザクションが正規のものであることを検証する。いくつかの実施形態においては、機密トランザクションの内容および復号したトランザクションデータに基づいて機密トランザクションが正当なものであることを検証するステップは、コミットメントスキームおよび/または1つまたは複数のゼロ知識証明に基づいて1つまたは複数のコミットメント値が正しいと決定するステップ、トランザクションデータの1つまたは複数のゼロ知識証明を検証するステップ、または、トランザクションデータの値がレギュレーションを順守していると決定するステップのうちの1つまたは複数を含む。
【００８１】
いくつかの実施形態においては、トランザクションデータの1つまたは複数のゼロ知識証明を検証するステップは、機密トランザクションの前のクライアントノードA530のアカウント残高がゼロより大きいと決定するステップ、機密トランザクションのトランザクション金額がゼロより大きいと決定するステップ、または、機密トランザクションのトランザクション金額が機密トランザクションの前のクライアントノードA530のアカウント残高以下であると決定するステップのうちの1つまたは複数を含む。
【００８２】
説明した特徴は、デジタル電子回路の形式で、またはコンピュータハードウェア、ファームウェア、ソフトウェアの形式で、またはそれらの組合せで実装され得る。装置は、プログラマブルプロセッサによる実行のために情報媒体に有形に具現化されたコンピュータプログラム製品の形式で(例えば、機械可読ストレージデバイスの形式で)実装されてもよく、方法のステップは、入力データに対する処理をして出力を生成することによって説明した実施形態の機能を行う命令についてのプログラムを実行するプログラマブルプロセッサによって行われ得る。説明した特徴は、データストレージシステムからデータおよび命令を受信するとともにデータストレージシステムにデータおよび命令を送信するために結合された少なくとも1つのプログラマブルプロセッサ、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを含むプログラマブルシステム上で実行可能な1つまたは複数のコンピュータプログラムの形式で有利に実装され得る。コンピュータプログラムは、あるアクティビティを行うためにコンピュータにおいて直接的または間接的に使用され得る、または、ある結果をもたらし得る、命令のセットである。コンピュータプログラムは、コンパイル型またはインタプリタ型言語を含むプログラミング言語の任意の形式で書かれてもよく、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境における使用に適した他のユニットとして、ということを含む任意の形式で、デプロイされ得る。
【００８３】
命令についてのプログラムの実行に適したプロセッサは、例として、汎用および特殊用途マイクロプロセッサの両方、および任意の種類のコンピュータの単一プロセッサまたはマルチプルプロセッサの1つを含む。一般的に、プロセッサは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信することになる。コンピュータの要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリとを含み得る。一般的に、コンピュータはまた、データファイルを記憶するための1つまたは複数のマスストレージデバイスを含み得る、またはそのようなデバイスと通信するように動作可能なように結合されてもよく、そのようなデバイスは、内蔵型ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク、および光ディスクを含む。コンピュータプログラム命令およびデータを有形に具現化するのに適したストレージデバイスは、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵型ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形式の不揮発性メモリを含む。プロセッサおよびメモリは、特定用途向け集積回路(ASIC)によって補完または組み込まれていてもよい。
【００８４】
ユーザとのインタラクションを提供するために、前記特徴は、ユーザに情報を表示するための陰極線管(CRT)または液晶ディスプレイ(LCD)モニタなどの表示デバイスと、ユーザがコンピュータに入力を提供し得るキーボードおよびマウスまたはトラックボールなどのポインティングデバイスとを有するコンピュータ上で実装され得る。
【００８５】
前記特徴は、データサーバなどのバックエンドコンポーネントを含む、または、アプリケーションサーバもしくはインターネットサーバなどのミドルウェアコンポーネントを含む、または、グラフィックユーザインターフェースを有するクライアントコンピュータもしくはインターネットブラウザなどのフロントエンドコンポーネントを含む、または、それらの任意の組合せを含む、コンピュータシステムの形式で実装され得る。システムのコンポーネントは、通信ネットワークなどのデジタルデータ通信の任意の形式または媒体によって接続され得る。通信ネットワークの例としては、例えば、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)とを含み、コンピュータとネットワークとがインターネットを形成する。
【００８６】
コンピュータシステムは、クライアントとサーバとを含み得る。クライアントとサーバとは、一般的に互いにリモートにあり、通常は上述したようなネットワークを介してやりとりする。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作し互いにクライアントサーバ関係を有するコンピュータプログラムによって生まれる。
【００８７】
加えて、図に示したロジックフローは、望ましい結果を得るために図示した特定の順序または一連の順序を必要としていない。加えて、他のステップが提供されてもよいし、またはステップが説明したフローから除去されてもよいし、他のコンポーネントが説明したシステムに追加されても削除されてもよい。それゆえ、他の実施形態も特許請求の範囲の範囲内にある。
【００８８】
多くの本開示の実施形態を説明してきた。しかしながら、本開示の精神および範囲から逸脱しない限り様々な変更をしてもよいことは理解されよう。それゆえ、他の実施形態も特許請求の範囲の範囲内にある。
【符号の説明】
【００８９】
102  コンソーシアムブロックチェーンネットワーク
106  コンピューティングシステム
108  コンピューティングシステム
110  ネットワーク
202  エンティティレイヤ
204  ホステッドサービスレイヤ
206  ブロックチェーンネットワークレイヤ
208  トランザクション管理システム
210  インターフェース
212  ブロックチェーンネットワーク
214  ノード
216  ブロックチェーン
302  クライアントノードA
304  クライアントノードB
306  レギュレータノードS
308  ブロックチェーンノード
316  公開鍵Spub
326  秘密鍵Spriv
350  ブロックチェーンネットワーク
510  レギュレータノード
520  ブロックチェーンノード
530  クライアントノードA
540  クライアントノードB
【図１】
2020078081.tif 000003
【図２】
2020078081.tif 000004
【図３】
2020078081.tif 000005
【図４】
2020078081.tif 000006
【図５】
2020078081.tif 000007
【外国語明細書】
2020078081000001.pdf