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

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

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

特開2024-155660使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法及びそれを利用したブロックチェーンシステム
<>
  • 特開-使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法及びそれを利用したブロックチェーンシステム 図1
  • 特開-使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法及びそれを利用したブロックチェーンシステム 図2
  • 特開-使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法及びそれを利用したブロックチェーンシステム 図3
  • 特開-使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法及びそれを利用したブロックチェーンシステム 図4
  • 特開-使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法及びそれを利用したブロックチェーンシステム 図5
  • 特開-使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法及びそれを利用したブロックチェーンシステム 図6
  • 特開-使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法及びそれを利用したブロックチェーンシステム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024155660
(43)【公開日】2024-10-31
(54)【発明の名称】使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法及びそれを利用したブロックチェーンシステム
(51)【国際特許分類】
   H04L 9/32 20060101AFI20241024BHJP
【FI】
H04L9/32 200Z
H04L9/32 200C
【審査請求】有
【請求項の数】22
【出願形態】OL
(21)【出願番号】P 2023117131
(22)【出願日】2023-07-18
(11)【特許番号】
(45)【特許公報発行日】2024-05-16
(31)【優先権主張番号】10-2023-0052311
(32)【優先日】2023-04-20
(33)【優先権主張国・地域又は機関】KR
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 掲載アドレス https://eprint.iacr.org/2023/191 掲載年月日 令和5年2月14日
(71)【出願人】
【識別番号】519371987
【氏名又は名称】シーピーラブス インコーポレイテッド
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】パク・サンヒョン
(72)【発明者】
【氏名】イ・ジョンヒョク
(72)【発明者】
【氏名】イ・スンファ
(72)【発明者】
【氏名】オ・ジュンソン
(57)【要約】      (修正有)
【課題】使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法を提供する。
【解決手段】方法は、使用者端末から使用者識別子idの生成要請を獲得すると、ブロックチェーンネットワークのアドレス抽象化スマートコントラクトが、使用者端末に使用者識別子生成インターフェースを提供することで、使用者端末をもって、認証機関から発給された使用者認証書certに対応する使用者識別子を生成させ、ゼロ知識証明に基づいて使用者識別子が使用者認証書から生成され、かつ使用者認証書は認証機関から発行されたものであることを証明するための使用者識別子証明値を生成させ、使用者端末から使用者識別子の登録要請情報が獲得されると、アドレス抽象化スマートコントラクトが、ゼロ知識証明に基づいて使用者識別子証明値を検証し、使用者識別子を使用者の有効な識別子として登録する。
【選択図】図2
【特許請求の範囲】
【請求項1】
使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法において、
(a)使用者端末からブロックチェーンネットワークで利用するための使用者識別子の生成要請が獲得されると、前記ブロックチェーンネットワークの仮想マシンで動作するアドレス抽象化スマートコントラクトが、前記使用者端末に使用者識別子生成インターフェースを提供することで、前記使用者端末をもって、認証機関から発給された使用者認証書に対応する使用者識別子を生成させ、ゼロ知識証明に基づいて公開された使用者識別子検証パラメータ、前記使用者識別子、前記認証機関に対応する認証機関のパブリックキー、及び前記使用者認証書を利用して前記使用者識別子が前記使用者認証書から生成され、かつ前記使用者認証書は前記認証機関から発行されたものであることを証明するための使用者識別子証明値を生成させる段階と、
(b)前記使用者端末から前記使用者識別子検証パラメータ、前記使用者識別子、前記認証機関のパブリックキー、及び前記使用者識別子証明値を含む使用者識別子の登録要請情報が獲得されると、前記アドレス抽象化スマートコントラクトが、ゼロ知識証明に基づいて前記使用者識別子検証パラメータ、前記使用者識別子、前記認証機関のパブリックキー及び前記使用者識別子証明値を利用して前記使用者識別子証明値を検証し、前記使用者識別子証明値が検証されると、前記使用者識別子を使用者の有効な識別子として登録する段階と、
を含む方法。
【請求項2】
(c)前記アドレス抽象化スマートコントラクトは、前記使用者識別子が前記使用者の前記有効な識別子として登録されたことに対応し、(i)独立した値である前記使用者識別子自体を使用者ブロックチェーン識別子として登録する第1プロセス、(ii)前記使用者識別子により制御されるスマートコントラクトウォレットを生成し、前記使用者識別子を前記スマートコントラクトウォレットのウォレットアドレスにマッチングし、前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録する第2プロセス及び(iii)前記使用者識別子をNFT(Non-Fungible Token)化して使用者NFTを生成し、前記使用者NFTに対する所有権を外部所有アカウントに付与することで、前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録する第3プロセスのうちいずれか一つを遂行することを特徴とする、請求項1に記載の方法。
【請求項3】
前記(b)段階で、
前記アドレス抽象化スマートコントラクトは、登録された前記使用者識別子に対応するトランザクションシークエンス(前記トランザクションシークエンスはそれぞれの特定の有効な識別子により遂行されたそれぞれの特定のトランザクションシークエンスを管理するために前記アドレス抽象化スマートコントラクトが前記それぞれの特定の有効な識別子ごとに生成したトランザクション累積カウンタである)を0に初期化することを特徴とする、請求項1に記載の方法。
【請求項4】
前記使用者識別子検証パラメータは前記アドレス抽象化スマートコントラクトを前記ブロックチェーンネットワークに配布したアドレス抽象化サービスプロバイダがゼロ知識証明に基づいて前記使用者識別子を登録するための関係値を利用して生成したコモンリファレンスストリングであり、前記アドレス抽象化サービスプロバイダは前記使用者識別子検証パラメータを前記ブロックチェーンネットワークまたは前記ブロックチェーンネットワークの外部の格納場所に格納することで前記アドレス抽象化スマートコントラクトや前記使用者識別子生成インターフェースをもって読取り可能なようにしたことを特徴とする、請求項1に記載の方法。
【請求項5】
前記(a)段階で、
前記使用者端末はブロックチェーンの外部の前記認証機関から前記使用者認証書の発給を受け、前記認証機関から前記認証機関のパブリックキーを直接獲得するか、前記認証機関の前記認証機関のパブリックキーが前記ブロックチェーンネットワークに登録された場合、前記ブロックチェーンネットワークの外部の格納場所または前記ブロックチェーンネットワークで前記認証機関のパブリックキーを獲得することを特徴とする、請求項1に記載の方法。
【請求項6】
使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法において、
(a)認証機関から発給された使用者認証書を利用して生成した使用者識別子が使用者の有効な識別子として登録された状態で、使用者端末からトランザクション登録要請が獲得されると、前記ブロックチェーンネットワークの仮想マシンで動作するアドレス抽象化スマートコントラクトが、前記使用者端末に抽象化トランザクション生成インターフェースを提供することで、前記使用者端末をもって、前記使用者認証書に対応する前記使用者識別子を生成させ、ゼロ知識証明に基づいて公開された抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記使用者認証書、使用者が前記ブロックチェーンネットワークで遂行しようとするトランザクションに対する情報を含んだトランザクションメッセージに対するハッシュ値であるトランザクションメッセージハッシュ値及び前記トランザクションメッセージに対応するメッセージシークエンスを利用して前記トランザクションメッセージを伝送した前記使用者が前記使用者識別子の持ち主であることを検証し、前記トランザクションメッセージと前記メッセージシークエンスとの有効性を検証するための抽象化トランザクション証明値を生成させる段階と、
(b)前記使用者端末から前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージ、前記メッセージシークエンス及び前記抽象化トランザクション証明値を含む抽象化トランザクションを獲得すると、前記アドレス抽象化スマートコントラクトが、ゼロ知識証明に基づいて前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージに対する前記ハッシュ値である前記トランザクションメッセージハッシュ値、前記メッセージシークエンス及び前記抽象化トランザクション証明値を利用して前記抽象化トランザクション証明値を検証し、前記抽象化トランザクション証明値が検証されると、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにし、前記抽象化トランザクションに対する実行結果をトランザクションとして登録する段階と、
を含む方法。
【請求項7】
前記(a)段階で、
前記アドレス抽象化スマートコントラクトは、前記使用者識別子が前記使用者の前記有効な識別子として登録されたことに対応し、(i)独立した値である前記使用者識別子自体を使用者ブロックチェーン識別子として登録する第1プロセス、(ii)前記使用者識別子により制御されるスマートコントラクトウォレットを生成し、前記使用者識別子を前記スマートコントラクトウォレットのウォレットアドレスにマッチングし、前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録する第2プロセス及び(iii)前記使用者識別子をNFT(Non-Fungible Token)化して使用者NFTを生成し、前記使用者NFTに対する所有権を外部所有アカウントに付与することで、前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録する第3プロセスのうちいずれか一つを遂行した状態であることを特徴とする、請求項6に記載の方法。
【請求項8】
前記アドレス抽象化スマートコントラクトが登録された前記使用者識別子に対応するトランザクションシークエンス(前記トランザクションシークエンスはそれぞれの特定の有効な識別子により遂行されたそれぞれの特定のトランザクションシークエンスを管理するために前記アドレス抽象化スマートコントラクトが前記それぞれの特定の有効な識別子ごとに生成したトランザクション累積カウンタである)を0に初期化した状態であり、
前記アドレス抽象化スマートコントラクトが前記第1プロセスや前記第2プロセスを利用して前記使用者識別子自体や前記使用者識別子にマッチングされた前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録した状態である場合、
前記(b)段階で、
前記使用者端末から前記抽象化トランザクションを受信すると、前記アドレス抽象化スマートコントラクトは(i)前記抽象化トランザクションに含まれた前記使用者識別子に対応する前記使用者ブロックチェーン識別子があるかどうかを確認し、(ii)前記使用者識別子に対応する前記使用者ブロックチェーン識別子がある場合、受信した前記使用者識別子に対応する特定のトランザクションシークエンスに1を足した値が前記抽象化トランザクションに含まれた前記メッセージシークエンスに対応するかどうかを確認し、(iii)ゼロ知識証明に基づいて前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージに対する前記ハッシュ値である前記トランザクションメッセージハッシュ値、前記メッセージシークエンス及び前記抽象化トランザクション証明値を利用して前記抽象化トランザクション証明値を検証し、前記抽象化トランザクション証明値が検証されると、(iv)前記特定のトランザクションシークエンスを前記メッセージシークエンスに対応する値にアップデートし、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにして前記抽象化トランザクションに対する前記実行結果を前記トランザクションとして登録することを特徴とする、請求項7に記載の方法。
【請求項9】
前記アドレス抽象化スマートコントラクトが前記第3プロセスを利用して前記使用者識別子に対応する前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録した状態である場合、
前記(a)段階で、
前記使用者端末から前記トランザクションメッセージを含んだ前記トランザクション登録要請が獲得されると、前記アドレス抽象化スマートコントラクトは前記使用者端末をもって前記使用者認証書に対応する前記使用者識別子を生成させ、
前記(b)段階で、
前記使用者端末が前記使用者識別子と前記トランザクションメッセージとを含むトランザクションを前記トランザクションを実行しようとする特定のブロックチェーンノードに伝送したことに対応し、前記特定のブロックチェーンノードから前記使用者識別子に対する検証要請を獲得すると、前記アドレス抽象化スマートコントラクトは(i)前記トランザクションに含まれた前記使用者識別子に対応する前記使用者ブロックチェーン識別子があるかどうかを確認し、(ii)前記使用者識別子に対応する前記使用者ブロックチェーン識別子がある場合、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにして前記トランザクションに対する実行結果を前記ブロックチェーンネットワークに登録することを特徴とする、請求項7に記載の方法。
【請求項10】
前記抽象化トランザクションメッセージ検証パラメータは前記アドレス抽象化スマートコントラクトを前記ブロックチェーンネットワークに配布したアドレス抽象化サービスプロバイダがゼロ知識証明に基づいて前記抽象化トランザクションを登録するための関係値を利用して生成したコモンリファレンスストリングであり、前記アドレス抽象化サービスプロバイダは前記抽象化トランザクションメッセージ検証パラメータを前記ブロックチェーンネットワークまたは前記ブロックチェーンネットワークの外部の格納場所に格納することで前記アドレス抽象化スマートコントラクトや前記抽象化トランザクション生成インターフェースをもって読取り可能なようにしたことを特徴とする、請求項6に記載の方法。
【請求項11】
前記(a)段階で、
前記使用者端末は前記トランザクションメッセージに前記トランザクションが遂行する関数に対応する関数シグネチャに対する情報、前記関数を遂行する対象であるターゲットアドレスに対する情報、前記関数を呼び出す際に因子として含まれたデータが位置する空間に対する情報及び前記関数を遂行するのに使用される暗号通貨値に対する情報を含むことを特徴とする、請求項6に記載の方法。
【請求項12】
使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスするブロックチェーンシステムにおいて、
インストラクションを格納する少なくとも一つのメモリと、
前記インストラクションを実行するために構成された少なくとも一つのプロセッサ;を含む少なくとも一つのブロックチェーンノードと、を含み、
前記プロセッサは、(I)使用者端末からブロックチェーンネットワークで利用するための使用者識別子の生成要請が獲得されると、前記ブロックチェーンネットワークの仮想マシンで動作するアドレス抽象化スマートコントラクトを通じて前記使用者端末に使用者識別子生成インターフェースを提供することで、前記使用者端末をもって、認証機関から発給された使用者認証書に対応する使用者識別子を生成させ、ゼロ知識証明に基づいて公開された使用者識別子検証パラメータ、前記使用者識別子、前記認証機関に対応する認証機関のパブリックキー、及び前記使用者認証書を利用して前記使用者識別子が前記使用者認証書から生成され、かつ前記使用者認証書は前記認証機関から発行されたものであることを証明するための使用者識別子証明値を生成させるプロセス、及び(II)前記使用者端末から前記使用者識別子検証パラメータ、前記使用者識別子、前記認証機関のパブリックキー、及び前記使用者識別子証明値を含む使用者識別子の登録要請情報が獲得されると、前記アドレス抽象化スマートコントラクトを通じてゼロ知識証明に基づいて前記使用者識別子検証パラメータ、前記使用者識別子、前記認証機関のパブリックキー及び前記使用者識別子証明値を利用して前記使用者識別子証明値を検証し、前記使用者識別子証明値が検証されると、前記使用者識別子を使用者の有効な識別子として登録するプロセスを遂行するブロックチェーンシステム。
【請求項13】
(III)前記プロセッサは、前記使用者識別子が前記使用者の前記有効な識別子として登録されたことに対応し、前記アドレス抽象化スマートコントラクトを通じて(i)独立した値である前記使用者識別子自体を前記使用者ブロックチェーン識別子として登録する第1プロセス、(ii)前記使用者識別子により制御されるスマートコントラクトウォレットを生成し、前記使用者識別子を前記スマートコントラクトウォレットのウォレットアドレスにマッチングし、前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録する第2プロセス及び(iii)前記使用者識別子をNFT(Non-Fungible Token)化して使用者NFTを生成し、前記使用者NFTに対する所有権を外部所有アカウントに付与することで、前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録する第3プロセスのうちいずれか一つを遂行することを特徴とする、請求項12に記載のブロックチェーンシステム。
【請求項14】
前記(II)プロセスで、
前記プロセッサは前記アドレス抽象化スマートコントラクトを通じて登録された前記使用者識別子に対応するトランザクションシークエンス(前記トランザクションシークエンスはそれぞれの特定の有効な識別子により遂行されたそれぞれの特定のトランザクションシークエンスを管理するために前記アドレス抽象化スマートコントラクトが前記それぞれの特定の有効な識別子ごとに生成したトランザクション累積カウンタである)を0に初期化することを特徴とする、請求項12に記載のブロックチェーンシステム。
【請求項15】
前記使用者識別子検証パラメータは前記アドレス抽象化スマートコントラクトを前記ブロックチェーンネットワークに配布したアドレス抽象化サービスプロバイダがゼロ知識証明に基づいて前記使用者識別子を登録するための関係値を利用して生成したコモンリファレンスストリングであり、前記アドレス抽象化サービスプロバイダは前記使用者識別子検証パラメータを前記ブロックチェーンネットワークまたは前記ブロックチェーンネットワークの外部の格納場所に格納することで前記アドレス抽象化スマートコントラクトや前記使用者識別子生成インターフェースをもって読取り可能なようにしたことを特徴とする、請求項12に記載のブロックチェーンシステム。
【請求項16】
前記(I)プロセスで、
前記使用者端末はブロックチェーンの外部の前記認証機関から前記使用者認証書の発給を受け、前記認証機関から前記認証機関のパブリックキーを直接獲得するか、前記認証機関の前記認証機関のパブリックキーが前記ブロックチェーンネットワークに登録された場合、前記ブロックチェーンネットワークの外部の格納場所または前記ブロックチェーンネットワークで前記認証機関のパブリックキーを獲得することを特徴とする、請求項12に記載のブロックチェーンシステム。
【請求項17】
使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスするブロックチェーンシステムにおいて、
インストラクションを格納する少なくとも一つのメモリと、
前記インストラクションを実行するために構成された少なくとも一つのプロセッサ;を含む少なくとも一つのブロックチェーンノードと、を含み、
前記プロセッサは、(I)認証機関から発給された使用者認証書を利用して生成した使用者識別子を使用者の有効な識別子として登録された状態で、使用者端末からトランザクション登録要請が獲得されると、前記ブロックチェーンネットワークの仮想マシンで動作するアドレス抽象化スマートコントラクトを通じて、前記使用者端末に抽象化トランザクション生成インターフェースを提供することで、前記使用者端末をもって、前記使用者認証書に対応する前記使用者識別子を生成させ、ゼロ知識証明に基づいて公開された抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記使用者認証書、使用者が前記ブロックチェーンネットワークで遂行しようとするトランザクションに対する情報を含んだトランザクションメッセージに対するハッシュ値であるトランザクションメッセージハッシュ値及び前記トランザクションメッセージに対応するメッセージシークエンスを利用して前記トランザクションメッセージを伝送した前記使用者が前記使用者識別子の持ち主であることを検証し、前記トランザクションメッセージと前記メッセージシークエンスとの有効性を検証するための抽象化トランザクション証明値を生成させるプロセス、及び(II)前記使用者端末から前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージ、前記メッセージシークエンス及び前記抽象化トランザクション証明値を含む抽象化トランザクションを獲得すると、前記アドレス抽象化スマートコントラクトを通じて、ゼロ知識証明に基づいて前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージに対する前記ハッシュ値である前記トランザクションメッセージハッシュ値、前記メッセージシークエンス及び前記抽象化トランザクション証明値を利用して前記抽象化トランザクション証明値を検証し、前記抽象化トランザクション証明値が検証されると、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにし、前記抽象化トランザクションに対する実行結果をトランザクションとして登録するプロセスを遂行するブロックチェーンシステム。
【請求項18】
前記(I)プロセスで、
前記プロセッサは、前記使用者識別子が前記使用者の前記有効な識別子として登録されたことに対応し、前記アドレス抽象化スマートコントラクトを通じて(i)独立した値である前記使用者識別子自体を使用者ブロックチェーン識別子として登録する第1プロセス、(ii)前記使用者識別子により制御されるスマートコントラクトウォレットを生成し、前記使用者識別子を前記スマートコントラクトウォレットのウォレットアドレスにマッチングし、前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録する第2プロセス及び(iii)前記使用者識別子をNFT(Non-Fungible Token)化して使用者NFTを生成し、前記使用者NFTに対する所有権を外部所有アカウントに付与することで、前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録する第3プロセスのうちいずれか一つを遂行した状態であることを特徴とする、請求項17に記載のブロックチェーンシステム。
【請求項19】
前記プロセッサは前記アドレス抽象化スマートコントラクトを通じて登録された前記使用者識別子に対応するトランザクションシークエンス(前記トランザクションシークエンスはそれぞれの特定の有効な識別子により遂行されたそれぞれの特定のトランザクションシークエンスを管理するために前記アドレス抽象化スマートコントラクトが前記それぞれの特定の有効な識別子ごとに生成したトランザクション累積カウンタである)を0に初期化した状態であり、
前記アドレス抽象化スマートコントラクトが前記第1プロセスや前記第2プロセスを利用して前記使用者識別子自体や前記使用者識別子にマッチングされた前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録した状態である場合、
前記(II)プロセスで、
前記使用者端末から前記抽象化トランザクションを受信すると、前記プロセッサは前記アドレス抽象化スマートコントラクトを通じて(i)前記抽象化トランザクションに含まれた前記使用者識別子に対応する前記使用者ブロックチェーン識別子があるかどうかを確認し、(ii)前記使用者識別子に対応する前記使用者ブロックチェーン識別子がある場合、受信した前記使用者識別子に対応する特定のトランザクションシークエンスに1を足した値が前記抽象化トランザクションに含まれた前記メッセージシークエンスに対応するかどうかを確認し、(iii)ゼロ知識証明に基づいて前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージに対する前記ハッシュ値である前記トランザクションメッセージハッシュ値、前記メッセージシークエンス及び前記抽象化トランザクション証明値を利用して前記抽象化トランザクション証明値を検証し、前記抽象化トランザクション証明値が検証されると、(iv)前記特定のトランザクションシークエンスを前記メッセージシークエンスに対応する値にアップデートし、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにして前記抽象化トランザクションに対する前記実行結果を前記トランザクションとして登録することを特徴とする、請求項18に記載のブロックチェーンシステム。
【請求項20】
前記アドレス抽象化スマートコントラクトが前記第3プロセスを利用して前記使用者識別子に対応する前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録した状態である場合、
前記(I)プロセスで、
前記使用者端末から前記トランザクションメッセージを含んだ前記トランザクション登録要請が獲得されると、前記プロセッサは前記使用者端末をもって前記使用者認証書に対応する前記使用者識別子を生成させ、
前記(II)プロセスで、
前記使用者端末が前記使用者識別子と前記トランザクションメッセージとを含むトランザクションを前記トランザクションを実行しようとする特定のブロックチェーンノードに伝送したことに対応し、前記特定のブロックチェーンノードから前記使用者識別子に対する検証要請を獲得すると、前記プロセッサは前記アドレス抽象化スマートコントラクトを通じて(i)前記トランザクションに含まれた前記使用者識別子に対応する前記使用者ブロックチェーン識別子があるかどうかを確認し、(ii)前記使用者識別子に対応する前記使用者ブロックチェーン識別子がある場合、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにして前記トランザクションに対する実行結果を前記ブロックチェーンネットワークに登録することを特徴とする、請求項18に記載のブロックチェーンシステム。
【請求項21】
前記抽象化トランザクションメッセージ検証パラメータは前記アドレス抽象化スマートコントラクトを前記ブロックチェーンネットワークに配布したアドレス抽象化サービスプロバイダがゼロ知識証明に基づいて前記抽象化トランザクションを登録するための関係値を利用して生成したコモンリファレンスストリングであり、前記アドレス抽象化サービスプロバイダは前記抽象化トランザクションメッセージ検証パラメータを前記ブロックチェーンネットワークまたは前記ブロックチェーンネットワークの外部の格納場所に格納することで前記アドレス抽象化スマートコントラクトや前記抽象化トランザクション生成インターフェースをもって読取り可能なようにしたことを特徴とする、請求項17に記載のブロックチェーンシステム。
【請求項22】
前記(I)プロセスで、
前記使用者端末は前記トランザクションメッセージに前記トランザクションが遂行する関数に対応する関数シグネチャに対する情報、前記関数を遂行する対象であるターゲットアドレスに対する情報、前記関数を呼び出す際に因子として含まれたデータが位置する空間に対する情報及び前記関数を遂行するのに使用される暗号通貨値に対する情報を含むことを特徴とする、請求項17に記載のブロックチェーンシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法及びこれを利用するブロックチェーンシステムに関し、より詳細には、ブロックチェーンネットワークの外部から発給を受けた使用者認証書を利用してブロックチェーンネットワークで使用可能なユニークな使用者識別子を生成し、ブロックチェーンネットワークで使用された使用者識別子が使用者に対応することをゼロ知識証明を通じて証明することができるようにする使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法及びそれを利用したブロックチェーンシステムに関する。
【背景技術】
【0002】
ブロックチェーン技術の急速な成長は分散型アプリケーション(decentralized applications;dApps)、即ち、ダップスの拡散を引き起こした。しかし、このようなアプリケーションは分散型となった運営方式にもかかわらず、効率的な運営を図りアプリケーションの信頼を落とすシビル攻撃(Sybil attack)のような悪意的な攻撃を未然に防止するためにソーシャルログイン(social login)またはKYC(Know-Your-Customer)プロセスのような中央化された認証方法を必要とする場合が多い。
【0003】
このために、従来には中央化された認証機関から獲得した外部認証書のようなweb2識別子(即ち、外部識別子)をブロックチェーン上の住所のようなweb3識別子と融合する方法として外部識別子をブロックチェーン専用住所にマップピングする方式を主に採択していた。
【0004】
しかし、このような方式を使用すると、外部識別子をブロックチェーンネットワーク上で効果的に活用し難く、分散型アプリケーションで使用者識別子を検証する過程が複雑であるという限界がある。このような限界は、多い量のブロックチェーン専用住所を管理しなければならない多重チェーンダップスにおいて特に問題になることがあり、使用者識別子のブロックチェーンの間の制限された互換性のため、ブロックチェーンごとに互いに異なる使用者識別子を使用しなければならないなど、識別子の断片化によりサービス提供者や使用者に不便を与えられ得る。
【0005】
また、各ブロックチェーン専用住所に区別される各アカウントは、ブロックチェーンの特性上、各アカウントの全体のトランザクション記録を追跡し易いため、ブロックチェーン専用住所とマップピングした外部識別子に対する個人情報が流出する恐れもある。
【0006】
そのため、イーサリアムのような既存のプラットフォームは、各ブロックチェーン専用住所で管理される使用者アカウントの脆弱点を改善するために、プライベートキーで管理され、トランザクションの生成及び署名のみ可能な使用者保有アカウント(Externally Owned Account;EOA)に、コーディングを通じて管理されるコントラクトアカウント(Contract Accounts)を融合することで、使用者をもって直接権限の制御、トランザクションの制限、アカウントの復旧、トランザクションの一括処理などに対する実行ロジックを操作可能なようにしたアカウント抽象化(Account Abstraction)のコンセプトを紹介した。
【0007】
しかし、このようなアカウント抽象化はトランザクションを登録しようとする際に抽象化されたアカウントを検証する過程で使用者認証書を公開しなければならないため、一つのアカウントが一つのトランザクションしか処理できないという問題があり、ブロックチェーンの間に相互互換性が不足して各チェーンごとに各コントラクトアカウントを生成して使用しなければならないという短所が存在する。
【0008】
従って、前記問題点を解決するための改善方案が要求される実情である。
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明は、上述した問題点をすべて解決することをその目的とする。
【0010】
また、本発明はブロックチェーンネットワークの外部の使用者識別子をブロックチェーン住所と一対一でマップピングしなくても多重チェーンダップスやweb2-web3ハイブリッドダップスにおいて使用可能なようにする使用者識別子を提供することを目的とする。
【0011】
また、本発明はハードフォークなしで既存のブロックチェーンシステムで少なくとも一つ以上のブロックチェーンアプリケーションで使用される使用者識別子が同一の使用者の所有であることを証明可能なようにすることを目的とする。
【0012】
また、本発明は使用者識別子に対応する個人情報を公開しなくても身元を検証可能なようにして使用者情報に対する保安を高め、一度生成した使用者識別子を引き続き使用可能なようにすることを他の目的とする。
【課題を解決するための手段】
【0013】
本発明の一実施例によると、使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法において、(a)使用者端末からブロックチェーンネットワークで利用するための使用者識別子の生成要請が獲得されると、前記ブロックチェーンネットワークの仮想マシンで動作するアドレス抽象化スマートコントラクトが、前記使用者端末に使用者識別子生成インターフェースを提供することで、前記使用者端末をもって、認証機関から発給された使用者認証書に対応する使用者識別子を生成させ、ゼロ知識証明に基づいて公開された使用者識別子検証パラメータ、前記使用者識別子、前記認証機関に対応する認証機関のパブリックキー、及び前記使用者認証書を利用して前記使用者識別子が前記使用者認証書から生成され、かつ前記使用者認証書は前記認証機関から発行されたものであることを証明するための使用者識別子証明値を生成させる段階;及び(b)前記使用者端末から前記使用者識別子検証パラメータ、前記使用者識別子、前記認証機関のパブリックキー、及び前記使用者識別子証明値を含む使用者識別子の登録要請情報が獲得されると、前記アドレス抽象化スマートコントラクトが、ゼロ知識証明に基づいて前記使用者識別子検証パラメータ、前記使用者識別子、前記認証機関のパブリックキー及び前記使用者識別子証明値を利用して前記使用者識別子証明値を検証し、前記使用者識別子証明値が検証されると、前記使用者識別子を使用者の有効な識別子として登録する段階;を含む方法が提供される。
【0014】
(c)前記アドレス抽象化スマートコントラクトは、前記使用者識別子が前記使用者の前記有効な識別子として登録されたことに対応し、(i)独立した値である前記使用者識別子自体を前記使用者ブロックチェーン識別子として登録する第1プロセス、(ii)前記使用者識別子により制御されるスマートコントラクトウォレットを生成し、前記使用者識別子を前記スマートコントラクトウォレットのウォレットアドレスにマッチングし、前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録する第2プロセス及び(iii)前記使用者識別子をNFT(Non-Fungible Token)化して使用者NFTを生成し、前記使用者NFTに対する所有権を外部所有アカウントに付与することで、前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録する第3プロセスのうちいずれか一つを遂行することを特徴とする。
【0015】
前記(b)段階で、前記アドレス抽象化スマートコントラクトは、登録された前記使用者識別子に対応するトランザクションシークエンス(前記トランザクションシークエンスはそれぞれの特定の有効な識別子により遂行されたそれぞれの特定のトランザクションシークエンスを管理するために前記アドレス抽象化スマートコントラクトが前記それぞれの特定の有効な識別子ごとに生成したトランザクション累積カウンタである)を0に初期化することを特徴とする。
【0016】
前記使用者識別子検証パラメータは前記アドレス抽象化スマートコントラクトを前記ブロックチェーンネットワークに配布したアドレス抽象化サービスプロバイダがゼロ知識証明に基づいて前記使用者識別子を登録するための関係値を利用して生成したコモンリファレンスストリングであり、前記アドレス抽象化サービスプロバイダは前記使用者識別子検証パラメータを前記ブロックチェーンネットワークまたは前記ブロックチェーンネットワークの外部の格納場所に格納することで前記アドレス抽象化スマートコントラクトや前記使用者識別子生成インターフェースをもって読取り可能なようにしたことを特徴とする。
【0017】
前記(a)段階で、前記使用者端末はブロックチェーンの外部の前記認証機関から前記使用者認証書の発給を受け、前記認証機関から前記認証機関のパブリックキーを直接獲得するか、前記認証機関の前記認証機関のパブリックキーが前記ブロックチェーンネットワークに登録された場合、前記ブロックチェーンネットワークの外部の格納場所または前記ブロックチェーンネットワークで前記認証機関のパブリックキーを獲得することを特徴とする。
【0018】
また、本発明の他の実施例によると、使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法において、(a)認証機関から発給された使用者認証書を利用して生成した使用者識別子が使用者の有効な識別子として登録された状態で、使用者端末からトランザクション登録要請が獲得されると、前記ブロックチェーンネットワークの仮想マシンで動作するアドレス抽象化スマートコントラクトが、前記使用者端末に抽象化トランザクション生成インターフェースを提供することで、前記使用者端末をもって、前記使用者認証書に対応する前記使用者識別子を生成させ、ゼロ知識証明に基づいて公開された抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記使用者認証書、使用者が前記ブロックチェーンネットワークで遂行しようとするトランザクションに対する情報を含んだトランザクションメッセージに対するハッシュ値であるトランザクションメッセージハッシュ値及び前記トランザクションメッセージに対応するメッセージシークエンスを利用して前記トランザクションメッセージを伝送した前記使用者が前記使用者識別子の持ち主であることを検証し、前記トランザクションメッセージと前記メッセージシークエンスとの有効性を検証するための抽象化トランザクション証明値を生成させる段階;及び(b)前記使用者端末から前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージ、前記メッセージシークエンス及び前記抽象化トランザクション証明値を含む抽象化トランザクションを獲得すると、前記アドレス抽象化スマートコントラクトが、ゼロ知識証明に基づいて前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージに対する前記ハッシュ値である前記トランザクションメッセージハッシュ値、前記メッセージシークエンス及び前記抽象化トランザクション証明値を利用して前記抽象化トランザクション証明値を検証し、前記抽象化トランザクション証明値が検証されると、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにし、前記抽象化トランザクションに対する実行結果をトランザクションとして登録する段階;を含む方法が提供される。
【0019】
前記(a)段階で、前記アドレス抽象化スマートコントラクトは、前記使用者識別子が前記使用者の前記有効な識別子として登録されたことに対応し、(i)独立した値である前記使用者識別子自体を前記使用者ブロックチェーン識別子として登録する第1プロセス、(ii)前記使用者識別子により制御されるスマートコントラクトウォレットを生成し、前記使用者識別子を前記スマートコントラクトウォレットのウォレットアドレスにマッチングし、前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録する第2プロセス及び(iii)前記使用者識別子をNFT(Non-Fungible Token)化して使用者NFTを生成し、前記使用者NFTに対する所有権を外部所有アカウントに付与することで、前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録する第3プロセスのうちいずれか一つを遂行した状態であることを特徴とする。
【0020】
前記アドレス抽象化スマートコントラクトが登録された前記使用者識別子に対応するトランザクションシークエンス(前記トランザクションシークエンスはそれぞれの特定の有効な識別子により遂行されたそれぞれの特定のトランザクションシークエンスを管理するために前記アドレス抽象化スマートコントラクトが前記それぞれの特定の有効な識別子ごとに生成したトランザクション累積カウンタである)を0に初期化した状態であり、前記アドレス抽象化スマートコントラクトが前記第1プロセスや前記第2プロセスを利用して前記使用者識別子自体や前記使用者識別子にマッチングされた前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録した状態である場合、前記(b)段階で、前記使用者端末から前記抽象化トランザクションを受信すると、前記アドレス抽象化スマートコントラクトは(i)前記抽象化トランザクションに含まれた前記使用者識別子に対応する前記使用者ブロックチェーン識別子があるかどうかを確認し、(ii)前記使用者識別子に対応する前記使用者ブロックチェーン識別子がある場合、受信した前記使用者識別子に対応する特定のトランザクションシークエンスに1を足した値が前記抽象化トランザクションに含まれた前記メッセージシークエンスに対応するかどうかを確認し、(iii)ゼロ知識証明に基づいて前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージに対する前記ハッシュ値である前記トランザクションメッセージハッシュ値、前記メッセージシークエンス及び前記抽象化トランザクション証明値を利用して前記抽象化トランザクション証明値を検証し、前記抽象化トランザクション証明値が検証されると、(iv)前記特定のトランザクションシークエンスを前記メッセージシークエンスに対応する値にアップデートし、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにして前記抽象化トランザクションに対する前記実行結果を前記トランザクションとして登録することを特徴とする。
【0021】
前記アドレス抽象化スマートコントラクトが前記第3プロセスを利用して前記使用者識別子に対応する前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録した状態である場合、前記(a)段階で、前記使用者端末から前記トランザクションメッセージを含んだ前記トランザクション登録要請が獲得されると、前記アドレス抽象化スマートコントラクトは前記使用者端末をもって前記使用者認証書に対応する前記使用者識別子を生成させ、前記(b)段階で、前記使用者端末が前記使用者識別子と前記トランザクションメッセージとを含むトランザクションを前記トランザクションを実行しようとする特定のブロックチェーンノードに伝送したことに対応し、前記特定のブロックチェーンノードから前記使用者識別子に対する検証要請を獲得すると、前記アドレス抽象化スマートコントラクトは(i)前記トランザクションに含まれた前記使用者識別子に対応する前記使用者ブロックチェーン識別子があるかどうかを確認し、(ii)前記使用者識別子に対応する前記使用者ブロックチェーン識別子がある場合、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにして前記トランザクションに対する実行結果を前記ブロックチェーンネットワークに登録することを特徴とする。
【0022】
前記抽象化トランザクションメッセージ検証パラメータは前記アドレス抽象化スマートコントラクトを前記ブロックチェーンネットワークに配布したアドレス抽象化サービスプロバイダがゼロ知識証明に基づいて前記抽象化トランザクションを登録するための関係値を利用して生成したコモンリファレンスストリングであり、前記アドレス抽象化サービスプロバイダは前記抽象化トランザクションメッセージ検証パラメータを前記ブロックチェーンネットワークまたは前記ブロックチェーンネットワークの外部の格納場所に格納することで前記アドレス抽象化スマートコントラクトや前記抽象化トランザクション生成インターフェースをもって読取り可能なようにしたことを特徴とする。
【0023】
前記(a)段階で、前記使用者端末は前記トランザクションメッセージに前記トランザクションが遂行する関数に対応する関数シグネチャに対する情報、前記関数を遂行する対象であるターゲットアドレスに対する情報、前記関数を呼び出す際に因子として含まれたデータが位置する空間に対する情報及び前記関数を遂行するのに使用される暗号通貨値に対する情報を含むことを特徴とする。
【0024】
また、本発明のまた他の実施例によると、使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスするブロックチェーンシステムにおいて、インストラクションを格納する少なくとも一つのメモリ;及び前記インストラクションを実行するために構成された少なくとも一つのプロセッサ;を含む少なくとも一つのブロックチェーンノードを含み、前記プロセッサは、(I)使用者端末からブロックチェーンネットワークで利用するための使用者識別子の生成要請が獲得されると、前記ブロックチェーンネットワークの仮想マシンで動作するアドレス抽象化スマートコントラクトを通じて前記使用者端末に使用者識別子生成インターフェースを提供することで、前記使用者端末をもって、認証機関から発給された使用者認証書に対応する使用者識別子を生成させ、ゼロ知識証明に基づいて公開された使用者識別子検証パラメータ、前記使用者識別子、前記認証機関に対応する認証機関のパブリックキー、及び前記使用者認証書を利用して前記使用者識別子が前記使用者認証書から生成され、かつ前記使用者認証書は前記認証機関から発行されたものであることを証明するための使用者識別子証明値を生成させるプロセス、及び(II)前記使用者端末から前記使用者識別子検証パラメータ、前記使用者識別子、前記認証機関のパブリックキー、及び前記使用者識別子証明値を含む使用者識別子の登録要請情報が獲得されると、前記アドレス抽象化スマートコントラクトを通じてゼロ知識証明に基づいて前記使用者識別子検証パラメータ、前記使用者識別子、前記認証機関のパブリックキー及び前記使用者識別子証明値を利用して前記使用者識別子証明値を検証し、前記使用者識別子証明値が検証されると、前記使用者識別子を使用者の有効な識別子として登録するプロセスを遂行するブロックチェーンシステムが提供される。
【0025】
(III)前記プロセッサは、前記使用者識別子が前記使用者の前記有効な識別子として登録されたことに対応し、前記アドレス抽象化スマートコントラクトを通じて(i)独立した値である前記使用者識別子自体を前記使用者ブロックチェーン識別子として登録する第1プロセス、(ii)前記使用者識別子により制御されるスマートコントラクトウォレットを生成し、前記使用者識別子を前記スマートコントラクトウォレットのウォレットアドレスにマッチングし、前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録する第2プロセス及び(iii)前記使用者識別子をNFT(Non-Fungible Token)化して使用者NFTを生成し、前記使用者NFTに対する所有権を外部所有アカウントに付与することで、前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録する第3プロセスのうちいずれか一つを遂行することを特徴とする。
【0026】
前記(II)プロセスで、前記プロセッサは前記アドレス抽象化スマートコントラクトを通じて登録された前記使用者識別子に対応するトランザクションシークエンス(前記トランザクションシークエンスはそれぞれの特定の有効な識別子により遂行されたそれぞれの特定のトランザクションシークエンスを管理するために前記アドレス抽象化スマートコントラクトが前記それぞれの特定の有効な識別子ごとに生成したトランザクション累積カウンタである)を0に初期化することを特徴とする。
【0027】
前記使用者識別子検証パラメータは前記アドレス抽象化スマートコントラクトを前記ブロックチェーンネットワークに配布したアドレス抽象化サービスプロバイダがゼロ知識証明に基づいて前記使用者識別子を登録するための関係値を利用して生成したコモンリファレンスストリングであり、前記アドレス抽象化サービスプロバイダは前記使用者識別子検証パラメータを前記ブロックチェーンネットワークまたは前記ブロックチェーンネットワークの外部の格納場所に格納することで前記アドレス抽象化スマートコントラクトや前記使用者識別子生成インターフェースをもって読取り可能なようにしたことを特徴とする。
【0028】
前記(I)プロセスで、前記使用者端末はブロックチェーンの外部の前記認証機関から前記使用者認証書の発給を受け、前記認証機関から前記認証機関のパブリックキーを直接獲得するか、前記認証機関の前記認証機関のパブリックキーが前記ブロックチェーンネットワークに登録された場合、前記ブロックチェーンネットワークの外部の格納場所または前記ブロックチェーンネットワークで前記認証機関のパブリックキーを獲得することを特徴とする。
【0029】
また、本発明のまた他の実施例によると、使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスするブロックチェーンシステムにおいて、インストラクションを格納する少なくとも一つのメモリ;及び前記インストラクションを実行するために構成された少なくとも一つのプロセッサ;を含む少なくとも一つのブロックチェーンノードを含み、前記プロセッサは、(I)認証機関から発給された使用者認証書を利用して生成した使用者識別子を使用者の有効な識別子として登録された状態で、使用者端末からトランザクション登録要請が獲得されると、前記ブロックチェーンネットワークの仮想マシンで動作するアドレス抽象化スマートコントラクトを通じて、前記使用者端末に抽象化トランザクション生成インターフェースを提供することで、前記使用者端末をもって、前記使用者認証書に対応する前記使用者識別子を生成させ、ゼロ知識証明に基づいて公開された抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記使用者認証書、使用者が前記ブロックチェーンネットワークで遂行しようとするトランザクションに対する情報を含んだトランザクションメッセージに対するハッシュ値であるトランザクションメッセージハッシュ値及び前記トランザクションメッセージに対応するメッセージシークエンスを利用して前記トランザクションメッセージを伝送した前記使用者が前記使用者識別子の持ち主であることを検証し、前記トランザクションメッセージと前記メッセージシークエンスとの有効性を検証するための抽象化トランザクション証明値を生成させるプロセス、及び(II)前記使用者端末から前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージ、前記メッセージシークエンス及び前記抽象化トランザクション証明値を含む抽象化トランザクションを獲得すると、前記アドレス抽象化スマートコントラクトを通じて、ゼロ知識証明に基づいて前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージに対する前記ハッシュ値である前記トランザクションメッセージハッシュ値、前記メッセージシークエンス及び前記抽象化トランザクション証明値を利用して前記抽象化トランザクション証明値を検証し、前記抽象化トランザクション証明値が検証されると、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにし、前記抽象化トランザクションに対する実行結果をトランザクションとして登録するプロセスを遂行するブロックチェーンシステムが提供される。
【0030】
前記(I)プロセスで、前記プロセッサは、前記使用者識別子が前記使用者の前記有効な識別子として登録されたことに対応し、前記アドレス抽象化スマートコントラクトを通じて(i)独立した値である前記使用者識別子自体を前記使用者ブロックチェーン識別子として登録する第1プロセス、(ii)前記使用者識別子により制御されるスマートコントラクトウォレットを生成し、前記使用者識別子を前記スマートコントラクトウォレットのウォレットアドレスにマッチングし、前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録する第2プロセス及び(iii)前記使用者識別子をNFT(Non-Fungible Token)化して使用者NFTを生成し、前記使用者NFTに対する所有権を外部所有アカウントに付与することで、前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録する第3プロセスのうちいずれか一つを遂行した状態であることを特徴とする。
【0031】
前記プロセッサは前記アドレス抽象化スマートコントラクトを通じて登録された前記使用者識別子に対応するトランザクションシークエンス(前記トランザクションシークエンスはそれぞれの特定の有効な識別子により遂行されたそれぞれの特定のトランザクションシークエンスを管理するために前記アドレス抽象化スマートコントラクトが前記それぞれの特定の有効な識別子ごとに生成したトランザクション累積カウンタである)を0に初期化した状態であり、前記アドレス抽象化スマートコントラクトが前記第1プロセスや前記第2プロセスを利用して前記使用者識別子自体や前記使用者識別子にマッチングされた前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録した状態である場合、前記(II)プロセスで、前記使用者端末から前記抽象化トランザクションを受信すると、前記プロセッサは前記アドレス抽象化スマートコントラクトを通じて(i)前記抽象化トランザクションに含まれた前記使用者識別子に対応する前記使用者ブロックチェーン識別子があるかどうかを確認し、(ii)前記使用者識別子に対応する前記使用者ブロックチェーン識別子がある場合、受信した前記使用者識別子に対応する特定のトランザクションシークエンスに1を足した値が前記抽象化トランザクションに含まれた前記メッセージシークエンスに対応するかどうかを確認し、(iii)ゼロ知識証明に基づいて前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージに対する前記ハッシュ値である前記トランザクションメッセージハッシュ値、前記メッセージシークエンス及び前記抽象化トランザクション証明値を利用して前記抽象化トランザクション証明値を検証し、前記抽象化トランザクション証明値が検証されると、(iv)前記特定のトランザクションシークエンスを前記メッセージシークエンスに対応する値にアップデートし、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにして前記抽象化トランザクションに対する前記実行結果を前記トランザクションとして登録することを特徴とする。
【0032】
前記アドレス抽象化スマートコントラクトが前記第3プロセスを利用して前記使用者識別子に対応する前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録した状態である場合、前記(I)プロセスで、前記使用者端末から前記トランザクションメッセージを含んだ前記トランザクション登録要請が獲得されると、前記プロセッサは前記使用者端末をもって前記使用者認証書に対応する前記使用者識別子を生成させ、前記(II)プロセスで、前記使用者端末が前記使用者識別子と前記トランザクションメッセージとを含むトランザクションを前記トランザクションを実行しようとする特定のブロックチェーンノードに伝送したことに対応し、前記特定のブロックチェーンノードから前記使用者識別子に対する検証要請を獲得すると、前記プロセッサは前記アドレス抽象化スマートコントラクトを通じて(i)前記トランザクションに含まれた前記使用者識別子に対応する前記使用者ブロックチェーン識別子があるかどうかを確認し、(ii)前記使用者識別子に対応する前記使用者ブロックチェーン識別子がある場合、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにして前記トランザクションに対する実行結果を前記ブロックチェーンネットワークに登録することを特徴とする。
【0033】
前記抽象化トランザクションメッセージ検証パラメータは前記アドレス抽象化スマートコントラクトを前記ブロックチェーンネットワークに配布したアドレス抽象化サービスプロバイダがゼロ知識証明に基づいて前記抽象化トランザクションを登録するための関係値を利用して生成したコモンリファレンスストリングであり、前記アドレス抽象化サービスプロバイダは前記抽象化トランザクションメッセージ検証パラメータを前記ブロックチェーンネットワークまたは前記ブロックチェーンネットワークの外部の格納場所に格納することで前記アドレス抽象化スマートコントラクトや前記抽象化トランザクション生成インターフェースをもって読取り可能なようにしたことを特徴とする。
【0034】
前記(I)プロセスで、前記使用者端末は前記トランザクションメッセージに前記トランザクションが遂行する関数に対応する関数シグネチャに対する情報、前記関数を遂行する対象であるターゲットアドレスに対する情報、前記関数を呼び出す際に因子として含まれたデータが位置する空間に対する情報及び前記関数を遂行するのに使用される暗号通貨値に対する情報を含むことを特徴とする。
【0035】
この他にも、本発明の方法を行うためのコンピュータープログラムを記録するためのコンピューターの読み取り可能な記録媒体がさらに提供される。
【発明の効果】
【0036】
本発明はブロックチェーンネットワークの外部の使用者識別子をブロックチェーン住所と一対一でマップピングすることなく、使用者認証書とこれに対応するゼロ知識証明とを使用することで、プライベートキーを格納する必要をなくし、使用者識別子の使用を特定のブロックチェーンに限定する代わりに多重チェーンダップスやweb2-web3ハイブリッドダップスにおいて使用可能なようにする効果がある。
【0037】
また、本発明はスマートコントラクトを使用して使用者識別子が使用者認証書に対応することをゼロ知識証明を通じて証明することができるようにすることで、ハードフォークを遂行することなく既存のブロックチェーンシステムやアプリケーションにスマートコントラクトを配布するだけでも少なくとも一つ以上のブロックチェーンアプリケーションで使用される使用者識別子が同一の使用者の所有であることを証明可能なようにする効果がある。
【0038】
また、本発明はゼロ知識証明を使用して使用者識別子を検証することで、使用者識別子に対応する使用者認証書を公開しなくても身元を検証可能なようにして使用者情報に対する保安を高め、一度生成した使用者識別子を引き続き使用可能なようにする効果がある。
【図面の簡単な説明】
【0039】
本発明の実施例の説明に利用されるために添付された以下の各図面は、本発明の実施例のうち単に一部であるに過ぎず、本発明の属する技術分野において通常の知識を有する者(以下「通常の技術者」)にとっては、発明的作業が行われずにこれらの図面に基づいて他の各図面が得られ得る。
【0040】
図1】本発明の一実施例において、使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスするブロックチェーンシステム及びブロックチェーンノードを簡略に示した図面である。
図2】本発明の一実施例において、使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする過程を簡略に示した図面である。
図3】本発明の一実施例において、使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法を簡略に示した図面である。
図4】本発明の一実施例において、使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする他の方法を簡略に示した図面である。
図5】本発明の一実施例において、使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする他の方法を簡略に示した図面である。
図6】本発明の一実施例において、ハイブリッドダップスにおいて使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法を簡略に示した図面である。
図7】通常のブロックチェーンシステムで使用者識別子をサービスする方法及び本発明の使用者識別子をサービスする方法を簡略に比較したのである。
【発明を実施するための形態】
【0041】
後述する本発明に関する詳細な説明は、本発明の各目的、各技術的解法、及び各長所を明らかにするために本発明が実施され得る特定の実施例を例示として示す添付図面を参照する。これらの実施例は、通常の技術者が本発明を実施することができるように十分詳細に説明される。
【0042】
また、本発明の詳細な説明及び各請求項にわたって、「含む」という単語及びそれらの変形は、他の技術的各特徴各付加物、構成要素又は段階を除外することを意図したものではない。通常の技術者にとって本発明の他の各目的、長所及び各特性が、一部は本説明書から、また一部は本発明の実施から明らかになるであろう。以下の例示及び図面は実例として提供され、本発明を限定することを意図したものではない。
【0043】
さらに、本発明は、本明細書に示された実施例のすべての可能な組合せを網羅する。本発明の多様な実施例は互いに異なるが、相互に排他的である必要はないことが理解されるべきである。例えば、ここに記載されている特定の形状、構造及び特性は、一実施例に関連して本発明の精神及び範囲を逸脱せず、かつ他の実施例で具現され得る。また、それぞれの開示された実施例内の個別の構成要素の位置又は配置は、本発明の精神及び範囲を逸脱せず、かつ変更され得ることが理解されるべきである。したがって、後述の詳細な説明は、限定的な意味として受け取ろうとするものではなく、本発明の範囲は適切に説明されるのであれば、その請求項が主張することと均等な全ての範囲とともに添付された請求項によってのみ限定される。図面において類似の参照符号は、様々な側面にわたって同一であるか、又は類似の機能を指す。
【0044】
以下、本発明の属する技術分野において通常の知識を有する者が本発明を容易に実施し得るようにするために、本発明の好ましい実施例について、添付された図面を参照して詳細に説明することにする。
【0045】
図1は本発明の一実施例において、使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスするブロックチェーンシステム及びブロックチェーンノードを間略に示した図面であり、図1を参照すると、本発明の一実施例において、ブロックチェーンシステムはそれぞれ使用者識別子に基づいて身元を認証するか、ブロックチェーンに基づくサービスを提供する多数のブロックチェーンノードで構成されたブロックチェーンネットワーク100を含むことができる。これに加えて、このようなブロックチェーンネットワーク100は複数の使用者端末200とインタラクションすることができ、複数の使用者端末200は使用者認証書の発給を受けるために認証機関(300;Certification Institution、inst.)とインタラクションすることができる。
【0046】
まず、ブロックチェーンネットワーク100は複数のブロックチェーンノード100_1、100_2、100_3、100_4、100_5、…、100_Nによるピアツーピア(P2P、peer-to-peer)方式により分散合意を通じてブロックを生成し、ブロックをチェーンで連結して分散元帳に記録することができる。
【0047】
この際、ブロックチェーンネットワーク100を構成する少なくとも一つのブロックチェーンノード100_1はスマートコントラクトを実行することで使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスするためのインストラクションを格納するメモリ101_1とメモリ101_1に格納されたインストラクションとに対応してスマートコントラクトを実行することで使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスするための動作を遂行するプロセッサ102_1を含むことができる。ここで、図1は説明の便宜のために本発明の一実施例において使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスするブロックチェーンノードを100_1に特定した。
【0048】
具体的に、ブロックチェーンノード100_1は、典型的にコンピューティング装置(例えば、コンピュータプロセッサ、メモリ、ストレージ、入力装置及び出力装置、その他既存のコンピューティング装置の構成要素を含むことができる装置;ルータ、スイッチなどのような電子通信装置;ネットワーク接続ストレージ(NAS)及びストレージ領域ネットワーク(SAN)のような電子情報ストレージシステム)及びコンピュータソフトウェア(即ち、コンピューティング装置をもって特定の方式で機能させる各インストラクション)の組合せを利用して所望のシステム性能を達成するものであり得る。
【0049】
このようなコンピュータ装置の通信部は、連動される他のコンピュータ装置と要請及び応答を送受信することができ、一例としてこのような要請及び応答は、同一のTCPセッションによって行われ得るが、これに限定されるわけではなく、例えばUDPデータグラムとしても送受信され得る。
【0050】
また、コンピューティング装置のプロセッサはMPU(Micro Processing Unit)またはCPU(Central Processing Unit)、キャッシュメモリ(Cache Memory)、データバス(Data Bus)などのハードウェア構成を含むことができる。また、コンピューティング装置はオペレーティングシステム、特定の目的を遂行するアプリケーションのソフトウェア構成をさらに含むことができる。
【0051】
しかし、コンピューティング装置が本発明を実施するためのミディアム、プロセッサ及びメモリが統合された形態である統合プロセッサを含む場合を排除するわけではない。
【0052】
一方、ゼロ知識証明に基づく使用者識別子をサービスするためのアドレス抽象化サービスプロバイダは、使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスするためにアドレス抽象化スマートコントラクトをブロックチェーンネットワーク100に配布することができ、配布されたアドレス抽象化スマートコントラクトはブロックチェーンネットワーク100の仮想マシンで動作することができる。
【0053】
次に、ゲーム、決済、投票などのブロックチェーンサービスで使用される使用者識別子を生成するためにアドレス抽象化サービスを利用しようとする使用者端末200は、認証機関300に要請して使用者認証書を発給を受け、アドレス抽象化スマートコントラクトを通じて認証機関300から発給を受けた使用者認証書に基づいて使用者識別子を生成することができ、生成された使用者識別子はブロックチェーンのシステムの類型に制限されることなく、様々なブロックチェーンで使用され得る。ここで、使用者端末200はブロックチェーンネットワーク100を利用するエンティティ(entity)であり得、ブロックチェーンに基づくサービスを使用するためにトランザクションを生成し、ブロックチェーンネットワーク100をもって使用者識別子とトランザクション内容を検証してトランザクションを登録させることができる。
【0054】
このように構成された本発明の一実施例において、ブロックチェーンシステムを通じて使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法を図2乃至図7を参照して説明すると以下の通りである。
【0055】
図2は本発明の一実施例において、使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする過程を簡略に示した図面である。
【0056】
まず、ブロックチェーンネットワーク100にアドレス抽象化スマートコントラクトを配布したアドレス抽象化サービスプロバイダは、配布したスマートコントラクトを通じてゼロ知識証明に基づく使用者識別子をサービスするために必要な使用者識別子検証パラメータと抽象化トランザクションメッセージ検証パラメータとを生成して格納した状態であり得る。
【0057】
ここで、使用者識別子検証パラメータはアドレス抽象化サービスプロバイダがゼロ知識証明に基づいて使用者識別子を登録するための関係値(R)を利用して生成(crs ← zkp.Setup(R))したコモンリファレンスストリング(crs)であり、アドレス抽象化サービスプロバイダは使用者識別子検証パラメータをブロックチェーンネットワーク100やブロックチェーンネットワーク100の外部の格納場所に格納することで、アドレス抽象化スマートコントラクトや使用者識別子生成インターフェースをもって読取り可能なようにすることができる。ここで、ブロックチェーンネットワーク100の外部格納場所とは、データを複数のブロックチェーンノードにホスティングし、バックアップすることができるP2P(Peer to Peer)方式の分散ネットワークの形態を有する分散型ファイルシステム(InterPlanertary File System;IPFS)であり得るが、本発明がこれに限定されるわけではない。
【0058】
また、抽象化トランザクションメッセージ検証パラメータはアドレス抽象化スマートコントラクトをブロックチェーンネットワークに配布したアドレス抽象化サービスプロバイダがゼロ知識証明に基づいて抽象化トランザクションを登録するための関係値(R)を利用して生成(crs ← zkp.Setup(R))したコモンリファレンスストリング(crs)であり、アドレス抽象化サービスプロバイダは抽象化トランザクションメッセージ検証パラメータをブロックチェーンネットワークやブロックチェーンネットワークの外部の格納場所に格納することで、アドレス抽象化スマートコントラクトや抽象化トランザクション生成インターフェースをもって読取り可能なようにすることができる。
【0059】
一方、前記ではアドレス抽象化サービスプロバイダが使用者識別子検証パラメータと抽象化トランザクションメッセージ検証パラメータとをブロックチェーンネットワークや外部の格納場所に格納するものとして説明したが、これとは異なり、アドレス抽象化スマートコントラクトをもって使用者識別子検証パラメータと抽象化トランザクションメッセージ検証パラメータとを生成してブロックチェーンネットワークや外部の格納場所に格納させることもできる。一例として、アドレス抽象化サービスプロバイダは関係値(R)と関係値(R)とのそれぞれをアドレス抽象化スマートコントラクトに伝送することでアドレス抽象化スマートコントラクトをもってゼロ知識証明セットアップ関数(crs ← zkp.Setup(R))を利用してコモンリファレンスストリング(crs)を生成してブロックチェーンネットワークまたは外部の格納場所に格納させ、ゼロ知識証明セットアップ関数(crs ← zkp.Setup(R))を利用してコモンリファレンスストリング(crs)を生成してブロックチェーンネットワークまたは外部の格納場所に格納させることができる。
【0060】
次に、本発明の一実施例において、使用者識別子サービスを利用するための使用者は、使用者端末200を通じて認証機関300から使用者認証書(certificate;cert)の発給を受けることができる。
【0061】
一例として、使用者は使用者端末200を通じて使用者のパスワードのような使用者の個人データpwdを認証機関300に提供して使用者認証書の発給を受けることができ、ここで使用者認証書の例としては、JSON Web Token(JWT)のようなweb2識別子(web2 identity)などがあり得る。
【0062】
次に、使用者は使用者端末200を通じてブロックチェーンネットワークで利用するための使用者識別子の生成要請情報をブロックチェーンネットワークにブロードキャスティングすることができる。この際、使用者識別子の生成要請情報はアドレス抽象化スマートコントラクトの住所に伝送され得、それに応じて、ブロックチェーンネットワークを構成する少なくとも一つのブロックチェーンノードは仮想マシンでアドレス抽象化スマートコントラクトを実行することができ、アドレス抽象化スマートコントラクト(zero-knowledge Address Abstraction contract;zkAA contract)は使用者端末200に使用者識別子生成インターフェースを提供することができる。
【0063】
すると、使用者端末200は使用者識別子生成インターフェースによって、使用者認証書に基づいた使用者識別子を生成した後、使用者識別子をブロックチェーンネットワークに登録し、使用者識別子が使用者認証書に基づいたものであることを証明することができるようにすることができる。
【0064】
ここで、本発明の一実施例において、使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子を生成して登録(Register)する方法をコード化して表すと、以下のような擬似コード(pseudocode)のように表現することができる。従って、下記では擬似コードを共に参考にして、使用者識別子を生成して登録する方法を説明する。
【0065】
【0066】
前記擬似コードによると、使用者識別子に対応する使用者ブロックチェーン識別子には3種類の異なる類型(τ、τ2、τ)があり得、使用者端末200は3種類の異なる類型のうち一つを選択した状態で予め設定された登録プロセスを遂行することができ、使用者ブロックチェーン識別子の類型については後述する説明にて詳細に説明する。
【0067】
使用者端末200は使用者識別子生成インターフェースを通じて、認証機関300から発給された使用者認証書に基づいた使用者識別子を生成することができる。
【0068】
この際、使用者端末200は使用者認証書にハッシュ関数を適用(H(cert))して使用者識別子を生成することができるが、本発明がこれに限定されるわけではなく、使用者識別子から使用者認証書が逆生成または逆追跡されることのできない全ての種類の関数を含むことができるものである。
【0069】
また、使用者端末200は使用者識別子検証パラメータ(pp)使用者識別子(id)、認証機関に対応する認証機関のパブリックキー(pk)、及び使用者認証書(cert)を利用して使用者識別子が使用者(user)の使用者認証書から生成されたものであり、使用者認証書は認証機関から発行されたものであることを証明するための使用者識別子証明値
することができる。ここで、認証機関のパブリックキーは使用者認証書を証明することに使用され得、使用者端末200は認証機関から認証機関のパブリックキーを直接獲得するか、認証機関の認証機関のパブリックキーがブロックチェーンネットワーク100に登録された場合、ブロックチェーンネットワーク100の外部の格納場所またはブロックチェーンネットワーク100から認証機関のパブリックキーを獲得することができる。
【0070】
以後、使用者端末200は使用者識別子検証パラメータ(pp)、使用者識別子(id)、認証機関のパブリックキー(pk)、及び使用者識別子証明値
をアドレス抽象化スマートコントラクトの住所を目的地としてブロックチェーンネットワーク100にブロードキャスティングすることができる。
【0071】
すると、アドレス抽象化スマートコントラクトは、ゼロ知識証明に基づいて使用者識別子検証パラメータ、使用者識別子、認証機関のパブリックキー及び使用者識別子証明値を利用して使用者識別子証明値を検証
することができる。即ち、zkp.Verify関数は使用者識別子証明値が検証されればバイナリ値として1を出力し、使用者識別子証明値が検証に失敗すればバイナリ値として0を出力することができる。
【0072】
これによって、アドレス抽象化スマートコントラクトは使用者識別子証明値が検証されると、使用者識別子をブロックチェーンネットワーク100における有効な識別子として登録することができる。
【0073】
即ち、アドレス抽象化スマートコントラクトは使用者端末200の使用者識別子登録要請に対して、登録を要請した使用者識別子が既に登録された使用者識別子であるかどうかを確認(assert(id has not yet been registered))し、使用者識別子証明値を検証
して、使用者識別子証明値に対する検証の成功の可否に関する情報を出力する一方、検証に成功した場合、検証の成功の可否に関する情報と共に使用者ブロックチェーン識別子を出力して使用者識別子をアドレス抽象化スマートコントラクトに登録(register id within zkAA contract)することができる。
【0074】
また、ここでアドレス抽象化スマートコントラクトは、登録された使用者識別子に対応するトランザクションシークエンス(nonceid)を0に初期化(set nonceid ← 0)することができる。ここで、トランザクションシークエンスはそれぞれの特定の有効な識別子により遂行されたそれぞれの特定のトランザクションシークエンスを管理するために、アドレス抽象化スマートコントラクトがそれぞれの特定の有効な識別子ごとに生成したトランザクション累積カウンタである。
【0075】
これに加えて、アドレス抽象化スマートコントラクトは使用者識別子証明値が検証されて使用者識別子をブロックチェーンネットワーク100における有効な識別子として登録した後、使用者端末200が前以て選択した使用者ブロックチェーン識別子の類型(τ、τ、τ)によって(i)独立した値である使用者識別子自体を使用者ブロックチェーン識別子として登録する第1プロセス(τ)、(ii)使用者識別子により制御されるスマートコントラクトウォレット(Contract Account;CA)を生成し、使用者識別子をスマートコントラクトウォレットのウォレットアドレスにマッチングし、ウォレットアドレスを使用者ブロックチェーン識別子として登録する第2プロセス(τ)及び(iii)使用者識別子をNFT(Non-Fungible Token)化して使用者NFTを生成し、使用者NFTに対する所有権を外部所有アカウント(Externally Owned Account;EOA)に付与することで、外部所有アカウントを使用者ブロックチェーン識別子として登録する第3プロセス(τ)のうちいずれか一つを遂行することができる。
【0076】
これによって、アドレス抽象化スマートコントラクトは使用者端末200の使用者識別子登録要請

に対し、使用者識別子証明値に対する検証の成功の可否(成功した場合1、成功しなかった場合0)に関する情報と共に、生成された使用者ブロックチェーン識別子(id(第1プロセス、τ)、address(CA)(第2プロセス、τ)、msg.sender(第3プロセス、τ)または
(検証に成功しなかった場合))を出力することができる。
【0077】
即ち、本発明は使用者端末200をもって使用者認証書を公開しなくても使用者認証書に対応する使用者識別子を利用してブロックチェーンネットワーク100で使用することができる使用者ブロックチェーン識別子を登録できるようにし、それぞれのブロックチェーンサービスで要求する識別子の形態に応じて使用者識別子、使用者識別子にマッチングしたウォレットアドレスまたは使用者NFTを保有した外部所有アカウントを使用者ブロックチェーン識別子として使用することができるようにする。ここで、使用者識別子のような抽象化された識別子はゼロ知識証明を通じて使用者を確認することができ、使用者識別子とマッチングしたアドレスは使用者と連結されているので、これを通じて使用者を確認することができる。
【0078】
上記のように使用者認証書を利用してブロックチェーンネットワークで使用者ブロックチェーン識別子を登録する一方、本発明の一実施例において、登録された使用者ブロックチェーン識別子を利用してブロックチェーンネットワークでトランザクションを掲示する方法は以下の通りである。
【0079】
再び図2を参照すると、認証機関300から発給された使用者認証書を利用して生成した使用者識別子が使用者の有効な識別子として登録された状態で、使用者端末200からトランザクション登録要請が獲得されると、ブロックチェーンネットワーク100の仮想マシンで動作するアドレス抽象化スマートコントラクトが、使用者端末200に抽象化トランザクション生成インターフェースを提供することができる。
【0080】
ここで、本発明の一実施例において、使用者認証書を利用してブロックチェーンネットワークに登録された使用者識別子を利用してトランザクションを掲示(Publish)する方法をコード化して表すと、以下のような擬似コード(pseudocode)のように表現することができる。従って、以下では下記の擬似コードを共に参考にして使用者識別子を利用してトランザクションを遂行する方法を説明する。
【0081】
【0082】
上記の擬似コードによると、上述したように使用者識別子に対応する使用者ブロックチェーン識別子は3種類の異なる類型(τ、τ、τ)であり得、使用者端末200は3種類の異なる類型のうち一つを選択した状態で予め設定されたトランザクションの掲示プロセスを遂行することができ、各使用者ブロックチェーン識別子の類型によるトランザクションの掲示プロセスは後述する説明にて詳細に説明する。
【0083】
ここで、前述した使用者識別子を登録する方法によると、アドレス抽象化スマートコントラクトは使用者識別子をブロックチェーンネットワーク100における有効な識別子として登録したことに対応し、使用者端末200が前以て選択した使用者ブロックチェーン識別子の類型(τ、τ、τ)によって(i)独立した値である使用者識別子自体を使用者ブロックチェーン識別子として登録する第1プロセス(τ)、(ii)使用者識別子により制御されるスマートコントラクトウォレット(Contract Account;CA)を生成し、使用者識別子をスマートコントラクトウォレットのウォレットアドレスにマッチングし、ウォレットアドレスを使用者ブロックチェーン識別子として登録する第2プロセス(τ)及び(iii)使用者識別子をNFT(Non-Fungible Token)化して使用者NFTを生成し、使用者NFTに対する所有権を外部所有アカウント(Externally Owned Account;EOA)に付与することで、外部所有アカウントを使用者ブロックチェーン識別子として登録する第3プロセス(τ)のうちいずれか一つを遂行した状態であり得る。また、アドレス抽象化スマートコントラクトは登録された使用者識別子に対応するトランザクションシークエンスを0に初期化した状態であり得る。ここで、トランザクションシークエンスはそれぞれの特定の有効な識別子により遂行されたそれぞれの特定のトランザクションシークエンスを管理するためにアドレス抽象化スマートコントラクトがそれぞれの特定の有効な識別子ごとに生成したトランザクション累積カウンタである。
【0084】
これによって上記の掲示に対する擬似コードを参照すると、使用者端末200は遂行しようとするトランザクションに対する情報を含むトランザクションメッセージ(msg)を生成することができる。ここで、使用者端末200はトランザクションメッセージに、トランザクションが遂行する関数に対応する関数シグネチャに対する情報(funcsig)、関数を遂行する対象であるターゲットアドレスに対する情報(target)、関数を呼び出す際に因子として含まれたデータが位置する空間に対する情報(calldata)及び関数を遂行するのに使用される暗号通貨値(value)に対する情報を含めることができる。
【0085】
続いて、使用者端末200はトランザクション登録要請に対応してアドレス抽象化スマートコントラクトから獲得した抽象化トランザクション生成インターフェースを利用して使用者認証書に対応する使用者識別子を生成することができる。この際、使用者端末200は使用者認証書にハッシュ関数を適用(H(cert))して使用者識別子を生成することができるが、本発明がこれに限定されるわけではなく、使用者識別子から使用者認証書が逆生成または逆追跡されることのできない全ての種類の関数を含むことができる。
【0086】
次に、使用者端末200は前以て生成したトランザクションメッセージ(msg)に対してトランザクションメッセージハッシュ値(H(msg))を生成することができる。ここで、使用者端末200はトランザクションメッセージ(msg)にハッシュ関数を適用してトランザクションメッセージハッシュ値(H(msg))を生成することができるが、本発明がこれに限定されるわけではなく、トランザクションメッセージハッシュ値からトランザクションメッセージが逆生成または逆追跡されることのできない全ての種類の関数を含むことができる。
【0087】
以後、使用者端末200はゼロ知識証明に基づいて公開された抽象化トランザクションメッセージ検証パラメータ(pp)、使用者識別子(id)、使用者認証書(cert)、使用者がブロックチェーンネットワーク100で遂行しようとするトランザクションに対する情報を含んだトランザクションメッセージ(msg)に対するハッシュ値であるトランザクションメッセージハッシュ値(H(msg))及びトランザクションメッセージに対応するメッセージシークエンス(m)を利用してトランザクションメッセージを伝送した使用者が使用者識別子の持ち主であることを検証し、トランザクションメッセージとメッセージシークエンスとの有効性を検証するための抽象化トランザクション証明値(π(P,m))を生成(π(P,m) ← zkp.Prove(pp,(id,H(msg),m); cert))することができる。
【0088】
これによってアドレス抽象化スマートコントラクトが第1プロセスまたは第2プロセスを利用して使用者識別子自体を使用者ブロックチェーン識別子として登録するか、ウォレットアドレスを使用者ブロックチェーン識別子として登録した状態である場合、使用者端末200は抽象化トランザクションメッセージ検証パラメータ(pp)、使用者識別子(id)、トランザクションメッセージ(msg)、メッセージシークエンス(m)及び抽象化トランザクション証明値(π(P,m))を含む掲示トランザクション(PUBLISH(pp,id,msg,m,π(P,m))、即ち、抽象化トランザクションをアドレス抽象化スマートコントラクトの住所を目的地としてブロックチェーンネットワーク100にブロードキャスティングすることができる。ここで、図2を参照すると、∀userで表現された使用者は、前以て使用者識別子を登録したuserと同一の使用者であるが、登録された使用者のうち上述した第1プロセスや第2プロセスを利用してブロックチェーン使用者識別子を登録して抽象化トランザクションを生成する使用者であり、表現上の便宜のために別途に表現した。また、この際、抽象化トランザクションによってアドレス抽象化スマートコントラクトを実行させるためには暗号通貨の支払が必要なことがあり、これによって使用者端末は抽象化トランザクションのトランザクションメッセージに含まれた関数を遂行するのに使用される暗号通貨値(value)、即ち、アドレス抽象化スマートコントラクトの実行に必要な費用に該当するETHなどの暗号通貨を抽象化トランザクションと共にアドレス抽象化スマートコントラクトに伝送することができる。
【0089】
一方、アドレス抽象化スマートコントラクトが第3プロセスを利用して使用者識別子に対応する外部所有アカウントを使用者ブロックチェーン識別子として登録した状態である場合、上述のように抽象化トランザクション証明値を含む抽象化トランザクションを生成する代わりに、使用者端末200からトランザクションメッセージ(msg)を含んだトランザクション登録要請が獲得されると、アドレス抽象化スマートコントラクトは使用者端末200をもって抽象化トランザクション証明値を除いて使用者認証書に対応する使用者識別子を生成させることができる。以後、使用者端末200は使用者識別子とトランザクションメッセージとを含むトランザクションを実行しようとする特定のブロックチェーンの住所を目的地としてブロックチェーンネットワーク100にブロードキャスティングすることができる。
【0090】
続いて、またアドレス抽象化スマートコントラクトが第1プロセスまたは第2プロセスを利用して使用者識別子自体を使用者ブロックチェーン識別子として登録するか、ウォレットアドレスを使用者ブロックチェーン識別子として登録した状態である場合、アドレス抽象化スマートコントラクトは、ゼロ知識証明に基づいて抽象化トランザクションメッセージ検証パラメータ、使用者識別子、トランザクションメッセージに対するハッシュ値であるトランザクションメッセージハッシュ値、メッセージシークエンス及び抽象化トランザクション証明値を利用して抽象化トランザクション証明値を検証(zkp.Verify(pp,(id,H(msg),m),π(P,m)))することができる。即ち、zkp.Verify関数は使用者識別子証明値が検証されればバイナリ値として1を出力し、使用者識別子証明値が検証に失敗すればバイナリ値として0を出力することができる。
【0091】
これによって、アドレス抽象化スマートコントラクトは抽象化トランザクション証明値が検証されると、トランザクションメッセージをブロックチェーンネットワークに伝送して実行されるようにし、抽象化トランザクションに対する実行結果をトランザクションとして登録することができる。即ち、アドレス抽象化スマートコントラクトは使用者端末200の抽象化トランザクション登録要請(PUBLISH(ppP,id,msg,m,π(P,m)))に対し、抽象化トランザクション証明値に対する検証の成功の可否(0または1)に関する情報と共にトランザクションの結果(res(トランザクション結果)または
(検証に成功しなかった場合))を出力して返すことができる。
【0092】
具体的に、使用者端末200から抽象化トランザクションを受信すると、アドレス抽象化スマートコントラクトは(i)抽象化トランザクションに含まれた使用者識別子に対応する使用者ブロックチェーン識別子があるかどうかを確認(assert(id must have been registered))し、(ii)使用者識別子に対応する使用者ブロックチェーン識別子がある場合、受信した使用者識別子に対応する特定のトランザクションシークエンスに1を足した値が抽象化トランザクションに含まれたメッセージシークエンスに対応するかどうかを確認(assert(m == nonceid+1)しながら、(iii)ゼロ知識証明に基づいて抽象化トランザクションメッセージ検証パラメータ、使用者識別子、トランザクションメッセージに対するハッシュ値であるトランザクションメッセージハッシュ値、メッセージシークエンス及び抽象化トランザクション証明値を利用して抽象化トランザクション証明値を検証(assert zkp.Verify(ppP,(id,H(msg),m),π(P,m)))して抽象化トランザクション証明値が検証されると、(iv)特定のトランザクションシークエンスをメッセージシークエンスに対応する値にアップデート(nonceid ← m)し、トランザクションメッセージをブロックチェーンネットワークに伝送して実行されるようにして抽象化トランザクションに対する実行結果をトランザクションとして登録することができる。
【0093】
一方、第3プロセスを利用して使用者識別子に対応する外部所有アカウントを使用者ブロックチェーン識別子として登録した状態である場合、使用者端末200が使用者識別子とトランザクションメッセージとを含むトランザクションを実行しようとする特定のブロックチェーンノードに伝送したことに対応して特定のブロックチェーンノードから使用者識別子に対する検証要請を獲得すると、アドレス抽象化スマートコントラクトは(i)トランザクションに含まれた使用者識別子に対応する使用者ブロックチェーン識別子があるかどうかを確認(assert msg.sender == address(zkAA contract)))し、(ii)使用者識別子に対応する使用者ブロックチェーン識別子がある場合、トランザクションメッセージをブロックチェーンネットワークに伝送して実行されるようにしてトランザクションに対する実行結果をブロックチェーンネットワークに登録することができる。
【0094】
上述のように本発明により実行されるアドレス抽象化スマートコントラクトは使用者の身元を示す固有な識別子を生成し、使用者の固有な識別子を生成するのに利用した使用者認証書はただ使用者及び認証機関のみが知っている一方、使用者認証書を公開しなくても使用者認証書に対応する使用者識別子の有効性は使用者識別子証明値と抽象化トランザクション証明値とを利用して公開的に検証することができる。即ち、有効な使用者認証書を有する使用者は、これにより実行可能なトランザクションメッセージとこれに対応するメッセージシークエンスとに対して有効な使用者識別子証明値と抽象化トランザクション証明値とをいつでも生成することができる。
【0095】
また、本発明はトランザクションメッセージを、抽象化トランザクション証明値を生成する際に含めることで生成されたトランザクションに対する偽変造を防止し、アドレス抽象化スマートコントラクトが指定された作業のみを遂行するようにすることができる。これに加えて、本発明はメッセージシークエンスを利用することによって抽象化されたトランザクションが変更や欠落することなく順に遂行されるようにすることができる。
【0096】
これに加えて、本発明は、ハッシュ値やマークルツリー(Merkle Tree)だけでアドレス抽象化を生成する方法とは異なり、使用者認証書を公開しないため、一度登録された使用者識別子は使用回数に制限がなく、使用者が使用者要請事項であるトランザクションメッセージを抽象化トランザクションに含めることができるため、様々な形態のトランザクションを遂行するのに適している。
【0097】
これによって、以下の図3乃至図6では本発明の一実施例において、使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする様々な適用例を示している。以下では図1及び図2を参照した説明から容易に理解可能な部分については詳細な説明を省略する。
【0098】
まず、図3は本発明の一実施例において、独立した値である使用者識別子自体を使用者ブロックチェーン識別子として登録した場合にブロックチェーンネットワークでブロックチェーンサービスを提供する方法を簡略に示している。
【0099】
図3に示された適用例を見ると、使用者端末200は運営の少なくとも一部がスマートコントラクトにより作動されるゲームにアクセスしてプレーするためにソーシャルログインを試みている。ここで、図3はブロックチェーン使用者識別子が使用者認証書、即ち、使用者のweb2識別子に対するハッシュ値(H(cert))として登録される場合を描写しており、使用者識別子を検証するアドレス抽象化スマートコントラクト(zkAA)を該当スマートコントラクトが配布された一つのブロックチェーンノード100_1で表現し、ゲームに対するスマートコントラクトを遂行する主体を他のブロックチェーンノード100_2で表現している。
【0100】
図3によると、使用者端末200がゲームのウェブサイトに移動してログインボタンをクリックすると身元認証のためにソーシャルログインプロバイダ(例:GoogleまたはGitHub)にリダイレクト(段階A-1)され得る。これによって認証に成功すれば、使用者端末200は使用者の身元情報を含んでいる使用者認証書を獲得(段階A-2)してゲームのウェブサイトに再びリダイレクトされ得る。すると、使用者端末200は使用者認証書のハッシュ値を演算して使用者識別子を生成し、使用者認証書がソーシャルログインプロバイダにより署名されており、使用者識別子が使用者認証書のハッシュ値と同一であることを証明することができる使用者識別子証明値を生成することができる。その次に、使用者端末200は生成した使用者識別子証明値と使用者識別子とはブロックチェーンネットワーク100に掲示(段階A-3)され得、これによってアドレス抽象化スマートコントラクト100_1;zkAA)は該当使用者識別子証明値を検証し、有効ならば使用者認証書のハッシュ値を使用者ブロックチェーン識別子として登録(段階A-4)することができる。ここで、使用者端末200の固有な使用者識別子と使用者ブロックチェーン識別子とは同一である。これで、使用者端末200は抽象化されたトランザクションをブロックチェーンに掲示することができるようになる。
【0101】
これによって、使用者端末200が抽象化されたトランザクションをブロックチェーンに掲示(段階:B-1)すると、抽象化されたトランザクションはアドレス抽象化スマートトランザクション100_1により検証(段階B-2)され、抽象化されたトランザクションの有効性が検証されれば抽象化トランザクションに含まれたトランザクションメッセージに伴う要請事項を実行(段階B-3)することができる。
【0102】
このような使用者認証書のハッシュ値に基づいた使用者識別子は既存のアドレスに基づく識別子を使用することなくハッシュ値識別子を認識できるダップスであれば、全て適用可能である。
【0103】
次に、図4は本発明の一実施例において、使用者識別子をスマートコントラクトウォレットのウォレットアドレスにマッチングし、ウォレットアドレスを使用者ブロックチェーン識別子として登録した場合にブロックチェーンネットワークでブロックチェーンサービスを提供する方法を簡略に示している。
【0104】
図4は使用者識別子をブロックチェーンネットワーク100上のスマートコントラクトウォレットにマッチングしてゼロ知識証明に基づくアドレス抽象化を遂行する方法について描写しており、ここで使用者ブロックチェーン識別子(idchain)はスマートコントラクトウォレットのウォレットアドレスまたはコントラクトアカウントである。図3と同じように、図4も使用者識別子を検証するアドレス抽象化スマートコントラクト(zkAA)を該当スマートコントラクトが配布された一つのブロックチェーンノード100_1で表現し、ゲームに対するスマートコントラクトを遂行する主体を他のブロックチェーンノード100_2で表現しており、これに加えて使用者識別子により制御されるスマートコントラクトウォレットが位置したブロックチェーンノード100_3をさらに表現している。
【0105】
図4のシナリオにより遂行されるプロセスは図3で描写されたプロセスとほとんど同一である。ただし、図4の場合、段階A-4でアドレス抽象化スマートコントラクト100_1が使用者識別子証明値を検証した後、有効性が検証されると、使用者識別子と新しくミンティングされたスマートコントラクトウォレット100_3との間のマップピングを生成することができる。これによって、スマートコントラクトウォレット100_3は抽象化トランザクションを通じてトランザクションメッセージの要請事項を遂行するにおいて、ゲームを実行するスマートコントラクト100_2と直接インタラクション(段階B-3及び段階B-4)することができる。
【0106】
このような場合、使用者端末200の要請事項がトランザクションメッセージはコントラクトウォレット100_3にフォワーディング(段階B-3)され、これによってコントラクトウォレット100_3はターゲットコントラクトを読取る。このような住所抽象化方式は、既存のアドレスに基づく識別子を使用する全てのダップスに適用可能であり、チェーンの間の互換性を高めることができる。
【0107】
次に、図5は本発明の一実施例において、使用者NFTに対する所有権を外部所有アカウントに付与することで、外部所有アカウントを使用者ブロックチェーン識別子として登録した場合にブロックチェーンネットワークでブロックチェーンサービスを提供する方法を簡略に示している。ここで、NFTはブロックチェーンネットワーク上で所有権を示すことができるデジタル資産を意味する。
【0108】
図5のシナリオの場合、使用者識別子登録段階である段階A-4でアドレス抽象化スマートコントラクト100_1が使用者識別子と連結された新しいNFTを生成することができる。
【0109】
このような住所抽象化方式が図3及び図4のシナリオとは異なる最も大きい差異点は、抽象化トランザクションを掲示する必要がないということである。その代わりに、使用者端末200は既存のブロックチェーンシステムのように一般的なトランザクションを掲示(段階B-1)することができる。
【0110】
その次に、一般的なトランザクションを受信したゲームのスマートコントラクト100_2はアドレス抽象化スマートコントラクト100_1にNFTに対する所有権の検証を要請(段階B-2)し、NFTに対する所有権が成功的に検証(段階B-3と段階B-4)されると、既存の方式でトランザクションメッセージに含まれた要請事項が実行(段階B-5)され得る。ここで、NFTは使用者識別子としての役割をしてダップスとインタラクションできるようにし、このような場合、ブロックチェーン使用者識別子は外部所有アカウントである。
【0111】
しかし、このような住所抽象化方式の場合、アドレス抽象化スマートコントラクトがNFTに対する所有権を検証して使用者の身元を確認しなければならないため、ダップスの開発及び実行の複雑性が増加する問題があり、NFT所有権検証を考慮しない既存のダップスとは互換できないことがある。即ち、NFTをブロックチェーン使用者識別子として使用する場合、一般的なトランザクション登録方式を採択するため、費用は節減することができるが、互換性が落ちるためトランザクション抽象化の手続きが省略され、保安性が落ちる恐れがあるという短所がある。
【0112】
図6は本発明の一実施例において、ハイブリッドダップスにおいて使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法を簡略に示した図面である。
【0113】
図6で図示しているweb2-web3ハイブリッドアプリケーションは既存のウェブ基盤システムやブロックチェーンのような分散技術を統合したものであり、ゲームのような分野で高性能であると同時に費用効率的なアプリケーションとして頻繁に使用されている。このようなソリューションは処理の速い中央集中式システムに対する使用の容易性と共にブロックチェーンシステムの保安成及び分散性を結合して向上された使用者経験を提供することができる。
【0114】
しかし、このようなハイブリッドアプリケーションの開発の主な障害物のうち一つは、web2システムとweb3システムとのそれぞれの固有な使用者識別子検証システムによる使用者管理の断片化(fragmentation)である。これに対して、本発明のアドレス抽象化スマートコントラクトは図6のように使用者認証書を利用してweb2アプリケーションとweb3アプリケーションとの両方において使用者識別子を均一に表現することで使用者管理の断片化に対する代案として使用され得る。
【0115】
即ち、本発明では特定の使用者に対して各種web2システムと各種ブロックチェーンシステムとで使用する使用者識別子を同一の使用者認証書を利用することによって、サービスプロバイダをもって様々なシステムにわたって多数の使用者識別子を管理しなければならない複雑性を除去することができる。従って、本発明はweb2アプリケーションとweb3アプリケーションとの両方に互換可能な使用者識別子を生成することによってハイブリッドアプリケーションに有用に使用可能な身元認証ソリューションを提供することができる。
【0116】
次に、図7は通常のブロックチェーンシステムで使用者識別子をサービスする方法及び本発明の使用者識別子をサービスする方法を簡略に比較している。
【0117】
図7によると、ブロックチェーン上のトランザクションを遂行する過程でデジタル資産を識別して管理するために使用される通常のブロックチェーンシステムの使用者識別子は各ブロックチェーンごとに使用者個人が生成したものであり、プライベートキーとこれに対応するパブリックキーとで構成されている。ここで、使用者は外部に公開しないプライベートキーで本人が生成したトランザクションメッセージなどを署名して署名値を生成する一方、署名値に外部に公開されたパブリックキーを利用してトランザクションを生成した主体を証明することができ、特定のブロックチェーンに対して生成したプライベートキー-パブリックキーのペアは他のブロックチェーンで使用することができない。
【0118】
これに対して、外部の使用者認証書をブロックチェーン対象使用者識別子にマッピングするにおいて発生する既存の問題を解決するために開発した本発明の使用者識別子は、信頼できるweb2認証機関から生成した使用者認証書をゼロ知識に基づいてブロックチェーンシステムで検証及び使用することができる。これによると、本発明では使用者が使用者認証書から使用者識別子を生成して使用者認証書の内容を公開しなくてもゼロ知識証明を通じて使用者識別子の有効性を検証することができ、互いに異なるブロックチェーンでも同一の使用者認証書に基づく使用者識別子を使用することができる。たとえ本発明のように使用者識別子をサービスする方法は通常の方法に比べてアドレス抽象化スマートコントラクトの配布及びゼロ知識基盤証明値を生成して検証する過程において追加の費用が発生し得るが、使用者認証書一つだけでも様々なブロックチェーンからゼロ知識証明に基づいて使用者識別子を生成及び使用することができるという点で高い互換性及び保安性を有している。
【0119】
以上にて説明された本発明による実施例は、多様なコンピュータの構成要素を通じて遂行することができるプログラム命令語の形態で具現されて、コンピュータ読取り可能な記録媒体に格納され得る。前記コンピュータ読取り可能な記録媒体はプログラム命令語、データファイル、データ構造などを単独で又は組み合わせて含むことができる。前記コンピュータ読取り可能な記録媒体に格納されるプログラム命令語は、本発明のために特別に設計され、構成されたものであるか、コンピュータソフトウェア分野の当業者に公知にされて使用可能なものであり得る。コンピュータ読取り可能な記録媒体の例には、ハードディスク、フロッピーディスク及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカル・ディスク(Floptical Disk)のような磁気-光メディア(Magneto-Optical Media)、及びROM、RAM、フラッシュメモリなどのようなプログラム命令語を格納して遂行するように特別に構成されたハードウェア装置が含まれる。プログラム命令語の例には、コンパイラによって作られるもののような機械語コードだけでなく、インタープリターなどを使用してコンピュータによって実行される高級言語コードも含まれる。前記ハードウェア装置は、本発明による処理を実行するために一つ以上のソフトウェアモジュールとして作動するように構成され得、その反対も同様である。
【0120】
以上にて本発明が具体的な構成要素などのような特定事項と限定された実施例及び図面によって説明されたが、これは本発明のより全般的な理解の一助とするために提供されたものであるに過ぎず、本発明が前記実施例に限られるものではなく、本発明が属する技術分野において通常の知識を有する者であれば、かかる記載から多様な修正及び変形が行われ得る。
【0121】
従って、本発明の思想は、前記説明された実施例に局限されて定められてはならず、後述する特許請求の範囲だけでなく、本特許請求の範囲と均等または等価的に変形されたものすべては、本発明の思想の範囲に属するといえる。
図1
図2
図3
図4
図5
図6
図7
【手続補正書】
【提出日】2024-02-20
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法において、
(a)使用者端末からブロックチェーンネットワークで利用するための使用者識別子の生成要請が獲得されると、ブロックチェーンシステムのプロセッサが、前記ブロックチェーンネットワークの仮想マシンで動作するアドレス抽象化スマートコントラクトを通じて、前記使用者端末に使用者識別子生成インターフェースを提供することで、前記使用者端末をもって、認証機関から発給された使用者認証書に対応する使用者識別子を生成させ、ゼロ知識証明に基づいて公開された使用者識別子検証パラメータ、前記使用者識別子、前記認証機関に対応する認証機関のパブリックキー、及び前記使用者認証書を利用して前記使用者識別子が前記使用者認証書から生成され、かつ前記使用者認証書は前記認証機関から発行されたものであることを証明するための使用者識別子証明値を生成させる段階と、
(b)前記使用者端末から前記使用者識別子検証パラメータ、前記使用者識別子、前記認証機関のパブリックキー、及び前記使用者識別子証明値を含む使用者識別子の登録要請情報が獲得されると、前記ブロックチェーンシステムのプロセッサが、前記アドレス抽象化スマートコントラクトを通じて、ゼロ知識証明に基づいて前記使用者識別子検証パラメータ、前記使用者識別子、前記認証機関のパブリックキー及び前記使用者識別子証明値を利用して前記使用者識別子証明値を検証し、前記使用者識別子証明値が検証されると、前記使用者識別子を使用者の有効な識別子として登録する段階と、
を含む方法。
【請求項2】
(c)前記アドレス抽象化スマートコントラクトは、前記使用者識別子が前記使用者の前記有効な識別子として登録されたことに対応し、(i)独立した値である前記使用者識別子自体を使用者ブロックチェーン識別子として登録する第1プロセス、(ii)前記使用者識別子により制御されるスマートコントラクトウォレットを生成し、前記使用者識別子を前記スマートコントラクトウォレットのウォレットアドレスにマッチングし、前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録する第2プロセス及び(iii)前記使用者識別子をNFT(Non-Fungible Token)化して使用者NFTを生成し、前記使用者NFTに対する所有権を外部所有アカウントに付与することで、前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録する第3プロセスのうちいずれか一つを遂行することを特徴とする、請求項1に記載の方法。
【請求項3】
前記(b)段階で、
前記アドレス抽象化スマートコントラクトは、登録された前記使用者識別子に対応するトランザクションシークエンス(前記トランザクションシークエンスはそれぞれの特定の有効な識別子により遂行されたそれぞれの特定のトランザクションシークエンスを管理するために前記アドレス抽象化スマートコントラクトが前記それぞれの特定の有効な識別子ごとに生成したトランザクション累積カウンタである)を0に初期化することを特徴とする、請求項1に記載の方法。
【請求項4】
前記使用者識別子検証パラメータは前記アドレス抽象化スマートコントラクトを前記ブロックチェーンネットワークに配布したアドレス抽象化サービスプロバイダがゼロ知識証明に基づいて前記使用者識別子を登録するための関係値を利用して生成したコモンリファレンスストリングであり、前記アドレス抽象化サービスプロバイダは前記使用者識別子検証パラメータを前記ブロックチェーンネットワークまたは前記ブロックチェーンネットワークの外部の格納場所に格納することで前記アドレス抽象化スマートコントラクトや前記使用者識別子生成インターフェースをもって読取り可能なようにしたことを特徴とする、請求項1に記載の方法。
【請求項5】
前記(a)段階で、
前記使用者端末はブロックチェーンの外部の前記認証機関から前記使用者認証書の発給を受け、前記認証機関から前記認証機関のパブリックキーを直接獲得するか、前記認証機関の前記認証機関のパブリックキーが前記ブロックチェーンネットワークに登録された場合、前記ブロックチェーンネットワークの外部の格納場所または前記ブロックチェーンネットワークで前記認証機関のパブリックキーを獲得することを特徴とする、請求項1に記載の方法。
【請求項6】
使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスする方法において、
(a)認証機関から発給された使用者認証書を利用して生成した使用者識別子が使用者の有効な識別子として登録された状態で、使用者端末からトランザクション登録要請が獲得されると、ブロックチェーンシステムのプロセッサが、前記ブロックチェーンネットワークの仮想マシンで動作するアドレス抽象化スマートコントラクトを通じて、前記使用者端末に抽象化トランザクション生成インターフェースを提供することで、前記使用者端末をもって、前記使用者認証書に対応する前記使用者識別子を生成させ、ゼロ知識証明に基づいて公開された抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記使用者認証書、使用者が前記ブロックチェーンネットワークで遂行しようとするトランザクションに対する情報を含んだトランザクションメッセージに対するハッシュ値であるトランザクションメッセージハッシュ値及び前記トランザクションメッセージに対応するメッセージシークエンスを利用して前記トランザクションメッセージを伝送した前記使用者が前記使用者識別子の持ち主であることを検証し、前記トランザクションメッセージと前記メッセージシークエンスとの有効性を検証するための抽象化トランザクション証明値を生成させる段階と、
(b)前記使用者端末から前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージ、前記メッセージシークエンス及び前記抽象化トランザクション証明値を含む抽象化トランザクションを獲得すると、前記ブロックチェーンシステムのプロセッサが、前記アドレス抽象化スマートコントラクトを通じて、ゼロ知識証明に基づいて前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージに対する前記ハッシュ値である前記トランザクションメッセージハッシュ値、前記メッセージシークエンス及び前記抽象化トランザクション証明値を利用して前記抽象化トランザクション証明値を検証し、前記抽象化トランザクション証明値が検証されると、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにし、前記抽象化トランザクションに対する実行結果をトランザクションとして登録する段階と、
を含む方法。
【請求項7】
前記(a)段階で、
前記アドレス抽象化スマートコントラクトは、前記使用者識別子が前記使用者の前記有効な識別子として登録されたことに対応し、(i)独立した値である前記使用者識別子自体を使用者ブロックチェーン識別子として登録する第1プロセス、(ii)前記使用者識別子により制御されるスマートコントラクトウォレットを生成し、前記使用者識別子を前記スマートコントラクトウォレットのウォレットアドレスにマッチングし、前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録する第2プロセス及び(iii)前記使用者識別子をNFT(Non-Fungible Token)化して使用者NFTを生成し、前記使用者NFTに対する所有権を外部所有アカウントに付与することで、前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録する第3プロセスのうちいずれか一つを遂行した状態であることを特徴とする、請求項6に記載の方法。
【請求項8】
前記アドレス抽象化スマートコントラクトが登録された前記使用者識別子に対応するト
ランザクションシークエンス(前記トランザクションシークエンスはそれぞれの特定の有効な識別子により遂行されたそれぞれの特定のトランザクションシークエンスを管理するために前記アドレス抽象化スマートコントラクトが前記それぞれの特定の有効な識別子ごとに生成したトランザクション累積カウンタである)を0に初期化した状態であり、
前記アドレス抽象化スマートコントラクトが前記第1プロセスや前記第2プロセスを利用して前記使用者識別子自体や前記使用者識別子にマッチングされた前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録した状態である場合、
前記(b)段階で、
前記使用者端末から前記抽象化トランザクションを受信すると、前記アドレス抽象化スマートコントラクトは(i)前記抽象化トランザクションに含まれた前記使用者識別子に対応する前記使用者ブロックチェーン識別子があるかどうかを確認し、(ii)前記使用者識別子に対応する前記使用者ブロックチェーン識別子がある場合、受信した前記使用者識別子に対応する特定のトランザクションシークエンスに1を足した値が前記抽象化トランザクションに含まれた前記メッセージシークエンスに対応するかどうかを確認し、(iii)ゼロ知識証明に基づいて前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージに対する前記ハッシュ値である前記トランザクションメッセージハッシュ値、前記メッセージシークエンス及び前記抽象化トランザクション証明値を利用して前記抽象化トランザクション証明値を検証し、前記抽象化トランザクション証明値が検証されると、(iv)前記特定のトランザクションシークエンスを前記メッセージシークエンスに対応する値にアップデートし、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにして前記抽象化トランザクションに対する前記実行結果を前記トランザクションとして登録することを特徴とする、請求項7に記載の方法。
【請求項9】
前記アドレス抽象化スマートコントラクトが前記第3プロセスを利用して前記使用者識別子に対応する前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録した状態である場合、
前記(a)段階で、
前記使用者端末から前記トランザクションメッセージを含んだ前記トランザクション登録要請が獲得されると、前記アドレス抽象化スマートコントラクトは前記使用者端末をもって前記使用者認証書に対応する前記使用者識別子を生成させ、
前記(b)段階で、
前記使用者端末が前記使用者識別子と前記トランザクションメッセージとを含むトランザクションを前記トランザクションを実行しようとする特定のブロックチェーンノードに伝送したことに対応し、前記特定のブロックチェーンノードから前記使用者識別子に対する検証要請を獲得すると、前記アドレス抽象化スマートコントラクトは(i)前記トランザクションに含まれた前記使用者識別子に対応する前記使用者ブロックチェーン識別子があるかどうかを確認し、(ii)前記使用者識別子に対応する前記使用者ブロックチェーン識別子がある場合、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにして前記トランザクションに対する実行結果を前記ブロックチェーンネットワークに登録することを特徴とする、請求項7に記載の方法。
【請求項10】
前記抽象化トランザクションメッセージ検証パラメータは前記アドレス抽象化スマートコントラクトを前記ブロックチェーンネットワークに配布したアドレス抽象化サービスプロバイダがゼロ知識証明に基づいて前記抽象化トランザクションを登録するための関係値を利用して生成したコモンリファレンスストリングであり、前記アドレス抽象化サービスプロバイダは前記抽象化トランザクションメッセージ検証パラメータを前記ブロックチェーンネットワークまたは前記ブロックチェーンネットワークの外部の格納場所に格納することで前記アドレス抽象化スマートコントラクトや前記抽象化トランザクション生成インターフェースをもって読取り可能なようにしたことを特徴とする、請求項6に記載の方法。
【請求項11】
前記(a)段階で、
前記使用者端末は前記トランザクションメッセージに前記トランザクションが遂行する関数に対応する関数シグネチャに対する情報、前記関数を遂行する対象であるターゲットアドレスに対する情報、前記関数を呼び出す際に因子として含まれたデータが位置する空間に対する情報及び前記関数を遂行するのに使用される暗号通貨値に対する情報を含むことを特徴とする、請求項6に記載の方法。
【請求項12】
使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスするブロックチェーンシステムにおいて、
インストラクションを格納する少なくとも一つのメモリと、
前記インストラクションを実行するために構成された少なくとも一つのプロセッサ;を含む少なくとも一つのブロックチェーンノードと、を含み、
前記プロセッサは、(I)使用者端末からブロックチェーンネットワークで利用するための使用者識別子の生成要請が獲得されると、前記ブロックチェーンネットワークの仮想マシンで動作するアドレス抽象化スマートコントラクトを通じて前記使用者端末に使用者識別子生成インターフェースを提供することで、前記使用者端末をもって、認証機関から発給された使用者認証書に対応する使用者識別子を生成させ、ゼロ知識証明に基づいて公開された使用者識別子検証パラメータ、前記使用者識別子、前記認証機関に対応する認証機関のパブリックキー、及び前記使用者認証書を利用して前記使用者識別子が前記使用者認証書から生成され、かつ前記使用者認証書は前記認証機関から発行されたものであることを証明するための使用者識別子証明値を生成させるプロセス、及び(II)前記使用者端末から前記使用者識別子検証パラメータ、前記使用者識別子、前記認証機関のパブリックキー、及び前記使用者識別子証明値を含む使用者識別子の登録要請情報が獲得されると、前記アドレス抽象化スマートコントラクトを通じてゼロ知識証明に基づいて前記使用者識別子検証パラメータ、前記使用者識別子、前記認証機関のパブリックキー及び前記使用者識別子証明値を利用して前記使用者識別子証明値を検証し、前記使用者識別子証明値が検証されると、前記使用者識別子を使用者の有効な識別子として登録するプロセスを遂行するブロックチェーンシステム。
【請求項13】
(III)前記プロセッサは、前記使用者識別子が前記使用者の前記有効な識別子として登録されたことに対応し、前記アドレス抽象化スマートコントラクトを通じて(i)独立した値である前記使用者識別子自体を使用者ブロックチェーン識別子として登録する第1プロセス、(ii)前記使用者識別子により制御されるスマートコントラクトウォレットを生成し、前記使用者識別子を前記スマートコントラクトウォレットのウォレットアドレスにマッチングし、前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録する第2プロセス及び(iii)前記使用者識別子をNFT(Non-Fungible Token)化して使用者NFTを生成し、前記使用者NFTに対する所有権を外部所有アカウントに付与することで、前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録する第3プロセスのうちいずれか一つを遂行することを特徴とする、請求項12に記載のブロックチェーンシステム。
【請求項14】
前記(II)プロセスで、
前記プロセッサは前記アドレス抽象化スマートコントラクトを通じて登録された前記使用者識別子に対応するトランザクションシークエンス(前記トランザクションシークエンスはそれぞれの特定の有効な識別子により遂行されたそれぞれの特定のトランザクションシークエンスを管理するために前記アドレス抽象化スマートコントラクトが前記それぞれの特定の有効な識別子ごとに生成したトランザクション累積カウンタである)を0に初期化することを特徴とする、請求項12に記載のブロックチェーンシステム。
【請求項15】
前記使用者識別子検証パラメータは前記アドレス抽象化スマートコントラクトを前記ブロックチェーンネットワークに配布したアドレス抽象化サービスプロバイダがゼロ知識証明に基づいて前記使用者識別子を登録するための関係値を利用して生成したコモンリファレンスストリングであり、前記アドレス抽象化サービスプロバイダは前記使用者識別子検証パラメータを前記ブロックチェーンネットワークまたは前記ブロックチェーンネットワークの外部の格納場所に格納することで前記アドレス抽象化スマートコントラクトや前記使用者識別子生成インターフェースをもって読取り可能なようにしたことを特徴とする、請求項12に記載のブロックチェーンシステム。
【請求項16】
前記(I)プロセスで、
前記使用者端末はブロックチェーンの外部の前記認証機関から前記使用者認証書の発給を受け、前記認証機関から前記認証機関のパブリックキーを直接獲得するか、前記認証機関の前記認証機関のパブリックキーが前記ブロックチェーンネットワークに登録された場合、前記ブロックチェーンネットワークの外部の格納場所または前記ブロックチェーンネットワークで前記認証機関のパブリックキーを獲得することを特徴とする、請求項12に記載のブロックチェーンシステム。
【請求項17】
使用者認証書を利用してブロックチェーンネットワークにおけるゼロ知識証明に基づく使用者識別子をサービスするブロックチェーンシステムにおいて、
インストラクションを格納する少なくとも一つのメモリと、
前記インストラクションを実行するために構成された少なくとも一つのプロセッサ;を含む少なくとも一つのブロックチェーンノードと、を含み、
前記プロセッサは、(I)認証機関から発給された使用者認証書を利用して生成した使用者識別子を使用者の有効な識別子として登録された状態で、使用者端末からトランザクション登録要請が獲得されると、前記ブロックチェーンネットワークの仮想マシンで動作するアドレス抽象化スマートコントラクトを通じて、前記使用者端末に抽象化トランザクション生成インターフェースを提供することで、前記使用者端末をもって、前記使用者認証書に対応する前記使用者識別子を生成させ、ゼロ知識証明に基づいて公開された抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記使用者認証書、使用者が前記ブロックチェーンネットワークで遂行しようとするトランザクションに対する情報を含んだトランザクションメッセージに対するハッシュ値であるトランザクションメッセージハッシュ値及び前記トランザクションメッセージに対応するメッセージシークエンスを利用して前記トランザクションメッセージを伝送した前記使用者が前記使用者識別子の持ち主であることを検証し、前記トランザクションメッセージと前記メッセージシークエンスとの有効性を検証するための抽象化トランザクション証明値を生成させるプロセス、及び(II)前記使用者端末から前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージ、前記メッセージシークエンス及び前記抽象化トランザクション証明値を含む抽象化トランザクションを獲得すると、前記アドレス抽象化スマートコントラクトを通じて、ゼロ知識証明に基づいて前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージに対する前記ハッシュ値である前記トランザクションメッセージハッシュ値、前記メッセージシークエンス及び前記抽象化トランザクション証明値を利用して前記抽象化トランザクション証明値を検証し、前記抽象化トランザクション証明値が検証されると、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにし、前記抽象化トランザクションに対する実行結果をトランザクションとして登録するプロセスを遂行するブロックチェーンシステム。
【請求項18】
前記(I)プロセスで、
前記プロセッサは、前記使用者識別子が前記使用者の前記有効な識別子として登録され
たことに対応し、前記アドレス抽象化スマートコントラクトを通じて(i)独立した値である前記使用者識別子自体を使用者ブロックチェーン識別子として登録する第1プロセス、(ii)前記使用者識別子により制御されるスマートコントラクトウォレットを生成し、前記使用者識別子を前記スマートコントラクトウォレットのウォレットアドレスにマッチングし、前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録する第2プロセス及び(iii)前記使用者識別子をNFT(Non-Fungible Token)化して使用者NFTを生成し、前記使用者NFTに対する所有権を外部所有アカウントに付与することで、前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録する第3プロセスのうちいずれか一つを遂行した状態であることを特徴とする、請求項17に記載のブロックチェーンシステム。
【請求項19】
前記プロセッサは前記アドレス抽象化スマートコントラクトを通じて登録された前記使用者識別子に対応するトランザクションシークエンス(前記トランザクションシークエンスはそれぞれの特定の有効な識別子により遂行されたそれぞれの特定のトランザクションシークエンスを管理するために前記アドレス抽象化スマートコントラクトが前記それぞれの特定の有効な識別子ごとに生成したトランザクション累積カウンタである)を0に初期化した状態であり、
前記アドレス抽象化スマートコントラクトが前記第1プロセスや前記第2プロセスを利用して前記使用者識別子自体や前記使用者識別子にマッチングされた前記ウォレットアドレスを前記使用者ブロックチェーン識別子として登録した状態である場合、
前記(II)プロセスで、
前記使用者端末から前記抽象化トランザクションを受信すると、前記プロセッサは前記アドレス抽象化スマートコントラクトを通じて(i)前記抽象化トランザクションに含まれた前記使用者識別子に対応する前記使用者ブロックチェーン識別子があるかどうかを確認し、(ii)前記使用者識別子に対応する前記使用者ブロックチェーン識別子がある場合、受信した前記使用者識別子に対応する特定のトランザクションシークエンスに1を足した値が前記抽象化トランザクションに含まれた前記メッセージシークエンスに対応するかどうかを確認し、(iii)ゼロ知識証明に基づいて前記抽象化トランザクションメッセージ検証パラメータ、前記使用者識別子、前記トランザクションメッセージに対する前記ハッシュ値である前記トランザクションメッセージハッシュ値、前記メッセージシークエンス及び前記抽象化トランザクション証明値を利用して前記抽象化トランザクション証明値を検証し、前記抽象化トランザクション証明値が検証されると、(iv)前記特定のトランザクションシークエンスを前記メッセージシークエンスに対応する値にアップデートし、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにして前記抽象化トランザクションに対する前記実行結果を前記トランザクションとして登録することを特徴とする、請求項18に記載のブロックチェーンシステム。
【請求項20】
前記アドレス抽象化スマートコントラクトが前記第3プロセスを利用して前記使用者識別子に対応する前記外部所有アカウントを前記使用者ブロックチェーン識別子として登録した状態である場合、
前記(I)プロセスで、
前記使用者端末から前記トランザクションメッセージを含んだ前記トランザクション登録要請が獲得されると、前記プロセッサは前記使用者端末をもって前記使用者認証書に対応する前記使用者識別子を生成させ、
前記(II)プロセスで、
前記使用者端末が前記使用者識別子と前記トランザクションメッセージとを含むトランザクションを前記トランザクションを実行しようとする特定のブロックチェーンノードに伝送したことに対応し、前記特定のブロックチェーンノードから前記使用者識別子に対する検証要請を獲得すると、前記プロセッサは前記アドレス抽象化スマートコントラクトを
通じて(i)前記トランザクションに含まれた前記使用者識別子に対応する前記使用者ブロックチェーン識別子があるかどうかを確認し、(ii)前記使用者識別子に対応する前記使用者ブロックチェーン識別子がある場合、前記トランザクションメッセージを前記ブロックチェーンネットワークに伝送して実行されるようにして前記トランザクションに対する実行結果を前記ブロックチェーンネットワークに登録することを特徴とする、請求項18に記載のブロックチェーンシステム。
【請求項21】
前記抽象化トランザクションメッセージ検証パラメータは前記アドレス抽象化スマートコントラクトを前記ブロックチェーンネットワークに配布したアドレス抽象化サービスプロバイダがゼロ知識証明に基づいて前記抽象化トランザクションを登録するための関係値を利用して生成したコモンリファレンスストリングであり、前記アドレス抽象化サービスプロバイダは前記抽象化トランザクションメッセージ検証パラメータを前記ブロックチェーンネットワークまたは前記ブロックチェーンネットワークの外部の格納場所に格納することで前記アドレス抽象化スマートコントラクトや前記抽象化トランザクション生成インターフェースをもって読取り可能なようにしたことを特徴とする、請求項17に記載のブロックチェーンシステム。
【請求項22】
前記(I)プロセスで、
前記使用者端末は前記トランザクションメッセージに前記トランザクションが遂行する関数に対応する関数シグネチャに対する情報、前記関数を遂行する対象であるターゲットアドレスに対する情報、前記関数を呼び出す際に因子として含まれたデータが位置する空間に対する情報及び前記関数を遂行するのに使用される暗号通貨値に対する情報を含むことを特徴とする、請求項17に記載のブロックチェーンシステム。