(57)【要約】  コンピュータ実装された方法は、トランザクションコミットメント値を取得するべく、トランザクションのトランザクション金額をコミットメント方式によってコミットするステップであって、コミットメント方式は、少なくともトランザクションブラインディングファクタを有する、ステップと、対称キーペアの第１キーを生成するステップと、トランザクションブラインディングファクタ及びトランザクション金額ｔの組合せを第１キーによって暗号化するステップと、トランザクションの受領者と関連する受領者ノードがトランザクションを検証するべく、トランザクションコミットメント値Ｔ及び暗号化済みの組合せを受領者ノードに送信するステップと、を有する。【選択図】図３Ａ
2019537744.tif 000002
【特許請求の範囲】
【請求項１】
情報保護用のコンピュータ実装された方法であって、
トランザクションコミットメント値Ｔを取得するべく、トランザクションのトランザクション金額ｔをコミットメント方式によってコミットするステップであって、前記コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する、ステップと、
対称キーペアの第１キーを生成するステップと、
前記トランザクションブラインディングファクタｒ＿ｔ及び前記トランザクション金額ｔの組合せを前記第１キーによって暗号化するステップと、
前記トランザクションの受領者ノードが前記トランザクションを検証するべく、前記トランザクションコミットメント値Ｔ及び暗号化済みの組合せを前記受領者と関連する受領者ノートに送信するステップと、
を有する方法。
【請求項２】
前記第１キーを生成するステップは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＤＨ）キー交換プロトコルの下において、前記トランザクションの送信者のプライベートキーＳＫ＿Ａ及び前記受領者のパブリックキーＰＫ＿Ｂに基づいて前記第１キーを生成するステップを有する請求項１に記載の方法。
【請求項３】
前記コミットメント方式は、少なくとも前記トランザクションブラインディングファクタｒ＿ｔに基づいた、且つ、前記トランザクション金額ｔが、コミット済みの値である状態における、Ｐｅｄｅｒｓｅｎコミットメントを有する請求項１に記載の方法。
【請求項４】
前記トランザクションブラインディングファクタｒ＿ｔ及び前記トランザクション金額ｔの前記組合せは、前記トランザクションブラインディングファクタｒ＿ｔ及び前記トランザクション金額ｔの連結を有する請求項１に記載の方法。
【請求項５】
前記トランザクションの前記受領者と関連する前記受領者ノードが前記トランザクションを検証するべく、前記トランザクションコミットメント値Ｔ及び前記暗号化済みの組合せを前記受領者ノードに送信するステップは、
前記トランザクションコミットメント値Ｔ及び前記暗号化済みの組合せを前記トランザクションの前記受領者と関連する前記受領者ノードに送信し、これにより、前記受領者ノードが、
前記トランザクションの前記受領者のプライベートキーＳＫ＿Ｂ及び送信者のパブリックキーＰＫ＿Ａに基づいて前記対称キーペアの第２キーを生成し、
前記トランザクションブラインディングファクタｒ＿ｔ及び前記トランザクション金額ｔを取得するべく、前記受領者によって生成された前記第２キーによって前記暗号化済みの組合せを暗号解読し、且つ、
少なくとも前記トランザクションコミットメント値Ｔ、前記トランザクションブラインディングファクタｒ＿ｔ、及び前記トランザクション金額ｔに基づいて、前記トランザクションを検証する、
ようにするステップを有する請求項１に記載の方法。
【請求項６】
前記受領者ノードが、少なくとも前記トランザクションコミットメント値Ｔ、前記トランザクションブラインディングファクタｒ＿ｔ、及び前記トランザクション金額ｔに基づいて前記トランザクションを検証するようにするステップは、前記受領者ノードが、
前記トランザクションコミットメント値Ｔが前記トランザクション金額ｔの前記コミットメント方式とマッチングしていないと前記トランザクションブラインディングファクタｒ＿ｔに基づいて判定することに応答して、前記トランザクションを拒絶し、且つ、
前記トランザクションコミットメント値Ｔが前記トランザクション金額ｔの前記コミットメント方式とマッチングしていると前記トランザクションブラインディングファクタｒ＿ｔに基づいて判定することに応答して、受領者署名ＳＩＧＢを生成して前記送信者と関連する送信者ノードに返すべく前記トランザクションに署名することにより、前記トランザクションを承認する、
ようにするステップを有する請求項５に記載の方法。
【請求項７】
前記暗号化済みの組合せを前記受領者と関連する前記受領者ノードに送信する前に、
変化コミットメント値Ｙを取得するべく、前記トランザクションの変化ｙを前記コミットメント方式によってコミットするステップであって、前記コミットメント方式は、少なくとも変化ブラインディングファクタｒ＿ｔを有し、前記変化ｙは、前記トランザクションのために利用される前記送信者の１つ又は複数の資産から前記トランザクション金額ｔを差し引いたものである、ステップと、
前記送信者のプライベートキーＳＫ＿Ａ及び前記送信者の前記パブリックキーＰＫ＿Ａに基づいて別のキーを生成するステップと、
前記変化ブラインディングファクタｒ＿ｙ及び前記変化ｙの別の組合せを前記別のキーによって暗号化するステップと、
を更に有する請求項６に記載の方法。
【請求項８】
前記受領者署名ＳＩＧＢの受け取りに応答して、送信者署名ＳＩＧＡを生成するべく前記トランザクションに署名することにより、前記トランザクションを承認するステップと、
ブロックチェーンネットワーク内の１つ又は複数のノードが前記トランザクションを検証するべく、前記暗号化済みの組合せ、前記暗号化済みの別の組合せ、前記トランザクションコミットメント値Ｔ、前記変化コミットメント値Ｙ、前記送信者署名ＳＩＧＡ、及び前記受領者署名ＳＩＧＢを有する前記トランザクションを前記１つ又は複数のノードにサブミットするステップと、
を更に有する請求項７に記載の方法。
【請求項９】
前記ブロックチェーンネットワーク内の前記１つ又は複数のノードが前記トランザクションを検証するべく、前記暗号化済みの組合せ、前記暗号化済みの別の組合せ、前記トランザクションコミットメント値Ｔ、前記変化コミットメント値Ｙ、前記送信者署名ＳＩＧＡ、及び前記受領者署名ＳＩＧＢを有する前記トランザクションを前記１つ又は複数のノードにサブミットするステップは、
前記暗号化済みの組合せ、前記暗号化済みの別の組合せ、前記トランザクションコミットメント値Ｔ、前記変化コミットメント値Ｙ、前記送信者署名ＳＩＧＡ、及び前記受領者署名ＳＩＧＢを有する前記トランザクションを前記ブロックチェーンネットワーク内の前記１つ又は複数のノードにサブミットし、これにより、前記１つ又は複数のノードが、前記トランザクションの検証の成功に応答して、前記トランザクション金額ｔを前記受領者に発行し、前記トランザクションのために利用された前記１つ又は複数の資産を除去し、且つ、前記変化ｙを前記送信者に発行するようにするステップ、
を有する請求項８に記載の方法。
【請求項１０】
プロセッサが動作を実行するようにするべく、前記プロセッサによって実行される命令を保存する一時的ではないコンピュータ可読ストレージ媒体であって、
前記動作は、
トランザクションコミットメント値Ｔを取得するべく、トランザクションのトランザクション金額ｔをコミットメント方式によってコミットするステップであって、前記コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する、ステップと、
対称キーペアの第１キーを生成するステップと、
前記トランザクションブラインディングファクタｒ＿ｔ及び前記トランザクション金額ｔの組合せを前記第１キーによって暗号化するステップと、
前記トランザクションの受領者と関連する受領者ノードが前記トランザクションを検証するべく、前記トランザクションコミットメント値Ｔ及び前記暗号化済みの組合せを前記受領者ノードに送信するステップと、
を有する、ストレージ媒体。
【請求項１１】
前記第１キーを生成するステップは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＤＨ）キー交換プロトコルの下において、前記トランザクションの送信者のプライベートキーＳＫ＿Ａ及び前記受領者のパブリックキーＰＫ＿Ｂに基づいて前記第１キーを生成するステップを有する請求項１０に記載のストレージ媒体。
【請求項１２】
前記コミットメント方式は、少なくとも前記トランザクションブラインディングファクタｒ＿ｔに基づいた、且つ、前記トランザクション金額ｔが、コミット済みの値である状態における、Ｐｅｄｅｒｓｅｎコミットメントを有する請求項１０に記載のストレージ媒体。
【請求項１３】
前記トランザクションブラインディングファクタｒ＿ｔ及び前記トランザクション金額ｔの前記組合せは、前記トランザクションブラインディングファクタｒ＿ｔ及び前記トランザクション金額ｔの連結を有する請求項１０に記載のストレージ媒体。
【請求項１４】
前記トランザクションの前記受領者と関連する前記受領者ノードが前記トランザクションを検証するべく、前記トランザクションコミットメント値Ｔ及び前記暗号化済みの組合せを前記受領者ノードに送信するステップは、前記トランザクションコミットメント値Ｔ及び前記暗号化済みの組合せを前記トランザクションの前記受領者と関連する前記受領者ノードに送信し、これにより、前記受領者ノードが、
前記トランザクションの前記受領者のプライベートキーＳＫ＿Ｂ及び送信者のパブリックキーＰＫ＿Ａに基づいて前記対称キーペアの第２キーを生成し、
前記トランザクションブラインディングファクタｒ＿ｔ及び前記トランザクション金額ｔを取得するべく、前記受領者ノードによって生成された前記第２キーによって前記暗号化済みの組合せを暗号解読し、且つ、
少なくとも前記トランザクションコミットメント値Ｔ、前記トランザクションブラインディングファクタｒ＿ｔ、及び前記トランザクション金額Ｔに基づいて前記トランザクションを検証する、
ようにするステップを有する請求項１０に記載のストレージ媒体。
【請求項１５】
前記受領者ノードが、少なくとも前記トランザクションコミットメント値Ｔ、前記トランザクションブラインディングファクタｒ＿ｔ、及び前記トランザクション金額ｔに基づいて前記トランザクションを検証するようにするステップは、前記受領者ノードが、
前記トランザクションコミットメント値Ｔが前記トランザクション金額ｔの前記コミットメント方式とマッチングしていないと前記トランザクションブラインディングファクタｒ＿ｔに基づいて判定することに応答して、前記トランザクションを拒絶し、且つ、
前記トランザクションコミットメント値Ｔが前記トランザクション金額ｔの前記コミットメント方式とマッチングしていると前記トランザクションブラインディングファクタｒ＿ｔに基づいて判定することに応答して、受領者署名ＳＩＧＢを生成して前記送信者と関連する送信者ノードに返すべく前記トランザクションに署名することにより、前記トランザクションを承認する、
ようにするステップを有する請求項１４に記載のストレージ媒体。
【請求項１６】
前記暗号化済みの組合せを前記受領者と関連する前記受領者ノードに送信する前に、前記動作は、
変化コミットメント値Ｙを取得するべく、前記トランザクションの変化ｙを前記コミットメント方式によってコミットするステップであって、前記コミットメント方式は、少なくとも変化ブラインディングファクタｒ＿ｙを有し、前記変化ｙは、前記トランザクションのために利用される前記送信者の１つ又は複数の資産から前記トランザクション金額ｔを差し引いたものである、ステップと、
前記送信者のプライベートキーＳＫ＿Ａ及び前記送信者の前記パブリックキーＰＫ＿Ａに基づいて別のキーを生成するステップと、
前記変化ブラインディングファクタｒ＿ｙ及び前記変化ｙの別の組合せを前記別のキーによって暗号化するステップと、
を更に有する請求項１５に記載のストレージ媒体。
【請求項１７】
前記動作は、
前記受領者署名ＳＩＧＢの受け取りに応答して、送信者署名ＳＩＧＡを生成するべく前記トランザクションに署名することにより、前記トランザクションを承認するステップと、
ブロックチェーンネットワーク内の１つ又は複数のノードが前記トランザクションを検証するべく、前記暗号化済みの組合せ、前記暗号化済みの別の組合せ、前記トランザクションコミットメント値Ｔ、前記変化コミットメント値Ｙ、前記送信者署名ＳＩＧＡ、及び前記受領者署名ＳＩＧＢを有する前記トランザクションを前記１つ又は複数のノードにサブミットするステップと、
を更に有する請求項１６に記載のストレージ媒体。
【請求項１８】
前記ブロックチェーンネットワーク内の前記１つ又は複数のノードが前記トランザクションを検証するべく、前記暗号化済みの組合せ、前記暗号化済みの別の組合せ、前記トランザクションコミットメント値Ｔ、前記変化コミットメント値Ｙ、前記送信者署名ＳＩＧＡ、及び前記受領者署名ＳＩＧＢを有する前記トランザクションを前記１つ又は複数のノードにサブミットするステップは、
前記暗号化済みの組合せ、前記暗号化済みの別の組合せ、前記トランザクションコミットメント値Ｔ、前記変化コミットメント値Ｙ、前記送信者署名ＳＩＧＡ、及び前記受領者署名ＳＩＧＢを有する前記トランザクションを前記ブロックチェーンネットワーク内の前記１つ又は複数のノードにサブミットし、これにより、前記１つ又は複数のノードが、前記トランザクションの検証の成功に応答して、前記トランザクション金額ｔを前記受領者に発行し、前記トランザクションのために利用された前記１つ又は複数の資産を除去し、且つ、前記変化ｙを前記送信者に発行する、ようにするステップ
を有する請求項１７に記載のストレージ媒体。
【請求項１９】
情報保護用のシステムであって、
プロセッサと、
前記プロセッサに結合された一時的ではないコンピュータ可読ストレージ媒体と、
を有し、
前記ストレージ媒体は、前記システムが動作を実行するようにするべく、前記プロセッサによって実行される命令を保存しており、
前記動作は、
トランザクションコミットメント値Ｔを取得するべく、トランザクションのトランザクション金額ｔをコミットメント方式によってコミットするステップであって、前記コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する、ステップと、
対称キーペアの第１キーを生成するステップと、
前記トランザクションブラインディングファクタｒ＿ｔ及び前記トランザクション金額ｔの組合せを前記第１キーによって暗号化するステップと、
前記トランザクションの受領者と関連する受領者ノードが前記トランザクションを検証するべく、前記トランザクションコミットメント値Ｔ及び前記暗号化済みの組合せを前記受領者ノードに送信するステップと、
を有する、システム。
【請求項２０】
情報保護用のコンピュータ実装された方法であって、
対称キーペアの第１キーによって暗号化されたトランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せを取得し、且つ、トランザクションコミットメント値Ｔを取得するステップであって、前記トランザクション金額ｔは、前記トランザクションコミットメント値Ｔを取得するべく、トランザクションの送信者と関連する送信者ノードにより、コミットメント方式によってコミットされ、前記コミットメント方式は、少なくとも前記トランザクションブラインディングファクタｒ＿ｔを有する、ステップと、
前記対称キーペアの第２キーを生成するステップと、
前記トランザクションブラインディングファクタｒ＿ｔ及び前記トランザクション金額ｔを取得するべく、前記トランザクションの受領者と関連する受領者ノードによって生成された前記第２キーによって前記取得された組合せを暗号解読するステップと、
少なくとも前記トランザクションコミットメント値Ｔ、前記トランザクションブラインディングファクタｒ＿ｔ、及び前記トランザクション金額ｔに基づいて前記トランザクションを検証するステップと、
を有する方法。
【請求項２１】
前記対称キーペアの前記第２キーを生成するステップは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＤＨ）キー交換プロトコルの下において前記受領者のプライベートキーＳＫ＿Ｂ及び前記送信者のパブリックキーＰＫ＿Ａに基づいて前記対称キーペアの前記第２キーを生成するステップを有し、且つ、
前記コミットメント方式は、少なくとも前記トランザクションブラインディングファクタｒ＿ｔに基づいた、且つ、前記トランザクション金額ｔが、コミット済みの値である状態における、Ｐｅｄｅｒｓｅｎコミットメントを有する請求項２０に記載の方法。
【請求項２２】
プロセッサが動作を実行するようにするべく、前記プロセッサによって実行される命令を保存する一時的ではないコンピュータ可読ストレージ媒体であって、
前記動作は、
対称キーペアの第１キーによって暗号化されたトランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せを取得し、且つ、トランザクションコミットメント値Ｔを取得するステップであって、前記トランザクション金額ｔは、前記トランザクションコミットメント値Ｔを取得するべく、トランザクションの送信者と関連する送信者ノードにより、コミットメント方式によってコミットされ、前記コミットメント方式は、少なくとも前記トランザクションブラインディングファクタｒ＿ｔを有する、ステップと、
前記対称キーペアの第２キーを生成するステップと、
前記トランザクションブラインディングファクタｒ＿ｔ及び前記トランザクション金額ｔを取得するべく前記トランザクションの受領者と関連する受領者ノードによって生成された前記第２キーによって前記取得済みの組合せを暗号解読するステップと、
少なくとも前記トランザクションコミットメント値Ｔ、前記トランザクションブラインディングファクタｒ＿ｔ、及び前記トランザクション金額ｔに基づいて前記トランザクションを検証するステップと、
を有する、ストレージ媒体。
【請求項２３】
情報保護用のシステムであって、
プロセッサと、
前記プロセッサに結合された一時的ではないコンピュータ可読ストレージ媒体と、
を有し、
前記ストレージ媒体は、前記システムが動作を実行するようにするべく、前記プロセッサによって実行される命令を保存しており、
前記動作は、
対称キーペアの第１キーによって暗号化されたトランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せを取得し、且つ、トランザクションコミットメント値Ｔを取得するステップであって、前記トランザクション金額ｔは、前記トランザクションコミットメント値Ｔを取得するべく、トランザクションの送信者と関連する送信者ノードによってコミットメント方式によってコミットされ、前記コミットメント方式は、少なくとも前記トランザクションブラインディングファクタｒ＿ｔを有する、ステップと、
前記対称キーペアの第２キーを生成するステップと、
前記トランザクションブラインディングファクタｒ＿ｔ及び前記トランザクション金額ｔを取得するべく、前記トランザクションの受領者と関連する受領者ノードによって生成された前記第２キーによって前記取得済みの組合せを暗号解読するステップと、
少なくとも前記トランザクションコミットメント値Ｔ、前記トランザクションブラインディングファクタｒ＿ｔ、及び前記トランザクション金額ｔに基づいて前記トランザクションを検証するステップと、
を有する、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、情報保護用の方法及び装置に関する。
【背景技術】
【０００２】
プライバシーは、様々なユーザーの間における通信及びデータ転送にとって重要である。保護を伴うことなしには、ユーザーは、アイデンティティの盗難、違法な転送、又はその他の潜在的な損失のリスクに晒されることになる。このリスクは、通信及び転送がオンラインで実装されている際には、オンライン情報のフリーアクセスに起因し、更に増大する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本開示の様々な実施形態は、情報保護用のシステム、方法、及び一時的ではないコンピュータ可読媒体を含む。
【課題を解決するための手段】
【０００４】
一態様によれば、情報保護用のコンピュータ実装された方法は、トランザクションコミットメント値Ｔを取得するべく、トランザクションのトランザクション金額ｔをコミットメント方式によってコミットするステップであって、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する、ステップと、対称キーペアの第１キーを生成するステップと、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せを第１キーによって暗号化するステップと、トランザクションの受領者と関連する受領者ノードがトランザクションを検証するべく、トランザクションコミットメント値Ｔ及び暗号化済みの組合せを受領者ノードに送信するステップと、を有する。
【０００５】
いくつかの実施形態においては、第１キーを生成するステップは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＤＨ）キー交換プロトコルの下において、トランザクションの送信者のプライベートキーＳＫ＿Ａ及び受領者のパブリックキーＰＫ＿Ｂに基づいて、第１キーを生成するステップを有する。
【０００６】
いくつかの実施形態においては、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔに基づいた、且つ、トランザクション金額ｔが、コミット済みの値である状態における、Ｐｅｄｅｒｓｅｎコミットメントを有する。
【０００７】
いくつかの実施形態においては、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せは、トランザクションブラインディングファクタｒ＿ｔとトランザクション金額ｔの連結を有する。
【０００８】
いくつかの実施形態においては、トランザクションの受領者と関連する受領者ノードがトランザクションを検証するべく、トランザクションコミットメント値Ｔ及び暗号化済みの組合せを受領者ノードに送信するステップは、トランザクションコミットメント値Ｔ及び暗号化済みの組合せをトランザクションの受領者と関連する受領者ノードに送信し、これにより、受領者ノードが、トランザクションの受領者のプライベートキーＳＫ＿Ｂ及び送信者のパブリックキーＰＫ＿Ａに基づいて対称キーペアの第２キーを生成し、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔを取得するべく暗号化済みの組合せを受領者によって生成された第２キーによって暗号解読し、且つ、少なくともトランザクションコミットメント値Ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクション金額ｔに基づいてトランザクションを検証する、ようにするステップを有する。
【０００９】
いくつかの実施形態においては、受領者ノードが、少なくともトランザクションコミットメント値Ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクション金額ｔに基づいてトランザクションを検証するようにするステップは、受領者ノードが、トランザクションコミットメント値Ｔがトランザクション金額ｔのコミットメント方式にマッチングしていないとトランザクションブラインディングファクタｒ＿ｔに基づいて判定することに応答して、トランザクションを拒絶し、且つ、トランザクションコミットメント値Ｔがトランザクション金額ｔのコミットメント方式にマッチングしているとトランザクションブラインディングファクタｒ＿ｔに基づいて判定することに応答して、受領者署名ＳＩＧＢを生成して送信者と関連する送信者に返すべくトランザクションに署名することにより、トランザクションを承認する、ようにするステップを有する。
【００１０】
いくつかの実施形態においては、暗号化済みの組合せを受領者と関連する受領者ノードに送信する前に、方法は、変化コミットメント値Ｙを取得するべくトランザクションの変化ｙをコミットメント方式によってコミットするステップであって、コミットメント方式は、少なくとも変化ブラインディングファクタｒ＿ｙを有し、変化ｙは、トランザクションのために利用される送信者の１つ又は複数の資産（アセット）からトランザクション金額ｔを差し引いたものである、ステップと、送信者のプライベートキーＳＫ＿Ａ及び送信者のパブリックキーＰＫ＿Ａに基づいて別のキーを生成するステップと、変化ブラインディングファクタｒ＿ｙ及び変化ｙの別の組合せを別のキーによって暗号化するステップと、を更に有する。
【００１１】
いくつかの実施形態においては、方法は、受領者署名ＳＩＧＢの受け取りに応答して、送信者署名ＳＩＧＡを生成するべくトランザクションに署名することによってトランザクションを承認するステップと、ブロックチェーンネットワーク内の１つ又は複数のノードがトランザクションを検証するべく、暗号化済みの組合せ、暗号化済みの別の組合せ、トランザクションコミットメント値Ｔ、変化コミットメント値Ｙ、送信者署名ＳＩＧＡ、及び受領者署名ＳＩＧＢを有するトランザクションを１つ又は複数のノードにサブミットするステップと、を更に有する。
【００１２】
いくつかの実施形態においては、ブロックチェーンネットワーク内の１つ又は複数のノードがトランザクションを検証するべく、暗号化済みの組合せ、暗号化済みの別の組合せ、トランザクションコミットメント値Ｔ、変化コミットメント値Ｙ、送信者署名ＳＩＧＡ、及び受領者署名ＳＩＧＢを有するトランザクションを１つ又は複数のノードにサブミットするステップは、暗号化済みの組合せ、暗号化済みの別の組合せ、トランザクションコミットメント値Ｔ、変化コミットメント値Ｙ、送信者署名ＳＩＧＡ、及び受領者署名ＳＩＧＢを有するトランザクションをブロックチェーンネットワーク内の１つ又は複数のノードにサブミットし、これにより、１つ又は複数のノードが、トランザクションの検証の成功に応答して、トランザクション金額ｔを受領者に発行し、トランザクションのために利用される１つ又は複数の資産を除去し、且つ、変化ｙを送信者に発行するようにするステップを有する。
【００１３】
別の態様によれば、一時的ではないコンピュータ可読ストレージ媒体は、プロセッサが動作を実行するようにするべく、プロセッサによって実行される命令を保存しており、動作は、トランザクションコミットメント値Ｔを取得するべくトランザクションのトランザクション金額ｔをコミットメント方式によってコミットするステップであって、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する、ステップと、対称キーペアの第１キーを生成するステップと、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せを第１キーによって暗号化するステップと、トランザクションの受領者と関連する受領者ノードがトランザクションを検証するべく、トランザクションコミットメント値Ｔ及び暗号化済みの組合せを受領者ノードに送信するステップと、を有する。
【００１４】
別の態様によれば、情報保護用のシステムは、プロセッサと、プロセッサに結合された一時的ではないコンピュータ可読ストレージ媒体と、を有し、ストレージ媒体は、システムが動作を実行するようにするべく、プロセッサによって実行される命令を保存しており、動作は、トランザクションコミットメント値Ｔを取得するべくトランザクションのトランザクション金額ｔをコミットメント方式によってコミットするステップであって、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する、ステップと、対称キーペアの第１キーを生成するステップと、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せを第１キーによって暗号化するステップと、トランザクションの受領者と関連する受領者ノードがトランザクションを検証するべく、トランザクションコミットメント値Ｔ及び暗号化済みの組合せを受領者ノードに送信するステップと、を有する。
【００１５】
別の態様によれば、情報保護用のコンピュータ実装された方法は、トランザクションコミットメント値Ｔを取得するべくトランザクションのトランザクション金額ｔをコミットメント方式によってコミットするステップであって、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する、ステップと、対称キーペアの第１キーを生成するステップと、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せを第１キーによって暗号化するステップと、トランザクションの受領者と関連する受領者ノードが、受領者のプライベートキーＳＫ＿Ｂ及び送信者のパブリックキーＰＫ＿Ａに基づいて対称キーペアの第２キーを生成し、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔを取得するべく暗号化済みの組合せを受領者ノードによって生成された第２暗号化キーによって暗号解読し、且つ、少なくともトランザクションコミットメント値Ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクション金額ｔに基づいてトランザクションを検証するべく、トランザクションコミットメント値Ｔ及び暗号化済みの組合せを受領者ノードに送信するステップと、を有する。
【００１６】
別の態様によれば、一時的ではないコンピュータ可読ストレージ媒体は、プロセッサが動作を実行するようにするべく、プロセッサによって実行される命令を保存しており、動作は、トランザクションコミットメント値Ｔを取得するべくトランザクションのトランザクション金額ｔをコミットメント方式によってコミットするステップであって、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する、ステップと、対称キーペアの第１キーを生成するステップと、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔを第１キーによって暗号化するステップと、トランザクションの受領者と関連する受領者ノードが、受領者のプライベートキーＳＫ＿Ｂ及び送信者のパブリックキーＰＫ＿Ａに基づいて対称キーペアの第２キーを生成し、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔを取得するべく暗号化済みの組合せを受領者ノードによって生成された第２キーによって暗号解読し、且つ、少なくともトランザクションコミットメント値Ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクション金額ｔに基づいてトランザクションを検証するべく、トランザクションコミットメント値Ｔ及び暗号化済みの組合せを受領者ノードに送信するステップと、を有する。
【００１７】
別の態様によれば、情報保護用のシステムは、プロセッサと、プロセッサに結合された一時的ではないコンピュータ可読ストレージ媒体と、を有し、ストレージ媒体は、システムが動作を実行するようにするべく、プロセッサによって実行される命令を保存しており、動作は、トランザクションコミットメント値Ｔを取得するべくトランザクションのトランザクション金額ｔをコミットメント方式によってコミットするステップであって、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する、ステップと、対称キーペアの第１キーを生成するステップと、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せを第１キーによって暗号化するステップと、トランザクションの受領者と関連する受領者ノードが、受領者のプライベートキーＳＫ＿Ｂ及び送信者のパブリックキーＰＫ＿Ａに基づいて対称キーペアの第２キーを生成し、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔを取得するべく暗号化済みの組合せを受領者ノードによって生成された第２キーによって暗号解読し、且つ、少なくともトランザクションコミットメント値Ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクション金額ｔに基づいてトランザクションを検証するべく、トランザクションコミットメント値Ｔ及び暗号化済みの組合せを受領者ノードに送信するステップと、を有する。
【００１８】
別の態様によれば、情報保護用のコンピュータ実装された方法は、トランザクションコミットメント値Ｔを取得するべくトランザクションのトランザクション金額ｔをコミットメント方式によってコミットするステップであって、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する、ステップと、対称キーペアの第１キーを生成するステップと、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せを第１キーによって暗号化するステップと、トランザクションの受領者と関連する受領者ノードが、受領者のプライベートキーＳＫ＿Ｂ及び送信者のパブリックキーＰＫ＿Ａに基づいて対称キーペアの第２キーを生成し、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔを取得するべく暗号化済みの組合せを受領者ノードによって生成された第２キーによって暗号解読し、且つ、少なくともトランザクションコミットメント値Ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクション金額ｔに基づいてトランザクションを検証するべく、トランザクションコミットメント値Ｔ及び暗号化済みの組合せを受領者ノードに送信するステップと、を有する。
【００１９】
別の態様によれば、一時的ではないコンピュータ可読ストレージ媒体は、プロセッサが動作を実行するようにするべく、プロセッサによって実行される命令を保存しており、動作は、トランザクションコミットメント値Ｔを取得するべくトランザクションのトランザクション金額ｔをコミットメント方式によってコミットするステップであって、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する、ステップと、対称キーペアの第１キーを生成するステップと、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せを第１キーによって暗号化するステップと、トランザクションの受領者と関連する受領者ノードが、受領者のプライベートキーＳＫ＿Ｂ及び送信者のパブリックキーＰＫ＿Ａに基づいて対称キーの第２キーを生成し、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔを取得するべく暗号化済みの組合せを受領者ノードによって生成された第２キーによって暗号解読し、且つ、少なくともトランザクションコミットメント値Ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクション金額ｔに基づいてトランザクションを検証するべく、トランザクションコミットメント値Ｔ及び暗号化済みの組合せを受領者ノードに送信するステップと、を有する。
【００２０】
別の態様によれば、情報保護用のシステムは、プロセッサと、プロセッサに結合された一時的ではないコンピュータ可読ストレージ媒体と、を有し、ストレージ媒体は、システムが動作を実行するようにするべく、プロセッサによって実行される命令を保存しており、動作は、トランザクションコミットメント値Ｔを取得するべくトランザクションのトランザクション金額ｔをコミットメント方式によってコミットするステップであって、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する、ステップと、対称キーペアの第１キーを生成するステップと、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せを第１キーによって暗号化するステップと、トランザクションの受領者と関連する受領者ノードが、受領者のプライベートキーＳＫ＿Ｂ及び送信者のパブリックキーＰＫ＿Ａに基づいて対称キーペアの第２キーを生成し、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔを取得するべく暗号化済みの組合せを受領者ノードによって生成された第２キーによって暗号解読し、且つ、少なくともトランザクションコミットメント値Ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクション金額ｔに基づいてトランザクションを検証するべく、トランザクションコミットメント値Ｔ及び暗号化済みの組合せを受領者ノードに送信するステップと、を有する。
【００２１】
別の態様によれば、情報保護用のコンピュータ実装された方法は、対称キーペアの第１キーによって暗号化されたトランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せを取得し、且つ、トランザクションコミットメント値Ｔを取得するステップであって、トランザクション金額ｔは、トランザクションコミットメント値Ｔを取得するべく、トランザクションの送信者と関連する送信者ノードにより、コミットメント方式によってコミットされ、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する、ステップと、対称キーペアの第２キーを生成するステップと、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔを取得するべく取得済みの組合せをトランザクションの受領者と関連する受領者ノードによって生成された第２キーによって暗号解読するステップと、少なくともトランザクションコミットメント値Ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクション金額ｔに基づいてトランザクションを検証するステップと、を有する。
【００２２】
別の態様によれば、一時的ではないコンピュータ可読ストレージ媒体は、プロセッサが動作を実行するようにするべく、プロセッサによって実行される命令を保存しており、動作は、対称キーペアの第１キーによって暗号化されたトランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せを取得し、且つ、トランザクションコミットメント値Ｔを取得するステップであって、トランザクション金額ｔは、トランザクションコミットメント値Ｔを取得するべく、トランザクションの送信者と関連する送信者ノードにより、コミットメント方式によってコミットされ、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する、ステップと、対称キーペアの第２キーを生成するステップと、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔを取得するべく取得済みの組合せをトランザクションの受領者と関連する受領者ノードによって生成された第２キーによって暗号解読するステップと、少なくともトランザクションコミットメント値Ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクション金額ｔに基づいてトランザクションを検証するステップと、を有する。
【００２３】
別の態様によれば、情報保護用のシステムは、プロセッサと、プロセッサに結合された一時的ではないコンピュータ可読ストレージ媒体と、を有し、ストレージ媒体は、システムが動作を実行するようにするべく、プロセッサによって実行される命令を保存しており、動作は、対称キーペアの第１キーによって暗号化されたトランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せを取得し、且つ、トランザクションコミットメント値Ｔを取得するステップであって、トランザクション金額ｔは、トランザクションコミットメント値Ｔを取得するべく、トランザクションの送信者と関連する送信者ノードにより、コミットメント方式によってコミットされ、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する、ステップと、対称キーペアの第２キーを生成するステップと、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔを取得するべく取得済みの組合せをトランザクションの受領者と関連する受領者ノードによって生成された第２キーによって暗号解読するステップと、少なくともトランザクションコミットメント値Ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクション金額ｔに基づいてトランザクションを検証するステップと、を有する。
【００２４】
本明細書において開示されているシステム、方法、及び一時的ではないコンピュータ可読媒体のこれらの及びその他の特徴のみならず、動作の方法及び構造の関係する要素の機能及び部品の組合せ及び製造の経済については、同一の参照符号が様々な図において対応する部分を表記している、そのすべてが本明細書の一部分を形成する、添付図面を参照した以下の説明及び添付の請求項を検討することにより、更に明らかとなろう。但し、図面は、例示及び説明を目的としたものに過ぎず、且つ、本発明の限定の定義となることを意図したものではないことを明白に理解されたい。
【００２５】
本技術の様々な実施形態の特定の特徴については、添付の請求項において具体的に記述されている。技術の特徴及び利点については、本発明の原理が利用されている例示用の実施形態について記述する以下の詳細な説明を参照することにより、更に十分に理解することが可能であり、且つ、添付図面は、以下のとおりである。
【図面の簡単な説明】
【００２６】
【図１】様々な実施形態による、情報保護用の例示用のシステムを示す。
【図２】様々な実施形態による、トランザクションの開始及び検証用の例示用のステップを示す。
【図３Ａ】様々な実施形態による、情報保護用の例示用の方法のフローチャートを示す。
【図３Ｂ】様々な実施形態による、情報保護用の例示用の方法のフローチャートを示す。
【図４Ａ】様々な実施形態による、情報保護用の例示用の方法のフローチャートを示す。
【図４Ｂ】様々な実施形態による、情報保護用の例示用の方法のフローチャートを示す。
【図５】本明細書において記述されている実施形態のいずれかが実装されうる例示用のコンピュータシステムのブロック図を示す。
【発明を実施するための形態】
【００２７】
ブロックチェーンは、一般に分散型の台帳と呼称される、分散型のデータベースとして見なされてもよく、その理由は、動作が、ネットワーク内の様々なノード（例えば、演算装置）によって実行されているからである。任意の情報が、ブロックチェーン内に書き込まれてもよく、保存されてもよく、且つ、これから読み取られてもよい。だれもが、ノードとなるように、サーバーをセットアップすることができると共に、ブロックチェーンネットワークに加入することできる。任意のノードが、ブロックを現時点のブロックチェーンに追加するためのハッシュ計算などの、複雑な演算を実行することにより、ブロックチェーンを維持するための演算パワーを提供できると共に、追加されたブロックは、様々なタイプのデータ又は情報を収容することができる。追加されたブロック用の演算パワーを提供したノードには、トークン（例えば、デジタル通貨単位）によって報いることができる。ブロックチェーンは、中央ノードを有していないことから、それぞれのノードは、等しく、且つ、ブロックチェーンデータベース全体を保持している。
【００２８】
ノードは、例えば、ブロックチェーンネットワークをサポートすると共にその円滑な稼働を維持する演算装置又は大規模なコンピュータシステムである。フルノード及び軽量ノードという、２つのタイプのノードが存在している。フルノードは、ブロックチェーンの完全な複写を維持している。ブロックチェーンネットワーク上のフルノードは、自身が受け取るトランザクション及びブロックを検証し、且つ、トランザクションのコンセンサス検証を提供するべく、それらを接続されているピアに中継している。その一方で、軽量ノードは、ブロックチェーンの一部分をダウンロードするのみである。例えば、軽量ノードは、デジタル通貨トランザクションのために使用されている。軽量ノードは、取引の実行を所望する際には、フルノードに対して通信することになる。
【００２９】
この分散化プロパティは、制御された位置における管理センタの出現の防止を支援することができる。例えば、ビットコインブロックチェーンの維持は、稼働エリア内のビットコインソフトウェアの通信ノードのネットワークによって実行されている。本開示においては、例として、ビットコイン及びイーサリアムなどの、１つ又は複数のブロックチェーン又はデジタル通貨を使用することとする。当業者は、本開示において開示されている技術的解決策は、その他のタイプのブロックチェーン及びデジタル通貨を使用することが可能であり、或いは、これらに適用されうることを理解するであろう。即ち、従来の意味おける銀行、機関、又は管理者の代わりに、ビットコインソフトウェアを実行するコンピュータサーバーの形態において、複数の仲介者が存在している。これらのコンピュータサーバーは、インターネットを介して接続されたネットワークを形成しており、この場合には、だれもが、ネットワークに潜在的に加入することができる。ネットワークによって受け入れられるトランザクションは、「ユーザーＡがＺビットコインをユーザーＢに送信することを所望している」という形態を有していてもよく、この場合に、トランザクションは、容易に入手可能なソフトウェアアプリケーションを使用することにより、ネットワークにブロードキャストされる。コンピュータサーバーは、これらの経済的なトランザクションを検証し、そのレコードを台帳の自身の複写に追加し、且つ、次いで、これらの台帳への追加をネットワークのその他のサーバーにブロードキャストするように動作可能であるビットコインサーバーとして機能する。
【００３０】
ブロックチェーンの維持は、「マイニング（ｍｉｎｉｎｇ）」と呼称され、且つ、このような維持を実行した者は、上述のように、新しく生成されたビットコイン及びトランザクション料金によって報われる。例えば、ノードは、ブロックチェーンネットワークが合意した規則の組に基づいて、トランザクションが有効であるかどうかを判定することができる。マイナー（ｍｉｎｅｒ）は、任意の大陸に位置していてもよく、且つ、それぞれのトランザクションの有効性を検証すると共にそのトランザクションをブロックチェーンに追加することにより、支払を処理することができる。このような検証は、複数のマイナーによって提供されるコンセンサスを介して実現されており、且つ、システマチックな共謀が存在していないことを仮定している。この結果、すべてのデータが一貫性を有することになり、その理由は、演算が有効となるには、特定の要件を充足しなければならず、且つ、ブロックチェーンが一貫性を有することを保証するために、すべてのノードが同期化されることになるからである。従って、データをブロックチェーンノードの分散型システム内において一貫性を有する方式によって保存することができる。
【００３１】
マイニングプロセスを通じて、資産移転などのトランザクションが、ネットワークノードにより、検証され、且つ、ブロックチェーンのブロックの成長するチェーンに追加される。ブロックチェーン全体を調査することにより、検証は、例えば、支払パーティが移転資産に対するアクセスを有しているかどうか、資産が以前に使用されているかどうか、移転金額が正しいかどうかなどを含むことができる。例えば、送信者によってサインオフされた仮想的なトランザクション（例えば、ＵＴＸＯ（Ｕｎｓｐｅｎｔ  Ｔｒａｎｓａｃｔｉｏｎ  Ｏｕｔｐｕｔ）モデルの下のビットコインのトランザクション、アカウント／残高モデルの下のイーサリアムコインのトランザクション）においては、提案されたトランザクションをマイニングのためにブロックチェーンネットワークにブロードキャストすることができる。マイナーは、トランザクションが、ブロックチェーン履歴に従って実行される適格性を有しているかどうかをチェックする必要がある。送信者のワレット残高が、既存のブロックチェーン履歴に従って、十分な資金を有している場合には、トランザクションは、有効であると見なされ、且つ、ブロックに追加することができる。検証されたら、これらの資産移転は、ブロックチェーンに追加される次のブロック内に包含することができる。
【００３２】
ブロックは、データベースレコードによく似ている。データを書き込むたびに、ブロックが生成される。これらのブロックは、相互接続されたネットワークとなるように、暗号法を使用することにより、リンク及び保護されている。それぞれのブロックは、以前のブロックに接続されており、この点も、「ブロックチェーン」の由来である。それぞれのブロックは、通常、以前のブロックの暗号学的ハッシュ、生成時刻、及び実際のデータを含んでいる。例えば、それぞれのブロックは、現時点のブロックの特徴値を記録するためのブロックヘッダと、実際のデータ（例えば、トランザクションデータ）を記録するためのボディと、という２つの部分を含む。ブロックのチェーンは、ブロックヘッダを介してリンクされている。それぞれのブロックヘッダは、バージョン、以前のブロックのハッシュ、マークルルート、タイムスタンプ、難易度ターゲット、及びノンスなどの、複数の特徴値を含むことができる。以前のブロックのハッシュは、以前のブロックのアドレスのみならず、以前のブロックの内部のデータのハッシュをも含んでおり、これにより、ブロックチェーンは、不変性を有している。ノンスとは、含まれている際に、規定された数のリーディングゼロビットを有するハッシュをもたらす数である。
【００３３】
マイニングのために、新しいブロックのコンテンツのハッシュがノードによって取得される。新しいストリングを取得するべく、ノンス（例えば、ランダムストリング）がハッシュに付加される。新しいストリングが再度ハッシュ化される。次いで、最終的なハッシュが難易度ターゲット（例えば、レベル）と比較され、且つ、最終的なハッシュが実際に難易度ターゲット未満であるかどうかが判定される。難易度ターゲット未満ではない場合には、ノンスが変更され、且つ、プロセスが再度繰り返される。難易度ターゲット未満である場合には、ブロックがチェーンに追加され、且つ、パブリック台帳が更新され、且つ、追加について警告される。成功的な追加の責任を担ったノードは、例えば、それ自体に対する報酬トランザクションを新しいブロック内に追加することにより、ビットコインによって報いられる（コインベース生成と呼称される）。
【００３４】
即ち、すべての出力「Ｙ」について、大きな最小エントロピーを有する分布からｋが選択された場合には、Ｈ（ｋ｜ｘ）＝Ｙとなるような、入力ｘを見出すことが可能であり、この場合に、Ｋは、ノンスであり、ｘは、ブロックのハッシュであり、Ｙは、難易度ターゲットであり、且つ、「｜」は、連結を表記している。暗号学的ハッシュが基本的にランダムであることを理由として、その出力をその入力から予測しえないという意味において、例えば、１、次いで２、次いで３、以下同様、という、１つずつ整数を試みるという、ノンスを見出す１つの既知の方法しか存在しておらず、これは、ブルートフォースと呼称される場合がある。リーディングゼロの数が大きいほど、平均で、必須のノンスＹを見出すのに所要する時間が長くなる。一例においては、ビットコインシステムは、ノンスを見出すための平均時間が約１０分となるように、リーディングゼロの数を常に調節している。この結果、演算ハードウェアの処理能力が時間と共に増大するのに伴って、年々、ビットコインプロトコルは、マイニングが常に実装のために約１０分の持続時間を所要するようにするべく、更に多くのリーディングゼロビットを単純に必要とすることになる。
【００３５】
上述のように、ハッシュ化は、ブロックチェーンのための重要な礎石である。ハッシュアルゴリズムは、任意の長さのメッセージを固定長のメッセージダイジェストに圧縮するための関数として理解することができる。より一般的に使用されているのは、ＭＤ５及びＳＨＡである。いくつかの実施形態においては、ブロックチェーンのハッシュ長は、２５６ビットであり、これは、オリジナルのコンテンツとは無関係に、２５６ビットの２進数が最終的に算出されることを意味している。そして、オリジナルコンテンツが異なっている限り、対応するハッシュが一意であることを保証することができる。例えば、「１２３」というストリングのハッシュは、ａ８ｆｄｃ２０５ａ９ｆ１９ｃｃ１ｃ７５０７ａ６０ｃ４ｆ０１ｂ１３ｄ１１ｄ７ｆｄ０（１６進数）であり、これは、２進に変換された際に２５６ビットを有しており、且つ、このハッシュを有しているのは、「１２３」のみである。ブロックチェーン内のハッシュアルゴリズムは、不可逆的であり、即ち、順方向（「１２３」からａ８ｆｄｃ２０５ａ９ｆ１９ｃｃ１ｃ７５０７ａ６０ｃ４ｆ０１ｂ１ｃ７５０７ａ６０ｃ４ｆ０１ｂ１３ｄ１１ｄ７ｆｄ０へ）の計算は容易であるが、逆方向の計算は、すべての演算リソースが動員された場合にも、実行不能である。従って、ブロックチェーンのそれぞれのブロックのハッシュは、一意である。
【００３６】
更には、ブロックのコンテンツが変化した場合には、そのハッシュも変化することになる。ブロックとハッシュは、１対１の対応関係にあり、且つ、それぞれのブロックのハッシュは、具体的には、ブロックヘッダについて算出されている。即ち、長いストリングを形成するべく、ブロックヘッダの特徴値が接続され、且つ、このストリングについて、ハッシュが算出される。例えば、「Ｈａｓｈ＝ＳＨＡ２５６（ｂｌｏｃｋ  ｈｅａｄｅｒ）」が、ブロックハッシュの計算式であり、ＳＨＡ２５６は、ブロックヘッダに適用されるブロックチェーンハッシュアルゴリズムである。ハッシュは、ブロックボディではなく、ブロックヘッダによって一意に判定されている。上述のように、ブロックヘッダは、現時点のブロックのハッシュ及び以前のブロックのハッシュを含む、多数のコンテンツを収容している。これは、現時点のブロックのコンテンツが変化した場合に、或いは、以前のブロックのハッシュが変化した場合に、その結果、現時点のブロック内のハッシュの変化が生じることを意味している。ハッカーがブロックを変更した場合には、そのブロックのハッシュが変化する。この結果、後のブロックが変更済みのブロックに接続するためには、ハッカーは、すべての後続のブロックを変更しなければならず、その理由は、次のブロックが、以前のブロックのハッシュを含まなければならないからである。さもなければ、変更済みのブロックは、ブロックチェーンから切り離されることになる。設計上の理由から、ハッシュ計算には、時間を所要し、且つ、ハッカーがネットワーク全体の演算パワーの５１％超を支配していない限り、複数のブロックを短期間で変更することは、ほとんど不可能である。従って、ブロックチェーンは、その独自の信頼性を保証しており、且つ、データは、一旦書き込まれたら、改竄することができない。
【００３７】
マイナーが新しいブロックのハッシュ（即ち、適格性を有する署名又は解）を見出したら、マイナーは、この署名をすべてのその他のマイナー（ブロックチェーンのノード）にブロードキャストする。次いで、その他のマイナーは、自身の順番において、解が送信者のブロックの問題に対応しているかどうかを検証する（即ち、ハッシュ入力が、その署名を実際に結果的にもたらすかどうかを判定する）。解が有効である場合には、その他のマイナーは、解を確認することになり、且つ、新しいブロックがブロックチェーンに追加されうることに合意することになる。従って、新しいブロックに関するコンセンサスに到達することになる。これは、「プルーフオブワーク（ｐｒｏｏｆ  ｏｆ  ｗｏｒｋ）」とも呼称されている。コンセンサスに到達したブロックは、いまや、ブロックチェーンに追加することが可能であり、且つ、その署名と共に、ネットワーク上のすべてのノードにブロードキャストされる。ノードは、ブロックの内部のトランザクションが、その時点において、現時点のワレット残高（トランザクション履歴）と正しく対応している限り、ブロックを受け付けることになり、且つ、そのブロックをそのトランザクションデータに保存することになる。また、新しいブロックがこのブロックに追加されるたびに、この追加が、その前のブロックの別の「確認」としてカウントされている。例えば、トランザクションがブロック５０２内において含まれており、且つ、ブロックチェーンの長さが５０７ブロックである場合には、これは、トランザクションが、（ブロック５０７〜５０２に対応する）５回の確認を有することを意味している。トランザクションが有する確認が多いほど、攻撃者による変更が困難になる。
【００３８】
いくつかの実施形態においては、例示用のブロックチェーン資産システムは、パブリックキー暗号法を利用しており、この場合には、１つのパブリックキー及び１つのプライベートキーという、２つの暗号キーが生成される。パブリックキーは、アカウント番号であると考えることが可能であり、且つ、プライベートキーは、所有権証明書であると考えることができる。例えば、ビットコインワレットは、パブリック及びプライベートキーの集合体である。特定の資産アドレスと関連する資産（例えば、デジタル通貨、現金資産、株式、エクイティ、債券）の所有権は、そのアドレスに属するプライベートキーの知識によって実証することができる。例えば、しばしば、「ビットコインクライアントソフトウェア」と呼称される、ビットコインワレットソフトウェアは、所与のユーザーがビットコインの取引を実行することを許容している。ワレットプログラムは、プライベートキーを生成及び保存すると共に、ビットコインネットワーク上においてピアと通信している。
【００３９】
ブロックチェーントランザクションにおいて、支払者と被支払者は、そのパブリック暗号キーにより、ブロックチェーン内において識別されている。例えば、大部分の現代のビットコイン移転は、１つのパブリックキーから異なるパブリックキーへのものである。実際には、これらのキーのハッシュが、ブロックチェーン内において使用されており、且つ、「ビットコインアドレス」と呼称されている。原則的に、仮想的な攻撃者である人物Ｓは、その名称の代わりに、ユーザーのビットコインアドレスを使用することにより、「人物Ａが人物Ｓに１００ビットコインを支払う」というような、トランザクションをブロックチェーン台帳に単純に追加することにより、人物Ａからお金を盗みうるであろう。ビットコインプロトコルは、すべての移転が支払者のプライベートキーによってデジタル署名されることを必要とすることにより、この種の盗難を防止しており、且つ、ブロックチェーン台帳に追加することができるのは、署名済みの移転のみである。人物Ｓは、人物Ａの署名を偽造することができないことから、人物Ｓは、「人物Ａが人物Ｓに２００ビットコインを支払う」に等しい、エントリをブロックチェーンに追加することにより、人物Ａを騙すことができない。同時に、だれもが、人物Ａの署名を彼／彼女のパブリックキーを使用することによって検証することが可能であり、且つ、従って、彼／彼女は、彼／彼女が支払者であるすべてのトランザクションをブロックチェーン内において認可している。
【００４０】
ビットコイントランザクションのコンテキストにおいては、いくつかのビットコインをユーザーＢに移転するべく、ユーザーＡは、トランザクションに関する情報を含むレコードをノードを通じて構築することができる。レコードは、ユーザーＡの署名キー（プライベートキー）によって署名されてもよく、且つ、ユーザーＡのパブリック検証キー及びユーザーＢのパブリック検証キーを含む。署名は、トランザクションがユーザーから到来したことを確認するべく使用されており、且つ、トランザクションが、発行の後に、だれかによって変更されることをも防止している。レコードは、新しいブロック内において同じ時間ウィンドウにおいて発生したその他のレコードとバンドルされた状態において、フルノードにブロードキャストすることができる。レコードを受け取った際に、フルノードは、ブロックチェーンシステム内においてそれまでに発生したすべてのトランザクションの台帳にレコードを内蔵すること、上述のマイニングプロセスを通じて以前に受け付けられたブロックチェーンに新しいブロックを追加すること、に関して機能することができると共に、ネットワークのコンセンサス規則に照らして追加されたブロックを検証することができる。
【００４１】
ＵＴＸＯ（Ｕｎｓｐｅｎｔ  Ｔｒａｎｓａｃｔｉｏｎ  Ｏｕｔｐｕｔ）モデル及びアカウント／残高モデルは、ブロックチェーントランザクションを実装するための２つの例示用のモデルである。ＵＴＸＯは、ブロックチェーンオブジェクトモデルである。ＵＴＸＯの下においては、資産は、新しいトランザクションにおいて入力として使用されうる、未使用のブロックチェーントランザクションの出力によって表されている。例えば、移転対象であるユーザーＡの資産は、ＵＴＸＯの形態を有することができる。資産を使用（取引）するには、ユーザーＡは、プライベートキーによってサインオフしなければならない。ビットコインは、ＵＴＸＯモデルを使用したデジタル通貨の一例である。有効なブロックチェーントランザクションのケースにおいては、更なるトランザクションを実現するべく、未使用の出力を使用することができる。いくつかの実施形態においては、二重使用及び不正行為を防止するべく、更なるトランザクションにおいて使用されうるのは、未使用の出力のみである。これを理由として、ブロックチェーンに対する入力は、トランザクションが発生した際に削除される一方で、同時に、出力がＵＴＸＯの形態で生成されている。これらの未使用のトランザクション出力は、将来のトランザクションを目的として、（例えば、デジタル通貨ワレットを有する人物などのプライベートキーの保持者によって）使用することができる。
【００４２】
その一方で、アカウント／残高モデル（或いは、アカウントに基づいたトランザクションモデルとも呼称される）は、それぞれのアカウントの残高をグローバルな状態として追跡している。使用するトランザクション金額以上であることを確認するべく、アカウントの残高がチェックされている。以下、イーサリアムにおいてアカウント／残高モデルが機能している方式の一例を提供する。
【００４３】
１．アリスは、５イーサをマイニングを通じて取得する。これは、システム内においては、アリスが５イーサを有していると記録される。
【００４４】
２．アリスは、ボブに１イーサを付与することを所望しており、従って、システムは、まず、１イーサをアリスのアカウントから控除し、従って、アリスは、いまや、４イーサを有している。
【００４５】
３．次いで、システムは、ボブのアカウントを１イーサだけ増大させる。システムは、ボブが、当初、２イーサを有していたことを知っており、従って、ボブの残高は、３イーサに増大される。
【００４６】
イーサリアムにおける記録の維持は、銀行におけるものに類似しうる。よく似たものが、ＡＴＭ／デビットカードの使用である。銀行は、それぞれのデビットカードが有している金額を追跡しており、且つ、ボブがお金を使う必要がある際に、銀行は、トランザクションを承認する前に、ボブが十分な残高を有していることを確認するべく、その記録をチェックしている。
【００４７】
ブロックチェーン及びその他の類似の台帳は、完全にパブリック状態にあることから、ブロックチェーン自体は、プライバシー保護を有してはいない。Ｐ２Ｐネットワークのパブリック特性は、その使用者が名称によって識別されない一方で、個人及び企業に対するトランザクションのリンキングが可能であることを意味している。例えば、国境に跨った送金においては、或いは、サプライチェーンにおいては、トランザクション金額は、極めて高度なレベルのプライバシー保護値を有しており、その理由は、トランザクション金額情報により、トランザクションパーティの特定の場所及びアイデンティティを推定することができるからである。トランザクションの主題は、例えば、お金、トークン、デジタル通貨、契約、証書、医療の記録、顧客の詳細、株式、債券、エクイティ、又はデジタルの形態において記述されうる任意のその他の資産を有することができる。ＵＴＸＯモデルは、例えば、Ｍｏｎｅｒｏ及びゼロ知識暗号法Ｚｃａｓｈにおけるリング署名を通じて、匿名性をトランザクション金額に提供しうるが、トランザクション金額は、アカウント／残高モデルの下においては、保護されていない状態に留まっている。従って、本開示によって対処されている技術的問題は、トランザクション金額のプライバシーなどの、オンライン情報を保護する方式である。このようなトランザクションは、アカウント／残高モデルの下のものであってもよい。
【００４８】
いくつかの既存の技術は、トランザクション金額を暗号化するべく、且つ、アカウント／残高モデルを置換するべく、Ｐｅｄｅｒｓｅｎコミットメント方式を使用することを提案している。この方式の下においては、送信者は、トランザクション金額及びトランザクション金額のＰｅｄｅｒｓｅｎコミットメントに対応するランダム数をブロックチェーンとは切り離された状態の保護されたチャネルを通じて被支払者に送信している。被支払者は、ランダム数がトランザクションコミットメントとマッチングしているかどうかを検証し、且つ、ローカルな保存を実行している。例えば、アカウント／残高モデルの下においては、アカウントは、マージされるのではなく、集計される、資産を維持するためのワレット（アカウント）として取り扱うことができる。それぞれの資産は、１つの資産タイプ（例えば、暗号通貨）に対応していてもよく、且つ、アカウントの残高は、資産値の合計である。同一タイプの資産でさえ、マージされない。トランザクションにおいては、移転資産の受領者を規定することができると共に、トランザクションに資金供給するべく、対応する資産をワレットから除去することができる。ブロックチェーンノードは、支払ワレットが、トランザクションをカバーするための十分な１つ又は複数の資産を有していることを検証し、且つ、次いで、ノードが、支払ワレットから移転される資産を削除し、且つ、対応する資産を受領者ワレットに追加している。
【００４９】
但し、このような方式には、限界が依然として存在している。第１に、この方式は、ランダム数及び暗号化済みのアカウント残高に対応するプレーンテキスト残高を管理するために、ユーザーが永続的な保存をローカルに維持することを必要としていると共に、管理の実装が複雑であり、第２には、単一のローカルノード内におけるブラインディングファクタ（例えば、ランダム数）及び「Ｐｅｄｅｒｓｅｎ資産」に対応するプレーンテキスト残高の保存が失われやすい又は破壊されやすい一方で、アカウント残高の頻繁な変化に起因して、マルチノードのバックアップ保存の実現が困難である。
【００５０】
本開示において提示されているシステム及び方法は、上述の限界を克服することができると共に、コミットメント方式におけるトランザクション金額、資産値、及びブラインディングファクタ用の安定したプライバシー保護を実現することができる。これを目的として、ランダム数及びプレーンテキスト残高を暗号化／暗号解読し、これにより、便利な管理を提供するべく、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＤＨ）キー交換プロトコルによって取得された対称キーを使用することができる。更には、ブロックチェーン内において暗号化済みの情報を保存することにより、コミットメント方式におけるトランザクション金額、資産値、及びブラインディングファクタが、容易に失われない、又は改竄されない、ことが保証されている。
【００５１】
本開示の図について説明する前に、まずは、Ｐｅｄｅｒｓｅｎコミットメント及びＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＤＨ）キー交換プロトコルについて説明する。
【００５２】
いくつかの実施形態においては、コミットメント方式（例えば、Ｐｅｄｅｒｓｅｎコミットメント）は、特定の値ａ（例えば、トランザクション金額、資産値、キーパラメータ）を以下のように暗号化することができる。
【００５３】
ＰＣ（ａ）＝ｒ×Ｇ＋ａ×Ｈ
【００５４】
ここで、ｒは、隠蔽を提供するランダムなブラインディングファクタであり（或いは、この代わりに、バインディングファクタとも呼称される）、Ｇ及びＨは、楕円曲線の公的に合意されたジェネレータ／ベースポイントであると共に、ランダムに選択されてもよく、ｓｎは、コミットメントの値であり、且つ、Ｃ（ｓｎ）は、コミットメントとして利用されると共に相手方に付与される曲線値であり、且つ、Ｈは、別の曲線ポイントである。即ち、Ｇ及びＨは、ノードにとって既知のパラメータであってよい。Ｈの「隠し事はない（ｎｏｔｈｉｎｇ  ｕｐ  ｍｙ  ｓｌｅｅｖｅ）」生成は、Ｈ＝Ｈａｓｈ（Ｇ）により、ベースポイントＧを１つのポイントから別のものにマッピングするハッシュ関数によってハッシュ化することにより、生成することができる。Ｈ及びＧは、所与のシステムのパブリックパラメータ（例えば、楕円曲線上のランダムに生成されたポイント）である。以上は、楕円曲線の形態におけるＰｅｄｅｒｓｅｎコミットメントの一例を提供しているが、この代わりに、Ｐｅｄｅｒｓｅｎコミットメント又はその他のコミットメント方式の様々なその他の形態を使用することができる。
【００５５】
コミットメント方式は、データの秘密性を維持する一方で、データがデータの送信者によって後から変更されえないように、データにコミットしている。コミットメント値（例えば、ＰＣ（ａ））しか知らない場合には、彼らは、コミットされている基礎をなすデータ値（例えば、ａ）を判定することできない。データ（例えば、ａ）及びブラインディングファクタ（例えば、ｒ）の両方は、（例えば、イニシエータノードにより）後から明かしてもよく、これにより、コミットメントの受領者（例えば、コンセンサスノード）は、コミットメントを実行することが可能であり、且つ、コミットされているデータが、明かされたデータとマッチングしていることを検証することができる。ブラインディングファクタが存在している理由は、これなしには、だれかがデータの推定を試みうるからである。
【００５６】
コミットメント方式は、コミットされた値が、プライベートな状態に留まる一方で、コミットしているパーティがコミットメントプロセスの必要なパラメータを明かした際には後の時点において明かされうるように、送信者（コミットしているパーティ）が値（例えば、ａ）に対してコミットするための１つの方法である。強力なコミットメント方式は、情報隠蔽型及び演算拘束型の両方であってもよい。隠蔽とは、所与の値ａとその値のコミットメントであるＰＣ（ａ）が関係付け不能であるという概念を意味している。即ち、ＰＣ（ａ）は、ａに関するなんらの情報をも明らかにすることがない。ＰＣ（ａ）、Ｇ、及びＨが判明している状態においても、ランダム数ｒに起因して、ａを知ることは、ほとんど不可能である。コミットメント方式は、２つの異なる値が同一のコミットメントを結果的にもたらしうるそれなりの方法が存在していない場合には、拘束型である。Ｐｅｄｅｒｓｅｎコミットメントは、離散対数の仮定の下において、完全に隠蔽型であり、且つ、演算拘束型である。更には、ｒ、Ｇ、Ｈ、及びＰＣ（ａ）が判明している状態において、ＰＣ（ａ）＝ｒ×Ｇ＋ａ×Ｈであるかどうかを判定することにより、ＰＣ（ａ）を検証することができる。
【００５７】
Ｐｅｄｅｒｓｅｎコミットメントは、コミットメントが加算可能であり、且つ、コミットメントの組の合計は、（ブラインディングファクタの合計として設定されたブラインディングファクタを有する）データの合計に対するコミットメントと同一である、という更なるプロパティを有しており、即ち、ＰＣ（ｒ１，ｄａｔａ１）＋ＰＣ（ｒ２，ｄａｔａ２）＝＝ＰＣ（ｒ１＋ｒ２，ｄａｔａ１＋ｄａｔａ２）；ＰＣ（ｒ１，ｄａｔａ１）−ＰＣ（ｒ１，ｄａｔａ１）＝＝０である。換言すれば、コミットメントは、加算を維持し、且つ、可換性が適用される、即ち、Ｐｅｄｅｒｓｅｎコミットメントは、基礎をなすデータが、まるで暗号化されていないかのように、数学的に操作されうる、という点において、加法的に準同形である。
【００５８】
一実施形態においては、入力値を暗号化するべく使用されるＰｅｄｅｒｓｅｎコミットメントは、楕円曲線ポイントを使用することにより、構築することができる。従来、楕円曲線暗号法（ＥＥＣ：Ｅｌｌｉｐｔｉｃ  Ｃｕｒｖｅ  Ｃｒｙｐｔｏｇｒａｐｈｙ）パブキーは、グループ用のジェネレータ（Ｇ）を秘密キー（ｒ）によって乗算することにより、生成されており、即ち、Ｐｕｂ＝ｒＧである。結果は、３３バイトアレイとしてシリアライズすることができる。ＥＣＣパブリックキーは、Ｐｅｄｅｒｓｅｎコミットメントとの関係において上述の加法的に準同形であるというプロパティを順守することができる。即ち、Ｐｕｂ１＋Ｐｕｂ２＝（ｒ１＋ｒ２（ｍｏｄ  ｎ））Ｇである。
【００５９】
入力値のＰｅｄｅｒｓｅｎコミットメントは、だれもが第１ジェネレータＧとの関係における第２ジェネレータＨの離散対数（或いは、逆もまた然り）を知らないように、グループ用の更なるジェネレータ（以下の式におけるＨ）を選択することにより、生成されてもよく、これは、だれもが、ｒＧ＝Ｈとなるようなｘを知らないことを意味している。これは、例えば、Ｇの暗号学的ハッシュを使用してＨを選択することにより、実現されてもよく、即ち、Ｈ＝ｔｏ＿ｐｏｉｎｔ（ＳＨＡ２５６（ＥＮＣＯＤＥ（Ｇ）））である。
【００６０】
２つのジェネレータＧ及びＨが付与された場合に、入力値を暗号化するための例示用のコミットメント方式は、ｃｏｍｍｉｔｍｅｎｔ＝ｒＧ＋ａＨとして定義することができる。ここで、ｒは、秘密のブラインディングファクタであってもよく、且つ、ａは、コミットされている入力値であってよい。従って、ｓｎがコミットされる場合に、上述のコミットメント方式であるＰＣ（ａ）＝ｒ×Ｇ＋ａ×Ｈを得ることができる。Ｐｅｄｅｒｓｅｎコミットメントは、情報理論的にプライベートであり、任意のコミットメントについて、任意の金額がそのコミットメントとマッチングするようにすることになるなんらかのブラインディングファクタが存在している。Ｐｅｄｅｒｓｅｎコミットメントは、任意のマッピングを演算することができないという点において、偽のコミットメントに対して演算的に安全でありうる。
【００６１】
値をコミットしたパーティ（ノード）は、コミットメント方程式を完成させるオリジナルの値ａ及びファクタｒを開示することにより、コミットメントを公開することができる。次いで、値ＰＣ（ａ）の公開を所望するパーティは、共有されているオリジナルの値が、実際に、当初受け取られたコミットメントＰＣ（ａ）にマッチングしていることを検証するべく、コミットメントを再度演算することになる。従って、情報タイプ情報を一意の連番にマッピングし、且つ、次いで、これをＰｅｄｅｒｓｅｎコミットメントによって暗号化することにより、資産タイプ情報を保護することができる。コミットメントを生成する際に選択されるランダム数ｒが、だれかがコミットメント値ＰＣ（ａ）に従ってコミットされた資産タイプのタイプを推定することをほとんど不可能にしている。
【００６２】
いくつかの実施形態においては、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＤＨ）キー交換は、パブリックチャネル上において暗号キーを安全に交換するための方法として使用することができる。指数キー交換とも呼称されるＤＨキー交換は、決して直接的に送信されることがないコンポーネントに基づいて暗号解読キーを生成するべく特定の累乗に累乗された数を使用するデジタル暗号化の方法であり、これにより、暗号解読志望者のタスクが数学的に不可能なものとなっている。
【００６３】
Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＤＨ）キー交換を実装した一例においては、二人のエンドユーザーであるアリス及びボブは、プライベートであると彼らが認知しているチャネル上において通信しつつ、ｐが素数であり、且つ、ｑがｐのジェネレータとなるように、正の整数ｐ及びｑについて相互に合意している。ジェネレータｑは、ｐ未満の正の整数乗に累乗された際に、任意の２つのこのような整数について、同一の結果を決して生成しない数である。ｐの値は、大きくてもよいが、ｑの値は、通常、小さい。即ち、ｑは、ｐを法とする原始根である。
【００６４】
アリス及びボブがｐ及びｑについてプライベートに合意したら、彼らは、正の整数であるパーソナルキーａ及びｂを選択するが、これらは、いずれも、ｐを法とする素数未満であり、且つ、いずれも、ランダムに生成することができる。いずれのユーザーも、自身のパーソナルキーをだれにも明かすことがなく、且つ、理想的には、彼らは、これらの数を記憶しており、従って、これらを書き留めたり、或いは、これらをどこかに保存したりしない。次に、アリス及びボブは、次式に従って、自身のパーソナルキーに基づいて、パブリックキーであるａ＊及びｂ＊を演算すする。
【００６５】
ａ＊＝ｑａ  ｍｏｄ  ｐ、及び、
ｂ＊＝ｑｂ  ｍｏｄ  ｐ
【００６６】
二人のユーザーは、インターネット又は企業内のワイドエリアネットワーク（ＷＡＮ：Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの、安全ではないと仮定される通信媒体上において、自身のパブリックキーａ＊及びｂ＊を共有することができる。これらのパブリックキーから、いずれかのユーザーにより、自身の独自のパーソナルキーに基づいて、数ｋ１を生成することができる。
【００６７】
アリスは、ｋ１＝（ｂ＊）ａ  ｍｏｄ  ｐという式を使用することにより、ｋ１を演算する。
【００６８】
ボブは、ｋ１＝（ａ＊）ｂ  ｍｏｄ  ｐという式を使用することにより、ｋ１を演算する。
【００６９】
ｋ１の値は、上述の２つの式のいずれかに従って同一であることが判明する。但し、ｋ１の計算において重要であるパーソナルキーａ及びｂは、パブリック媒体上において通信されてはいない。ｐ、ｑ、ａ＊、及びｂ＊によっても、ａ及びｂを算出することは依然として非常に困難である。これは、大きな、且つ、明らかにランダムな、数であることから、潜在的なハッカーは、数百万回の試みを実施するための強力なコンピュータの支援を有する場合にも、ｋ１を正しく推定する可能性をほとんど有してはいない。従って、二人のユーザーは、理論的には、暗号解読キーであるｋ１を使用することにより、自身が選択した暗号化方法により、パブリック媒体上においてプライベートに通信することができる。
【００７０】
Ｄｉｆｆｅ−Ｈｅｌｌｍａｎ（ＤＨ）キー交換を実装した別の例においては、すべての計算は、通常は、大きな素数を法とする乗法的グループ（例えば、古典的なＤＨの場合）又は楕円曲線グループ（例えば、楕円曲線Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎの場合）などである、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ問題が困難であると考えられる、十分なサイズを有する離散グループ内において発生している。
【００７１】
取引を実行する２つのパーティの場合には、それぞれのパーティがプライベートキーａ又はｂを選択する。
【００７２】
それぞれのパーティが、対応するパブリックキーａＧ又はｂＧを算出する。
【００７３】
それぞれのパーティが、パブリックキーａＧ又はｂＧをその他のパーティに送信する。
【００７４】
それぞれのパーティが、新しい共有された秘密であるａ（ｂＧ）＝ｂ（ａＧ）を算出するべく、受け取ったパブリックキーを自身の独自のプライベートキーと共に使用するが、これらは、対称キーペアの対称キーと呼称される場合がある。
【００７５】
後述するように、この例示用の方法は、対称キーであるａｂＧ及びｂａＧを生成するべく、使用することができる。このキー交換の結果が、共有された秘密であり、これは、次いで、対称暗号化方式のキーの組を導出するべく、キー導出関数（例えば、ランダム数と資産値の連結などの、両方のパーティにとって既知であるその他の入力を使用する暗号化関数Ｅ（））と共に使用することができる。或いは、この代わりに、例えば、パブリックキーｇａ及びｇｂ並びに共有されているキーｇａｂ又はｇｂａの生成によるものなどの、様々なその他の演算方法を使用することもできる。
【００７６】
トランザクションにおいては、ユーザープライバシーを保護するべく、情報保護が重要であり、且つ、トランザクション金額は、保護を欠いた情報の１つのタイプである。図１は、様々な実施形態による情報保護用の例示用のシステム１００を示している。図示のように、ブロックチェーンネットワークは、複数のノード（例えば、サーバーやコンピュータなどの内部において実装されたフルノード）を有する。ある種のブロックチェーンプラットフォーム（例えば、ＮＥＯ）の場合には、特定レベルの投票権を有するフルノードがコンセンサスノードと呼称される場合があり、これらは、トランザクション検証の責任を担っている。本開示においては、フルノード、コンセンサスノード、又はその他の等価なノードがトランザクションを検証することができる。
【００７７】
また、図１に示されているように、ユーザーＡ及びユーザーＢは、トランザクションを実行するべく軽量ノードとして機能する、ラップトップ及び携帯電話機などの、対応する装置を使用することもできる。例えば、ユーザーＡは、ユーザーＡのアカウント内のなんらかの資産をユーザーＢのアカウントに移転することにより、ユーザーＢとの間において取引を実行することを所望しうる。ユーザーＡ及びユーザーＢは、トランザクションのための適切なブロックチェーンソフトウェアがインストールされている対応する装置を使用することができる。ユーザーＡの装置は、受領者ノードＢと呼称されるユーザーＢの装置との間においてトランザクションを開始するイニシエータノードＡと呼称することができる。ノードＡは、ノード１との間の通信を通じてブロックチェーンにアクセスすることができると共に、ノードＢは、ノード２との間の通信を通じてブロックチェーンにアクセスすることができる。例えば、ノードＡ及びノードＢは、ブロックチェーンへのトランザクションの追加を要求するべく、トランザクションをノード１及びノード２を通じてブロックチェーンにサブミットすることができる。ブロックチェーンとは切り離された状態において、ノードＡ及びノードＢは、その他の通信のチャネル（例えば、ノード１及び２を経由しない通常のインターネット通信）を有することができる。
【００７８】
図１のノードのそれぞれは、プロセッサと、ノード（例えば、プロセッサ）が本明細書において記述されている情報保護用の様々なステップを実行するようにするべく、プロセッサによって実行される命令を保存する一時的はないコンピュータ可読ストレージ媒体と、を有することができる。それぞれのノードには、その他のノード及び／又はその他の装置と通信するべく、ソフトウェア（例えば、トランザクションプログラム）及びハードウェア（例えば、配線、無線接続）をインストールすることができる。ノードのハードウェア及びソフトウェアの更なる詳細については、図５を参照して後述する。
【００７９】
図２は、様々な実施形態による、送信者ノードＡ、受領者ノードＢ、及び１つ又は複数の検証ノードの間におけるトランザクション及び検証用の例示用のステップを示している。以下において提示されている動作は、例示となることを意図したものである。実装形態に応じて、例示用のステップは、様々な順序において、或いは、並行的に、実行される、更に多くの数の、更に少ない数の、或いは、代替的な、ステップを含むことができる。
【００８０】
様々な実施形態においては、トランザクションパーティ（送信者ノードＡ及び受領者ユーザーＢ）のアカウントは、アカウント／残高モデルのために構成されている。ユーザーＡ及びユーザーＢは、自身のラップトップや携帯電話機などのような、１つ又は複数の装置を介して、トランザクションを実行するべく、以下のステップを実行することができる。装置には、様々なステップを実行するべく、適切なソフトウェア及びハードウェアをインストールすることができる。それぞれのアカウントは、暗号学的なプライベートキー（秘密キー）−パブリックキーのペアと関連付けることができる。プライベートキーは、ＳＫ＝ｘとして表記されてもよく、且つ、パブリックキーは、ＰＫ＝ｘＧとして表記されてもよく、ここで、Ｇは、グループのジェネレータである。それぞれのアカウントは、それぞれが（Ｖ＝ＰＣ（ｒ，ｖ），Ｅ（Ｋ，ｒ，ｖ））として表記される、様々な資産を収容していてもよく、ここで、ｖは、資産の額面価額を表し、Ｖは、額面価額ｖのＰｅｄｅｒｓｅｎコミットメントを表し、ｒは、ブラインディングファクタ（例えば、ランダム数）であり、ＰＣ（）は、Ｐｅｄｅｒｓｅｎコミットメントアルゴリズムであり、Ｅ（）は、暗号化アルゴリズム（例えば、対称キー暗号化アルゴリズム）であり、且つ、Ｋは、暗号化キーである。一例においては、それぞれの資産は、（Ｖ＝ＰＣ（ｒ，ｖ），Ｅ（Ｋ，ｒ｜｜ｖ））として表記され、この場合に、｜｜は、連結を表している。また、それぞれの資産は、資産のソース情報などの、列挙されているもの以外の情報を含むこともできる。
【００８１】
一例においては、ユーザーＡが、ブロックチェーン検証されたトランザクションにおいて、ユーザーＢに対する金額ｔの取引を成功的に実行する前の、Ａのアカウント及びＢのアカウントのアドレス及び資産は、以下のとおりである。
【００８２】
Ａのアカウントの場合（アカウントＡ）：
アドレス：（ＳＫ＿Ａ＝ａ，ＰＫ＿Ａ＝ａＧ）
それぞれ、値ａ＿１〜ａ＿ｍの資産Ａ＿１〜Ａ＿ｍは、次のように表記される。
（Ａ＿１＝ＰＣ（ｒ＿｛ａ＿１｝，ａ＿１），Ｅ（Ｋ＿Ａ，ｒ＿｛ａ＿１｝｜｜ａ＿１）），
（Ａ＿２＝ＰＣ（ｒ＿｛ａ＿２｝，ａ＿２），Ｅ（Ｋ＿Ａ，ｒ＿｛ａ＿２｝｜｜ａ＿２）），
．．．
（Ａ＿ｍ＝ＰＣ（ｒ＿｛ａ＿ｍ｝，ａ＿ｍ），Ｅ（Ｋ＿Ａ，ｒ＿｛ａ＿ｍ｝｜｜ａ＿ｍ））
【００８３】
Ｂのアカウントの場合（アカウントＢ）：
アドレス：（ＳＫ＿Ｂ＝ｂ，ＰＫ＿Ｂ＝ｂＧ）
それぞれ、値ｂ＿１〜ｂ＿ｎの資産Ｂ＿１〜Ｂ＿ｎは、次のように表記される。
（Ｂ＿１＝ＰＣ（ｒ＿｛ｂ＿１｝，ｂ＿１），Ｅ（Ｋ＿Ｂ，ｒ＿｛ｂ＿１｝｜｜ｂ＿１）），
（Ｂ＿２＝ＰＣ（ｒ＿｛ｂ＿２｝，ｂ＿２），Ｅ（Ｋ＿Ｂ，ｒ＿｛ｂ＿２｝｜｜ｂ＿２）），
．．．
（Ｂ＿ｎ＝ＰＣ（ｒ＿｛ｂ＿ｎ｝，ｂ＿ｎ），Ｅ（Ｋ＿Ｂ，ｒ＿｛ｂ＿ｎ｝｜｜ｂ＿ｎ））
【００８４】
いくつかの実施形態においては、キー生成は、アカウント／残高モデルの下において、それぞれのアカウントごとに、ｅｃｐ２５６ｋ１という楕円曲線に基づいたものであってよい。例えば、イーサリアムのｅｃｐ２５６ｋ１上において、１〜２２５６−１の間の任意の数が、有効なプライベートキーＳＫであってよい。良好なライブラリは、十分なランダム性を考慮することにより、プライベートキーを生成する。イーサリアムは、プライベートキーＳＫの長さが２５６ビットとなることを必要としている。パブリックキーの生成は、ＥＣＣ暗号法のグループ動作を使用することにより、実行される。パブリックキーＰＫを導出するべく、プライベートキーをＧによって乗算することができる。パブリックキーＰＫを導出するべく使用される乗算は、ＥＣＣ乗算（楕円曲線ポイント乗算）であり、これは、通常の乗算とは異なっている。Ｇは、ＥＣＣ暗号法のドメインパラメータの１つであるジェネレータポイントである。Ｇは、ｅｃｐ２５６ｋ１の固定値を有することができる。アドレスは、例えば、パブリックキーＰＫのハッシュの最後の２０バイトであってよい。
【００８５】
いくつかの実施形態においては、ステップ２０１において、ノードＡは、ノードＢとの間においてトランザクションを開始することができる。例えば、ユーザーＡ及びユーザーＢは、トランザクション金額ｔをユーザーＡのアカウントＡからユーザーＢのアカウントＢにネゴシエートすることができる。アカウントＡ及びアカウントＢは、本明細書において記述されている「ワレット」に対応しうる。アカウントＡは、１つ又は複数の資産を有することができる。資産は、例えば、お金、トークン、デジタル通貨、契約、証書、医療の記録、顧客の詳細、株式、債券、エクイティ、又はデジタルの形態において記述されうる任意のその他の資産を有することができる。アカウントＢは、１つ又は複数の資産を有していてもよく、或いは、資産を有していなくてもよい。それぞれの資産は、ブロックチェーンのブロック内において保存されている様々なブロックチェーン情報と関連付けられていてもよく、ブロックチェーン情報は、例えば、資産タイプを表すＮｏｔｅＴｙｐｅ、資産の一意の識別情報を表すＮｏｔｅＩＤ、資産値のコミットメント（例えば、Ｐｅｄｅｒｓｅｎコミットメント）値を表すコミットメント値、ランダム数及び資産値の暗号化などを有する。
【００８６】
アカウントＡとの関係において記述されているように、いくつかの実施形態においては、Ａ＿１〜Ａ＿ｍは、それぞれ、資産値ａ＿１〜ａ＿ｍ及びランダム数ｒ＿１〜ｒ＿ｍに対応している。ランダム数ｒ＿１〜ｒ＿ｍに基づいて、ノードＡは、暗号化済みのコミットメント値を取得するべく、アカウントＡ内の資産値をコミットメント方式（例えば、Ｐｅｄｅｒｓｅｎコミットメント）に対してコミットすることができる。例えば、暗号化済みのコミットメント値は、ＰＣ＿１〜ＰＣ＿ｍであってよく、この場合に、ＰＣ＿ｉ＝ＰＣ（ｒ＿｛ａ＿ｉ｝，ａ＿ｉ）＝ｒ＿｛ａ＿ｉ｝×Ｇ＋ａ＿ｉ×Ｈであり、この場合に、Ｇ及びＨは、既知のパラメータであり、且つ、ｉは、１〜ｍである。第１フィールドであるＰＣ（．．．）に加えて、それぞれの資産は、上述のように、第２フィールドＥ（．．．）とも関連付けられている。第２フィールドであるＥ（．．．）は、キーＫ＿Ａによって暗号化された対応するランダム数の暗号化及び資産値の暗号化を表すことができる。例えば、暗号化は、Ｅ（Ｋ＿Ａ，  ｒ＿｛ａ＿ｉ｝｜｜ａ＿ｉ））であってよい。それぞれの資産ごとのＰＣ（．．．）及びＥ（．．．）は、以前のトランザクションから継承されてもよい。同一のメカニズムが、アカウントＢ及びその資産に適用されてもよい。
【００８７】
いくつかの実施形態においては、Ｋ＿Ａは、様々なタイプの暗号化キーを有することができる。例えば、Ｋ＿Ａは、更に後述するａ＊ＰＫ＿Ａ＝ａａＧであってもよく、且つ、Ｋ＿Ｂは、更に後述するａ＊ＰＫ＿Ｂ＝ａｂＧであってもよく、ここで、ａ、ｂ、及びＧは、ＥＣＣ乗算によって乗算することができる。
【００８８】
いくつかの実施形態においては、トランザクション金額ｔを充足するべく、ユーザーＡは、少なくともｔだけ、アカウントＡからの１つ又は複数の資産の集計された値を利用してもよい。例えば、図１を参照すれば、ノードＡは、このトランザクションのために、資産Ａ＿１及びＡ＿２を選択することができる。ノードＡは、資産ＰＣ（ｒ＿１，ａ＿１）及びＰＣ（ｒ＿２，ａ＿２）をノード１から読み取ることができる。ランダム数ｒ＿１及びｒ＿２がノードＡに既知である状態において、ノードＡは、ａ＿１及びａ＿２の合計がトランザクション金額ｔ未満ではないことを保証するために、資産値ａ＿１及びａ＿２を取得するべく、読み取られた資産ＰＣ（ｒ＿１，ａ＿１）及びＰＣ（ｒ＿２，ａ＿２）を暗号解読することができる。様々なレートに基づいて、アカウント内において、異なる資産を互いに交換することができる。
【００８９】
いくつかの実施形態においては、ｔを超過する、選択された資産値の金額は、存在している場合には、変化としてｙに設定されている。例えば、ノードＡは、変化ｙ＝ａ＿１＋ａ＿２−ｔを判定することができる。ノードＡは、ｔ及びｙのＰｅｄｅｒｓｅｎコミットメントを生成するべく、ランダム数ｒ＿ｔ及びｒ＿ｙをブラインディングファクタとして選択してもよく、即ち、Ｔ＝ＰＣ（ｒ＿ｔ，ｔ）であり、Ｙ＝ＰＣ（ｒ＿ｙ，ｙ）である。即ち、ノードＡは、ｔのランダム数ｒ＿ｔ及びｙのランダム数ｒ＿ｙを生成することができる。ノードＡは、コミットメント値Ｔ＝（ＰＣ（ｒ＿ｔ，ｔ）を取得するべく、ｔ及びｒ＿ｔをコミットメント方式（例えば、準同形暗号化）に対してコミットすることが可能であり、且つ、コミットメント値Ｙ＝（ＰＣ（ｒ＿ｙ，ｙ）を取得するべく、ｙ及びｒ＿ｙをコミットメント方式（例えば、準同形暗号化）に対してコミットすることができる。
【００９０】
更には、いくつかの実施形態においては、ノードＡは、対称キーペアの第１キーａ＊ＰＫ＿Ｂ＝ａｂＧを生成すると共に、別のキーａ＊ＰＫ＿Ａ＝ａａＧを生成している。ノードＡは、暗号化Ｅ（ａｂＧ，ｒ＿ｔ｜｜ｔ）を付与する、（ｒ＿ｔ｜｜ｔ）を暗号化するべく、第１キーａｂＧを使用し、且つ、暗号化Ｅ（ａａＧ，ｒ＿ｙ｜｜ｙ）を付与する、（ｒ＿ｙ｜｜ｙ）を暗号化するべく、キーａａＧを使用する。図３Ａ及び図３Ｂは、この例に準拠したものでありうる。ノードＡによる暗号化Ｅ（ａｂＧ，ｒ＿ｔ｜｜ｔ）の取得の代替肢として、ユーザーＡは、トランザクション情報と共に、ｒ＿ｔ及びｔをノードＢに送信し、これにより、ノードＢが、（ｒ＿ｔ｜｜ｔ）を暗号化するべく、対称キーペアの第２キーｂ＊ＰＫ＿Ａ＝ｂａＧを生成するようにしてもよい。ノードＢは、ノードＡによる検証を許容するべく、暗号化をノードＡに送信することになろう。図４Ａ及び図４Ｂは、この例に準拠したものでありうる。本開示の様々な例において、連結が使用されているが、暗号化関数又はその他の動作のために、入力、出力、又はその他のパラメータの代替的な組合せを使用することができる。
【００９１】
更には、いくつかの実施形態においては、ノードＡは、ＰＣ（ｒｔ，ｔ）の値及びＰＣ（ｒｙ，ｙ）の値が、それぞれ、有効な範囲内にあるかどうかをブロックチェーンノードに対して証明するべく、範囲証明ＲＰを生成することができる。例えば、ＰＣ（ｒｔ，ｔ）の有効な値を得るべく、トランザクション金額ｔは、有効範囲［０，２ｎ−１］内にあってよく、且つ、ＰＣ（ｒｙ，ｙ）の有効な値を得るべく、変化ｙは、有効範囲［０，２ｎ−１］内にあってよい。一実施形態においては、ノードＡは、ブロックチェーンノード（例えば、コンセンサスノード）が後のステップにおいてトランザクション金額ｔ及び変化ｙが有効な範囲内にあるかどうかを範囲証明に基づいて検証するべく、（ｒ＿ｙ，ｙ，Ｙ，ｒ＿ｔ，ｔ，Ｔ）に関係する範囲証明ＲＰを生成するために、ブロック証明技法を使用することができる。範囲証明は、例えば、ＢｕｌｌｅｔｐｒｏｏｆやＢｏｒｒｏｍｅａｎリング署名などを有することができる。
【００９２】
ステップ２０２において、ノードＡは、トランザクション情報を（例えば、ブロックチェーンとは切り離された、保護されたチャネルを通じて）ノードＢに送信することができる。送信されるトランザクション情報は、例えば、コミットメント値Ｔ＝ＰＣ（ｒ＿ｔ，ｔ）、コミットメント値Ｙ＝ＰＣ（ｒ＿ｙ，ｙ）、暗号化Ｅ（ａｂＧ，ｒ＿ｔ｜｜ｔ）、暗号化Ｅ（ａａＧ，ｒ＿ｙ｜｜ｙ）、範囲証明ＲＰなどを有することができる。コミットメント値Ｙ＝ＰＣ（ｒ＿ｙ，ｙ）、暗号化Ｅ（ａａＧ，ｒ＿ｙ｜｜Ｙ）、及び範囲証明ＲＰは、任意選択であってよく、その理由は、ノードＢは、アカウントＡに返送される変化に注意しなくてもよいからである。いくつかの実施形態においては、ブロックチェーンとは切り離された通信チャネルを介した送信は、トランザクション情報がブロックチェーン内に記録されることを防止することが可能であると共に、送信者ノードＡ及び受領者ノードＢ以外のノードがトランザクション情報を取得することを防止することができる。Ｅ（ａａＧ，ｒ＿ｙ｜｜ｙ）は、ノードＢに送信される必要はないであろうが、ユーザーＡが変化Ｙを使用するために将来において必要とされる場合があり、その理由は、変化をアカウントＡに返す必要があるからである。
【００９３】
ステップ２０３において、ノードＢは、ランダム数ｒ＿ｔ、トランザクション金額ｔ、及びコミットメント値Ｔを検証することができる。いくつかの実施形態においては、ノードＢは、対称キーペアの第２キーｂ＊Ｐｋ＿Ａ＝ｂａＧを生成することができると共に、暗号化Ｅ（ａｂＧ，ｒ＿ｔ｜｜ｔ）を暗号解読してｒ＿ｔ｜｜ｔを取得するべく、第２キーｂａＧを使用することができる。ｒ＿ｔ｜｜ｔから、ノードＢは、ｒ＿ｔ及びｔを取得することができると共に、次いで、ｒ＿ｔ及びｔがＴ＝ＰＣ（ｒ＿ｔ，ｔ）とマッチングしているかどうかを検証することができる。即ち、ノードＢは、Ｐｅｄｅｒｓｅｎコミットメントアルゴリズムに従って、ランダム数ｒ＿ｔ及びトランザクション金額ｔに基づいて、コミットメント値Ｔ＝ＰＣ（ｒ＿ｔ，ｔ）が正しいかどうかを検証することができる。マッチング／検証に失敗した場合には、ノードＢは、トランザクションを拒絶してもよく、且つ、マッチング／検証に成功した場合には、ノードＢは、ステップ２０４において、ノードＡに回答するべく、トランザクションに署名することができる。
【００９４】
ステップ２０４において、ノードＢは、署名ＳＩＧＢを生成するべく、ユーザーＢのプライベートキーＳＫ＿Ｂによってトランザクションに署名することができる。署名は、楕円曲線デジタル署名アルゴリズム（ＥＣＤＳＡ：Ｅｌｌｉｐｔｉｃ  Ｃｕｒｖｅ  Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅ  Ａｌｇｏｒｉｔｈｍ）などの、デジタル署名アルゴリズム（ＤＳＡ：Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅ  Ａｌｇｏｒｉｔｈｍ）に準拠したものであってよく、これにより、署名の受信者は、署名されたデータを認証するべく、署名者のパブリックキーによって署名を検証することができる。署名ＳＩＧＢは、受領者ノードＢがトランザクションに合意していることを通知している。
【００９５】
ステップ２０５において、ノードＢは、署名ＳＩＧＢと共に、署名済みのトランザクションをノードＡに返送することができる。
【００９６】
ステップ２０６において、ＳＩＧＢの検証に失敗した場合には、ノードＡは、トランザクションを拒絶することができる。ＳＩＧＢの検証に成功した場合には、ノードＡは、署名ＳＩＧＡを生成するべく、ユーザーＡのプライベートキーＳＫ＿Ａによってトランザクションに署名することができる。同様に、この署名も、デジタル署名アルゴリズム（ＤＳＡ）に準拠したものであってもよい。一実施形態においては、ノードＡは、署名ＳＩＧＡを生成するべく、ユーザーＡのプライベートキーにより、（Ｅ（ａｂＧ，  ｒ＿ｔ｜｜ｔ）；Ｅ（ａａＧ，ｒ＿ｙ｜｜ｙ）；Ｙ；Ｔ；ＲＰ）に署名することができる。
【００９７】
ステップ２０７において、ノードＡは、トランザクションをブロックチェーンにサブミットし、これにより、ブロックチェーンノードが、トランザクションを検証し、且つ、トランザクションをブロックチェーンに追加しうるかどうかを判定する、ようにすることができる。一実施形態においては、ノードＡは、トランザクションを実行するべく、ノード１を介して、トランザクション（Ｅ（ａｂＧ，ｒ＿ｔ｜｜ｔ）；Ｅ（ａａＧ，ｒ＿ｙ｜｜ｙ）；Ｙ；Ｔ；ＲＰ；ＳＩＧＡ；ＳＩＧＢ）をブロックチェーンにサブミットすることができる。トランザクションは、更なるパラメータを有していてもよく、或いは、列挙されたパラメータのすべてを有していなくてもよい。トランザクションは、検証のために、ブロックチェーン内の１つ又は複数のノード（例えば、コンセンサスノード）にブロードキャストすることができる。検証に成功した場合には、トランザクションは、ブロックチェーンに追加される。検証に失敗した場合には、トランザクションは、ブロックチェーンへの追加が拒絶される。
【００９８】
ステップ２０８〜２１３において、１つ又は複数ノード（例えば、コンセンサスノード）は、サブミットされたトランザクションの署名、範囲証明、及びその他の情報を検証している。検証に失敗した場合には、ノードは、トランザクションを拒絶する。検証に成功した場合には、ノードは、トランザクションを受け付け、ユーザーＡのアカウント及びユーザーＢのアカウントを別個に更新する。
【００９９】
いくつかの実施形態においては、トランザクションを実行するべく、様々なブロックチェーンノードにより、トランザクション情報を検証することができる。トランザクション情報は、トランザクションアドレスＴＸＩＤ、１つ又は複数の署名、入力、及び出力を有することができる。ＴＸＩＤは、トランザクションコンテンツのハッシュを有することができる。署名は、送信者及び受領者による暗号キー署名を有することができる。入力は、ブロックチェーン内の送信者のアカウントのアドレスやトランザクションのために送信者のブロックチェーンアカウントから利用される１つ又は複数の資産などを有することができる。出力は、ブロックチェーン内の受領者のアカウントのアドレス、１つ又は複数の受領者資産の１つ又は複数の資産タイプ、１つ又は複数の受領者資産の１つ又は複数のコミットメント値などを有することができる。入力及び出力は、表の形態におけるインデックス付けされた情報を有することができる。いくつかの実施形態においては、ＮｏｔｅＩＤ値の値は、「ＴＸＩＤ＋出力における資産のインデックス」であってよい。
【０１００】
いくつかの実施形態においては、ブロックチェーンの１つ又は複数のノードは、サブミットされたトランザクション（Ｅ（ａｂＧ，ｒ＿ｔ｜｜ｔ）；Ｅ（ａａＧ，ｒ＿ｙ｜｜ｙ）；Ｙ；Ｔ；ＲＰ；ＳＩＧＡ；ＳＩＧＢ）を検証することができる。
【０１０１】
ステップ２０８において、ノードは、トランザクションが、二重使用防止メカニズム又はリプレイ攻撃防止メカニズムを使用することにより、実行されたかどうかを検証することができる。トランザクションが実行されている場合には、ノードは、トランザクションを拒絶してもよく、さもなければ、方法は、ステップ２０９に進むことができる。
【０１０２】
ステップ２０９において、ノードは、（例えば、それぞれ、Ａのパブリックキー及びＢのパブリックキーに基づいて）署名ＳＩＧＡ及びＳＩＧＢをチェックすることができる。署名のいずれかが誤っている場合には、ノードは、トランザクションを拒絶してもよく、さもなければ、方法は、ステップ２１０に進むことができる。
【０１０３】
任意選択のステップ２１０において、ノードは、資産タイプが一貫性を有するかどうかを検証することができる。例えば、ノードは、Ａ＿１〜Ａ＿２のＮｏｔｅＴｙｐｅ内の資産タイプが、トランザクション金額ｔの１つ又は複数の資産タイプと一貫性を有しているかどうかを検証することができる。資産タイプのいずれかが一貫性を有していない場合には、ノードは、トランザクションを拒絶してもよく、さもなければ、方法は、ステップ２１１に進むことができる。いくつかの実施形態においては、ワレット内のオリジナルの資産タイプが、交換レートに基づいて別のタイプに変換済みであってもよく、従って、このステップがスキップされてもよい。
【０１０４】
ステップ２１１において、ノードは、ＰＣ（ｒｔ，ｔ）の値及びＰＣ（ｒｙ，ｙ）の値を検証するべく、範囲証明ＲＰをチェックすることができる。一実施形態においては、ノードは、トランザクション金額ｔがゼロ以上であるかどうか、並びに、変化ｙがゼロ以上であるかどうか、を検証するべく、範囲証明ＲＰをチェックすることができる。検証に失敗した場合には、ノードは、トランザクションを拒絶してもよく、さもなければ、方法は、ステップ２１２に進むことができる。
【０１０５】
ステップ２１２において、ノードは、トランザクションの入力と出力が一貫性を有しているかどうかをチェックすることができる。チェックに失敗した場合には、ノードは、トランザクションを拒絶してもよく、さもなければ、方法は、ステップ２１３に進むことができる。
【０１０６】
ステップ２１３において、ノードは、ノードＡがトランザクションのために利用される１つ又は複数の資産を有しているかどうかを検証することができる。一実施形態においては、ノードは、アカウントＡに対応する情報などの、ブロックチェーン内において保存されている情報に基づいて、この検証を実行することができる。情報は、すべての資産の以前のトランザクション情報を有することができる。従って、ノードは、アカウントＡがトランザクション用の取引用資産を有しているかどうかを判定することができる。判定が、「いいえ」である場合には、ノードは、トランザクションを拒絶してもよく、さもなければ、方法は、ステップ２１４に進むことができる。
【０１０７】
ステップ２１４において、ノードは、アカウントＡ及びアカウントＢを更新することができる。例えば、ノードは、金額ｔの取引用の資産をアカウントＡから除去することができると共に、これをアカウントＢに追加することができる。準同形のプロパティに基づいて、Ｙ＝（ＰＣ（ｒ＿ｙ，ｙ）であり、且つ、ノード１は、ｒ＿ｙを知っていると共にブロックチェーンからのコミットメント値Ｙにアクセスしうることから、ノード１は、資産値ｙを取得するべくＹを暗号解読することが可能であると共に、これをアカウントＡに返すことができる。ノード２は、ステップ２０２において、ノード１からランダム数ｒ＿ｔを取得し、且つ、ブロックチェーンからコミットメント値Ｔを取得することができる。従って、ノード２は、資産値ｔを取得するべくＴを暗号解読することが可能であり、且つ、これをアカウントＢに追加することができる。
【０１０８】
一例においては、アカウントＡ及びアカウントＢへの更新の後に、アカウントＡは、利用された資産に対する変化ｙを受け取ると共に、その利用されていない資産を受け取っている。例えば、利用された資産は、アカウントＡに返された変化ｙを有するトランザクションにおいて除去されたＡ＿１及びＡ＿２であってもよく、且つ、利用されていない資産は、Ａ＿３、．．．、Ａ＿ｍである。アカウントＢは、トランザクション金額ｔを受け取ると共に、そのオリジナルの資産（例えば、Ｂ＿１、．．．、Ｂ＿ｎ）を受け取る。Ａのアカウント及びＢのアカウント内の資産は、以下のとおりである。
【０１０９】
Ａのアカウント（アカウントＡ）の場合に、更新済みの資産は、次式のように表記される。
【０１１０】
（Ｙ＝ＰＣ（ｒ＿ｙ，ｙ），Ｅ（ａａＧ，ｒ＿ｙ｜｜ｙ）），
．．．
（Ａ＿ｍ＝ＰＣ（ｒ＿｛ａ＿ｍ｝，ａ＿ｍ），Ｅ（Ｋ＿Ａ，ｒ＿｛ａ＿ｍ｝｜｜ａ＿ｍ））
【０１１１】
Ｂのアカウント（アカウントＢ）の場合に、更新済みの資産は、次式のように表記される。
【０１１２】
（Ｂ＿１＝ＰＣ（ｒ＿｛ｂ＿１｝，ｂ＿１），Ｅ（Ｋ＿Ｂ，ｒ＿｛ｂ＿１｝｜｜ｂ＿１）），
（Ｂ＿２＝ＰＣ（ｒ＿｛ｂ＿２｝，ｂ＿２），Ｅ（Ｋ＿Ｂ，ｒ＿｛ｂ＿２｝｜｜ｂ＿２）），
．．．
（Ｂ＿ｎ＝ＰＣ（ｒ＿｛ｂ＿ｎ｝，ｂ＿ｎ），Ｅ（Ｋ＿Ｂ，ｒ＿｛ｂ＿ｎ｝｜｜ｂ＿ｎ）），
（Ｔ＝ＰＣ（ｒ＿ｔ，ｔ），Ｅ（ａｂＧ，ｒ＿ｔ｜｜ｔ））
【０１１３】
本開示は、それぞれ、送信者及び受領者を示すべく、ノードＡ／ユーザーＡ及びノードＢ／ユーザーＢを使用しているが、送信者及び受領者は、同一のノード／ユーザーであってもよい。例えば、トランザクションの変化ｙ（アカウントＡ内の利用された合計資産−トランザクション金額）は、トランザクションの送信者に返送することができる。従って、本明細書において記述されているノードＢによって実行される様々なステップは、この代わりに、ノードＡによって実行されてもよい。
【０１１４】
図３Ａは、本開示の様々な実施形態による情報保護用の例示用の方法３００のフローチャートを示している。方法３００は、図１のシステム１００の１つ又は複数のコンポーネント（例えば、ノードＡ、ノード１、ノードＡ及びノード１の組合せ）によって実装することができる。方法３００は、プロセッサと、システム又は装置（例えば、プロセッサ）が方法３００を実行するようにするべく、プロセッサによって実行される命令を保存する一時的ではないコンピュータ可読ストレージ媒体（例えば、メモリ）と、を有するシステム又は装置（例えば、コンピュータ、サーバー）によって実装することができる。以下において提示されている方法３００の動作は、例示となることを意図したものである。実装形態に応じて、例示用の方法３００は、様々な順序において、或いは、並行して、実行される、更に多くの数の、更に少ない数の、或いは、代替的な、ステップを含むことができる。
【０１１５】
ブロック３０１は、トランザクションコミットメント値Ｔを取得するべく、トランザクションのトランザクション金額ｔをコミットメント方式によってコミットするステップを有しており、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する。例えば、上述のように、Ｔ＝ＰＣ（ｒ＿ｔ，ｔ）である。いくつかの実施形態においては、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔに基づいた、且つ、トランザクション金額ｔが、コミット済みの値である状態における、Ｐｅｄｅｒｓｅｎコミットメントを有する。
【０１１６】
ブロック３０２は、対称キーペアの第１キーを生成するステップを有する。例えば、上述のように、ＳＫ＿Ａ＝ａであり、ＰＫ＿Ｂ＝ｂＧであり、且つ、第１キーは、ａ＊ＰＫ＿Ｂ＝ａｂＧであってもよい。いくつかの実施形態においては、第１キー及び第２キーを生成するステップは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＤＨ）キー交換プロトコルの下において、トランザクションの送信者のプライベートキーＳＫ＿Ａ及び受領者のパブリックキーＰＫ＿Ｂに基づいて、第１キー及び第２キーを生成するステップを有する。
【０１１７】
ブロック３０３は、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せ（例えば、連結）を第１キーによって暗号化するステップを有する。例えば、上述のように、ノードＡは、暗号化Ｅ（ａｂＧ，ｒ＿ｔ｜｜ｔ）を付与する（ｒ＿ｔ｜｜ｔ）を暗号化するべく、第１キーａｂＧを使用することができる。
【０１１８】
ブロック３０４は、受領者ノードがトランザクションを検証するべく、トランザクションコミットメント値Ｔ及び暗号化済みの組合せをトランザクションの受領者と関連する受領者ノードに送信するステップを有する。いくつかの実施形態においては、トランザクションの受領者と関連する受領者ノードがトランザクションを検証するべく、トランザクションコミットメント値Ｔ及び暗号化済みの組合せを受領者ノードに送信するステップは、トランザクションコミットメント値Ｔ及び暗号化済みの組合せをトランザクションの受領者と関連する受領者ノードに送信し、これにより、受領者ノードが、受領者のプライベートキーＳＫ＿Ｂ及び送信者のパブリックキーＰＫ＿Ａに基づいて対称キーペアの第２キーを生成し、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔを取得するべく暗号化済みの組合せを受領者ノードによって生成された第２キーによって暗号解読し、且つ、少なくともトランザクションコミットメント値Ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクション金額ｔに基づいてトランザクションを検証するようにするステップを有する。例えば、ステップ２０３を参照されたい。例えば、上述のように、受領者ノードは、第２キーｂ＊ＰＫ＿Ａ＝ｂａＧを独立的に生成してもよい。キーａｂＧ及びｂａＧは、対称であり、且つ、等しい。即ち、受領者ノードは、第１キーａｂＧを送信者ノードから受け取らなくてもよく、且つ、その代わりに、受領者ノードは、ａｂＧの等価物として、第２キーｂａＧを独立的に生成している。
【０１１９】
いくつかの実施形態においては、受領者ノードが、少なくともトランザクションコミットメント値Ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクション金額ｔに基づいてトランザクションを検証するようにするステップは、受領者ノードが、トランザクションコミットメント値Ｔがトランザクション金額ｔのコミットメント方式とマッチングしていないとトランザクションブラインディングファクタｒ＿ｔに基づいて判定することに応答して、トランザクションを拒絶し、且つ、トランザクションコミットメント値Ｔがトランザクション金額ｔのコミットメント方式とマッチングしているとトランザクションブラインディングファクタｒ＿ｔに基づいて判定することに応答して、受領者署名ＳＩＧＢを生成して送信者と関連する送信者ノードに返すべくトランザクションに署名することにより、トランザクションを承認するようにするステップを有する。
【０１２０】
いくつかの実施形態においては、暗号化済みの組合せを受領者と関連する受領者ノードに送信するステップ（ブロック３０４）の前に、方法は、変化コミットメント値Ｙを取得するべくトランザクションの変化ｙをコミットメント方式によってコミットするステップであって、コミットメント方式は、少なくとも変化ブラインディングファクタｒ＿ｙを有し、変化ｙは、トランザクションのために利用される送信者の１つ又は複数の資産からトランザクション金額ｔを差し引いたものである、ステップと、送信者のプライベートキーＳＫ＿Ａ及び送信者のパブリックキーＰＫ＿Ａに基づいて別のキーを生成するステップと、変化ブラインディングファクタｒ＿ｙ及び変化ｙの別の組合せを別のキーによって暗号化するステップと、を更に有する。例えば、上述のように、Ｙ＝ＰＣ（ｒ＿ｙ，ｙ）であり、ＰＫ＿Ａ＝ａであり、且つ、ノードＡは、キーａ＊ＰＫ＿Ａ＝ａａＧを生成してもよく、且つ、（ｒ＿ｙ｜｜ｙ）を暗号化するべく、キーａａＧを使用してもよく、この結果、Ｅ（ａａＧ，ｒ＿ｙ｜｜ｙ）が得られる。
【０１２１】
いくつかの実施形態においては、方法は、受領者署名ＳＩＧＢの受け取りに応答して、送信者署名ＳＩＧＡを生成するべくトランザクションに署名することにより、トランザクションを承認するステップと、ブロックチェーンネットワーク内の１つ又は複数のノードがトランザクションを検証するべく、暗号化済みの組合せ、暗号化済みの別の組合せ、トランザクションコミットメント値Ｔ、変化コミットメント値Ｙ、送信者署名ＳＩＧＡ、及び受領署名ＳＩＧＢを有するトランザクションを１つ又は複数のノードにサブミットするステップと、を更に有する。更なる詳細については、ステップ２０８〜２１３を参照して上述したとおりである。
【０１２２】
いくつかの実施形態においては、ブロックチェーンネットワーク内の１つ又は複数のノードがトランザクションを検証するべく、暗号化済みの組合せ、暗号化済みの別の組合せ、トランザクションコミットメント値Ｔ、変化コミットメント値ｙ、送信者署名ＳＩＧＡ、及び受領者署名ＳＩＧＢを有するトランザクションを１つ又は複数のノードにサブミットするステップは、暗号化済みの組合せ、暗号化済みの別の組合せ、トランザクションコミットメント値Ｔ、変化コミットメント値Ｙ、送信者署名ＳＩＧＡ、及び受領者署名ＳＩＧＢを有するトランザクションをブロックチェーンネットワーク内の１つ又は複数のノードにサブミットし、これにより、１つ又は複数のノードが、トランザクションの検証の成功に応答して、トランザクション金額ｔを受領者に発行し、トランザクションのために利用された１つ又は複数の資産を除去し、且つ、変化ｙを送信者に発行するようにするステップを有する。更なる詳細については、ステップ２１４を参照して上述したとおりである。
【０１２３】
図３Ｂは、本開示の様々な実施形態による情報保護用の例示用の方法４００のフローチャートを示している。方法４００は、図１のシステム１００の１つ又は複数のコンポーネント（例えば、ノードＢ、ノード２、ノードＢ及びノード２の組合せなど）によって実装することができる。方法４００は、プロセッサと、システム又は装置（例えば、プロセッサ）が方法４００を実行するようにするべく、プロセッサによって実行される命令を保存する一時的ではないコンピュータ可読ストレージ媒体（例えば、メモリ）と、を有するシステム又は装置（例えば、コンピュータ、サーバー）によって実装することができる。以下において提示されている方法４００の動作は、例示となることを意図したものである。実装形態に応じて、例示用の方法４００は、様々な順序において、或いは、並行して、実行される、更に多くの数の、更に少ない数の、或いは、代替的な、ステップを含むことができる。
【０１２４】
ブロック４０１は、対称キーペアの第１キーによって暗号化されたトランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの組合せを取得するステップと、トランザクションコミットメント値Ｔを取得するステップと、を有する。トランザクション金額ｔは、トランザクションコミットメント値Ｔを取得するべく、トランザクションの送信者と関連する送信者ノードにより、コミットメント方式によってコミットされ、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する。いくつかの実施形態においては、第１キーは、トランザクションの送信者のプライベートキーＳＫ＿Ａ及びトランザクションの受領者のパブリックキーＰＫ＿Ｂに基づいて、送信者ノードによって生成されている。
【０１２５】
ブロック４０２は、対称キーペアの第２キーを生成するステップを有する。いくつかの実施形態においては、対称キーペアの第２キーを生成するステップは、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＤＨ）キー交換プロトコルの下において、トランザクションの受領者のプライベートキーＳＫ＿Ｂ及び送信者のパブリックキーＰＫ＿Ａに基づいて対称キーペアの第２キーを生成するステップを有する。
【０１２６】
ブロック４０３は、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔを取得するべく、受領者と関連する受領者ノードによって生成された第２キーにより、取得された組合せを暗号解読するステップを有する。
【０１２７】
ブロック４０４は、少なくともトランザクションコミットメント値Ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクション金額ｔに基づいてトランザクションを検証するステップを有する。
【０１２８】
ノードＡにおける（ｒ＿ｔ｜｜ｔ）などの組合せ（ｒ＿ｔ，ｔ）を暗号化するステップの代わりに、ノードＡは、（ｒ＿ｔ，ｔ）をノードＢに送信し、これにより、図４Ａ及び図４Ｂを参照して後述するように、ノードＢが組合せ（ｒ＿ｔ，ｔ）を暗号化するようにしてもよい。図１〜図３のその他のステップ及び説明は、同様に、図４Ａ及び図４Ｂにも適用しうる。
【０１２９】
図４Ａは、本開示の様々な実施形態による情報保護用の例示用の方法４４０のフローチャートを示している。方法４４０は、図１のシステム１００の１つ又は複数のコンポーネント（例えば、ノードＡ、ノード１、ノードＡ及びノード１の組合せ）によって実装することができる。方法４４０は、プロセッサと、システム又は装置（例えば、プロセッサ）が方法４４０を実行するようにするべく、プロセッサによって実行される命令を保存する一時的ではないコンピュータ可読ストレージ媒体（例えば、メモリ）と、を有するシステム又は装置（例えば、コンピュータ、サーバー）によって実装することができる。以下において提示されている方法４４０の動作は、例示となることを意図したものである。実装形態に応じて、例示用の方法４４０は、様々な順序において、或いは、並行して、実行される、更に多くの数の、更に少ない数の、或いは、代替的な、ステップを含むことができる。
【０１３０】
ブロック４４１は、トランザクションコミットメント値Ｔを取得するべく、トランザクションのトランザクション金額ｔをコミットメント方式によってコミットするステップを有しており、コミットメント方式は、少なくともトランザクションブラインディングファクタｒ＿ｔを有する。
【０１３１】
ブロック４４２は、受領者ノードが、トランザクションを検証するべく、且つ、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔを対称キーペアの第２キーによって暗号化するべく、トランザクション金額ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクションコミットメント値Ｔをトランザクションの受領者と関連する受領者ノードに送信するステップを有する。例えば、ノードＢは、Ｔ＝（ＰＣ（ｒ＿ｔ，ｔ）であるかどうかを検証することができると共に、ノードＢは、Ｅ（ｂａＧ，ｒ＿ｔ｜｜ｔ）を取得するべく、キーｂａＧによって組合せを暗号化することができる。
【０１３２】
ブロック４４３は、受領者ノードから、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔの暗号化済みの組合せ（例えば、Ｅ（ｂａＧ，ｒ＿ｔ｜｜ｔ）を取得するステップを有する。
【０１３３】
ブロック４４４は、暗号化済みの組合せを暗号解読してトランザクションを検証するべく、対称キーペアの第１キーを生成するステップを有する。例えば、ノードＡは、Ｅ（ｂａＧ，ｒ＿ｔ｜｜ｔ）を暗号解読するべく、第１キーａｂＧを生成することができると共に、ｒ＿ｔ及びｔが正しいかどうかを検証することができる。ｒ＿ｔ及びｔが送信者及び受領者ノードによって相互に検証されたら、トランザクションを検証するためにブロックチェーンにサブミットすることができる。
【０１３４】
図４Ｂは、本開示の様々な実施形態による情報保護用の例示用の方法４５０のフローチャートを示している。方法４５０は、図１のシステム１００の１つ又は複数のコンポーネント（例えば、ノードＢ、ノード２、ノードＢ及びノード２の組合せなど）によって実装することができる。方法４５０は、プロセッサと、システム又は装置（例えば、プロセッサ）が方法４５０を実行するようにするべく、プロセッサによって実行される命令を保存する一時的ではないコンピュータ可読ストレージ媒体（例えば、メモリ）と、を有するシステム又は装置（例えば、コンピュータ、サーバー）によって実装することができる。以下において提示されている方法４５０の動作は、例示となることを意図したものである。実装形態に応じて、例示用の方法４５０は、様々な順序において、或いは、並行して、実行される、更に多くの数の、更に少ない数の、或いは、代替的な、ステップを含むことができる。
【０１３５】
ブロック４５１は、トランザクションのトランザクション金額ｔ、トランザクションブラインディングファクタｒ＿ｔ、及びトランザクションコミットメント値Ｔを取得するステップを有する。
【０１３６】
ブロック４５２は、取得されたトランザクション金額ｔ、取得されたトランザクションブラインディングファクタｒ＿ｔ、及び取得されたトランザクションコミットメント値Ｔに基づいて、トランザクションを検証するステップを有する。
【０１３７】
ブロック４５３は、トランザクションの検証の成功に応答して、暗号化済みの組合せ（例えば、Ｅ（ｂａＧ，ｒ＿ｔ｜｜ｔ））を取得するべく、トランザクションブラインディングファクタｒ＿ｔ及びトランザクション金額ｔを対称キーペアの第２キーによって暗号化するステップを有する。
【０１３８】
ブロック４５４は、暗号化済みの組合せをトランザクションの送信者と関連する送信者ノードに送信するステップを有する。
【０１３９】
図示のように、演算技術の様々な改善を通じて、トランザクション金額のプライバシーを保護することができる。例えば、アカウント構造は、資産値のＰｅｄｅｒｓｅｎコミットメントと関連する第１フィールド（例えば、第１フィールドは、ＰＣ（ｒ＿｛ａ＿ｉ｝，ａ＿ｉ）であり、ｉは、１〜ｍである）及びＰｅｄｅｒｓｅｎコミットメント及び資産値用のランダム数と関連する第２フィールド（例えば、第２フィールドは、Ｅ（．．．）である）などの、１つ又は複数のフィールドを有する。また、第１フィールド及び第２フィールドは、トランザクションステップにおいても使用され、且つ、ブロックチェーン内において保存されている。
【０１４０】
別の例の場合には、対称キーは、それぞれのＰｅｄｅｒｓｅｎコミットメント及び対応する資産値のランダム数を暗号化するべく、且つ、暗号化済みのランダム数及び資産値を含むトランザクションをブロックチェーン内において保存するべく、使用されている。この方式は、このようなランダム数のローカル管理を不要としており、且つ、分散型の且つ一貫性を有するブロックチェーン保存に基づいてセキュリティを促進している。
【０１４１】
更には、ＤＨキー交換プロトコル又は代替プロトコルの下においては、直接的な通信が存在していない場合にも、ユーザーＡ及びユーザーＢは、コミットメント及び資産値のランダム数を暗号化／暗号解読するべく、共通秘密（対称キーペアａｂＧ及びｂａＧ）を共有している。対称キーペアは、対応するアカウントのパブリック−プライベートキーペアから取得されていることから、暗号化キーの更なる追加を伴うことなしに、ブロックチェーンを通じて、コミットメントのランダム数を効果的に保存することができる。
【０１４２】
更に別の例の場合には、トランザクションの既存の資産が新しい資産及びトランザクションに照らしてバランスしており、且つ、それぞれの新しい資産の値が妥当な範囲内にある、ことを証明するべく、範囲証明が使用されている。更には、トランザクションパーティは、コミットされた値が取引資産の値とマッチングしているかどうかを検証するべく、コミットされたランダム数及び新しい資産の値を保護されたブロックチェーンとは切り離されたチャネルを通じて受領者に送信することができる。
【０１４３】
従って、Ｐｅｄｅｒｓｅｎコミットメントのランダム数は、破壊のリスクを伴うことなしに、且つ、更なるキー管理の負担の生成を伴うことなしに、便利に管理することができる。従って、トランザクションのプライバシーを完全に保護することが可能であり、且つ、トランザクション金額を秘密として維持することができる。
【０１４４】
本明細書において記述されている技法は、１つ又は複数の特殊目的演算装置によって実装される。特殊目的演算装置は、デスクトップコンピュータシステム、サーバーコンピュータシステム、携帯型コンピュータシステム、ハンドヘルド装置、ネットワーキング装置、又は技法を実装するべく配線接続された且つ／又はプログラムのロジックを内蔵する任意のその他の装置又は装置の組合せであってもよい。１つ又は複数の演算装置は、一般に、オペレーティングシステムソフトウェアによって制御及び調整されている。従来のオペレーティングシステムは、その他のものに加えて、実行のためにコンピュータプロセスを制御及びスケジューリングし、メモリ管理を実行し、ファイルシステム、ネットワーキング、入出力サービスを提供し、且つ、グラフィカルユーザーインターフェイス（「ＧＵＩ：Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ」）などの、ユーザーインターフェイス機能を提供している。
【０１４５】
図５は、本明細書において記述されている実施形態の任意のものが実装されうるコンピュータシステム５００を示すブロック図である。システム５００は、本明細書において記述されているノードの任意のものの内部において実装することができると共に、情報保護方法用の対応するステップを実行するように構成することができる。コンピュータシステム５００は、バス５０２又は情報を伝達するためのその他の通信メカニズムと、情報を処理するべくバス５０２と結合された１つ又は複数のハードウェアプロセッサ５０４と、を含む。１つ又は複数のハードウェアプロセッサ５０４は、例えば、１つ又は複数の汎用マイクロプロセッサであってよい。
【０１４６】
また、コンピュータシステム５００は、１つ又は複数のプロセッサ５０４によって実行される情報及び命令を保存するべくバス５０２に結合された、ランダムアクセスメモリ（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、キャッシュ、及び／又はその他のダイナミックストレージ装置などの、メインメモリ５０６を含む。また、メインメモリ５０６は、１つ又は複数のプロセッサ５０４によって実行される命令の実行の際に、一時的変数又はその他の中間情報を保存するべく、使用することもできる。このような命令は、１つ又は複数のプロセッサ５０４からアクセス可能であるストレージ媒体内において保存された際に、コンピュータシステム５００を命令の内部において規定された動作を実行するべくカスタマイズされた特殊目的機械に変換する。コンピュータシステム５００は、読み出し専用メモリ（ＲＯＭ：Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５０８又は１つ又は複数のプロセッサ５０４用のスタティックな情報及び命令を保存するべくバス５０２に結合されたその他のスタティックストレージ装置を更に含む。磁気ディスク、光ディスク、又はＵＳＢサムドライブ（Ｆｌａｓｈドライブ）などのような、ストレージ装置５１０が、情報及び命令を保存するべく、提供され、且つ、バス５０２に結合されている。
【０１４７】
コンピュータシステム５００は、コンピュータシステムとの組合せにおいて、コンピュータシステム５００が特殊目的機械となるようにする又はプログラムする、カスタマイズされた配線接続されたロジック、１つ又は複数のＡＳＩＣ又はＦＰＧＡ、ファームウェア、及び／又はプログラムロジックを使用することにより、本明細書において記述されている技法を実装することができる。一実施形態によれば、本明細書において記述されている動作、方法、及びプロセスは、１つ又は複数のプロセッサ５０４がメインメモリ５０６内において含まれている１つ又は複数の命令の１つ又は複数のシーケンスを実行することに応答して、コンピュータシステム５００によって実行されている。このような命令は、ストレージ装置５１０などの別のストレージ媒体からメインメモリ５０６内に読み込むことができる。メインメモリ５０６内において含まれている命令のシーケンスを実行することにより、１つ又は複数のプロセッサ５０４は、本明細書において記述されているプロセスステップを実行する。代替実施形態においては、ソフトウェア命令の代わりに、或いは、これとの組合せおいて、配線接続された回路を使用することができる。
【０１４８】
メインメモリ５０６、ＲＯＭ５０８、及び／又はストレージ５１０は、一時的ではないストレージ媒体を含むことができる。本明細書において使用されている「一時的ではない媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｍｅｄｉａ）」という用語及び類似の用語は、機械が特定の方式で稼働するようにする、データ及び／又は命令を保存する媒体を意味しており、媒体は、一時的な信号を除外している。このような一時的ではない媒体は、不揮発性の媒体及び／又は揮発性の媒体を有することができる。不揮発性の媒体は、例えば、ストレージ装置５１０などの、光又は磁気ディスクを含む。揮発性の媒体は、メインメモリ５０６などの、ダイナミックメモリを含む。一時的ではない媒体の一般的な形態は、例えば、フロッピーディスク、フレキシブルディスク、半導体ドライブ、磁気テープ又は任意のその他の磁気データストレージ媒体、ＣＤ−ＲＯＭ、任意のその他の光データストレージ媒体、孔のパターンを有する任意の物理的媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、ＮＶＲＡＭ、任意のその他のメモリチップ又はカートリッジ、及びこれらのもののネットワーク接続されたバージョンを含む。
【０１４９】
また、コンピュータシステム５００は、バス５０２に結合されたネットワークインターフェイス５１８を含む。ネットワークインターフェイス５１８は、１つ又は複数のローカルネットワークに接続された１つ又は複数のネットワークリンクに対する双方向データ通信結合を提供している。例えば、ネットワークインターフェイス５１８は、統合型サービスデジタルネットワーク（ＩＳＤＮ：Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｄｉｔｉｔａｌ  Ｎｅｔｗｏｒｋ）カード、ケーブルモデム、衛星モデム、又は電話線の対応するタイプに対してデータ通信接続を提供するモデムであってもよい。別の例として、ネットワークインターフェイス５１８は、互換性を有するローカルエリアネットワーク（ＬＡＮ：Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）（或いは、ＷＡＮと通信するためのＷＡＮコンポーネント）に対してデータ通信接続を提供するべく、ＬＡＮカードであってもよい。また、無線リンクを実装することもできる。任意のこのような実装形態においては、ネットワークインターフェイス５１８は、様々なタイプの情報を表すデジタルデータストリームを搬送する電気、電磁、又は光信号を送信及び受信している。
【０１５０】
コンピュータシステム５００は、１つ又は複数のネットワーク、ネットワークリンク、及びネットワークインターフェイス５１８を通じて、メッセージを送信することが可能であり、且つ、プログラムコードを含むデータを受信することができる。インターネットの例においては、サーバーは、要求されたアプリケーションプログラムのコードをインターネット、ＩＳＰ、ローカルネットワーク、及びネットワークインターフェイス５１８を通じて送信することができよう。
【０１５１】
受け取られたコードは、受け取られるのに伴って、１つ又は複数のプロセッサ５０４によって実行されてもよく、且つ／又は、後で実行するべく、ストレージ装置５１０又はその他の不揮発性のストレージ内において保存されてもよい。
【０１５２】
以上の節において記述されているプロセス、方法、及びアルゴリズムのそれぞれは、１つ又は複数のコンピュータシステム又はコンピュータハードウェアを有するコンピュータプロセスによって実行されるコードモジュールとして実施されてもよく、且つ、これにより、完全に又は部分的に、自動化されてもよい。プロセス及びアルゴリズムは、アプリケーション固有の回路において、部分的に又は完全に実装されてもよい。
【０１５３】
上述の様々な特徴及びプロセスは、互いに独立的に使用されてもよく、或いは、様々な方式によって組み合わせられてもよい。すべての可能な組合せ及びサブ組合せは、本開示の範囲に含まれることが意図されている。これに加えて、特定の方法又はプロセスブロックは、いくつかの実装形態においては、省略されてもよい。また、本明細書において記述されている方法及びプロセスは、任意の特定のシーケンスに限定されるものではなく、且つ、これらに関係するブロック及び状態は、適するその他のシーケンスにおいて実行することができる。例えば、記述されているブロック又は状態は、具体的に開示されているもの以外の順序において実行されてもよく、或いは、複数のブロック又は状態が、単一のブロック又は状態において組み合わせられてもよい。例示用のブロック又は状態は、連続的に、並行して、或いは、なんらかのその他の方式により、実行されてもよい。ブロック又は状態は、開示されている例示用の実施形態に追加されてもよく、或いは、これから除去されてもよい。本明細書において記述されている例示用のシステム及びコンポーネントは、記述されているものとは異なる方式により、構成されてもよい。例えば、要素は、開示されている例示用の実施形態に追加されてもよく、これから除去されてもよく、或いは、これらとの比較において再構成されてもよい。
【０１５４】
本明細書において記述されている例示用の方法の様々な動作は、少なくとも部分的に、アルゴリズムにより、実行されてもよい。アルゴリズムは、メモリ（例えば、上述の一時的ではないコンピュータ可読ストレージ媒体）内において保存されたプログラムコード又は命令に含まれていてもよい。このようなアルゴリズムは、機械学習アルゴリズムを有することができる。いくつかの実施形態においては、機械学習アルゴリズムは、機能を実行するように明示的にコンピュータをプログラミングすることはできないが、機能を実行する予測モデルを生成するべく、トレーニングデータから学習することができる。
【０１５５】
本明細書において記述されている例示用の方法の様々な動作は、少なくとも部分的に、関連する動作を実行するように、（例えば、ソフトウェアによって）一時的に構成された、或いは、永久的に構成された、１つ又は複数のプロセッサによって実行することができる。一時的に構成されているのか又は永久的に構成されているのかとは無関係に、このようなプロセッサは、本明細書において記述されている１つ又は複数の動作又は機能を実行するべく動作する、プロセッサ実装されたエンジンを構成することができる。
【０１５６】
同様に、本明細書において記述されている方法は、少なくとも部分的にプロセッサ実装されてもよく、この場合に、特定の１つ又は複数のプロセッサは、ハードウェアの一例である。例えば、方法の動作のうちの少なくともいくつかは、１つ又は複数のプロセッサ又はプロセッサ実装されたエンジンによって実行されてもよい。更には、１つ又は複数のプロセッサは、「クラウド演算」環境内において、或いは、「ソフトウェアアズアサービス（Ｓａａｓ：Ｓｏｆｔｗａｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅ）」として、関連する動作の実行をサポートするように動作することもできる。例えば、動作のうちの少なくともいくつかは、これらの動作がネットワーク（例えば、インターネット）を介して、且つ、１つ又は複数の適切なインターフェイス（例えば、アプリケーションプログラムインターフェイス（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ））を介して、アクセス可能である状態において、（プロセッサを含む機械の例としての）コンピュータのグループによって実行されてもよい。
【０１５７】
特定の動作の実行は、単一の機械内に存在するのみならず、いくつかの機械に跨って配備された、プロセッサに跨って分散させられてもよい。いくつかの例示用の実施形態においては、プロセッサ又はプロセッサ実装されたエンジンは、単一の地理的場所内（例えば、自宅環境内、オフィス環境内、又はサーバーファーム内）において配置されてもよい。その他の例示用の実施形態においては、プロセッサ又はプロセッサ実装されたエンジンは、いくつかの地理的場所に跨って分散させられてもよい。
【０１５８】
本明細書の全体を通じて、複数のインスタンスにより、単一のインスタンスとして記述されているコンポーネント、動作、又は構造を実装することができる。１つ又は複数の方法の個々の動作が、別個の動作として図示及び記述されているが、個々の動作のうちの１つ又は複数が同時に実行されてもよく、従って、動作が図示の順序において実行されることを必要としているものは、なにもない。例示用の構成において別個のコンポーネントとして提示されている構造及び機能は、組み合わせられた構造又はコンポーネントとして実装されてもよい。同様に、単一のコンポーネントとして提示されている構造及び機能も、別個のコンポーネントとして実装されてもよい。これらの及びその他の変更、変形、追加、及び改善は、本明細書における主題の範囲に含まれる。
【０１５９】
以上、特定の例示用の実施形態を参照し、主題の概要について説明したが、本開示の実施形態のより広い範囲を逸脱することなしに、これらの実施形態に対して様々な変更及び変形を実施することができる。本主題のこのような実施形態は、本明細書においては、利便を目的としてのみ、且つ、複数が実際に開示されている場合に、本出願の範囲を任意の単一の開示又は概念に自発的に限定する意図を伴うことなしに、個々に又は集合的に、「発明」という用語のみにより、参照されている場合がある。「発明を実施するための形態」は、限定の意味において解釈されてはならず、且つ、様々な実施形態の範囲は、添付の請求項に許される均等物の完全な範囲と共に、添付の請求項によってのみ定義される。
【図１】
2019537744.tif 000003
【図２】
2019537744.tif 000004
【図３Ａ】
2019537744.tif 000005
【図３Ｂ】
2019537744.tif 000006
【図４Ａ】
2019537744.tif 000007
【図４Ｂ】
2019537744.tif 000008
【図５】
2019537744.tif 000009
【国際調査報告】
2019537744.tif 000010
2019537744.tif 000011