IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ コインプラグ インコーポレイテッドの特許一覧

特許7539170ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法及びそれを利用したアグリゲータ端末
<>
  • 特許-ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法及びそれを利用したアグリゲータ端末 図1
  • 特許-ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法及びそれを利用したアグリゲータ端末 図2
  • 特許-ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法及びそれを利用したアグリゲータ端末 図3
  • 特許-ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法及びそれを利用したアグリゲータ端末 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-15
(45)【発行日】2024-08-23
(54)【発明の名称】ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法及びそれを利用したアグリゲータ端末
(51)【国際特許分類】
   H04L 9/32 20060101AFI20240816BHJP
【FI】
H04L9/32 200C
H04L9/32 200Z
【請求項の数】 12
(21)【出願番号】P 2022178905
(22)【出願日】2022-11-08
(65)【公開番号】P2024057554
(43)【公開日】2024-04-24
【審査請求日】2022-11-08
(31)【優先権主張番号】10-2022-0130237
(32)【優先日】2022-10-12
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】519371987
【氏名又は名称】シーピーラブス インコーポレイテッド
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】李勝禾
(72)【発明者】
【氏名】李廷赫
(72)【発明者】
【氏名】魚浚善
【審査官】青木 重徳
(56)【参考文献】
【文献】特表2020-517169(JP,A)
【文献】米国特許出願公開第2020/0082399(US,A1)
【文献】五十嵐 孝洋 ほか,ブロックチェーンとフォグノードを用いたIoT機器の認証・認可,電子情報通信学会技術研究報告 [online],日本,一般社団法人電子情報通信学会,2021年02月21日,Vol.120 No.384,pp. 102-107
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法において、
(a)複数のフィーダ端末のそれぞれがコミットメントキーとそれぞれのオフチェーンデータとを利用して生成したそれぞれのコミットメント、公開キーを利用してそれぞれの前記オフチェーンデータを暗号化したそれぞれの暗号化データ、及び、それぞれのフィーダゼロ知識証明キーを利用して前記コミットメントとそれぞれの前記暗号化データとに対応するそれぞれの前記オフチェーンデータが同一であることを証明したそれぞれのデータ証明値を含むそれぞれのデータフィーダトランザクションを前記ブロックチェーンネットワークに登録すると、アグリゲータ端末が、予め設定された周期に応じて特定の周期の間、前記ブロックチェーンネットワークに登録された第1データフィーダトランザクション乃至第k(前記kは1以上の整数である)データフィーダトランザクションを獲得する段階;及び
(b)前記アグリゲータ端末が、(i)前記第1データフィーダトランザクション乃至前記第kデータフィーダトランザクションのそれぞれにおいて、第i(前記iは1以上でありk以下である整数である)フィーダゼロ知識証明キーを利用して第iデータ証明値を検証し、前記公開キーに対応する秘密キーを利用して第i暗号化データを復号化することで第i復号化データを生成することによって第1復号化データ乃至第k復号化データを獲得することで、(ii)予め設定された演算器を通じて前記第1復号化データ乃至前記第k復号化データを演算することでオンチェーンデータを生成し、アグリゲータゼロ知識証明キーを利用して前記オンチェーンデータが前記予め設定された演算器により前記第1復号化データ乃至前記第k復号化データを演算することで生成されたことを証明した演算証明値を生成し、(iii)前記オンチェーンデータと前記演算証明値とを前記ブロックチェーンネットワークに登録する段階;
を含む方法。
【請求項2】
(a0)前記アグリゲータ端末が、トラストサードパーティにより発行された前記コミットメントキー、前記公開キー、及び前記アグリゲータゼロ知識証明キーを前記ブロックチェーンネットワークに登録する段階;
をさらに含む、請求項1に記載の方法。
【請求項3】
前記(a)段階で、前記複数のフィーダ端末のうちいずれか一つである特定のフィーダ端末は前記ブロックチェーンネットワークから前記コミットメントキーと前記公開キーとを獲得することで特定のオフチェーンデータに対する特定のコミットメントと特定の暗号化データとを生成し、前記トラストサードパーティにより発行された特定のフィーダゼロ知識証明キーを利用して特定のデータ証明値を生成し、前記特定のコミットメント、前記特定の暗号化データ、及び、前記特定のデータ証明値を含む特定のデータフィーダトランザクションを前記ブロックチェーンネットワークに登録する、請求項2に記載の方法。
【請求項4】
前記特定のフィーダゼロ知識証明キーは、前記特定のフィーダ端末が前記ブロックチェーンネットワークから獲得した前記公開キーを利用して前記トラストサードパーティに発行を要請することによって前記トラストサードパーティが前記コミットメントキーと前記公開キーとを利用して生成したものである、請求項3に記載の方法。
【請求項5】
前記アグリゲータ端末は、前記トラストサードパーティに前記予め設定された演算器に対するキーの発行を要請することによって前記トラストサードパーティ、第1キー生成モジュールに第1保安パラメータを入力することで前記コミットメントキーを生成させ、第2キー生成モジュールに第2保安パラメータを入力することで前記秘密キーと前記公開キーとを生成させ、第3キー生成モジュールに前記コミットメントキーと前記予め設定された演算器とを入力することで前記アグリゲータゼロ知識証明キーを生成させた後、前記コミットメントキー、前記秘密キー、前記公開キー、及び前記アグリゲータゼロ知識証明キーを前記アグリゲータ端末に伝送させる、請求項2に記載の方法。
【請求項6】
前記(b)段階で、
前記アグリゲータ端末は、第iデータフィーダトランザクションを登録した第iフィーダ端末が前記ブロックチェーンネットワークに登録した第iフィーダゼロ知識証明キーを前記ブロックチェーンネットワークから獲得することで前記第iデータ証明値を検証する、請求項1に記載の方法。
【請求項7】
ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供するアグリゲータ端末において、
ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供するためのインストラクションが格納されたメモリ;及び
前記メモリに格納された前記インストラクションによってゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供するための動作を遂行するプロセッサ;
を含み、
前記プロセッサは、(I)複数のフィーダ端末のそれぞれがコミットメントキーとそれぞれのオフチェーンデータとを利用して生成したそれぞれのコミットメント、公開キーを利用してそれぞれの前記オフチェーンデータを暗号化したそれぞれの暗号化データ、及び、それぞれのフィーダゼロ知識証明キーを利用して前記コミットメントとそれぞれの前記暗号化データとに対応するそれぞれの前記オフチェーンデータが同一であることを証明したそれぞれのデータ証明値を含むそれぞれのデータフィーダトランザクションを前記ブロックチェーンネットワークに登録すると、予め設定された周期に応じて特定の周期の間、前記ブロックチェーンネットワークに登録された第1データフィーダトランザクション乃至第k(前記kは1以上の整数である)データフィーダトランザクションを獲得するプロセス、及び(II)(i)前記第1データフィーダトランザクション乃至前記第kデータフィーダトランザクションのそれぞれにおいて、第i(前記iは1以上でありk以下である整数である)フィーダゼロ知識証明キーを利用して第iデータ証明値を検証し、前記公開キーに対応する秘密キーを利用して第i暗号化データを復号化することで第i復号化データを生成することによって第1復号化データ乃至第k復号化データを獲得することで、(ii)予め設定された演算器を通じて前記第1復号化データ乃至前記第k復号化データを演算することでオンチェーンデータを生成し、アグリゲータゼロ知識証明キーを利用して前記オンチェーンデータが前記予め設定された演算器により前記第1復号化データ乃至前記第k復号化データを演算することで生成されたことを証明した演算証明値を生成し、(iii)前記オンチェーンデータと前記演算証明値とを前記ブロックチェーンネットワークに登録するプロセスを遂行するアグリゲータ端末。
【請求項8】
前記プロセッサは、前記(I)プロセスの以前に、トラストサードパーティにより発行された前記コミットメントキー、前記公開キー、及び前記アグリゲータゼロ知識証明キーを前記ブロックチェーンネットワークに登録するプロセスをより遂行するアグリゲータ、請求項7に記載の端末。
【請求項9】
前記プロセッサは、前記(I)プロセスで、前記複数のフィーダ端末のうちいずれか一つである特定のフィーダ端末は前記ブロックチェーンネットワークから前記コミットメントキーと前記公開キーとを獲得することで特定のオフチェーンデータに対する特定のコミットメントと特定の暗号化データとを生成し、前記トラストサードパーティにより発行された特定のフィーダゼロ知識証明キーを利用して特定のデータ証明値を生成し、前記特定のコミットメント、前記特定の暗号化データ、及び、前記特定のデータ証明値を含む特定のデータフィーダトランザクションを前記ブロックチェーンネットワークに登録させる、請求項8に記載のアグリゲータ端末。
【請求項10】
前記特定のフィーダゼロ知識証明キーは、前記特定のフィーダ端末が前記ブロックチェーンネットワークから獲得した前記公開キーを利用して前記トラストサードパーティに発行を要請することによって前記トラストサードパーティが前記コミットメントキーと前記公開キーとを利用して生成したものである、請求項9に記載のアグリゲータ端末。
【請求項11】
前記プロセッサは、前記トラストサードパーティに前記予め設定された演算器に対するキーの発行を要請することによって前記トラストサードパーティ、第1キー生成モジュールに第1保安パラメータを入力することで前記コミットメントキーを生成させ、第2キー生成モジュールに第2保安パラメータを入力することで前記秘密キーと前記公開キーとを生成させ、第3キー生成モジュールに前記コミットメントキーと前記予め設定された演算器とを入力することで前記アグリゲータゼロ知識証明キーを生成させた後、前記コミットメントキー、前記秘密キー、前記公開キー、及び前記アグリゲータゼロ知識証明キーを前記アグリゲータ端末に伝送させる、請求項8に記載のアグリゲータ端末。
【請求項12】
前記プロセッサは、前記(II)プロセスで、第iデータフィーダトランザクションを登録した第iフィーダ端末が前記ブロックチェーンネットワークに登録した第iフィーダゼロ知識証明キーを前記ブロックチェーンネットワークから獲得することで前記第iデータ証明値を検証する、請求項7に記載のアグリゲータ端末。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法及びそれを利用したアグリゲータ端末(METHOD FOR PROVIDING ORACLE SERVICE OF BLOCKCHAIN NETWORK BY USING ZERO-KNOWLEDGE PROOF AND AGGREGATOR TERMINAL USING THE SAME)に関し、より詳細には、オフチェーンデータを公開することなく、オンチェーンデータがオフチェーンデータから生成されたことを証明することができるようにし、オンチェーンデータの信頼性を向上させることができるようにしたゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法及びそれを利用したアグリゲータ端末に関する。
【背景技術】
【0002】
ブロックチェーンネットワークの分野において、オラクル(oracle)とは、ブロックチェーンネットワークの外にあるデータをブロックチェーンネットワークの中に持ち込むか、ブロックチェーンネットワークの内部のデータを外部に送ることを指し、孤立したブロックチェーンの生態系を外部と連結する役割をする。この際、ブロックチェーンネットワークの外にあるデータをオフチェーンデータといい、オフチェーンデータがブロックチェーンネットワークの中に入ってきたものをオンチェーンデータという。
【0003】
ブロックチェーンネットワークは、データを含むブロックをチェーンで連結してブロックチェーンを生成する、データの偽変造がほとんど不可能な分散元帳技術であるが、データがブロックチェーンネットワークの中に入ってきてこそブロックチェーンとして管理することができる。データがブロックチェーンネットワークの中に入ってこないか、あるいはブロックチェーンネットワークの中に入ってくる過程で偽変造が発生すると、例えそのデータがブロックチェーンとして管理されるとしても信頼し難い。
【0004】
現実世界にあるデータがブロックチェーンネットワークの中に入ってくる過程は思うほど容易ではない。オフチェーンデータがオンチェーンデータに変わるためには、オフチェーンデータをブロックチェーンネットワークの中に入れてくれる中間者が必要である。オラクルの問題は、このような中間者をいかにして信頼できるかという問題である。
【0005】
このようなオラクルの問題を解決するために様々な方法が導入されており、 仮想通貨の所有者の投票(voting)を通じて決定するか、様々なデータの中央値(median)を選択するか、現実世界とブロックチェーンとの間で信頼できるデータを提供する中間者(middleware)をおく方法など、ブロックチェーンオラクルの問題を解決するための様々な方案が提示されている。
【0006】
現在、オラクルサービスを提供する中間者の例として、オラクライズ(Oraclize)、チェーンリンク(Chainlink)、アイキャッシュ(iCash)などがある。
【0007】
一例として、チェーンリンクは中央集権型取引所のトークンの価格をブロックチェーンネットワークのスマートコントラクトに格納して提供することによって、他のブロックチェーンネットワークサービスにおいてトークンの価格を使用することができるようにオラクルサービスを提供し、多くのDeFiサービスの提供者が登録されたトークンの価格を利用して様々なサービスを提供することができるようにしているなどのように、現在オラクルサービスを提供する企業はオフチェーンデータをブロックチェーンネットワークのスマートコントラクトに格納してオンチェーンデータとして提供することによって、オンチェーンデータに対する信頼性を提供している。
【0008】
しかし、このような従来のオラクルサービスでは、オラクルサービスを提供する業者が指定したデータフィーダ(feeder)からオフチェーンデータの提供を受け、これに対するオンチェーンデータを公開することで信頼性を提供するが、公開されたオンチェーンデータが実際のデータフィーダから提供されたデータなのか否か、最終的に加工されたオンチェーンデータがデータフィーダから受けた実際のオフチェーンデータを使用したか否か対する信頼性を担保することはできない。
【0009】
最終的に加工されたオンチェーンデータがデータフィーダから受けた実際のオフチェーンデータを使用したか否か対する信頼性を担保にするためには、データフィーダから受けたオフチェーンデータ自体を公開すればいいが、オフチェーンデータが公開される場合にはオフチェーンデータを予め利用したフロントランニング(front running)攻撃が可能であるため、オラクルサービス自体に対する信頼性を担保できなくなるという問題点がある。
【0010】
従って、本出願人はフィーダから提供されたオフチェーンデータを保護しながら、オラクルサービスを提供するオンチェーンデータがオフチェーンデータを使用して生成されたことを信頼できるように方案を提案する。
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明は、上述した問題点をすべて解決することをその目的とする。
【0012】
また、本発明は、フィーダから提供されたオフチェーンデータを保護し、オフチェーンデータの信頼性を担保にすることができるようにすることを他の目的とする。
【0013】
また、本発明は、オフチェーンデータを利用して生成したオンチェーンデータの信頼性を担保にすることができるようにすることを他の目的とする。
【0014】
また、本発明は、オフチェーンデータを保護し、オンチェーンデータがオフチェーンデータから生成されたことを信頼できるようにすることを他の目的とする。
【課題を解決するための手段】
【0015】
本発明の一実施例によると、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法において、(a)複数のフィーダ端末のそれぞれがコミットメントキーとそれぞれのオフチェーンデータとを利用して生成したそれぞれのコミットメント、公開キーを利用してそれぞれの前記オフチェーンデータを暗号化したそれぞれの暗号化データ、及び、それぞれのフィーダゼロ知識証明キーを利用して前記コミットメントとそれぞれの前記暗号化データとに対応するそれぞれの前記オフチェーンデータが同一であることを証明したそれぞれのデータ証明値を含むそれぞれのデータフィーダトランザクションを前記ブロックチェーンネットワークに登録すると、アグリゲータ端末が、予め設定された周期に応じて特定の周期の間、前記ブロックチェーンネットワークに登録された第1データフィーダトランザクション乃至第k(前記kは1以上の整数である)データフィーダトランザクションを獲得する段階;及び(b)前記アグリゲータ端末が、(i)前記第1データフィーダトランザクション乃至前記第kデータフィーダトランザクションのそれぞれにおいて、第i(前記iは1以上でありk以下である整数である)フィーダゼロ知識証明キーを利用して第iデータ証明値を検証し、前記公開キーに対応する秘密キーを利用して第i暗号化データを復号化することで第i復号化データを生成することによって第1復号化データ乃至第k復号化データを獲得することで、(ii)予め設定された演算器を通じて前記第1復号化データ乃至前記第k復号化データを演算することでオンチェーンデータを生成し、アグリゲータゼロ知識証明キーを利用して前記オンチェーンデータが前記予め設定された演算器により前記第1復号化データ乃至前記第k復号化データを演算することで生成されたことを証明した演算証明値を生成し、(iii)前記オンチェーンデータと前記演算証明値とを前記ブロックチェーンネットワークに登録する段階;を含む方法。
【0016】
(a0)前記アグリゲータ端末が、トラストサードパーティにより発行された前記コミットメントキー、前記公開キー、及び前記アグリゲータゼロ知識証明キーを前記ブロックチェーンネットワークに登録する段階;をさらに含む。
【0017】
前記(a)段階で、前記複数のフィーダ端末のうちいずれか一つである特定のフィーダ端末は前記ブロックチェーンネットワークから前記コミットメントキーと前記公開キーとを獲得することで特定のオフチェーンデータに対する特定のコミットメントと特定の暗号化データとを生成し、前記トラストサードパーティにより発行された特定のフィーダゼロ知識証明キーを利用して特定のデータ証明値を生成し、前記特定のコミットメント、前記特定の暗号化データ、及び、前記特定のデータ証明値を含む特定のデータフィーダトランザクションを前記ブロックチェーンネットワークに登録する。
【0018】
前記特定のフィーダゼロ知識証明キーは、前記特定のフィーダ端末が前記ブロックチェーンネットワークから獲得した前記公開キーを利用して前記トラストサードパーティに発行を要請することによって前記トラストサードパーティが前記コミットメントキーと前記公開キーとを利用して生成したものである。
【0019】
前記アグリゲータ端末は、前記トラストサードパーティに前記予め設定された演算器に対するキーの発行を要請することによって前記トラストサードパーティをもって、第1キー生成モジュールに第1保安パラメータを入力することで前記コミットメントキーを生成させ、第2キー生成モジュールに第2保安パラメータを入力することで前記秘密キーと前記公開キーとを生成させ、第3キー生成モジュールに前記コミットメントキーと前記予め設定された演算器とを入力することで前記アグリゲータゼロ知識証明キーを生成させた後、前記コミットメントキー、前記秘密キー、前記公開キー、及び前記アグリゲータゼロ知識証明キーを前記アグリゲータ端末に伝送させる。
【0020】
前記(b)段階で、前記アグリゲータ端末は、第iデータフィーダトランザクションを登録した第iフィーダ端末が前記ブロックチェーンネットワークに登録した第iフィーダゼロ知識証明キーを前記ブロックチェーンネットワークから獲得することで前記第iデータ証明値を検証する。
【0021】
また、本発明の他の実施例によると、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供するアグリゲータ端末において、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供するためのインストラクションが格納されたメモリ;及び前記メモリに格納された前記インストラクションによってゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供するための動作を遂行するプロセッサ;を含み、前記プロセッサは、(I)複数のフィーダ端末のそれぞれがコミットメントキーとそれぞれのオフチェーンデータとを利用して生成したそれぞれのコミットメント、公開キーを利用してそれぞれの前記オフチェーンデータを暗号化したそれぞれの暗号化データ、及び、それぞれのフィーダゼロ知識証明キーを利用して前記コミットメントとそれぞれの前記暗号化データとに対応するそれぞれの前記オフチェーンデータが同一であることを証明したそれぞれのデータ証明値を含むそれぞれのデータフィーダトランザクションを前記ブロックチェーンネットワークに登録すると、予め設定された周期に応じて特定の周期の間、前記ブロックチェーンネットワークに登録された第1データフィーダトランザクション乃至第k(前記kは1以上の整数である)データフィーダトランザクションを獲得するプロセス、及び(II)(i)前記第1データフィーダトランザクション乃至前記第kデータフィーダトランザクションのそれぞれにおいて、第i(前記iは1以上でありk以下である整数である)フィーダゼロ知識証明キーを利用して第iデータ証明値を検証し、前記公開キーに対応する秘密キーを利用して第i暗号化データを復号化することで第i復号化データを生成することによって第1復号化データ乃至第k復号化データを獲得することで、(ii)予め設定された演算器を通じて前記第1復号化データ乃至前記第k復号化データを演算することでオンチェーンデータを生成し、アグリゲータゼロ知識証明キーを利用して前記オンチェーンデータが前記予め設定された演算器により前記第1復号化データ乃至前記第k復号化データを演算することで生成されたことを証明した演算証明値を生成し、(iii)前記オンチェーンデータと前記演算証明値とを前記ブロックチェーンネットワークに登録するプロセスを遂行するアグリゲータ端末。
【0022】
前記プロセッサは、前記(I)プロセスの以前に、トラストサードパーティにより発行された前記コミットメントキー、前記公開キー、及び前記アグリゲータゼロ知識証明キーを前記ブロックチェーンネットワークに登録するプロセスをより遂行するアグリゲータ。
【0023】
前記プロセッサは、前記(I)プロセスで、前記複数のフィーダ端末のうちいずれか一つである特定のフィーダ端末は前記ブロックチェーンネットワークから前記コミットメントキーと前記公開キーとを獲得することで特定のオフチェーンデータに対する特定のコミットメントと特定の暗号化データとを生成し、前記トラストサードパーティにより発行された特定のフィーダゼロ知識証明キーを利用して特定のデータ証明値を生成し、前記特定のコミットメント、前記特定の暗号化データ、及び、前記特定のデータ証明値を含む特定のデータフィーダトランザクションを前記ブロックチェーンネットワークに登録させる。
【0024】
前記特定のフィーダゼロ知識証明キーは、前記特定のフィーダ端末が前記ブロックチェーンネットワークから獲得した前記公開キーを利用して前記トラストサードパーティに発行を要請することによって前記トラストサードパーティが前記コミットメントキーと前記公開キーとを利用して生成したものである。
【0025】
前記プロセッサは、前記トラストサードパーティに前記予め設定された演算器に対するキーの発行を要請することによって前記トラストサードパーティをもって、第1キー生成モジュールに第1保安パラメータを入力することで前記コミットメントキーを生成させ、第2キー生成モジュールに第2保安パラメータを入力することで前記秘密キーと前記公開キーとを生成させ、第3キー生成モジュールに前記コミットメントキーと前記予め設定された演算器とを入力することで前記アグリゲータゼロ知識証明キーを生成させた後、前記コミットメントキー、前記秘密キー、前記公開キー、及び前記アグリゲータゼロ知識証明キーを前記アグリゲータ端末に伝送させる。
【0026】
前記プロセッサは、前記(II)プロセスで、第iデータフィーダトランザクションを登録した第iフィーダ端末が前記ブロックチェーンネットワークに登録した第iフィーダゼロ知識証明キーを前記ブロックチェーンネットワークから獲得することで前記第iデータ証明値を検証する。
【発明の効果】
【0027】
本発明によると、次のような効果がある。
【0028】
本発明は、フィーダから提供されたオフチェーンデータを保護し、オフチェーンデータの信頼性を担保することができるようになる。
【0029】
また、本発明は、オフチェーンデータを利用して生成したオンチェーンデータの信頼性を担保することができるようになる。
【0030】
また、本発明は、オフチェーンデータを保護し、オンチェーンデータがオフチェーンデータから生成されたことを信頼できるようになる。
【図面の簡単な説明】
【0031】
図1】本発明の一実施例において、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供するシステムを簡略に示した図面である。
図2】本発明の一実施例において、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法でキーの生成及び登録する過程を簡略に示した図面である。
図3】本発明の一実施例において、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法でフィーダ端末がオフチェーンデータをブロックチェーンネットワークに登録する過程を簡略に示した図面である。
図4】本発明の一実施例において、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法でアグリゲータ端末がフィーダ端末により提供されたオフチェーンデータをオンチェーンデータとして提供する過程を簡略に示した図面である。
【発明を実施するための形態】
【0032】
後述する本発明に対する詳細な説明は、本発明が実施され得る特定の実施例を例示として示す添付図面を参照する。これらの実施例は、当業者が本発明を実施することができるように十分詳細に説明される。本発明の多様な実施例は互いに異なるが、相互に排他的である必要はないことが理解されるべきである。例えば、ここに記載されている特定の形状、構造及び特性は、一実施例に関連して本発明の精神及び範囲を逸脱せず、かつ他の実施例で具現され得る。また、それぞれの開示された実施例内の個別の構成要素の位置又は配置は、本発明の精神及び範囲を逸脱せず、かつ変更され得ることが理解されるべきである。したがって、後述の詳細な説明は、限定的な意味として受け取ろうとするものではなく、本発明の範囲は適切に説明されるのであれば、その請求項が主張することと均等な全ての範囲とともに添付された請求項によってのみ限定される。図面において類似の参照符号は、様々な側面にわたって同一であるか、類似する機能を指す。
【0033】
以下、本発明の属する技術分野において通常の知識を有する者が本発明を容易に実施し得るようにするために、本発明の好ましい実施例について、添付された図面を参照して詳細に説明することにする。
【0034】
図1は本発明の一実施例において、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供するシステムを簡略に示した図面であり、図1を参照すると、システム1000は複数のフィーダ端末100_1、100_2、…、100_n、アグリゲータ端末200、トラストサードパーティ(trusted third party)300、及び、ブロックチェーンネットワーク400を含むことができる。
【0035】
まず、複数のフィーダ端末100_1、100_2、…、100_nのそれぞれは、オフチェーンデータに対するコミットメントと暗号化データとを生成し、ゼロ知識証明のためのデータ証明値を生成し、コミットメント、暗号化データ、及びデータ証明値をブロックチェーンネットワーク400に登録する主体であって、IoT装置、データベース、PC、モバイルコンピュータ、PDA/EDA、携帯電話、スマートフォン、タブレット、情報提供サーバ、資料収集ボット(bot)、人工知能など現実世界で生成される様々な情報またはこれらを利用した分析/統計資料などを提供するすべての装置を含むことができる。この際、オフチェーンデータは投票情報、価格情報、決済情報、物流情報、ニュースなどの各種情報を分析した分析情報、統計情報、センシング情報など現実世界で生成されるか、これらを利用して生成されたすべての情報を含むことができる。また、複数のフィーダ端末100_1、100_2、…、100_nのそれぞれは、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供するためのインストラクションが格納されたメモリと、メモリに格納されたインストラクションによってゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供するための動作を遂行するプロセッサとを含むことができる。
【0036】
具体的に、複数のフィーダ端末100_1、100_2、…、100_nのそれぞれは、 典型的にコンピューティング装置(例えば、コンピュータプロセッサ、メモリ、ストレージ、入力装置及び出力装置、その他既存のコンピューティング装置の構成要素を含むことができる装置;ルータ、スイッチなどのような電子通信装置;ネットワーク接続ストレージ(NAS)及びストレージ領域ネットワーク(SAN)のような電子情報ストレージシステム)及びコンピュータソフトウェア(即ち、コンピューティング装置をもって特定の方式で機能させる各インストラクション)の組合せを利用して所望のシステム性能を達成するものであり得る。
【0037】
このようなコンピューティング装置の通信部は、連動される他のコンピューティング装置と要請及び応答を送受信することができ、一例としてそのような要請及び応答は同一のTCPセッションによって行われ得るが、これに限定されるわけではなく、例えばUDPデータグラムとしても送受信され得る。
【0038】
また、コンピューティング装置のプロセッサはMPU(Micro Processing Unit)またはCPU(Central Processing Unit)、キャッシュメモリ(Cache Memory)、データバス(Data Bus)などのハードウェア構成を含むことができる。また、コンピューティング装置はオペレーティングシステム、特定の目的を遂行するアプリケーションのソフトウェア構成をさらに含むことができる。
【0039】
次に、アグリゲータ端末200は複数のフィーダ端末100_1、100_2、…、100_nにより登録された暗号化データを復号化し演算することでオンチェーンデータを生成し、オンチェーンデータとゼロ知識証明のための演算証明値とをブロックチェーンネットワーク400に登録することによってオラクルサービスを提供する主体であって、サーバ、PC、モバイルコンピュータ、PDA/EDA、携帯電話、スマートフォン、タブレットなどを含むことができるが、これに限定されるわけではなく、コンピュータ演算を遂行するすべての装置を含むことができる。また、アグリゲータ端末200はゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供するためのインストラクションが格納されたメモリと、メモリに格納されたインストラクションによってゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供するための動作を遂行するプロセッサとを含むことができる。
【0040】
具体的に、アグリゲータ端末200は、典型的にコンピューティング装置(例えば、コンピュータプロセッサ、メモリ、ストレージ、入力装置及び出力装置、その他既存のコンピューティング装置の構成要素を含むことができる装置;ルータ、スイッチなどのような電子通信装置;ネットワーク接続ストレージ(NAS)及びストレージ領域ネットワーク(SAN)のような電子情報ストレージシステム)及びコンピュータソフトウェア(即ち、コンピューティング装置をもって特定の方式で機能させる各インストラクション)の組合せを利用して所望のシステム性能を達成するものであり得る。
【0041】
このようなコンピューティング装置の通信部は、連動される他のコンピューティング装置と要請及び応答を送受信することができ、一例としてそのような要請及び応答は同一のTCPセッションによって行われ得るが、これに限定されるわけではなく、例えばUDPデータグラムとしても送受信され得る。
【0042】
また、コンピューティング装置のプロセッサはMPU(Micro Processing Unit)またはCPU(Central Processing Unit)、キャッシュメモリ(Cache Memory)、データバス(Data Bus)などのハードウェア構成を含むことができる。また、コンピューティング装置はオペレーティングシステム、特定の目的を遂行するアプリケーションのソフトウェア構成をさらに含むことができる。
【0043】
次に、トラストサードパーティ300はゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスに利用されるキー(key)を生成する主体であって、PC、モバイルコンピュータ、PDA/EDA、携帯電話、スマートフォン、タブレット、サーバなどを含むことができるが、これに限定されるわけではなく、コンピュータ演算を遂行するすべてのコンピューティング装置を含むことができる。一方、トラストサードパーティ300はブロックチェーンネットワーク400の仮想マシーンにおいて動作するスマートコントラクトで具現されるか、アグリゲータ端末200に連動されたコンピューティング装置でも具現され得る。
【0044】
次に、ブロックチェーンネットワーク400は多数のブロックチェーンノードにより具現されるものであって、データに対するブロックをチェーンで連結したブロックチェーンを分散元帳に記録するデータ分散処理を遂行する主体であり得る。
【0045】
このように構成された本発明の一実施例において、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供するシステムを通じて、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法を説明すると以下の通りである。
【0046】
まず、図2を参照して、本発明の一実施例において、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法でゼロ知識証明に利用するためのキーを生成する過程を説明すると以下の通りである。
【0047】
ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供するためのキーを獲得するために、アグリゲータ端末200がトラストサードパーティ300に予め設定された演算器に対するキーの発行を要請するS11ことができる。
【0048】
この際、予め設定された演算器はオフチェーンデータを加工してオンチェーンデータを生成するための演算器であり、オフチェーンデータをオンチェーンデータに変換するための演算モジュールまたは演算ロジックを含むことができる。
【0049】
例えば、演算器はオフチェーンデータの特性を数値で表す代表値を演算することで、オフチェーンデータの平均、中央値、最頻値、範囲、四分位数範囲、分散、標準偏差などを演算する関数であり得る。また、演算器は地域別製品の販売情報を利用して地域別製品の在庫情報を統計化する関数でもある。また、演算器はニュース、インターネットサイトなどの情報を利用して特定の結果を予測した予測情報を生成する関数でもあり得る。しかし、本発明では、演算器はこのような関数に限定されるわけではなく、現実世界の情報を加工して特定の類型の情報を生成する様々な関数を含むことができる。
【0050】
すると、トラストサードパーティ300は第1キー生成モジュールに第1保安パラメータを入力することでコミットメントキーを生成させ、第2キー生成モジュールに第2保安パラメータを入力することで秘密キーと公開キーとを生成させ、第3キー生成モジュールにコミットメントキーと予め設定された演算器とを入力することでアグリゲータゼロ知識証明キーを生成するS12ことができる。この際、第1保安パラメータと第2保安パラメータとは予め設定された演算器に対するキーの生成のために生成された保安パラメータであり得、第1保安パラメータと第2保安パラメータとは互いに異なる保安パラメータであるか、同一の保安パラメータであり得る。
【0051】
一例として、第1キー生成モジュールはPVC(Pedersen Vector Commitment)のキー生成アルゴリズムであり得、保安パラメータ(λ)を次のようなPVCキー生成アルゴリズムに入力することでコミットメントキーCKを出力させることができる。
【0052】
PVC.Keygen(λ)→(CK)
【0053】
しかし、本発明における第1キー生成モジュールはPVCに限定されるわけではなく、ゼロ知識証明のための様々なコミットメントスキーム(scheme)におけるキー生成モジュールを使用することができる。
【0054】
そして、第2キー生成モジュールはElgamal encryptionのキー生成アルゴリズムであり得、保安パラメータ(λ)を次のようなElgamalキー生成アルゴリズムに入力することで公開キーPKと秘密キーSKとを出力させることができる。
【0055】
Elgamal.Keygen(λ)→(PK,SK)
【0056】
しかし、本発明における第2キー生成モジュールはElgamal encryptionに限定されるわけではなく、公開キーと秘密キーとの非対称キーを利用してデータを暗号化及び復号化する様々な暗号化アルゴリズムにおけるキー生成モジュールを使用することができる。
【0057】
また、第3キー生成モジュールはCP-SNARK(simulation-extractable commit and prove succinct non-interactive argument of knowledge)のキー生成アルゴリズムであり得、コミットメントキーCKと演算器(R)とを次のようなCP-SNARKキー生成アルゴリズムに入力することでアグリゲータゼロ知識証明キーCRSaを出力させることができる。
【0058】
CP-SNARK.Keygen(CK,R)→CRSa
【0059】
しかし、本発明における第3キー生成モジュールはCP-SNARKに限定されるわけではなく、ゼロ知識証明のための証明値を生成し、これを検証することができるようにする様々なゼロ知識証明アルゴリズムにおけるキー生成モジュールを使用することができる。
【0060】
そして、トラストサードパーティ300は生成されたコミットメントキー、秘密キー、公開キー、及びアグリゲータゼロ知識証明キーをアグリゲータ端末200に発行するS13ことができる。
【0061】
以後、アグリゲータ端末200はトラストサードパーティ300により発行されたコミットメントキー、公開キー、及びアグリゲータゼロ知識証明キーをブロックチェーンネットワーク400に登録するS14ことができる。
【0062】
この際、アグリゲータ端末200はコミットメントキー、公開キー、及びアグリゲータゼロ知識証明キーを含むトランザクションをブロックチェーンネットワーク400にブロードキャスティングするか、コミットメントキー、公開キー、及びアグリゲータゼロ知識証明キーのそれぞれを含むトランザクションをブロックチェーンネットワーク400にブロードキャスティングすることができ、それに伴って、ブロックチェーンネットワーク400を構成するブロックチェーンノードの分散合意によりブロックが生成され、分散元帳のブロックチェーンに生成されたブロックが追加されることによってコミットメントキー、公開キー、及びアグリゲータゼロ知識証明キーがブロックチェーンネットワーク400に登録され得る。
【0063】
一方、複数のフィーダ端末100_1、100_2、・・・、100_nのうちいずれか一つである特定のフィーダ端末100_1はブロックチェーンネットワーク400から公開キーを獲得しS15、獲得された公開キーを利用してトラストサードパーティ300にキーの発行を要請するS16ことができる。
【0064】
この際、特定のフィーダ端末100_1はオフチェーンデータを提供するように協議された状態の権限者であり得る。また、特定のフィーダ端末100_1はブロックチェーンネットワーク400から公開キーを獲得したが、これとは異なり、アグリゲータ端末200から直接的に公開キーを獲得することもできる。
【0065】
すると、トラストサードパーティ300はコミットメントキーと公開キーとを利用してフィーダゼロ知識証明キーを生成しS17、特定のフィーダ端末100_1に発行するS18ことができる。
【0066】
この際、トラストサードパーティ300は第3キー生成モジュールにコミットメントキーと特定のフィーダ端末100_1から受信した公開キーとを入力することで特定のフィーダゼロ知識証明キーを生成することができる。
【0067】
以後、特定のフィーダ端末100_1はトラストサードパーティ300により発行された特定のフィーダゼロ知識証明キーをブロックチェーンネットワーク400に登録するS19ことができる。
【0068】
この際、特定のフィーダ端末100_1は特定のフィーダゼロ知識証明キーを含むトランザクションをブロックチェーンネットワーク400にブロードキャスティングすることができ、それに伴って、ブロックチェーンネットワーク400を構成するブロックチェーンノードの分散合意によりブロックが生成され、分散元帳のブロックチェーンに生成されたブロックが追加されることによって特定のフィーダゼロ知識証明キーがブロックチェーンネットワーク400に登録され得る。
【0069】
これを通じて、ブロックチェーンネットワーク400には本発明の一実施例において、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供するのに必要なコミットメントキー、公開キー、アグリゲータゼロ知識証明キー、及び複数のフィーダ端末のそれぞれに対するそれぞれのフィーダゼロ知識証明キーが登録され得る。
【0070】
次に、図3を参照して、本発明の一実施例において、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法でフィーダ端末がオフチェーンデータをブロックチェーンネットワークに登録する過程を説明すると以下の通りである。
【0071】
図2を参照した説明によると、コミットメントキー、公開キー、アグリゲータゼロ知識証明キー、及びフィーダゼロ知識証明キーが登録された状態で、複数のフィーダ端末100_1、100_2、・・・、100_nのそれぞれは、コミットメントキーとそれぞれのオフチェーンデータとを利用して生成したそれぞれのコミットメント、公開キーを利用してそれぞれのオフチェーンデータを暗号化したそれぞれの暗号化データ、及びそれぞれのフィーダゼロ知識証明キーを利用してコミットメントとそれぞれの暗号化データに対応するそれぞれのオフチェーンデータとが同一であることを証明したそれぞれのデータ証明値を含むそれぞれのデータフィーダトランザクションをブロックチェーンネットワーク400に登録することができる。
【0072】
これを複数のフィーダ端末100_1、100_2、・・・、100_nのうちいずれか一つである特定のフィーダ端末100_1を参照して説明すると以下の通りである。
【0073】
オフチェーンデータをアグリゲータ端末として提供しようとする特定のフィーダ端末100_1はブロックチェーンネットワーク400からコミットメントキーと公開キーとを獲得するS21ことができる。
【0074】
そして、特定のフィーダ端末100_1はコミットメントキーと公開キーとをそれぞれ使用して特定のオフチェーンデータに対する特定のコミットメントと特定の暗号化データとを生成するS22ことができる。
【0075】
具体的に、特定のフィーダ端末100_1はコミットメント生成モジュールにコミットメントキーと特定のオフチェーンデータとを入力することで特定のコミットメントを生成させ、暗号化モジュールに公開キーと特定オープンチェーンデータとを入力することで特定の暗号化データを生成させることができる。
【0076】
一例として、コミットメント生成モジュールはPVCのコミットメント生成アルゴリズムであり得、コミットメントキーCKと特定のオフチェーンデータMとを次のようなPVCコミットメント生成アルゴリズムに入力することで特定のコミットメントCMを出力させることができる。
【0077】
PVC.Commit(CK,M)→(CM,O)、Oはコミットメントオープン値である
【0078】
しかし、本発明におけるコミットメント生成モジュールはPVCに限定されるわけではなく、ゼロ知識証明のための様々なコミットメントスキームにおけるコミットメント生成モジュールを使用することができる。
【0079】
そして、暗号化モジュールはElgamal encryptionの暗号化アルゴリズムであり得、公開キーPKと特定のオフチェーンデータMとを次のようなElgamal暗号化アルゴリズムに入力することで特定の暗号化データCTを出力させることができる。
【0080】
Elgamal.Enc(PK,{M,O})→(CT,r)、rは暗号文に使用したランダム値である
【0081】
しかし、本発明における暗号化モジュールはElgamal encryptionに限定されるわけではなく、公開キーと秘密キーとの非対称キーを利用してデータを暗号化及び復号化する様々な暗号化アルゴリズムにおける暗号化モジュールを使用することができる。
【0082】
以後、特定のフィーダ端末100_1は特定のフィーダゼロ知識証明キーを利用して特定のデータ証明値を生成するS23ことができる。即ち、特定のフィーダ端末100_1は特定のコミットメントと特定の暗号化データに対応する特定のオフチェーンデータとが同一であることを証明した特定のデータ証明値を生成することができる。
【0083】
この際、特定のフィーダ端末100_1はゼロ知識証明モジュールに特定のフィーダゼロ知識証明キー、特定のコミットメント、特定のオフチェーンデータ、及び特定の暗号化データを入力することで特定のデータ証明値を生成させることができる。
【0084】
一例として、ゼロ知識証明モジュールはCP-SNARKのゼロ知識証明モジュールであり得、特定のフィーダゼロ知識証明キーCRSf、特定のコミットメントCM、特定のオフチェーンデータM、及び特定の暗号化データCTを次のようなCP-SNARKゼロ知識証明モジュールに入力することで特定のデータ証明値π1を出力させることができる。
【0085】
CP-SNARK.Prove(CRSf,{CM,M,O},{CT,M,r})→π1
【0086】
しかし、本発明におけるゼロ知識証明モジュールはCP-SNARKに限定されるわけではなく、ゼロ知識証明のための証明値を生成し、これを検証することができるようにする様々なゼロ知識証明アルゴリズムにおけるゼロ知識証明モジュールを使用することができる。
【0087】
そして、特定のフィーダ端末100_1は特定のコミットメント、特定の暗号化データ、及び前記特定のデータ証明値を含む特定のデータフィーダトランザクションをブロックチェーンネットワーク400に登録するS24ことができる。
【0088】
この際、特定のフィーダ端末100_1は特定のコミットメント、特定の暗号化データ、及び特定のデータ証明値を含むトランザクションをブロックチェーンネットワーク400にブロードキャスティングすることができ、それに伴って、ブロックチェーンネットワーク400を構成するブロックチェーンノードの分散合意によりブロックが生成され、分散元帳のブロックチェーンに生成されたブロックが追加されることによって特定のコミットメント、特定の暗号化データ、及び特定のデータ証明値がブロックチェーンネットワーク400に登録され得る。
【0089】
これを通じて、フィーダ端末100_1、100_2、・・・、100_nのそれぞれは、それぞれのオフチェーンデータを公開することなく、暗号化データのそれぞれがそれぞれのオフチェーンデータから生成されたことを信頼できるようにすることができる。
【0090】
次に、図4を参照して、本発明の一実施例において、ゼロ知識証明を利用したブロックチェーンネットワークのオラクルサービスを提供する方法でアグリゲータ端末がフィーダ端末が登録したオフチェーンデータをオンチェーンデータとしてブロックチェーンネットワークに登録する過程を説明すると以下の通りである。
【0091】
図3の説明によると、複数のフィーダ端末100_1、100_2、・・・、100_nのそれぞれがコミットメントキーとそれぞれのオフチェーンデータとを利用して生成したそれぞれのコミットメント、公開キーを利用してそれぞれのオフチェーンデータを暗号化したそれぞれの暗号化データ、及びそれぞれのフィーダゼロ知識証明キーを利用してコミットメントとそれぞれの暗号化データに対応するそれぞれのオフチェーンデータとが同一であることを証明したそれぞれのデータ証明値を含むそれぞれのデータフィーダトランザクションをブロックチェーンネットワーク400に登録された状態で、アグリゲータ端末200は予め設定された周期に応じて特定の周期の間ブロックチェーンネットワーク400に登録された第1データフィーダトランザクション乃至第kデータフィーダトランザクションを獲得することができる。kは1以上の整数であり得る。
【0092】
そして、アグリゲータ端末200は第1データフィーダトランザクション乃至第kデータフィーダトランザクションのそれぞれ、即ち、第iデータフィーダトランザクションにおいて、第iコミットメント、第i暗号化データ、及び第iデータ証明値を獲得するS31ことができる。iは1以上でありk以下である整数であり得る。
【0093】
以後、アグリゲータ端末200は第iフィーダゼロ知識証明キーを利用して第iデータ証明値を検証し、公開キーに対応する秘密キーを利用して第i暗号化データを復号化することで第i復号化データを生成する過程を1以上でありk以下の整数であるiを対象に遂行することによって第1復号化データ乃至第k復号化データを獲得するS32ことができる。ただし、図4では説明の便宜上「i」とだけ言及して説明したが、これは1乃至kのそれぞれに対して説明したことと理解されるべきである。
【0094】
即ち、第1データフィーダトランザクション乃至第kデータフィーダトランザクションのそれぞれに対応する第1フィーダゼロ知識証明キー乃至第kフィーダゼロ知識証明キーを第iフィーダゼロ知識証明キーと称する時、アグリゲータ端末200は第iフィーダゼロ知識証明キーをブロックチェーンネットワーク400から獲得し、ゼロ知識検証モジュールに第iフィーダゼロ知識証明キー、第i暗号化データ、第iコミットメント、及び第iデータ証明値を入力することで第iデータ証明値を検証させることができる。
【0095】
一例として、ゼロ知識検証モジュールはCP-SNARKのゼロ知識検証モジュールであり得、第iフィーダゼロ知識証明キーCRSf_i、第i暗号化データCT_i、第iコミットメントCM_i、及び第iデータ証明値π1_iを次のようなCP-SNARKゼロ知識検証モジュールに入力することでデータ検証値(0/1)を出力させることができる。この際、データ検証値が1ならばデータ証明値が真実であると判断し、データ検証値が0ならばデータ証明値が嘘であると判断することができる。
【0096】
CP-SNARK.Verify(CRSf_i,CT_i,CM_i,π1_i)→0/1
【0097】
しかし、本発明におけるゼロ知識検証モジュールはCP-SNARKに限定されるわけではなく、ゼロ知識証明のための証明値を生成し、これを検証することができるようにする様々なゼロ知識証明アルゴリズムにおけるゼロ知識検証モジュールを使用することができる。
【0098】
そして、アグリゲータ端末200は復号化モジュールに真実であると検証されたデータ証明値に対応する第i暗号化データを入力することで第i復号化データを生成させることができる。
【0099】
一例として、復号化モジュールはElgamal encryptionの復号化アルゴリズムであり得、秘密キーSKと第i暗号化データCT_iとを次のようなElgamal復号化アルゴリズムに入力することで第i復号化データМ_iを出力させることができる。
【0100】
Elgamal.Dec(SK,CT_i)→(М_i,O_i)
【0101】
しかし、本発明における復号化モジュールはElgamal encryptionに限定されるわけではなく、公開キーと秘密キーとの非対称キーを利用してデータを暗号化及び復号化する様々な暗号化アルゴリズムにおける復号化モジュールを使用することができる。
【0102】
以後、アグリゲータ端末200は予め設定された演算器を通じて第i復号化データ、即ち、第1復号化データ乃至第k復号化データを演算することでオンチェーンデータを生成するS33ことができる。
【0103】
この際、アグリゲータ端末200は予め設定された演算器に第i復号化データМ_iを入力することで次のような演算アルゴリズムRにより第i復号化データМ_iを利用して予め設定された演算を遂行したオンチェーンデータOUTを出力させることができる。
【0104】
R({М_i})→OUT,W、Wは演算に使用された秘密値(witness)である
【0105】
そして、アグリゲータ端末200はアグリゲータゼロ知識証明キーを利用してオンチェーンデータが予め設定された演算器により第1復号化データ乃至第k復号化データを演算することで生成されたことを証明した演算証明値を生成するS34ことができる。
【0106】
この際、アグリゲータ端末200はゼロ知識証明モジュールにアグリゲータゼロ知識証明キー、第iコミットメント、第i復号化データ、及びオンチェーンデータを入力することで演算証明値を生成させることができる。
【0107】
一例として、ゼロ知識証明モジュールはCP-SNARKのゼロ知識証明モジュールであり得、アグリゲータゼロ知識証明キーCRSa、第iコミットメントCM_i、第i復号化データМ_i、及びオンチェーンデータOUTを次のようなCP-SNARKゼロ知識証明モジュールに入力することで演算証明値π2を出力させることができる。
【0108】
CP-SNARK.Prove(CRSa,{CM_i,M_i,O_i}、OUT:W)→π2
【0109】
しかし、本発明におけるゼロ知識証明モジュールはCP-SNARKに限定されるわけではなく、ゼロ知識証明のための証明値を生成し、これを検証することができるようにする様々なゼロ知識証明アルゴリズムにおけるゼロ知識証明モジュールを使用することができる。
【0110】
そして、アグリゲータ端末200はオンチェーンデータと演算証明値とをブロックチェーンネットワーク400に登録するS35ことができる。
【0111】
この際、アグリゲータ端末200はオンチェーンデータと演算証明値とを含むトランザクションをブロックチェーンネットワーク400にブロードキャスティングすることができ、それに伴って、ブロックチェーンネットワーク400を構成するブロックチェーンノードの分散合意によりブロックが生成され、分散元帳のブロックチェーンに生成されたブロックが追加されることによってオンチェーンデータと演算証明値がブロックチェーンネットワーク400に登録され得る。
【0112】
これを通じて、アグリゲータ端末200はオフチェーンデータを公開しなくてもオンチェーンデータがオフチェーンデータから生成されたことを信頼できるようにすることができる。
【0113】
このような方法によりブロックチェーンネットワーク400に登録されたオンチェーンデータは使用者が信頼して使用することができ、必要に応じて、オンチェーンデータがオフチェーンデータから生成されたことを確認するために演算証明値を検証し、オンチェーンデータを生成するために使用された暗号化データがオフチェーンデータに対応するか否かを確認するためにデータ証明値を検証することができる。
【0114】
この際、使用者はデータ証明値とデータ証明値とを検証するために、ブロックチェーンネットワーク400からアグリゲータゼロ知識証明キーCRSa、第iフィーダゼロ知識証明キーCRSf_i、第i暗号化データCT_i、第iコミットメントCM_i、第iデータ証明値π1_i、オンチェーンデータOUT、及び演算証明値π2を獲得することができる。
【0115】
そして、使用者はゼロ知識検証モジュールに第iフィーダゼロ知識証明キーCRSf_i、第i暗号化データCT_i、第iコミットメントCM_i、及び第iデータ証明値π1_iを入力することで第iデータ証明値を検証させることができる。
【0116】
一例として、ゼロ知識検証モジュールはCP-SNARKのゼロ知識検証モジュールであり得、第iフィーダゼロ知識証明キーCRSf_i、第i暗号化データCT_i、第iコミットメントCM_i、及び第iデータ証明値π1_iを次のようなCP-SNARKゼロ知識検証モジュールに入力することでデータ検証値(0/1)を出力させることができる。この際、データ検証値が1ならばデータ証明値が真実であると判断し、データ検証値が0ならばデータ証明値が嘘であると判断することができる。
【0117】
CP-SNARK.Verify(CRSf_i,CT_i,CM_i,π1_i)→0/1
【0118】
しかし、本発明におけるゼロ知識検証モジュールはCP-SNARKに限定されるわけではなく、ゼロ知識証明のための証明値を生成し、これを検証することができるようにする様々なゼロ知識証明アルゴリズムにおけるゼロ知識検証モジュールを使用することができる。
【0119】
また、使用者はゼロ知識検証モジュールにアグリゲータゼロ知識証明キー、オンチェーンデータ、第iコミットメント、及び演算証明値を入力することで演算証明値を検証させることができる。
【0120】
一例として、ゼロ知識検証モジュールはCP-SNARKのゼロ知識検証モジュールであり得、アグリゲータゼロ知識証明キーCRSa、オンチェーンデータOUT、第iコミットメントCM_i、及び演算証明値π2を次のようなCP-SNARKゼロ知識検証モジュールに入力することでデータ検証値(0/1)を出力させることができる。この際、データ検証値が1ならばデータ証明値が真実であると判断し、データ検証値が0ならばデータ証明値が嘘であると判断することができる。
【0121】
CP-SNARK.Verify(CRSa,OUT,{CM_i},π2)→0/1
【0122】
しかし、本発明におけるゼロ知識検証モジュールはCP-SNARKに限定されるわけではなく、ゼロ知識証明のための証明値を生成し、これを検証することができるようにする様々なゼロ知識証明アルゴリズムにおけるゼロ知識検証モジュールを使用することができる。
【0123】
また、以上にて説明された本発明による実施例は、多様なコンピュータの構成要素を通じて遂行することができるプログラム命令語の形態で具現されて、コンピュータ読取り可能な記録媒体に格納され得る。前記コンピュータ読取り可能な記録媒体はプログラム命令語、データファイル、データ構造などを単独で又は組み合わせて含むことができる。前記コンピュータ読取り可能な記録媒体に格納されるプログラム命令語は、本発明のために特別に設計され、構成されたものであるか、コンピュータソフトウェア分野の当業者に公知にされて使用可能なものであり得る。コンピュータ読取り可能な記録媒体の例には、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカル・ディスク(Floptical Disk)のような磁気-光メディア(Magneto-Optical Media)、及びROM、RAM、フラッシュメモリなどのようなプログラム命令語を格納して遂行するように特別に構成されたハードウェア装置が含まれる。プログラム命令語の例には、コンパイラによって作られるもののような機械語コードだけでなく、インタープリターなどを使用してコンピュータによって実行される高級言語コードも含まれる。前記ハードウェア装置は、本発明による処理を実行するために一つ以上のソフトウェアモジュールとして作動するように構成され得、その反対も同様である。
【0124】
以上にて本発明が具体的な構成要素などのような特定事項と限定された実施例及び図面によって説明されたが、これは本発明のより全般的な理解の一助とするために提供されたものであるに過ぎず、本発明が前記実施例に限られるものではなく、本発明が属する技術分野において通常の知識を有する者であれば、かかる記載から多様な修正及び変形が行われ得る。
【0125】
従って、本発明の思想は、前記説明された実施例に局限されて定められてはならず、後述する特許請求の範囲だけでなく、本特許請求の範囲と均等または等価的に変形されたものすべては、本発明の思想の範囲に属するといえる。
【符号の説明】
【0126】
100_n:フィーダ端末、
200:アグリゲータ端末、
300:トラストサードパーティ、
400:ブロックチェーンネットワーク

図1
図2
図3
図4