JP2022531642A - ブロックチェーンで生成されたデータを認証する方法およびシステム - Google Patents

ブロックチェーンで生成されたデータを認証する方法およびシステム Download PDF

Info

Publication number
JP2022531642A
JP2022531642A JP2021554654A JP2021554654A JP2022531642A JP 2022531642 A JP2022531642 A JP 2022531642A JP 2021554654 A JP2021554654 A JP 2021554654A JP 2021554654 A JP2021554654 A JP 2021554654A JP 2022531642 A JP2022531642 A JP 2022531642A
Authority
JP
Japan
Prior art keywords
data
chain
private key
contract
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021554654A
Other languages
English (en)
Other versions
JP7254954B2 (ja
Inventor
ソ,ホンソプ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Line Plus Corp
Original Assignee
Line Plus Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Line Plus Corp filed Critical Line Plus Corp
Publication of JP2022531642A publication Critical patent/JP2022531642A/ja
Application granted granted Critical
Publication of JP7254954B2 publication Critical patent/JP7254954B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1089Hierarchical topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

署名可能コントラクトを利用してブロックチェーンで生成されたデータを認証する方法およびシステムを提供する。本発明の実施形態において、ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置のデータ認証方法は、暗号化されたプライベートキーとプライベートキーによって生成されるパブリックキーをパラメータとして受信する段階、前記受信したパブリックキーによってコントラクトアドレスを生成する段階、前記暗号化されたプライベートキーと前記コントラクトアドレスをデータベースに保存する段階、署名するデータと前記暗号化されたプライベートキーを復号するためのパスワードをパラメータとして含む署名要請を受信する段階、前記署名要請に応答し、前記パスワードによって前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで、署名されたデータを生成する段階、および前記生成された署名されたデータを返還する段階を含む。【選択図】図4

Description

以下の説明は、署名可能コントラクトを利用してブロックチェーンで生成されたデータを認証する方法およびシステムに関する。
ブロックチェーンとは、電子台帳であって、トランザクションのためのブロックで構成されたコンピュータ基盤の分散型、P2P(peer-to-peer)のシステムによって実現される。各トランザクション(Transaction:Tx)は、ブロックチェーンシステム内の参加者にデジタル資産の制御送信をエンコードするデータ構造であり、少なくとも1つの入力と少なくとも1つの出力を含む。各ブロックは1つ前のブロックのハッシュを含み、該当のブロックは連結されており、最初からブロックチェーンに記録されたすべてのトランザクションの永久的な、変えることのできない記録を生成する。例えば、韓国公開特許第10-2018-0113143号公報は、ブロックチェーンに基づくユーザ定義の貨幣取引システムおよびその動作方法について開示している。このようなブロックチェーン自体は、スケールアウトができない。例えば、ブロックチェーンネットワークでブロックを生成するためのノードを追加しても、ブロック生成のための合意費用が増加するだけで、トランザクションに対するブロックの生成速度は増加しない。
ルートチェーンに基づいてリーフチェーンを追加する方式により、スケールアウトが可能なブロックチェーンで生成されるデータを認証するデータ認証方法およびシステムを提供する。
ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置のデータ認証方法であって、前記コンピュータ装置が含む少なくとも1つのプロセッサにより、暗号化されたプライベートキーとプライベートキーによって生成されるパブリックキーをパラメータとして受信する段階、前記少なくとも1つのプロセッサにより、前記受信したパブリックキーによってコントラクトアドレスを生成する段階、前記少なくとも1つのプロセッサにより、前記暗号化されたプライベートキーと前記コントラクトアドレスをデータベースに保存する段階、前記少なくとも1つのプロセッサにより、署名するデータと前記暗号化されたプライベートキーを復号するためのパスワードをパラメータとして含む署名要請を受信する段階、前記少なくとも1つのプロセッサにより、前記署名要請に応答し、前記パスワードによって前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで、署名されたデータを生成する段階、および前記少なくとも1つのプロセッサにより、前記生成された署名されたデータを返還する段階を含むことを特徴とする、データ認証方法を提供する。
一側によると、前記パスワードは、前記ブロックチェーンネットワークのブロックや、ログのうちでどこにも保存されないセキュアタイプとして定義されることを特徴としてよい。
他の側面によると、前記ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含み、前記データ認証方法は、前記少なくとも1つのプロセッサにより、前記コントラクトアドレスを前記複数のリーフチェーンそれぞれのジェネシスブロックに記録する段階をさらに含むことを特徴としてよい。
また他の側面によると、前記署名されたデータを受信する第1リーフチェーンで前記署名されたデータと前記第1リーフチェーンのジェネシスブロックに記録されたコントラクトアドレスとを比較することで、前記署名されたデータが前記ルートチェーンから発送されたものであることを検証することを特徴としてよい。
また他の側面によると、前記ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含み、前記データ認証方法は、前記少なくとも1つのプロセッサにより、前記コントラクトアドレスが前記ルートチェーンのデータベースに保存されるように前記コントラクトアドレスを前記ルートチェーンに提供する段階をさらに含むことを特徴としてよい。
また他の側面によると、前記ルートチェーンで前記署名されたデータと前記ルートチェーンのデータベースに保存された前記コントラクトアドレスとを比較することで、前記署名されたデータが前記第1リーフチェーンから発送されたものであることを検証することを特徴としてよい。
また他の側面によると、前記署名されたデータが記録されたブロックが、前記ブロックチェーンネットワークのチェーンに追加されることを特徴としてよい。
ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置のデータ認証方法であって、前記コンピュータ装置が含む少なくとも1つのプロセッサにより、前記ブロックチェーンネットワークのノードのプライベートキーを暗号化して保存する段階、前記少なくとも1つのプロセッサにより、前記暗号化されたプライベートキーを復号するためのパスワードを前記ノードのパブリックキーによって暗号化して保存する段階、前記少なくとも1つのプロセッサにより、前記ノードのパブリックキーによって暗号化されたパスワードを前記ノードに返還する段階、前記少なくとも1つのプロセッサにより、前記ブロックチェーンネットワークの任意のノードから前記パスワードおよび前記プライベートキーによって署名するためのデータをパラメータとして含む署名要請を受信する段階、前記少なくとも1つのプロセッサにより、前記署名要請に応答し、前記パスワードによって前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで、署名されたデータを生成する段階、および前記少なくとも1つのプロセッサにより、前記署名されたデータを返還する段階を含むことを特徴とする、データ認証方法を提供する。
コンピュータ装置と結合して前記方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に保存された、コンピュータプログラムを提供する。
前記方法をコンピュータ装置に実行させるためのコンピュータプログラムが記録されていることを特徴とする、コンピュータ読み取り可能な記録媒体を提供する。
ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置であって、前記コンピュータ装置で読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、暗号化されたプライベートキーとプライベートキーによって生成されるパブリックキーをパラメータとして受信し、前記受信したパブリックキーによってコントラクトアドレスを生成し、前記暗号化されたプライベートキーと前記コントラクトアドレスをデータベースに保存し、署名するデータと前記暗号化されたプライベートキーを復号するためのパスワードをパラメータとして含む署名要請を受信して前記パスワードを利用して前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで署名されたデータを生成し、前記生成された署名されたデータを返還することを特徴とする、コンピュータ装置を提供する。
ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置であって、前記コンピュータ装置で読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、前記ブロックチェーンネットワークのノードのプライベートキーを暗号化して保存し、前記暗号化されたプライベートキーを復号するためのパスワードを前記ノードのパブリックキーによって暗号化して保存し、前記ノードのパブリックキーによって暗号化されたパスワードを前記ノードに返還し、前記ブロックチェーンネットワークの任意のノードから前記パスワードおよび前記プライベートキーによって署名するためのデータをパラメータとして含む署名要請を受信し、前記署名要請に応答し、前記パスワードによって前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで署名されたデータを生成し、前記署名されたデータを返還することを特徴とする、コンピュータ装置を提供する。
ルートチェーンに基づいてリーフチェーンを追加する方式により、スケールアウトが可能なブロックチェーンで生成されるデータを認証するデータ認証方法およびシステムを提供することができる。
本発明の一実施形態における、ネットワーク環境の例を示した図である。 本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。 本発明の一実施形態における、拡張が可能なブロックチェーンネットワークの概括的な構成の例を示した図である。 本発明の一実施形態における、トランザクション処理システムの詳しい構成の例を示した図である。 本発明の一実施形態における、新たなリーフチェーンを追加する過程の例を示したフローチャートである。 本発明の一実施形態における、新たなサービスを追加する過程の例を示したフローチャートである。 本発明の一実施形態における、サービスにコインを発行する過程の例を示したフローチャートである。 本発明の一実施形態における、コイン交換過程の例を示したフローチャートである。 本発明の一実施形態における、各チェーン間のスマートコントラクトによるコイン交換データの流れを示した図である。 本発明の一実施形態における、署名可能コントラクトの設置過程の例を示した図である。 本発明の一実施形態における、データを署名する過程の例を示した図である。 本発明の一実施形態における、署名可能コントラクトの設置過程の他の例を示した図である。 本発明の一実施形態における、データを署名する過程の他の例を示した図である。 本発明の一実施形態における、コイン交換過程の他の例を示した図である。 本発明の一実施形態における、データ認証方法の第1例を示したフローチャートである。 本発明の一実施形態における、データ認証方法の第2例を示したフローチャートである。 本発明の一実施形態における、データ認証方法の第3例を示したフローチャートである。 本発明の一実施形態における、データ認証方法の第4例を示したフローチャートである。
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
本発明の実施形態に係るデータ認証システムは、少なくとも1つのコンピュータ装置によって実現されてよい。コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されたコンピュータプログラムの制御にしたがって本発明の一実施形態に係るデータ認証方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合してデータ認証方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録されてよい。ここで説明したコンピュータプログラムは、独立する1つのプログラムパッケージの形態であってもよいし、独立する1つのプログラムパッケージの形態がコンピュータ装置に予めインストールされてオペレーティングシステムや他のプログラムパッケージと連係する形態であってもよい。
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図1のように限定されることはない。また、図1のネットワーク環境は、本実施形態に適用可能な環境のうちの一例を説明したものに過ぎず、本実施形態に適用可能な環境が図1のネットワーク環境に限定されることはない。
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、図1では、電子機器1(110)の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器1(110)は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータ装置のうちの1つを意味してよい。
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140にサービス(一例として、ビデオ通話サービス、金融サービス、決済サービス、ソーシャルネットワークサービス、メッセージングサービス、検索サービス、メールサービス、コンテンツ提供サービス、および/または質疑応答サービスなど)を提供するシステムであってよい。
図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140それぞれやサーバ150、160それぞれは、図2に示したコンピュータ装置200によって実現されてよく、本発明の実施形態に係る方法は、このようなコンピュータ装置200によって実現されてよい。
このとき、図2に示すように、コンピュータ装置200は、メモリ210、プロセッサ220、通信インタフェース230、および入力/出力インタフェース240を含んでよい。メモリ210は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、ディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ210とは区分される別の永続的記録装置としてコンピュータ装置200に含まれてもよい。また、メモリ210には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ210とは別のコンピュータ読み取り可能な記録媒体からメモリ210にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信インタフェース230を通じてメモリ210にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク170を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置200のメモリ210にロードされてよい。
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
通信モジュール230は、ネットワーク170を介してコンピュータ装置200が他の電子機器(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御にしたがってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク170を経てコンピュータ装置200の通信インタフェース230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどは、プロセッサ220やメモリ210に伝達されてよく、ファイルなどは、コンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、カメラ、またはマウスなどの装置を、出力装置は、ディスプレイ、スピーカのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、コンピュータ装置200と1つの装置で構成されてもよい。
また、他の実施形態において、コンピュータ装置200は、図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバやデータベースなどのような他の構成要素をさらに含んでもよい。
図3は、本発明の一実施形態における、拡張が可能なブロックチェーンネットワークの概括的な構成の例を示した図である。図3は、ルートチェーン(Root Chain)310、リーフチェーンA(Leaf Chain A)320、リーフチェーンB(Leaf Chain B)330、およびリレイヤ(Relayer)340を含むブロックチェーンネットワーク300の例を示している。ルートチェーン310とリーフチェーン320および330は、複数のコンピュータ装置が連結するネットワークを形成してよく、リレイヤ340は、少なくとも1つのコンピュータ装置によって実現されてよい。
ブロックチェーンネットワーク300において、ルートチェーン310は、絶対信頼システムとして見なされてよく、それぞれのリーフチェーン320および330は、ルートチェーン310に自身が信頼システムであるということを証明しなければならない。このとき、それぞれのリーフチェーン320および330は、個別のサービスと連係してよく、新たなサービスが追加されるときには新たなリーフチェーンが追加されてもよい。言い換えれば、図3の実施形態では、2つのリーフチェーン320および330を示しているが、3つ以上のリーフチェーンを含んでもよく、これは、ブロックチェーンの拡張が可能であることを意味してよい。ここで、「サービス」とは、同一または互いに異なる主体がネットワークを介して自身のユーザに提供するオンラインサービスを含んでよい。一例として、互いに異なる複数の銀行が提供するインターネットバンキングサービスそれぞれに対応する複数のリーフチェーンが構成されてよい。または、互いに異なる複数のソーシャルネットワークサービスそれぞれに対応する複数のリーフチェーンが構成されてもよい。それぞれのリーフチェーン320および330は、ルートチェーン310にブロックのハッシュを記録することによって信頼が承認されなければならない。一例として、マークルツリールートハッシュ(merkle tree root hash)が活用されてよい。
ルートチェーン310ではユーザ間のコイン交換は行わず、コイン交換は、それぞれのリーフチェーン320および330の内部でなされるか、および/またはリーフチェーン320および330間でなされてよい。このとき、リーフチェーン320および330間のコイン交換は、リレイヤ340を介してルートチェーン310が仲裁および管理してよい。それぞれのリーフチェーン320および330には、少なくとも1つのDApp(Decentralized Application)が含まれてよい。ここで、DApp(Decentralized Application)とは、バックエンドコードが分散されたP2P(peer-to-peer)ネットワーク上で実行し(あるいは、データの呼び出しや登録をブロックチェーンデータベースに行い)、これをフロントエンドでインタフェースとして提供するアプリケーションを意味する。このとき、それぞれのリーフチェーン320および330では、DAppの必要により、チェーンまたはコイン交換とは関係のないスマートコントラクトを設置してよく、これをルートチェーン310では関与しない。それぞれのリーフチェーン320および330でチェーン間のコイン交換のためのプロトコルを有するスマートコントラクトを設置しようとする場合には、ルートチェーン310からスマートコントラクトを設置するための許可を得なければならない。ルートチェーン310から許可が得られなかったスマートコントラクトを利用したチェーン間では、コイン交換がなされないように制限されてよい。
それぞれのリーフチェーン320および330の内部でのコイン交換は、ルートチェーン310を経る必要がなくそれぞれのリーフチェーン320および330で処理されてよく、処理された内容が含まれたすべてのブロックの要約情報(一例として、上述したマークルツリールートハッシュ)をルートチェーン310に記録してよい。この反面、リーフチェーン320および330間のコイン交換はルートチェーン310を介さなければならず、それぞれのリーフチェーン320および330のブロックとルートチェーン310のブロックにはコイン交換の処理に関する内容が記録されなければならない。このとき、リーフチェーン320および330間のコイン交換は、リレイヤ340を経てなされてよい。
図4は、本発明の一実施形態における、ブロックチェーンネットワークの詳しい構成の例を示した図である。ブロックチェーンネットワーク300は、図4に示すように、1つのルートチェーン310と複数のリーフチェーン320および330、さらにリレイヤ340で構成されてよい。
ルートチェーン310は、ルートチェーン310のためのスマートコントラクトであるルートチェーンマネージャコントラクト(Root Chain Manager Contract)411を含んでよく、ブロックチェーンネットワーク300が含む複数のリーフチェーン320および330それぞれのためのスマートコントラクトを含んでよい。図4の実施形態では、ルートチェーン310がリーフチェーンA(Leaf Chain A)320のためのスマートコントラクトであるリーフチェーンAコントラクト(Leaf Chain A Contract)412と、リーフチェーンB(Leaf Chain B)330のためのスマートコントラクトであるリーフチェーンBコントラクト(Leaf Chain B Contract)413を含む例を示している。
また、リーフチェーン320および330それぞれは、DAppのためのスマートコントラクトを含んでよい。図4の実施形態では、リーフチェーンA320がDAppコントラクト(DApp Contract)421を含み、リーフチェーンB330がDAppコントラクト431を含む例を示している。また、リーフチェーンA320は、リーフチェーンA320のためのスマートコントラクトであるリーフチェーンマネージャコントラクト(Leaf Chain Manager Contract)422を含んでよく、リーフチェーンB330は、リーフチェーンB330のためのスマートコントラクトであるリーフチェーンマネージャコントラクト432をさらに含んでよい。
リレイヤ340は、ルートチェーン310とリーフチェーン320および330のブロック生成を観察しながら、ルートチェーン310とリーフチェーン320および330に記録されるか、および/または伝達が要求される情報を呼び出ししてよい。リレイヤ340は、プロデューサ(Producer)441、カフカ(Kafka)442、インタチェーンコンシューマ(InterChain Consumer)443、インタチェーンフェイルオーバー(InterChain Failover)444、データベース(Database)445を含んでよい。
プロデューサ441は、ルートチェーン310を含むすべてのチェーンの新たに生成されたブロックの情報を収集してカフカ442に入力してよい。カフカ442は、一種のキューサーバであって、収集した情報をキューに保存して順に提供してよい。このとき、インタチェーンコンシューマ443は、チェーンごとに呼び出しが要求されるイベントをフィルタリングしてよい。イベントによって複数のフィルタリングが要求されてもよい。インタチェーンコンシューマ443は、各チェーンに呼び出しをするときに、署名のためにチェーンごとに個別のユーザを生成し、ユーザの権限をスマートコントラクトに記録してよい。
インタチェーンコンシューマ443は、次の(1)~(7)のようなイベントなどを感知してよい。
(1)リーフチェーンでの送金要請イベント
(1-1)インタチェーンコンシューマ443は、リーフチェーンでの送金要請イベントを感知し、ルートチェーンに送金要請内容を伝達してよい。
(2)ルートチェーンでの送金要請イベント
(2-1)インタチェーンコンシューマ443は、ルートチェーンでの送金要請イベントを感知し、送金要請を受信するリーフチェーンに送金要請内容を伝達してよい。
(2-2)インタチェーンコンシューマ443は、受信するリーフチェーンへの伝達が失敗したときに、送金要請を受信するリーフチェーンの識別情報を含む送金失敗情報をルートチェーンに伝達してよい。
(3)ルートチェーンでの送金要請失敗イベント
(3-1)インタチェーンコンシューマ443は、送金を要請したリーフチェーンに送金失敗内容を伝達してよい。
(4)リーフチェーンでの送金完了イベント
(4-1)インタチェーンコンシューマ443は、ルートチェーンに送金完了内容を伝達してよい。
(5)ルートチェーンでの送金完了イベント
(5-1)インタチェーンコンシューマ443は、送金を要請したリーフチェーンに送金完了内容を伝達してよい。
(6)ルートチェーンでのコイン発行イベント
(6-1)インタチェーンコンシューマ443は、コインが発行されるリーフチェーンに発行内容を伝達してよい。
(7)リーフチェーンでのブロック生成イベント
(7-1)インタチェーンコンシューマ443は、ルートチェーンにブロックのマークルツリールートハッシュを伝達してよい。
インタチェーンフェイルオーバー444は、(3-1)、(4-1)、(5-1)、(6-1)、および(7-1)が正常に伝達されるように障害克服機能を提供してよく、データベース445は、インタチェーンコンシューマ443およびインタチェーンフェイルオーバー444において受信および/または送信(伝達)する情報を保存するために活用されてよい。
図5は、本発明の一実施形態における、新たなリーフチェーンを追加する過程の例を示したフローチャートである。
段階510で、ブロックチェーンネットワーク300は、リーフチェーンを構築してよい。例えば、新たなリーフチェーンは、以下で説明する新たなサービスを追加するために構築されてよい。
段階520で、ブロックチェーンネットワーク300は、リーフチェーンに、チェーン間またはコントラクト間のコイン送金を担当するリーフチェーンマネージャコントラクトを設置してよい。
段階530で、ブロックチェーンネットワーク300は、ルートチェーンに、該当のリーフチェーンを処理することのできるコントラクト(以下、リーフチェーンコントラクト)を設置してよい。
段階540で、ブロックチェーンネットワーク300は、設置されたルートチェーンのリーフチェーンコントラクトのアドレスをルートチェーンマネージャコントラクトに登録してよい。以下で説明する実施形態では、リーフチェーンの署名可能コントラクトのアドレスがルートチェーンマネージャコントラクトにさらに登録されてもよい。また他の実施形態では、リーフチェーンを代表するパブリックアドレスがルートチェーンマネージャコントラクトに登録されてもよい。
段階550で、ブロックチェーンネットワーク300は、ルートチェーンのリーフチェーンコントラクトにアクセス可能なリレイヤユーザを追加してよい。
段階560で、ブロックチェーンネットワーク300は、リーフチェーンのリーフチェーンマネージャコントラクトにアクセス可能なリレイヤユーザを追加してよい。
このとき、段階550および段階560のリレイヤユーザは、同一するユーザであってもよいし、互いに異なるユーザであってもよい。リーフチェーンごとに、そしてルートチェーンとも互いに異なる個別のリレイヤユーザを設定して活用することが、保安上において有利となることもある。ここで、リレイヤユーザは、ブロックチェーンネットワーク300が提供するサービスのアカウントに対応してよい。
図6は、本発明の一実施形態における、新たなサービスを追加する過程の例を示したフローチャートである。
段階610で、ブロックチェーンネットワーク300は、リーフチェーンに該当のサービスのコントラクトを設置してよい。設置したコントラクトのアドレスは、該当のサービスを区分する値として使用されてよい。該当のサービスは、チェーン間のコイン交換プロトコルを備えたコントラクトであってよい。
段階620で、ブロックチェーンネットワーク300は、リーフチェーンのリーフチェーンマネージャコントラクトに、該当のサービスに対して設置されたコントラクトのアドレスを登録してよい。例えば、図5の段階520では、リーフチェーンに、チェーン間またはコントラクト間のコイン送金を担当するリーフチェーンマネージャコントラクトを設置することについて説明した。このようなリーフチェーンマネージャコントラクトにサービスのためのコントラクトのアドレスが登録されてよい。
段階630で、ブロックチェーンネットワーク300は、設置されたコントラクトのアドレスをルートチェーンのルートチェーンマネージャコントラクトに登録してよい。このとき、設置されたコントラクトのアドレスは、ルートチェーンマネージャコントラクトの管理者権限によって登録されてよい。リーフチェーンのサービスに対して設置されたコントラクトのアドレスをルートチェーンに設置された該当のリーフチェーンのリーフチェーンコントラクトとともにルートチェーンマネージャコントラクトに登録すれば、ルートチェーンのリーフチェーンコントラクトにもリーフチェーンのサービスに対して設置されたコントラクトのアドレスが該当のリーフチェーンのサービスとして登録されてよい。
図7は、本発明の一実施形態における、サービスにコインを発行する過程の例を示したフローチャートである。
段階710で、ルートチェーンのルートチェーンマネージャコントラクトは、ルートチェーンに設置されたリーフチェーンコントラクトに登録されたサービスに対するコントラクトのアドレスに対してコイン発行を要請してよい。例えば、ルートチェーンのルートチェーンマネージャコントラクトは、ルートチェーンに設置されたリーフチェーンコントラクトによってコインを発行するためのサービスに対するコントラクトのアドレスによって該当のサービスを識別してよく、識別されたサービスに対してコイン発行イベントを発生させてよい。
段階720で、インタチェーンコンシューマは、該当のサービスに対するコイン発行イベントを感知し、該当のリーフチェーンのリーフチェーンマネージャコントラクトにサービスのコイン発行を要請してよい。
段階730で、リーフチェーンマネージャコントラクトは、該当のサービスを検索してコインを発行してよい。このとき、コインは、該当のサービスのコントラクトを設置するときに入力したサービスオペレータ(一例として、図5の段階560で追加されたリレイヤユーザ)に発行されてよい。
図8は、本発明の一実施形態における、コイン交換過程の例を示したフローチャートである。同一するチェーンの同一するサービスにおけるコイン交換は、該当のリーフチェーンのコイン交換のためのスマートコントラクトによってなされてよい。また、同一するチェーンの異なるサービス間のコインの交換は、該当のリーフチェーンのリーフチェーンマネージャコントラクトによってなされてよい。例えば、同一するチェーンの第1サービスから第2サービスへの送金は、リーフチェーンマネージャコントラクトが第1サービスの送金要請にしたがって第2サービスのコントラクトのアドレスを呼び出すことによってなされてよい。このとき、同一するリーフチェーンの異なるサービス間でコイン交換がなされるときは、コイン交換結果がルートチェーンに伝達されてよい。これは、リーフチェーンの各サービスが保有するコインの量の変更内容をルートチェーンが把握できるようにするためである。この反面、異なるチェーン間のコインの交換は、以下の段階810~890によってなされてよい。図8の段階810~890は、図4を参照しながら説明したリーフチェーンA320とリーフチェーンB330間のコイン交換を例示して説明する。
段階810で、リーフチェーンA320は、ユーザaの、リーフチェーンB330のユーザbに対するコイン交換要請(送金要請)を受信してよい。このとき、リーフチェーンA320は、ユーザaの残高などを把握し、コイン交換要請が正常な要請である場合にリーフチェーンA320のブロックに記録してよい。交換要請されたコイン(送金要請されたコイン)は、リーフチェーンA320が含むリーフチェーンマネージャコントラクトによってユーザaの残高から差し引かれてよく、使用できないようにロックされてよい。例えば、リーフチェーンA320のリーフチェーンマネージャコントラクトは、送金要請された金額だけユーザaの残高と送金要請するサービスの残高を確認した後、リーフチェーンA320の通貨量から差し引かれる金額が使用されないようにロックを設定してよい。差し引かれたユーザaの金額に関する情報は、エスクローコントラクトに記録されてよい。このような送金の成功に関する記録は、プロデューサ441によってカフカ442に記録されてよい。送金要請が正常でない場合、リーフチェーンA320は、送金要請の失敗内容をブロックに記録してよい。また、リーフチェーンA320は、送金要請が失敗したときにイベントを記録しないことにより、送金が発生しないようにしてよい。
段階820で、インタチェーンコンシューマ443は、リーフチェーンA320からリーフチェーンB330への送金要請イベントを感知し、ルートチェーン310に該当の送金要請を伝達してよい。送金要請イベントの感知は、プロデューサ441の取引収集によって感知されてよく、インタチェーンコンシューマ443は、感知された送金要請イベントの感知に応答してルートチェーン310に該当の送金要請を伝達してよい。
段階830で、ルートチェーン310は、リーフチェーンA320で発行された総コイン量を、送金要請情報を利用することで分析することによって該当の送金要請が正常な要請であるかを確認し、該当の送金要請が正常な要請である場合は、リーフチェーンA320からリーフチェーンB330へのコイン交換要請をブロックに記録してよい。交換要請は、送金するコイン量だけ使用されないようにロックされてよい。また、ルートチェーン310は、該当の送金要請が正常な要請でない場合は、失敗内容をブロックに記録してよい。失敗として記録された送金要請は、再びインタチェーンコンシューマ443で送金失敗イベントとして感知されてリーフチェーンA320に伝達されてよく、送金失敗イベントを受信したリーフチェーンA320は、ロックされたコインを解除して再びユーザaに返還してよい。
段階840で、インタチェーンコンシューマ443は、ルートチェーン310からリーフチェーンB330への送金要請イベントを感知し、リーフチェーンB330に該当の送金要請を伝達してよい。リーフチェーンB330が正常に作動せずに呼び出しが失敗する場合は、再びルートチェーン310にリーフチェーンB330のシステム異常による伝達失敗内容を送信してよい。失敗として記録された要請は、再びインタチェーンコンシューマ443で送金失敗イベントとして感知されてリーフチェーンA320に伝達されてよく、送金失敗イベントを受信したリーフチェーンA320は、ロックされたコインを解除して再びユーザaに返還してよい。
段階850で、リーフチェーンB330は、該当の送金要請が正常な要請である場合は、ユーザbにコインを送金し、リーフチェーンB330の全体通貨量を送金されたコイン量だけ増加させてよい。送金要請が失敗する場合には、失敗内容をブロックに記録してよい。
段階860で、インタチェーンコンシューマ443は、リーフチェーンBの送金完了結果をイベントとして感知し、ハッシュと成功の可否をルートチェーン310に伝達してよい。
段階870で、ルートチェーン310は、送金結果を受信して送金失敗と送金成功にしたがって処理してよく、その結果をハッシュとともにブロックに記録してよい。送金が成功した場合、ルートチェーン310は、ロックされたコイン送金要請を解除してリーフチェーンA320からリーフチェーンB330への送金を行い、それぞれの通貨量を変更してよい。送金が失敗した場合、ルートチェーン310は、ロックされたコイン送金要請を解除して再びリーフチェーンA320に返還してよい。
段階880で、インタチェーンコンシューマ443は、ルートチェーン310で処理した送金結果イベントを感知し、リーフチェーンA320にその結果を伝達してよい。
段階890で、リーフチェーンA320は、送金結果を受信し、成功の場合は、ロックされたコインを解除してリーフチェーンA320の全体通貨量を調節(全体通貨量から送金金額だけ差し引く)してよい。送金が失敗した場合は、リーフチェーンA320は、ロックされたコインを解除してユーザaに返還してよい。リーフチェーンA320は、このような送金結果を、ルートチェーン310に記録されたハッシュとともにブロックに記録してよい。
図9は、本発明の一実施形態における、各チェーン間のスマートコントラクトによるコイン交換データの流れを示した図である。
(1)ユーザaのコイン交換要請をリーフチェーンA320のDApp1(920)が受信すれば、DApp1(920)は、リーフチェーンマネージャコントラクトA910に交換要請をしてよい。リーフチェーンマネージャコントラクトA910は、交換取引ハッシュ(eTxHash)を生成し、交換取引ハッシュ、送金しようとするユーザa(の識別子)とサービスa(の識別子)、送金を受けるサービスb(の識別子)とユーザb(の識別子)、金額情報(送金金額)、および/または要請時間を記録(送金要請記録(エスクロー情報)を生成)してよい。このとき、リーフチェーンマネージャコントラクトA910は、DApp1(920)のコントラクトの全体通貨量からユーザaの保有金額を差し引いてよい。
(2)プロデューサ441は、(1)で生成された取引を収集してよく、インタチェーンコンシューマ443は、ルートチェーン310のリーフチェーンAコントラクト412に送金を要請してよい。
(3)リーフチェーンAコントラクト412は、ルートチェーンマネージャコントラクト411によって送金要請情報をルートチェーン310に対して個別に記録してよい。このとき、リーフチェーンマネージャAコントラクト412が管理するDApp1(920)の全体通貨量を送金金額だけ差し引いてよい。
(4)プロデューサ441は、(3)で生成された取引を収集してよく、インタチェーンコンシューマ443は、送金を受けるサービスがあるリーフチェーンB330のリーフチェーンマネージャコントラクトB940に送金を要請してよい。
(5)リーフチェーンB330のリーフチェーンマネージャコントラクトB940は、送金しようとするサービスであるDApp3(950)を呼び出し、DApp3(950)のコントラクトからユーザbに送金がなされるようにしてよい。このとき、DApp3(950)のコントラクトは、リーフチェーンB330の全体通貨量も増加させてよい。
(6)プロデューサ441は、(5)で生成された取引を収集してよく、インタチェーンコンシューマ443は、ルートチェーン310のリーフチェーンBコントラクト413に送金完了を要請してよい。
(7)ルートチェーン310のリーフチェーンBコントラクト413は、ルートチェーンマネージャコントラクト411に該当の送金要請のエスクロー(送金要請記録)情報をインポートして送金完了を処理してよい。送金が成功した場合、リーフチェーンBコントラクト413が管理するDApp3950では送金金額分だけリーフチェーンB330の全体通貨量を増加させてよく、ルートチェーン310のルートチェーンマネージャコントラクト411から該当の送金要請記録が削除されてよい。送金が失敗した場合、リーフチェーンAコントラクト412に登録された、送金要請したサービスであるDApp1(920)では送金金額分だけリーフチェーンA320の全体通貨量を再び増加させてよく、その後、ルートチェーン310のルートチェーンマネージャコントラクト411から該当の送金要請記録が削除されてよい。
(8)プロデューサ441は、(7)で生成された取引を収集してよく、インタチェーンコンシューマ443は、送金したリーフチェーンA320のリーフチェーンマネージャコントラクトA910に送金完了を要請してよい。
(9)リーフチェーンA320のリーフチェーンマネージャコントラクトA910は、送金完了情報を受信し、該当の交換取引ハッシュが完了したことを記録し、送金要請記録にある該当の要請を削除してよい。送金が失敗した場合、リーフチェーンマネージャコントラクトA910は、送金要請記録にある金額をユーザaに再び返還してよく、DApp1(920)の全体通貨量も送金金額分だけ再び増加させた後、送金要請記録から該当の要請を削除してよい。
実施形態によって、リレイヤは、チェーンごとに存在してもよい。例えば、図4を参照しながら説明したように、1つのルートチェーン310と2つのリーフチェーン320および330が存在する場合、合計3つのチェーンのための3つのリレイヤが構成されてもよい。この場合、ルートチェーン310のリレイヤは、2つのリーフチェーン320および330との要請、データ、および/またはイベントの伝達を処理してよく、2つのリーフチェーン320および330それぞれのリレイヤは、ルートチェーン310との要請、データ、および/またはイベントの伝達を処理してよい。このとき、リーフチェーンのためのリレイヤの談合を防ぐために、リレイヤそれぞれと連結するチェーンは、予め設定された時間周期(一例として、ブロック時間周期)ごとに動的に変更されてよい。このような実施形態において、ハッシュは、ハッシュ時間ロックコントラクトにより、チェーン間を移動するときにリレイヤによって交換取引が中間に強奪あるいは変調されないようにしてよい。このようなハッシュ時間ロックは、ユーザが交換取引の結果を直接確認することのできる時間を提供するために利用されてよい。また、リレイヤが意図しない重複支払を防ぐための唯一の識別子として個別の交換取引識別子が活用されてよい。このような交換取引識別子は、リーフチェーン間の価値移動がある場合、交換取引を唯一に識別してトラッキングするために活用されてよい。
このようなブロックチェーンネットワーク300でチェーン間にデータを伝達するときに、伝達するシステムで伝達するデータを変調することがある。一例として、リーフチェーンA320からルートチェーン310にデータを伝達するときに、リーフチェーンA320でデータを変調する可能性が存在する。特に、リーフチェーンをパブリックブロックチェーンの形態に確張するためにリーフチェーンごとにリレイヤが実現される場合、このようなリレイヤに対する依存度を減らし、プロトコル端でデータ認証の問題を解決する必要がある。このために、ブロックチェーンネットワーク300は、以下のような5つの要求事項を有する。
1.ベースコインのチェーン間の送金が可能でなければならない。ここで、ベースコインとは、ブロックチェーンネットワーク300の固有のコイン体系で使用されるコインを意味してよい。
2.ルートチェーンがすべてのチェーンのベースコインを管理しなければならない。このとき、ベースコインの管理は、チェーン間のベースコインの送金を含んでよい。
3.リレイヤがデータを変調して伝達できないようにしなければならない。
4.リーフチェーンから送金を受けてユーザへの送金は成功したが、失敗メッセージを伝達することによって重複支払が発生しないようにしなければならない。
5.送金でベースコインを受信するユーザの確認なく、チェーン間の送金が迅速になされなければならない。
このような要求事項のために、ルートチェーンでは、権限をもつユーザによってベースコインの鋳造(mint)と焼却(burn)が発生するようにしてよい。または、権限をもつユーザがマルチシグウォレットによって確認を受けてベースコインを鋳造または焼却させることができるようにしてよい。このとき、リーフチェーンでは、ルートチェーンでコイン発行要請を受ける場合に発行を実行してよい。また、リーフチェーンから他のリーフチェーンに送金を行う場合、2つのリーフチェーンではルートチェーンの認証された情報が伝達されたことを確認した後に鋳造と焼却が実行されてよい。例えば、ベースコインを送金するリーフチェーンでは該当のベースコインに対する焼却を実行してよく、ベースコインを受信するリーフチェーンでは該当のベースコインに対する鋳造を実行してよい。
一方、リレイヤのデータ変調を防ぐためには、伝達しようとするデータが変調されないようにしなければならない。以下では、データの変調を遮断するための方法について説明する。
1つ目の方法では、伝達しようとする原本データを署名してよい。データを送信する主体(from user)がデータを受信しようとするチェーンにおいて既知のユーザである場合は、署名された原本データに基づいて原本データの変調状態を確認してよい。このために、コントラクトは、コントラクト自身のプライベートキーをもつ状態で生成されてよく、プライベートキーに対応するパブリックキーを公開してよい。このとき、コントラクトから他のチェーンに伝達が必要な情報を署名してイベントとして記録してよく、したがって、原本データが該当のコントラクトから処理されたということを証明することができる。例えば、コントラクトは、原本データと自身のコントラクトアドレスをコントラクトのプライベートキーによって署名してよい。この場合、任意のユーザは、コントラクトのプライベートキーに対応するパブリックキーを利用して署名された原本データを検証してよく、すべてのチェーンで唯一に生成される該当のコントラクトのコントラクトアドレスにより、該当のコントラクトによってデータが伝達されたことが証明されてよい。しかし、1つ目の方法では、コントラクトのプライベートキーはコントラクトのデータベースに保存されなければならず、ブロックチェーンネットワークでデータベースは共有およびオープンされるため、チェーンのすべてのノードにプライベートキーが共有され、したがって、これ以上プライベートキーではなくなる。
2つ目の方法では、プライベートキーをコントラクトに保存するのではなく、1つのチェーンを代表するプライベートキーを、同じチェーン内で合意をなすノードであるCノードと共有し、チェーン認証が要求されるときに使用できるようにしてよい。一例として、各チェーンは、合意のためのn(一例として、nは4~8)個のCノードがプライベートキーを共有して維持してよい。ユーザや他のコントラクトは、該当のチェーンのためのシステム(一例として、該当のチェーンに設置されたシステムコントラクト)にデータの署名を要求してよく、システムは、要求されたデータに署名し、署名されたデータを提供してよい。このとき、該当のチェーンのコントラクトは、データの署名と伝達に対するイベントを記録してよく、リレイヤを経て他のチェーンに署名されたデータを伝達してよい。例えば、ルートチェーンでルートチェーンのプライベートキーと対をなすパブリックキーによって生成される識別値であるパブリックアドレスは、リーフチェーンのジェネシスブロックに記録されることにより、リーフチェーンで変調することができなくなる。ルートチェーンによってプライベートキーで署名されたデータは、リーフチェーンでジェネシスブロックに記録されたパブリックアドレスと比較することにより、署名されたデータがルートチェーンから発送されたものであることを検証することができる。これと同じように、リーフチェーンも、リーフチェーンのプライベートキーによって生成されるパブリックアドレスを、ルートチェーンに該当のリーフチェーンと関連して設置されたリーフチェーンコントラクトに登録してよい。この場合、ルートチェーンは、リーフチェーンによってリーフチェーンのプライベートキーで署名されたデータと該当のリーフチェーンコントラクトに登録されたパブリックアドレスとを比較することにより、署名されたデータが該当のリーフチェーンから発送されたものであることを検証してよい。ただし、2つ目の方法は、合意のためのCノードでプライベートキーを共有することのできるプライベートブロックチェーンでは使用可能であるが、外部サービスの提供のために公開されるパブリックブロックチェーン(パブリックリーフチェーン)では使用が不可能である。
3つ目の方法は、ルートチェーンのすべてのCノードそれぞれが合意のために有している固有のプライベートキーを活用する方法である。一例として、ルートチェーンが8つのCノードを含む場合は、8つのプライベートキーが存在してよい。この場合、該当のプライベートキーによって生成されるルートチェーンのすべてのCノードそれぞれのパブリックアドレスが、すべてのリーフチェーンそれぞれに保存されてよい。このとき、ルートチェーンで生成されたものであることを確認する必要のあるデータは、ルートチェーンのリーダーノードが自身のプライベートキーで署名してブロックに記録してよく、該当のデータがリーフチェーンに伝達されるようにしてよい。ここで、リーダーノードは、Cノードのうちから任意に選定されたノードであってよく、必要によっては、他のCノードのうちの1つに変更されてよい。この場合、リーフチェーンは、署名されたデータとリーフチェーンに保存されたパブリックアドレスとを比較することにより、署名されたデータがルートチェーンから発送されたものであることを検証することができる。上述したように、リーフチェーンは、ルートチェーンのすべてのCノードのパブリックアドレスが分かっているため、署名されたデータを検証するときに得られるパブリックアドレスが既知のルートチェーンのCノードのパブリックアドレスのうちの1つであるかを検証することにより、署名されたデータを検証してよい。ただし、ルートチェーンが含むCノードの数が公開され、Cノードをルートチェーンに追加または削除などの変更が発生する場合は、すべてのリーフチェーンそれぞれに記録された情報は更新しなければならない。特に、外部サービスのために割り当てられたパブリックブロックチェーン(パブリックリーフチェーン)に記録された情報は直接更新することができないため、該当のパブリックブロックチェーンで記録された情報を更新するように情報を提供(パブリックアドレスの更新を可能にするための情報を公知)しなければならない。これと同じように、リーフチェーンのCノードも、合意のために固有のプライベートキーを有してよく、このようなプライベートキーが活用されてよい。この場合、Cノードそれぞれのパブリックアドレスは、ルートチェーンに該当のリーフチェーンと関連して設置されたリーフチェーンコントラクトに登録されてよく、ルートチェーンは、署名されたデータと該当のリーフチェーンコントラクトに登録されたパブリックアドレスとを比較することにより、署名されたデータが該当のリーフチェーンから発送されたものであることを検証してよい。
4つ目の方法は、ルートチェーンのすべてのCノードで生成されるパブリックアドレスの組み合わせによって生成される代表パブリックアドレス(Common Public Address)をすべてのリーフチェーンそれぞれに共有する方法である。この場合にも、ルートチェーンでCノードを追加または削除するなどの変更が発生する場合は、すべてのリーフチェーンそれぞれに記録された情報を更新しなければならないが、リーフチェーンそれぞれで共有しなければならないパブリックアドレスを代表パブリックアドレス1つに減らすことができ、ルートチェーンが含むCノードの数は公開されないという長所がある。ただし、代表パブリックアドレスが変更されるため、変更時には保安に注意しなければならない。4つ目の方法では、ルートチェーンのすべてのCノードのパブリックアドレスそれぞれをすべてのCノードそれぞれがすべて分かっていなければならない。また、4つ目の方法では、プライベートキーが複数あったとしても1つのパブリックアドレス(代表パブリックアドレス)を生成することができ、プライベートキーが1つ以上のコンファームによって暗号を解除することができるように、署名のためのアルゴリズムとこれを検証するアルゴリズムを修正したモジュールが要求される。
5つ目の方法では、1つ目の方法を活用可能にするために、ブロックチェーンに次のような機能を追加する。5つ目の方法では、コントラクトがパブリックキーによってコントラクトアドレスを生成し、プライベートキーを暗号化してコントラクトが保存するようにしてよい。プライベートキーが分かっており、プライベートキーによってパブリックキーを得ることができ、パブリックキーによってコントラクトアドレスを生成することができる。このとき、署名のためのコントラクト(以下、署名可能コントラクト)は、1つのチェーンに1つだけが存在しても問題ない。例えば、署名可能コントラクトを設置するときに、暗号化されたプライベートキーとプライベートキーによって生成されるパブリックキーがパラメータとなって署名可能コントラクトに伝達されてよい。署名可能コントラクトは、受信したパブリックキーによってコントラクトアドレスを生成してよい。このとき、同じコントラクトアドレスがあれば、コントラクトアドレスの生成は失敗となる。暗号化されたプライベートキーは、以下で説明するパスワードによって復号されてよく、署名可能コントラクトによってデータベースに保存されてよい。このとき、任意のコントラクトがデータを署名しようとする場合、署名しようとするデータと署名可能コントラクトに保存された暗号化されたプライベートキーを復号することのできるパスワードをパラメータとして署名可能コントラクトに伝達してよい。このとき、ブロックチェーンですべての要請(一例として、HTTPS(Hypertext Transfer Protocol Secure)を利用した要請)による情報はブロックやログに記録される反面、パスワードはどこにも保存/記録されてはならない。したがって、5つ目の方法では、パスワードパラメータをブロックやログなどのどこにも保存/記録されないタイプ(以下、「セキュアタイプ」)として定義してよい。このようなパスワードパラメータは、該当のブロックチェーンで支援されてよい。この場合、署名可能コントラクトは、パスワードによって暗号化されたプライベートキーを復元した後、復元されたプライベートキーを利用して入力されたデータを署名してよく、署名した結果(署名されたデータ)を署名要請したコントラクトに返還してよい。署名可能コントラクトのコントラクトアドレスは、各リーフチェーンのジェネシスブロックに記録されてよい。ただし、5つ目の方法では、システム上でセキュアタイプを個別に定義して活用しなければならず、暗号化されたプライベートキーとパブリックキーがシステム外部で生成されて提供されなければならず、プライベートキーが暗号化されて伝達されるため、プライベートキーが正常に生成されて伝達されるかどうかを確認することができない。ルートチェーンから送信されるデータであることをリーフチェーンが立証するために、リーフチェーンでは、該当のデータを署名した署名可能コントラクトがルートチェーンに設置されたコントラクトであるかをルートチェーンに照会して直ぐに把握してよく、該当の署名コントラクトがルートチェーンにコントラクトに存在するコントラクトであるということが立証されれば、署名されたデータがルートチェーンで生成または処理されたデータであるということが立証されるようになる。
図10は、本発明の一実施形態における、署名可能コントラクトの設置過程の例を示した図である。図10は、署名可能コントラクト1010が暗号化されたプライベートキー1020とパブリックキー1030をパラメータとして受信し、受信されたパブリックキー1030を利用してパブリックアドレスを生成してデータベース1040に保存する例を示している。言い換えれば、データベース1040には、暗号化されたプライベートキー1020とパブリックキー1030、さらにパブリックキー1030を利用して生成されたパブリックアドレスが保存されてよい。
図11は、本発明の一実施形態における、データを署名する過程の例を示した図である。図11は、署名可能コントラクト1010がユーザや他のコントラクト1110からの署名要請を受信する例を示している。このとき、署名要請は、署名するためのデータと、図10で説明した、暗号化されたプライベートキー1020を復号するためのパスワードを含んでよい。この場合、署名可能コントラクト1010は、パスワードを利用して暗号化されたプライベートキー1020を復号してプライベートキーを得てよく、復号されたプライベートキーを利用してパラメータとして伝達されたデータを署名してよい。この後、署名可能コントラクト1010は、署名されたデータを結果として、ユーザや他のコントラクト1110に返還してよい。ここで、ユーザは、該当のブロックチェーンのノードに対応してよい。
6つ目の方法では、5つ目の方法の署名可能コントラクトがブロックチェーンのシステムコントラクトによって自動設置されるようにしてよい。言い換えれば、ブロックチェーンのシステムコントラクトが設置されるときに、署名可能コントラクトもともに設置されるようにしてよい。例えば、リーダーノードのようにシステムコントラクトを最初に生成するノードが、プライベートキーを生成して署名可能コントラクトを設置してよい。生成されたプライベートキーは、署名可能コントラクトによって暗号化されてデータベースに保存されてよく、暗号化されたプライベートキーを復号するためのパスワードは、該当のノードのパブリックキーによって暗号化して該当のノードのローカルに保存されてよい。他のノードは、トランザクションをコピーし、最新のパスワードが分かるノードを検索してよい。このとき、他のノードは、検索されるノードに自身のパブリックキーを伝達してパブリックキーによって暗号化されたパスワードを受信し、該当の他のノードのローカルに保存してよい。各ノードは、署名を要請するときに、自身のパブリックキーによって自身のローカルに保存された暗号化されたパスワードを復号してパスワードを得てよく、得られたパスワードを署名要請関数のパラメータとして署名可能コントラクトに伝達してよい。要請は、ブロックチェーンで提供する署名APIまたは関数を利用して処理されてよい。署名可能コントラクトのパブリックアドレスは、各リーフチェーンのジェネシスブロックに記録されてよい。ルートチェーンから送信されるデータであることを立証するためには、署名可能コントラクトを活用してよい。
図12は、本発明の一実施形態における、署名可能コントラクトの設置過程の他の例を示した図である。図12は、ノードが生成したプライベートキーを署名可能コントラクト1210がノードのパブリックキー1220によって暗号化してデータベース1230に保存する例を示している。このとき、署名可能コントラクト1210は、暗号化されたプライベートキーを復号するためのパスワードをノードのパブリックキーによって暗号化して該当のノードに返還してよい。返還された暗号化されたパスワードは、ノードのローカルに保存されてよい。
図13は、本発明の一実施形態における、データを署名する過程の他の例を示した図である。図13は、ノード1310が暗号化されたパスワードをノード1310のプライベートキーによって復号してパスワードを取得した後、取得したパスワードをパラメータとしてシステム1320に伝達してデータの署名を要請する例を示している。ここで、システム1320は、ブロックチェーンシステムに対応してよい。このとき、署名しようとするデータも、パラメータとしてともにシステム1320に伝達してよい。この場合、システム1320は、パスワードを利用して署名可能コントラクト1210にデータの署名を要請してよい。この場合、署名可能コントラクト1210は、パスワードによって暗号化されたプライベートキーを復号してよく、復号されたプライベートキーを利用してデータを署名した後、署名されたデータを返還してよい。システム1320は、返還された署名されたデータをノード1310に伝達してよい。
一方、リーフチェーンでは、内部で処理した内容と伝達する内容とが異ならないようにしなければならない。このために、送金を処理したトランザクションのマークルツリーの証明ハッシュリストを、処理結果とともにイベントとして伝達するようにしなければならない。監視子が存在するのであれば、マークルツリーの証明情報まで伝達するかを決定する必要がある。伝達するイベント情報をコントラクトのプライベートキーによって署名してイベントに記録してよく、この場合、該当のトランザクションが処理されたということは分かるが、処理内容を変調したかどうかは把握することができないため、監視子が必要となることもある。このとき、監視子は、該当のブロックが存在するかどうかと、該当のトランザクションがイベントとして伝達したデータとともに、送金が成功したか失敗したかを確認してよい。監視子によって不正が発見されれば、該当のリーフチェーンには不利益が提供されてよい。ここで、監視子は、上述した機能を実行するノードの形態で実現されてよい。
図14は、本発明の一実施形態における、コイン交換方法の他の例を示した図である。同一するチェーンの同一するサービスにおけるコイン交換や、同一するチェーンの異なるサービス間のコイン交換については、図8の実施形態を参照しながら説明したとおりである。図14は、図8の実施形態とは異なる実施形態であって、ルートチェーン1410、リーフチェーン1(1420)、およびリーフチェーン2(1430)を示しており、リーフチェーン1(1420)のユーザ1がリーフチェーン2(1430)のユーザ2に送金を要請した場合を仮定する。
過程1は、リーフチェーン1(1420)で送金要請が正常な要請であるかを確認した後、問題がない場合には、送金要請に関する情報をルートチェーン1410に伝達する過程の例である。
過程2は、ルートチェーン1410で送金要請が正常な要請であるかを確認した後、問題がない場合には、リーフチェーン2(1430)に送金が可能であるかに関する確認要請を送信する過程の例である。
過程3は、リーフチェーン2(1430)で送金要請が受信可能な要請であるかを確認した後、問題がない場合には、ルートチェーン1410に受信が可能であるという応答を送信する過程の例である。
過程4は、ルートチェーン1410がリーフチェーン1(1420)およびリーフチェーン2(1430)それぞれに、送金金額を差し引いたり増額したりする領収証を発行する過程の例である。過程4.1は、ルートチェーン1410がリーフチェーン1(1420)に送金金額を差し引くための領収証を発行する過程の例であり、過程4.2は、ルートチェーン1410がリーフチェーン2(1430)に送金金額を増額するための領収証を発行する過程の例である。各チェーンでは重複差引や重複増額が発生しないように管理されてよい。
以下では、スマートコントラクトの構成について説明する。
スマートコントラクトは、ルートチェーンの場合には、図4を参照しながら説明したように、ルートチェーンマネージャコントラクトを含んでよく、各リーフチェーンそれぞれのためのコントラクトを含んでよい。一方、リーフチェーンは、サービスDAppが存在する場合にはリーフチェーンマネージャコントラクトとDAppコントラクトを含んでよく、サービスDAppが存在しない場合にはリーフチェーンマネージャコントラクトを含んでよい。ルートチェーンマネージャコントラクトとリーフチェーンマネージャコントラクトは、システムコントラクトであって、ブロックチェーンが設置されるときに自動で設置されてよい。リレイヤは、イベントログをフィルタリングしてそれぞれのチェーンに伝達してよい。各チェーンは、リレイヤがデータを変調できないように管理してよい。上述したように、ルートチェーンは、各リーフチェーンのプライベートキーによって生成されたパブリックアドレスを保存してよく、リーフチェーンは、ルートチェーンの固有のプライベートキーによって生成されるパブリックアドレスを、ジェネシスブロックを生成するときに記録してよい。リレイヤが伝達する情報をすべてルートチェーンの固有のプライベートキーによって署名した情報もともに伝達されるようにしてよい。
また、リーフチェーンにサービスDAppが存在する場合、ユーザは、DAppの「exchange」を定義した関数を呼び出してよい。このとき、DAppでは、icxに定義された「exchange」を呼び出してよく、これにより、icxクラスで「exchange」機能が実現される必要がある。
一方、チェーン間の送金のために必要な情報は、以下のとおりとなる。
・from user:送金をするユーザ
・origin:送金要請をしたサービスまたはリーフチェーン
・to user:送金を受けるユーザ
・destination:送金を受けるサービスまたはリーフチェーン
・value:送金金額(ベースコイン)
・eTxHash:送金トランザクションハッシュ
・message:送金メッセージ
・eSignature:データの伝達を要請したリーフチェーンの署名
ここで、リーフチェーンの署名は、from user、origin、to user、destination、value、eTxHash、messageを組み合わせて署名した値を含んでよい。
図15は、本発明の一実施形態における、データ認証方法の第1例を示したフローチャートである。本実施形態に係るデータ認証方法は、ブロックチェーンネットワークのノードを実現するコンピュータ装置200によって実行されてよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が図15の方法に含まれる段階1510~1540を実行するようにコンピュータ装置200を制御してよい。
段階1510で、コンピュータ装置200は、ブロックチェーンネットワークのチェーンを代表するプライベートキーを、ブロックチェーンネットワークでの合意に参加する少なくとも1つの他のノードと共有してよい。このとき、ノードは、ブロックチェーンネットワークでの合意をなすように予め設定された複数のノードのうちの1つであってよく、少なくとも1つの他のノードも、ブロックチェーンネットワークでの合意をなすように予め設定された複数のノードに含まれてよい。
本実施形態に係るデータ認証方法は、上述した2つ目の方法で、チェーンを代表する1つのプライベートキーを該当のチェーンのCノードが共有し、これをチェーン認証に活用する過程を説明する。言い換えれば、1つのノードを実現するコンピュータ装置200はコンピュータ装置200によって実現されるノードが参加するブロックチェーンネットワークのチェーンを代表するプライベートキーを少なくとも1つの他のノードと共有してよい。
段階1520で、コンピュータ装置200は、プライベートキーを利用して生成されるパブリックキーを利用してブロックチェーンネットワークのパブリックアドレスを生成してよい。上述したように、パブリックアドレスは、プライベートキーによって署名されたデータが該当のブロックチェーンネットワークから発送されたものであることを検証するために提供されてよい。
一実施形態として、ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含んでよい。この場合、コンピュータ装置200は、生成されたパブリックアドレスを複数のリーフチェーンそれぞれのジェネシスブロックに記録してよい。このとき、署名されたデータが送信されたリーフチェーンで署名されたデータとリーフチェーンのジェネシスブロックに記録されたパブリックアドレスとを比較することで、署名されたデータがルートチェーンから発送されたものであることを検証してよい。
他の実施形態として、ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含んでよい。この場合、コンピュータ装置200は、生成されたパブリックアドレスを、ルートチェーンに第1リーフチェーンと関連して設置されたリーフチェーンコントラクトに登録してよい。このとき、ルートチェーンで署名されたデータと該当のリーフチェーンコントラクトに登録されたパブリックアドレスをと比較することで、署名されたデータが第1リーフチェーンから発送されたものであることを検証してよい。
段階1530で、コンピュータ装置200は、ブロックチェーンネットワークから他のブロックチェーンネットワークに伝達しようとするデータを、ブロックチェーンネットワークに設置されたコントラクトによってプライベートキーで署名してよい。このとき、署名されたデータが記録されたブロックがブロックチェーンネットワークのチェーンに追加されてよい。
段階1540で、コンピュータ装置200は、署名されたデータをコントラクトによって他のブロックチェーンネットワークに伝達してよい。このとき、署名されたデータとパブリックアドレスとの比較により、署名されたデータがブロックチェーンネットワークから発送されたものであることが検証されてよい。
図16は、本発明の一実施形態における、データ認証方法の第2例を示したフローチャートである。本実施形態に係るデータ認証方法は、ブロックチェーンネットワークのノードを実現するコンピュータ装置200によって実行されてよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が図16の方法に含まれる段階1610~1630を実行するようにコンピュータ装置200を制御してよい。
段階1610で、コンピュータ装置200は、ノードのプライベートキーを利用してノードのパブリックアドレスを生成してよい。ノードのプライベートキーは、ノードがブロックチェーンネットワークで合意のために有している固有のプライベートキーであってよい。
段階1620で、コンピュータ装置200は、ブロックチェーンネットワークから他のブロックチェーンネットワークに伝達しようとするデータを、ノードのプライベートキーを利用して署名してよい。このとき、署名されたデータが記録されたブロックがブロックチェーンネットワークのチェーンに追加されてよい。
段階1630で、コンピュータ装置200は、署名されたデータを他のブロックチェーンネットワークに伝達してよい。このとき、前記パブリックアドレスを利用することで、前記署名されたデータが前記ブロックチェーンネットワークから発送されたものであることが検証されてよい。
一実施形態において、ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含んでよい。このとき、ブロックチェーンネットワークで合意をなすように予め設定された複数のノード(本実施形態に係るコンピュータ装置200が実現するノードを含む複数のノード)それぞれで生成されたパブリックアドレスが複数のリーフチェーンそれぞれに保存されてよい。この場合、署名されたデータが送信された第1リーフチェーンで署名されたデータと第1リーフチェーンに保存された複数のノードそれぞれのパブリックアドレスとを比較することで、署名されたデータがルートチェーンから発送されたものであることを検証してよい。
他の実施形態において、ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含んでよい。このとき、ブロックチェーンネットワークで合意をなすように予め設定された複数のノード(本実施形態に係るコンピュータ装置200が実現するノードを含む複数のノード)それぞれで生成されたパブリックアドレスが、ルートチェーンに第1リーフチェーンと関連して設置されたリーフチェーンコントラクトに登録されてよい。この場合、ルートチェーンで署名されたデータとリーフチェーンコントラクトに登録されたパブリックアドレスとを比較することで、署名されたデータが第1リーフチェーンから発送されたものであることを検証してよい。
また他の実施形態において、ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含んでよい。このとき、ブロックチェーンネットワークで合意をなすように予め設定された複数のノード(本実施形態に係るコンピュータ装置200が実現するノードを含む複数のノード)それぞれで生成されたパブリックアドレスの組み合わせによって生成される代表パブリックアドレスが、複数のリーフチェーンそれぞれに保存されてよい。この場合、署名されたデータが送信された第1リーフチェーンで署名されたデータと第1リーフチェーンに保存された代表パブリックアドレスとを比較することで、署名されたデータがルートチェーンから発送されたものであることを検証してよい。
また他の実施形態において、ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含んでよい。このとき、ブロックチェーンネットワークで合意をなすように予め設定された複数のノード(本実施形態に係るコンピュータ装置200が実現するノードを含む複数のノード)それぞれで生成されたパブリックアドレスの組み合わせによって生成される代表パブリックアドレスが、ルートチェーンとリーフチェーン間の仲介を処理するルートチェーンに第1リーフチェーンと関連して設置されたリーフチェーンコントラクトに登録されてよい。この場合、ルートチェーンで署名されたデータと該当のリーフチェーンコントラクトに登録された代表パブリックアドレスとを比較することで、署名されたデータが第1リーフチェーンから発送されたものであることを検証してよい。
図17は、本発明の一実施形態における、データ認証方法の第3例を示したフローチャートである。本実施形態に係るデータ認証方法は、ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置200によって実行されてよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が図17の方法に含まれる段階1710~1760を実行するようにコンピュータ装置200を制御してよい。ここで、少なくとも1つのプログラムコードは、少なくともブロックチェーンネットワークのコントラクトによるコードを含んでよい。
段階1710で、コンピュータ装置200は、暗号化されたプライベートキーとプライベートキーで生成されるパブリックキーをパラメータとして受信してよい。
段階1720で、コンピュータ装置200は、受信したパブリックキーによってコントラクトアドレスを生成してよい。
段階1730で、コンピュータ装置200は、暗号化されたプライベートキーとコントラクトアドレスをデータベースに保存してよい。
段階1740で、コンピュータ装置200は、署名するデータと暗号化されたプライベートキーを復号するためのパスワードをパラメータとして含む署名要請を受信してよい。ここで、パスワードは、ブロックチェーンネットワークのブロックや、いずれのログにも保存されないセキュアタイプとして定義されてよい。
段階1750で、コンピュータ装置200は、署名要請に応答してパスワードによって暗号化されたプライベートキーを復号し、復号されたプライベートキーによってデータを署名することで、署名されたデータを生成してよい。このとき、署名されたデータが記録されたブロックが前記ブロックチェーンネットワークのチェーンに追加されてよい。
段階1760で、コンピュータ装置200は、生成された署名されたデータを返還してよい。このとき、署名されたデータは、データの署名を要請したノードに返還されてよい。
一実施形態において、ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含んでよい。このとき、コンピュータ装置200は、コントラクトアドレスを複数のリーフチェーンそれぞれのジェネシスブロックに記録してよい。この場合、署名されたデータを受信する第1リーフチェーンで署名されたデータと第1リーフチェーンのジェネシスブロックに記録されたコントラクトアドレスとを比較することで、署名されたデータがルートチェーンから発送されたものであることを検証してよい。
他の実施形態において、ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含んでよい。このとき、コンピュータ装置200は、コントラクトアドレスがルートチェーンのデータベースに保存されるように、コントラクトアドレスをルートチェーンに提供してよい。この場合、ルートチェーンで署名されたデータとルートチェーンのデータベースに保存されたコントラクトアドレスとを比較することで、署名されたデータが第1リーフチェーンから発送されたものであることを検証してよい。
図18は、本発明の一実施形態における、データ認証方法の第4例を示したフローチャートである。本実施形態に係るデータ認証方法は、ブロックチェーンネットワークのノードを実現するコンピュータ装置200によって実行されてよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が図18の方法に含まれる段階1810~1860を実行するようにコンピュータ装置200を制御してよい。
段階1810で、コンピュータ装置200は、ブロックチェーンネットワークのノードのプライベートキーを暗号化して保存してよい。ここで、ノードは、ブロックチェーンネットワークで最初に生成されるノードであってよく、このようなノードでブロックチェーンネットワークのシステムコントラクトを設置する過程において署名可能コントラクトを自動設置してよい。この過程において、ノードのプライベートキーが署名可能コントラクトに伝達されてよい。このとき、署名可能コントラクトは、設置過程で伝達されるノードのプライベートキーを暗号化して保存してよい。
段階1820で、コンピュータ装置200は、暗号化されたプライベートキーを復号するためのパスワードをノードのパブリックキーによって暗号化して保存してよい。パスワードは、コンピュータ装置200がプライベートキーを暗号化する過程において暗号化されたプライベートキーを復号できるように生成されてよい。一例として、対称キーによってプライベートキーを暗号化した場合、対称キーや対称キーを得るための値がパスワードによって生成されてよい。
段階1830で、コンピュータ装置200は、ノードのパブリックキーによって暗号化されたパスワードをノードに返還してよい。この場合、ノードは、暗号化されたパスワードを得てよい。このとき、暗号化されたパスワードは、ノードのパブリックキーによって暗号化されたため、ノードのプライベートキーによって暗号化されたパスワードを復号してパスワードを得ることができるようになる。一方、ブロックチェーンネットワークの他のノードは、暗号化されたパスワードが返還されたノードを検索して該当のノードに他のノードのパブリックキーを送信し、該当のノードから他のノードのパブリックキーによって暗号化されたパスワードを受信して他のノードに保存してよい。このような過程により、ブロックチェーンネットワークの他のノードも、暗号化されたプライベートキーを復号するためのパスワードを得ることができるようになる。この反面、プライベートキー自体は、暗号化された状態で保存されるため表示されなくてよい。一方、パスワードは、ブロックチェーンネットワークのブロックや、いずれのログにも保存されないセキュアタイプとして定義されてよい。
段階1840で、コンピュータ装置200は、ブロックチェーンネットワークの任意のノードから、パスワードおよびプライベートキーによって署名するためのデータをパラメータとして含む署名要請を受信してよい。任意のノードは、コンピュータ装置200から暗号化されたパスワードが返還されたノードであるか、該当のノードからパスワードが伝達された他のノードであってよい。
段階1850で、コンピュータ装置200は、署名要請に応答し、パスワードによって暗号化されたプライベートキーを復号し、復号されたプライベートキーによってデータを署名することで、署名されたデータを生成してよい。
段階1860で、コンピュータ装置200は、署名されたデータを返還してよい。このとき、署名されたデータは、データの署名を要請したノードに返還されてよい。
一実施形態において、ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含んでよい。このとき、コンピュータ装置200は、コントラクトアドレスを複数のリーフチェーンそれぞれのジェネシスブロックに記録してよい。この場合、署名されたデータを受信する第1リーフチェーンで署名されたデータと第1リーフチェーンのジェネシスブロックに記録されたコントラクトアドレスとを比較することで、署名されたデータがルートチェーンから発送されたものであることを検証してよい。
他の実施形態において、ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含んでよい。このとき、コンピュータ装置200は、コントラクトアドレスがルートチェーンのデータベースに保存されるようにコントラクトアドレスをルートチェーンに提供してよい。この場合、ルートチェーンで署名されたデータとルートチェーンのデータベースに保存されたコントラクトアドレスとを比較することで、署名されたデータが第1リーフチェーンから発送されたものであることを検証してよい。ルートチェーンは、上述したように、絶対信頼システムとして見なされてよい。
以上のように、本発明の実施形態によると、ルートチェーンに基づいてリーフチェーンを追加する方式により、スケールアウトが可能なブロックチェーンで生成されるデータを認証する、データ認証方法およびシステムを提供することができる。
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記録媒体または装置に実現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含んでよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであっても、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROM、DVDのような光媒体、フロプティカルディスクのような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。このような記録媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されてはならず、ネットワーク上で分散して存在するものであってもよい。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。

Claims (20)

  1. ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置のデータ認証方法であって、
    前記コンピュータ装置が含む少なくとも1つのプロセッサにより、暗号化されたプライベートキーとプライベートキーによって生成されるパブリックキーをパラメータとして受信する段階、
    前記少なくとも1つのプロセッサにより、前記受信したパブリックキーによってコントラクトアドレスを生成する段階、
    前記少なくとも1つのプロセッサにより、前記暗号化されたプライベートキーと前記コントラクトアドレスをデータベースに保存する段階、
    前記少なくとも1つのプロセッサにより、署名するデータと前記暗号化されたプライベートキーを復号するためのパスワードをパラメータとして含む署名要請を受信する段階、
    前記少なくとも1つのプロセッサにより、前記署名要請に応答し、前記パスワードによって前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで、署名されたデータを生成する段階、および
    前記少なくとも1つのプロセッサにより、前記生成された署名されたデータを返還する段階
    を含むことを特徴とする、データ認証方法。
  2. 前記パスワードは、前記ブロックチェーンネットワークのブロックや、いずれのログにも保存されないセキュアタイプとして定義されることを特徴とする、請求項1に記載のデータ認証方法。
  3. 前記ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含み、
    前記データ認証方法は、
    前記少なくとも1つのプロセッサにより、前記コントラクトアドレスを前記複数のリーフチェーンそれぞれのジェネシスブロックに記録する段階
    をさらに含むことを特徴とする、請求項1または2に記載のデータ認証方法。
  4. 前記署名されたデータを受信する第1リーフチェーンで前記署名されたデータと前記第1リーフチェーンのジェネシスブロックに記録されたコントラクトアドレスとを比較することで、前記署名されたデータが前記ルートチェーンから発送されたものであることを検証することを特徴とする、請求項3に記載のデータ認証方法。
  5. 前記ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含み、
    前記データ認証方法は、
    前記少なくとも1つのプロセッサにより、前記コントラクトアドレスが前記ルートチェーンのデータベースに保存されるように前記コントラクトアドレスを前記ルートチェーンに提供する段階
    をさらに含むことを特徴とする、請求項1~4のいずれか一項に記載のデータ認証方法。
  6. 前記ルートチェーンで前記署名されたデータと前記ルートチェーンのデータベースに保存された前記コントラクトアドレスとを比較することで、前記署名されたデータが前記第1リーフチェーンから発送されたものであることを検証することを特徴とする、請求項5に記載のデータ認証方法。
  7. 前記署名されたデータが記録されたブロックが、前記ブロックチェーンネットワークのチェーンに追加されることを特徴とする、請求項1~6のいずれか一項に記載のデータ認証方法。
  8. ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置のデータ認証方法であって、
    前記コンピュータ装置が含む少なくとも1つのプロセッサにより、前記ブロックチェーンネットワークのノードのプライベートキーを暗号化して保存する段階、
    前記少なくとも1つのプロセッサにより、前記暗号化されたプライベートキーを復号するためのパスワードを前記ノードのパブリックキーに暗号化して保存する段階、
    前記少なくとも1つのプロセッサにより、前記ノードのパブリックキーによって暗号化されたパスワードを前記ノードに返還する段階、
    前記少なくとも1つのプロセッサにより、前記ブロックチェーンネットワークの任意のノードから前記パスワードおよび前記プライベートキーによって署名するためのデータをパラメータとして含む署名要請を受信する段階、
    前記少なくとも1つのプロセッサにより、前記署名要請に応答し、前記パスワードによって前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで、署名されたデータを生成する段階、および
    前記少なくとも1つのプロセッサにより、前記署名されたデータを返還する段階
    を含むことを特徴とする、データ認証方法。
  9. 前記ノードは、前記ブロックチェーンネットワークで最初に生成されるノードとして前記ブロックチェーンネットワークのシステムコントラクトを設置する過程で署名可能コントラクトを設置し、
    前記データ認証方法は、前記署名可能コントラクトによって動作するコンピュータ装置によって実行されることを特徴とする、請求項8に記載のデータ認証方法。
  10. 前記パスワードは、前記ブロックチェーンネットワークのブロックや、いずれのログにも保存されないセキュアタイプとして定義されることを特徴とする、請求項8または9に記載のデータ認証方法。
  11. 前記ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含み、
    前記データ認証方法は、
    前記少なくとも1つのプロセッサにより、コントラクトアドレスを前記複数のリーフチェーンそれぞれのジェネシスブロックに記録する段階
    をさらに含むことを特徴とする、請求項8~10のいずれか一項に記載のデータ認証方法。
  12. 前記署名されたデータを受信する第1リーフチェーンで前記署名されたデータと前記第1リーフチェーンのジェネシスブロックに記録されたコントラクトアドレスとを比較することで、前記署名されたデータが前記ルートチェーンから発送されたものであることを検証することを特徴とする、請求項11に記載のデータ認証方法。
  13. 前記ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含み、
    前記データ認証方法は、
    前記少なくとも1つのプロセッサにより、コントラクトアドレスが前記ルートチェーンのデータベースに保存されるように前記コントラクトアドレスを前記ルートチェーンに提供する段階
    をさらに含むことを特徴とする、請求項8~12のいずれか一項に記載のデータ認証方法。
  14. 前記ルートチェーンで前記署名されたデータと前記ルートチェーンのデータベースに保存された前記コントラクトアドレスとを比較することで、前記署名されたデータが前記第1リーフチェーンから発送されたものであることを検証することを特徴とする、請求項13に記載のデータ認証方法。
  15. 前記ブロックチェーンネットワークの他のノードは、前記暗号化されたパスワードが返還されたノードを検索して前記ノードに前記他のノードのパブリックキーを送信し、前記ノードから前記他のノードのパブリックキーによって暗号化されたパスワードを受信して前記他のノードに保存することを特徴とする、請求項8~14のいずれか一項に記載のデータ認証方法。
  16. 前記プライベートキーを復号するためのパスワードを周期的に更新するか、管理者からの要請にしたがって更新する段階
    をさらに含む、請求項8~15のいずれか一項に記載のデータ認証方法。
  17. 請求項1~16のうちのいずれか一項に記載の方法をコンピュータ装置に実行させるためのコンピュータプログラム。
  18. 請求項1~16のうちのいずれか一項に記載の方法をコンピュータ装置に実行させるためのコンピュータプログラムが記録されていることを特徴とする、コンピュータ読み取り可能な記録媒体。
  19. ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置であって、
    前記コンピュータ装置で読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
    を含み、
    前記少なくとも1つのプロセッサにより、
    暗号化されたプライベートキーとプライベートキーによって生成されるパブリックキーをパラメータとして受信し、
    前記受信したパブリックキーによってコントラクトアドレスを生成し、
    前記暗号化されたプライベートキーと前記コントラクトアドレスをデータベースに保存し、
    署名するデータと前記暗号化されたプライベートキーを復号するためのパスワードをパラメータとして含む署名要請を受信し、
    前記パスワードを利用して前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで、署名されたデータを生成し、
    前記生成された署名されたデータを返還すること
    を特徴とする、コンピュータ装置。
  20. ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置であって、
    前記コンピュータ装置で読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
    を含み、
    前記少なくとも1つのプロセッサにより、
    前記ブロックチェーンネットワークのノードのプライベートキーを暗号化して保存し、
    前記暗号化されたプライベートキーを復号するためのパスワードを前記ノードのパブリックキーによって暗号化して保存し、
    前記ノードのパブリックキーによって暗号化されたパスワードを前記ノードに返還し、
    前記ブロックチェーンネットワークの任意のノードから、前記パスワードおよび前記プライベートキーによって署名するためのデータをパラメータとして含む署名要請を受信し、
    前記署名要請に応答し、前記パスワードによって前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで、署名されたデータを生成し、
    前記署名されたデータを返還すること
    を特徴とする、コンピュータ装置。
JP2021554654A 2019-03-15 2019-03-15 ブロックチェーンで生成されたデータを認証する方法およびシステム Active JP7254954B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2019/003002 WO2020189801A1 (ko) 2019-03-15 2019-03-15 서명 가능 컨트랙트를 이용하여 블록체인에서 생성된 데이터를 인증하는 방법 및 시스템

Publications (2)

Publication Number Publication Date
JP2022531642A true JP2022531642A (ja) 2022-07-08
JP7254954B2 JP7254954B2 (ja) 2023-04-10

Family

ID=72519256

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021554654A Active JP7254954B2 (ja) 2019-03-15 2019-03-15 ブロックチェーンで生成されたデータを認証する方法およびシステム

Country Status (3)

Country Link
JP (1) JP7254954B2 (ja)
KR (1) KR102572834B1 (ja)
WO (1) WO2020189801A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422159B (zh) * 2020-10-13 2024-08-20 北京金山云网络技术有限公司 一种基于区块链的数据处理方法及装置
KR102532162B1 (ko) * 2022-10-27 2023-05-12 주식회사 풀스택 서명 기능 없는 블록체인 지갑의 소유권 인증 방법 및 이를 이용한 시스템

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120294445A1 (en) * 2011-05-16 2012-11-22 Microsoft Corporation Credential storage structure with encrypted password
US20170142090A1 (en) * 2013-12-26 2017-05-18 Lookout, Inc. System and method for permitting an action based on verification information and a challenge token
US20170353309A1 (en) * 2016-06-06 2017-12-07 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
WO2018015177A1 (en) * 2016-07-22 2018-01-25 NEC Laboratories Europe GmbH Method for secure ledger distribution and computer system using secure distributed ledger technology
US20180262341A1 (en) * 2017-03-10 2018-09-13 Fmr Llc Secure Firmware Transaction Signing Platform Apparatuses, Methods and Systems
WO2018193355A1 (en) * 2017-04-18 2018-10-25 nChain Holdings Limited Secure blockchain-based consensus

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101661933B1 (ko) 2015-12-16 2016-10-05 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 인증시스템 및 이를 이용한 인증방법
KR101637863B1 (ko) 2016-01-05 2016-07-08 주식회사 코인플러그 본인인증용 정보 보안 전송시스템 및 방법
KR101723405B1 (ko) * 2016-07-04 2017-04-06 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
KR101903620B1 (ko) * 2017-06-23 2018-10-02 홍석현 블록체인 기반 분산 네트워크에서 피어의 신원을 확인하는 방법 및 이를 이용한 서버

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120294445A1 (en) * 2011-05-16 2012-11-22 Microsoft Corporation Credential storage structure with encrypted password
US20170142090A1 (en) * 2013-12-26 2017-05-18 Lookout, Inc. System and method for permitting an action based on verification information and a challenge token
US20170353309A1 (en) * 2016-06-06 2017-12-07 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
WO2018015177A1 (en) * 2016-07-22 2018-01-25 NEC Laboratories Europe GmbH Method for secure ledger distribution and computer system using secure distributed ledger technology
US20180262341A1 (en) * 2017-03-10 2018-09-13 Fmr Llc Secure Firmware Transaction Signing Platform Apparatuses, Methods and Systems
WO2018193355A1 (en) * 2017-04-18 2018-10-25 nChain Holdings Limited Secure blockchain-based consensus

Also Published As

Publication number Publication date
KR102572834B1 (ko) 2023-08-30
WO2020189801A1 (ko) 2020-09-24
JP7254954B2 (ja) 2023-04-10
KR20210096287A (ko) 2021-08-04

Similar Documents

Publication Publication Date Title
JP7436568B2 (ja) ブロックチェーンにより実現される方法及びシステム
KR102682222B1 (ko) 디지털 법정 화폐
JP6877448B2 (ja) 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム
JP6370016B2 (ja) 階層型ネットワークシステム、これに用いられるノード及びプログラム
JP7304963B2 (ja) プログラム、データ認証方法、およびコンピュータ装置
US11599858B2 (en) Blockchain settlement network
JP2018196150A (ja) トランザクション処理装置、トランザクション処理方法、及びそのためのプログラム
Lazarovich Invisible Ink: blockchain for data privacy
TW201931275A (zh) 用於具有分散式共識之分散式系統中之契約資料之存取控制方法及其契約產生器及驗證伺服器
JP7240402B2 (ja) コンピュータにより実施される意思決定システム及び方法
KR101976787B1 (ko) 블록체인에서 스마트 컨트랙트를 이용한 전자 문서 유통 방법
US20220172198A1 (en) Real-time blockchain settlement network
KR20190132047A (ko) 스마트 컨트랙트를 이용한 블록체인 기반 서비스 플랫폼 제공 방법
KR20190132159A (ko) 스마트 컨트랙트를 이용한 블록체인 기반 암호화폐 거래 플랫폼 제공 방법
TW202139127A (zh) 用於與區塊鏈相關聯之服務平台之運算服務
KR20190132054A (ko) 블록체인 기반 스마트 컨트랙트를 이용한 암호화폐 거래 플랫폼 제공 방법
KR20230005353A (ko) 탈중앙화된 데이터베이스에서 허가된 이벤팅
JP7254954B2 (ja) ブロックチェーンで生成されたデータを認証する方法およびシステム
JP2022054439A (ja) 中央銀行デジタル通貨のための決済方法およびシステム
KR20190132160A (ko) 스마트 컨트랙트를 이용한 암호화폐 거래 플랫폼 제공 방법
CN113597608A (zh) 基于区块链的可信平台
JP2020109617A (ja) ブロックチェーンの拡張を可能にするトランザクション処理システムおよび方法
WO2021117515A1 (ja) 電子資産管理方法、及び電子資産管理装置
Singh et al. IoT–Blockchain Integration-Based Applications Challenges and Opportunities
JP7262328B2 (ja) 資産のバックアップ処理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220301

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230307

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230329

R150 Certificate of patent or registration of utility model

Ref document number: 7254954

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150