JP7254954B2 - Methods and systems for authenticating blockchain-generated data - Google Patents

Methods and systems for authenticating blockchain-generated data Download PDF

Info

Publication number
JP7254954B2
JP7254954B2 JP2021554654A JP2021554654A JP7254954B2 JP 7254954 B2 JP7254954 B2 JP 7254954B2 JP 2021554654 A JP2021554654 A JP 2021554654A JP 2021554654 A JP2021554654 A JP 2021554654A JP 7254954 B2 JP7254954 B2 JP 7254954B2
Authority
JP
Japan
Prior art keywords
chain
data
contract
leaf
private key
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.)
Active
Application number
JP2021554654A
Other languages
Japanese (ja)
Other versions
JP2022531642A (en
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/en
Application granted granted Critical
Publication of JP7254954B2 publication Critical patent/JP7254954B2/en
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

Description

以下の説明は、署名可能コントラクトを利用してブロックチェーンで生成されたデータを認証する方法およびシステムに関する。 The following description relates to methods and systems for authenticating blockchain-generated data utilizing signable contracts.

ブロックチェーンとは、電子台帳であって、トランザクションのためのブロックで構成されたコンピュータ基盤の分散型、P2P(peer-to-peer)のシステムによって実現される。各トランザクション(Transaction:Tx)は、ブロックチェーンシステム内の参加者にデジタル資産の制御送信をエンコードするデータ構造であり、少なくとも1つの入力と少なくとも1つの出力を含む。各ブロックは1つ前のブロックのハッシュを含み、該当のブロックは連結されており、最初からブロックチェーンに記録されたすべてのトランザクションの永久的な、変えることのできない記録を生成する。例えば、韓国公開特許第10-2018-0113143号公報は、ブロックチェーンに基づくユーザ定義の貨幣取引システムおよびその動作方法について開示している。このようなブロックチェーン自体は、スケールアウトができない。例えば、ブロックチェーンネットワークでブロックを生成するためのノードを追加しても、ブロック生成のための合意費用が増加するだけで、トランザクションに対するブロックの生成速度は増加しない。 Blockchain is an electronic ledger that is realized by a computer-based distributed peer-to-peer (P2P) system composed of blocks for transactions. Each transaction (Transaction: Tx) is a data structure that encodes the controlled transmission of digital assets to participants in the blockchain system and includes at least one input and at least one output. Each block contains the hash of the previous block, and the blocks are concatenated to create a permanent, immutable record of all transactions recorded on the blockchain from the beginning. For example, Korean Patent Publication No. 10-2018-0113143 discloses a blockchain-based user-defined monetary transaction system and method of operation thereof. Such blockchains themselves cannot scale out. For example, adding nodes to generate blocks in a blockchain network only increases the consensus cost for block generation, but does not increase the speed of block generation for transactions.

ルートチェーンに基づいてリーフチェーンを追加する方式により、スケールアウトが可能なブロックチェーンで生成されるデータを認証するデータ認証方法およびシステムを提供する。 A data authentication method and system for authenticating data generated in a scalable block chain by adding a leaf chain based on a root chain.

ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置のデータ認証方法であって、前記コンピュータ装置が含む少なくとも1つのプロセッサにより、暗号化されたプライベートキーとプライベートキーによって生成されるパブリックキーをパラメータとして受信する段階、前記少なくとも1つのプロセッサにより、前記受信したパブリックキーによってコントラクトアドレスを生成する段階、前記少なくとも1つのプロセッサにより、前記暗号化されたプライベートキーと前記コントラクトアドレスをデータベースに保存する段階、前記少なくとも1つのプロセッサにより、署名するデータと前記暗号化されたプライベートキーを復号するためのパスワードをパラメータとして含む署名要請を受信する段階、前記少なくとも1つのプロセッサにより、前記署名要請に応答し、前記パスワードによって前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで、署名されたデータを生成する段階、および前記少なくとも1つのプロセッサにより、前記生成された署名されたデータを返還する段階を含むことを特徴とする、データ認証方法を提供する。 A method of data authentication for a computing device operating according to a blockchain network contract, the step of receiving as parameters an encrypted private key and a public key generated by the private key by at least one processor included in said computing device. generating, by the at least one processor, a contract address with the received public key; storing, by the at least one processor, the encrypted private key and the contract address in a database; receiving, by a processor, a signature request including, as parameters, data to be signed and a password for decrypting the encrypted private key; responding to the signature request by the at least one processor; generating signed data by decrypting the decrypted private key and signing the data with the decrypted private key; and converting the generated signed data by the at least one processor. A data authentication method is provided, characterized by including the step of returning.

一側によると、前記パスワードは、前記ブロックチェーンネットワークのブロックや、ログのうちでどこにも保存されないセキュアタイプとして定義されることを特徴としてよい。 According to one side, the password may be defined as a secure type that is not stored anywhere in the blocks or logs of the blockchain network.

他の側面によると、前記ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含み、前記データ認証方法は、前記少なくとも1つのプロセッサにより、前記コントラクトアドレスを前記複数のリーフチェーンそれぞれのジェネシスブロックに記録する段階をさらに含むことを特徴としてよい。 According to another aspect, the blockchain network includes a root chain that manages data transmission between a plurality of leaf chains, and wherein the data authentication method includes transmitting the contract address to the plurality of leaf chains by the at least one processor. It may further include recording in each genesis block.

また他の側面によると、前記署名されたデータを受信する第1リーフチェーンで前記署名されたデータと前記第1リーフチェーンのジェネシスブロックに記録されたコントラクトアドレスとを比較することで、前記署名されたデータが前記ルートチェーンから発送されたものであることを検証することを特徴としてよい。 According to yet another aspect, the signed data is compared with a contract address recorded in a genesis block of the first leaf-chain at a first leaf-chain that receives the signed data. It may be characterized by verifying that the received data was sent from the root chain.

また他の側面によると、前記ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含み、前記データ認証方法は、前記少なくとも1つのプロセッサにより、前記コントラクトアドレスが前記ルートチェーンのデータベースに保存されるように前記コントラクトアドレスを前記ルートチェーンに提供する段階をさらに含むことを特徴としてよい。 According to yet another aspect, the blockchain network includes a first leaf chain of a plurality of leaf chains whose data transmission is managed by a root chain, and wherein the data authentication method comprises, by the at least one processor, the The method may further include providing the contract address to the root chain so that the contract address is stored in a database of the root chain.

また他の側面によると、前記ルートチェーンで前記署名されたデータと前記ルートチェーンのデータベースに保存された前記コントラクトアドレスとを比較することで、前記署名されたデータが前記第1リーフチェーンから発送されたものであることを検証することを特徴としてよい。 According to yet another aspect, the signed data is dispatched from the first leaf chain by comparing the signed data in the root chain with the contract address stored in the database of the root chain. It may be characterized by verifying that the

また他の側面によると、前記署名されたデータが記録されたブロックが、前記ブロックチェーンネットワークのチェーンに追加されることを特徴としてよい。 According to another aspect, the block in which the signed data is recorded is added to the chain of the blockchain network.

ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置のデータ認証方法であって、前記コンピュータ装置が含む少なくとも1つのプロセッサにより、前記ブロックチェーンネットワークのノードのプライベートキーを暗号化して保存する段階、前記少なくとも1つのプロセッサにより、前記暗号化されたプライベートキーを復号するためのパスワードを前記ノードのパブリックキーによって暗号化して保存する段階、前記少なくとも1つのプロセッサにより、前記ノードのパブリックキーによって暗号化されたパスワードを前記ノードに返還する段階、前記少なくとも1つのプロセッサにより、前記ブロックチェーンネットワークの任意のノードから前記パスワードおよび前記プライベートキーによって署名するためのデータをパラメータとして含む署名要請を受信する段階、前記少なくとも1つのプロセッサにより、前記署名要請に応答し、前記パスワードによって前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで、署名されたデータを生成する段階、および前記少なくとも1つのプロセッサにより、前記署名されたデータを返還する段階を含むことを特徴とする、データ認証方法を提供する。 A method of data authentication for a computing device operating by a contract of a blockchain network, the step of encrypting and storing, by at least one processor included in the computing device, a private key of a node of the blockchain network; encrypting and storing, by a processor, a password for decrypting the encrypted private key with the public key of the node; returning to a node, receiving, by the at least one processor, a signature request including data for signing with the password and the private key as parameters from any node of the blockchain network; the at least one processor. generating signed data by responding to the signing request, decrypting the encrypted private key with the password, and signing the data with the decrypted private key, and at least A data authentication method is provided, comprising the step of returning the signed data by one processor.

コンピュータ装置と結合して前記方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に保存された、コンピュータプログラムを提供する。 A computer program stored in a computer readable recording medium is provided for coupling with a computer device to cause the computer device to perform the method.

前記方法をコンピュータ装置に実行させるためのコンピュータプログラムが記録されていることを特徴とする、コンピュータ読み取り可能な記録媒体を提供する。 A computer-readable recording medium is provided, characterized by recording a computer program for causing a computer device to execute the method.

ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置であって、前記コンピュータ装置で読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、暗号化されたプライベートキーとプライベートキーによって生成されるパブリックキーをパラメータとして受信し、前記受信したパブリックキーによってコントラクトアドレスを生成し、前記暗号化されたプライベートキーと前記コントラクトアドレスをデータベースに保存し、署名するデータと前記暗号化されたプライベートキーを復号するためのパスワードをパラメータとして含む署名要請を受信して前記パスワードを利用して前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで署名されたデータを生成し、前記生成された署名されたデータを返還することを特徴とする、コンピュータ装置を提供する。 A computing device operating according to a blockchain network contract, the computing device comprising at least one processor implemented to execute instructions readable by the computing device, the at least one processor having an encrypted private key. and a private key as a parameter, generates a contract address with the received public key, stores the encrypted private key and the contract address in a database, and stores the data to be signed and the encryption receiving a signature request including a password for decrypting the encrypted private key as a parameter, decrypting the encrypted private key using the password, and signing the data with the decrypted private key. to generate signed data and return the generated signed data.

ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置であって、前記コンピュータ装置で読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、前記ブロックチェーンネットワークのノードのプライベートキーを暗号化して保存し、前記暗号化されたプライベートキーを復号するためのパスワードを前記ノードのパブリックキーによって暗号化して保存し、前記ノードのパブリックキーによって暗号化されたパスワードを前記ノードに返還し、前記ブロックチェーンネットワークの任意のノードから前記パスワードおよび前記プライベートキーによって署名するためのデータをパラメータとして含む署名要請を受信し、前記署名要請に応答し、前記パスワードによって前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで署名されたデータを生成し、前記署名されたデータを返還することを特徴とする、コンピュータ装置を提供する。 A computing device operating according to a contract of a blockchain network, comprising at least one processor implemented to execute instructions readable by said computing device, said at least one processor causing a node of said blockchain network to: encrypting and storing a private key of, encrypting and storing a password for decrypting said encrypted private key with said node's public key, and encrypting said node's public key with said password encrypted with said node to receive a signature request containing data to be signed by the password and the private key as parameters from any node of the blockchain network; respond to the signature request; A computer device is provided that decrypts a private key, signs the data with the decrypted private key to generate signed data, and returns the signed data.

ルートチェーンに基づいてリーフチェーンを追加する方式により、スケールアウトが可能なブロックチェーンで生成されるデータを認証するデータ認証方法およびシステムを提供することができる。 By adding leaf chains based on the root chain, it is possible to provide a data authentication method and system for authenticating data generated in a scalable blockchain.

本発明の一実施形態における、ネットワーク環境の例を示した図である。1 is a diagram showing an example of a network environment in one embodiment of the present invention; FIG. 本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。1 is a block diagram illustrating an example of a computing device, in accordance with one embodiment of the present invention; FIG. 本発明の一実施形態における、拡張が可能なブロックチェーンネットワークの概括的な構成の例を示した図である。1 is a diagram showing an example of a general configuration of a scalable blockchain network in one embodiment of the present invention; FIG. 本発明の一実施形態における、トランザクション処理システムの詳しい構成の例を示した図である。1 is a diagram showing an example of detailed configuration of a transaction processing system in one embodiment of the present invention; FIG. 本発明の一実施形態における、新たなリーフチェーンを追加する過程の例を示したフローチャートである。FIG. 4 is a flow chart showing an example process of adding a new leaf chain in one embodiment of the present invention; FIG. 本発明の一実施形態における、新たなサービスを追加する過程の例を示したフローチャートである。FIG. 4 is a flow chart showing an example of the process of adding a new service in one embodiment of the present invention; FIG. 本発明の一実施形態における、サービスにコインを発行する過程の例を示したフローチャートである。4 is a flow chart showing an example of the process of issuing coins to a service in one embodiment of the present invention; 本発明の一実施形態における、コイン交換過程の例を示したフローチャートである。4 is a flow chart showing an example of a coin exchange process in one embodiment of the present invention; 本発明の一実施形態における、各チェーン間のスマートコントラクトによるコイン交換データの流れを示した図である。FIG. 4 is a diagram showing the flow of coin exchange data by smart contracts between chains in one embodiment of the present invention. 本発明の一実施形態における、署名可能コントラクトの設置過程の例を示した図である。FIG. 4 is a diagram showing an example of a signable contract installation process in an embodiment of the present invention; 本発明の一実施形態における、データを署名する過程の例を示した図である。FIG. 4 illustrates an example process of signing data in an embodiment of the present invention; 本発明の一実施形態における、署名可能コントラクトの設置過程の他の例を示した図である。FIG. 10 is a diagram showing another example of the process of installing a signable contract in an embodiment of the present invention; 本発明の一実施形態における、データを署名する過程の他の例を示した図である。FIG. 10 is a diagram showing another example of the process of signing data in one embodiment of the present invention; 本発明の一実施形態における、コイン交換過程の他の例を示した図である。FIG. 10 is a diagram showing another example of the coin exchange process in one embodiment of the present invention; 本発明の一実施形態における、データ認証方法の第1例を示したフローチャートである。4 is a flow chart showing a first example of a data authentication method in one embodiment of the present invention; 本発明の一実施形態における、データ認証方法の第2例を示したフローチャートである。4 is a flow chart showing a second example of a data authentication method in one embodiment of the present invention; 本発明の一実施形態における、データ認証方法の第3例を示したフローチャートである。3 is a flow chart showing a third example of a data authentication method in one embodiment of the present invention; 本発明の一実施形態における、データ認証方法の第4例を示したフローチャートである。FIG. 11 is a flow chart showing a fourth example of a data authentication method in one embodiment of the present invention; FIG.

以下、実施形態について、添付の図面を参照しながら詳しく説明する。 Embodiments will be described in detail below with reference to the accompanying drawings.

本発明の実施形態に係るデータ認証システムは、少なくとも1つのコンピュータ装置によって実現されてよい。コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されたコンピュータプログラムの制御にしたがって本発明の一実施形態に係るデータ認証方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合してデータ認証方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録されてよい。ここで説明したコンピュータプログラムは、独立する1つのプログラムパッケージの形態であってもよいし、独立する1つのプログラムパッケージの形態がコンピュータ装置に予めインストールされてオペレーティングシステムや他のプログラムパッケージと連係する形態であってもよい。 A data authentication system according to embodiments of the present invention may be implemented by at least one computing device. A computer program according to an embodiment of the present invention may be installed and executed in a computer device, and the computer device executes a data authentication method according to an embodiment of the present invention under control of the executed computer program. You can The computer program described above may be recorded in a computer-readable recording medium in order to combine with a computer device and cause the computer device to execute the data authentication method. The computer program described here may be in the form of one independent program package, or in the form of one independent program package pre-installed in a computer device and linked with an operating system or other program package. may be

図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図1のように限定されることはない。また、図1のネットワーク環境は、本実施形態に適用可能な環境のうちの一例を説明したものに過ぎず、本実施形態に適用可能な環境が図1のネットワーク環境に限定されることはない。 FIG. 1 is a diagram showing an example of a network environment in one embodiment of the present invention. The network environment of FIG. 1 illustrates an example including multiple electronic devices 110 , 120 , 130 , 140 , multiple servers 150 , 160 , and a network 170 . Such FIG. 1 is merely an example for explaining the invention, and the number of electronic devices and the number of servers are not limited as in FIG. Also, the network environment in FIG. 1 is merely an example of the environment applicable to this embodiment, and the environment applicable to this embodiment is not limited to the network environment in FIG. .

複数の電子機器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つを意味してよい。 The plurality of electronic devices 110, 120, 130, 140 may be fixed terminals or mobile terminals implemented by computing devices. Examples of the plurality of electronic devices 110, 120, 130, and 140 include smartphones, mobile phones, navigation systems, PCs (personal computers), notebook PCs, digital broadcasting terminals, PDAs (Personal Digital Assistants), and PMPs (Portable Multimedia Players). ), tablets, etc. As an example, FIG. 1 shows a smartphone as an example of the electronic device 1 (110). It may refer to one of a variety of physical computing devices capable of communicating with other electronic devices 120 , 130 , 140 and/or servers 150 , 160 via network 170 .

通信方式が限定されることはなく、ネットワーク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つ以上を含んでもよいが、これらに限定されることはない。 The communication method is not limited, and not only the communication method using the communication network that can be included in the network 170 (eg, mobile communication network, wired Internet, wireless Internet, broadcasting network), but also the short distance between devices. Wireless communication may be included. For example, the network 170 includes a PAN (personal area network), a LAN (local area network), a CAN (campus area network), a MAN (metropolitan area network), a WAN (wide area network), a BBN (broadband network), and the Internet. Any one or more of the networks may be included. Additionally, network 170 may include any one or more of network topologies including, but not limited to, bus networks, star networks, ring networks, mesh networks, star-bus networks, tree or hierarchical networks, and the like. will not be

サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140にサービス(一例として、ビデオ通話サービス、金融サービス、決済サービス、ソーシャルネットワークサービス、メッセージングサービス、検索サービス、メールサービス、コンテンツ提供サービス、および/または質疑応答サービスなど)を提供するシステムであってよい。 Each of servers 150, 160 is implemented by one or more computing devices that communicate with a plurality of electronic devices 110, 120, 130, 140 over network 170 to provide instructions, code, files, content, services, etc. good. For example, the server 150 provides services (eg, video call service, financial service, payment service, social network service, messaging service, search service, mail service, content providing service, and/or question and answer service).

図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140それぞれやサーバ150、160それぞれは、図2に示したコンピュータ装置200によって実現されてよく、本発明の実施形態に係る方法は、このようなコンピュータ装置200によって実現されてよい。 FIG. 2 is a block diagram illustrating an example computing device, in accordance with one embodiment of the present invention. Each of the plurality of electronic devices 110, 120, 130, 140 and each of the servers 150, 160 described above may be implemented by the computer device 200 shown in FIG. It may be implemented by device 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にロードされてよい。 At this time, as shown in FIG. 2, computing device 200 may include memory 210 , processor 220 , communication interface 230 , and input/output interface 240 . The memory 210 is a computer-readable storage medium and may include random access memory (RAM), read only memory (ROM), and permanent mass storage devices such as disk drives. Here, a permanent mass storage device such as a ROM or disk drive may be included in computer device 200 as a separate permanent storage device separate from memory 210 . Also stored in memory 210 may be an operating system and at least one program code. Such software components may be loaded into memory 210 from a computer-readable medium separate from memory 210 . Such other computer-readable recording media may include computer-readable recording media such as floppy drives, disks, tapes, DVD/CD-ROM drives, memory cards, and the like. In other embodiments, software components may be loaded into memory 210 through communication interface 230 that is not a computer-readable medium. For example, software components may be loaded into memory 210 of computing device 200 based on computer programs installed by files received over network 170 .

プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。 Processor 220 may be configured to process computer program instructions by performing basic arithmetic, logic, and input/output operations. Instructions may be provided to processor 220 by memory 210 or communication interface 230 . For example, processor 220 may be configured to execute received instructions according to program code stored in a storage device, such as memory 210 .

通信モジュール230は、ネットワーク170を介してコンピュータ装置200が他の電子機器(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御にしたがってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク170を経てコンピュータ装置200の通信インタフェース230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどは、プロセッサ220やメモリ210に伝達されてよく、ファイルなどは、コンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。 The communication module 230 may provide a function for the computer device 200 to communicate with other electronic devices (for example, the recording device described above) via the network 170 . As an example, processor 220 of computing device 200 can transmit requests, commands, data, files, etc. generated according to program code recorded in a recording device such as memory 210 to other devices via network 170 under the control of communication interface 230 . device. Conversely, signals, instructions, data, files, etc. from other devices may be received by computing device 200 through communication interface 230 of computing device 200 over network 170 . Signals, instructions, data, etc. received through the communication interface 230 may be transmitted to the processor 220 and the memory 210, and files may be stored in a recording medium (the permanent recording device described above) that the computing device 200 may further include. may be recorded.

入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、カメラ、またはマウスなどの装置を、出力装置は、ディスプレイ、スピーカのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、コンピュータ装置200と1つの装置で構成されてもよい。 Input/output interface 240 may be a means for interfacing with input/output device 250 . For example, input devices may include devices such as microphones, keyboards, cameras, or mice, and output devices may include devices such as displays, speakers, and the like. As another example, input/output interface 240 may be a means for interfacing with a device that integrates functionality for input and output, such as a touch screen. Input/output device 250 may be one device with computing device 200 .

また、他の実施形態において、コンピュータ装置200は、図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバやデータベースなどのような他の構成要素をさらに含んでもよい。 Also, in other embodiments, computing device 200 may include fewer or more components than the components of FIG. However, most prior art components need not be explicitly shown in the figures. For example, computing device 200 may be implemented to include at least some of the input/output devices 250 described above, and may also include other components such as transceivers, databases, and the like.

図3は、本発明の一実施形態における、拡張が可能なブロックチェーンネットワークの概括的な構成の例を示した図である。図3は、ルートチェーン(Root Chain)310、リーフチェーンA(Leaf Chain A)320、リーフチェーンB(Leaf Chain B)330、およびリレイヤ(Relayer)340を含むブロックチェーンネットワーク300の例を示している。ルートチェーン310とリーフチェーン320および330は、複数のコンピュータ装置が連結するネットワークを形成してよく、リレイヤ340は、少なくとも1つのコンピュータ装置によって実現されてよい。 FIG. 3 is a diagram showing an example of a general configuration of a scalable blockchain network in one embodiment of the present invention. FIG. 3 shows an example blockchain network 300 including Root Chain 310, Leaf Chain A 320, Leaf Chain B 330, and Relayer 340. . Root chain 310 and leaf chains 320 and 330 may form a network in which multiple computer devices are connected, and relay 340 may be implemented by at least one computer device.

ブロックチェーンネットワーク300において、ルートチェーン310は、絶対信頼システムとして見なされてよく、それぞれのリーフチェーン320および330は、ルートチェーン310に自身が信頼システムであるということを証明しなければならない。このとき、それぞれのリーフチェーン320および330は、個別のサービスと連係してよく、新たなサービスが追加されるときには新たなリーフチェーンが追加されてもよい。言い換えれば、図3の実施形態では、2つのリーフチェーン320および330を示しているが、3つ以上のリーフチェーンを含んでもよく、これは、ブロックチェーンの拡張が可能であることを意味してよい。ここで、「サービス」とは、同一または互いに異なる主体がネットワークを介して自身のユーザに提供するオンラインサービスを含んでよい。一例として、互いに異なる複数の銀行が提供するインターネットバンキングサービスそれぞれに対応する複数のリーフチェーンが構成されてよい。または、互いに異なる複数のソーシャルネットワークサービスそれぞれに対応する複数のリーフチェーンが構成されてもよい。それぞれのリーフチェーン320および330は、ルートチェーン310にブロックのハッシュを記録することによって信頼が承認されなければならない。一例として、マークルツリールートハッシュ(merkle tree root hash)が活用されてよい。 In blockchain network 300, root chain 310 may be viewed as an absolute trust system, and each leaf chain 320 and 330 must prove to root chain 310 that it is a trust system. Each leaf chain 320 and 330 may then be associated with a separate service, and new leaf chains may be added as new services are added. In other words, although the embodiment of FIG. 3 shows two leaf chains 320 and 330, it may include more than two leaf chains, which means that expansion of the blockchain is possible. good. Here, "services" may include online services provided by the same or different entities to their users via networks. As an example, a plurality of leaf chains corresponding to Internet banking services provided by different banks may be configured. Alternatively, multiple leaf chains corresponding to multiple different social network services may be configured. Each leaf chain 320 and 330 must be endorsed for trust by recording the block's hash on the root chain 310 . As an example, a merkle tree root hash may be utilized.

ルートチェーン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から許可が得られなかったスマートコントラクトを利用したチェーン間では、コイン交換がなされないように制限されてよい。 Root chain 310 does not exchange coins between users, and coin exchanges may occur within each leaf chain 320 and 330 and/or between leaf chains 320 and 330 . At this time, coin exchange between leaf chains 320 and 330 may be arbitrated and managed by root chain 310 via relay 340 . Each leaf chain 320 and 330 may include at least one DApp (Decentralized Application). Here, DApp (Decentralized Application) is executed on a P2P (peer-to-peer) network where backend code is distributed (or data is called or registered in a blockchain database), and this is front It means an application provided as an interface at the end. At this time, each leaf chain 320 and 330 may set up a smart contract unrelated to the chain or coin exchange according to the needs of the DApp, which the root chain 310 is not involved in. In order to install a smart contract with a protocol for inter-chain coin exchange on each of the leaf chains 320 and 330, permission to install the smart contract must be obtained from the root chain 310. Coin exchange may be restricted between chains using smart contracts for which permission has not been obtained from the root chain 310 .

それぞれのリーフチェーン320および330の内部でのコイン交換は、ルートチェーン310を経る必要がなくそれぞれのリーフチェーン320および330で処理されてよく、処理された内容が含まれたすべてのブロックの要約情報(一例として、上述したマークルツリールートハッシュ)をルートチェーン310に記録してよい。この反面、リーフチェーン320および330間のコイン交換はルートチェーン310を介さなければならず、それぞれのリーフチェーン320および330のブロックとルートチェーン310のブロックにはコイン交換の処理に関する内容が記録されなければならない。このとき、リーフチェーン320および330間のコイン交換は、リレイヤ340を経てなされてよい。 Coin exchanges within each leaf chain 320 and 330 may be processed in each leaf chain 320 and 330 without having to go through the root chain 310, and summary information of all blocks containing processed content (as an example, the Merkle tree root hash discussed above) may be recorded in the root chain 310 . On the other hand, the coin exchange between the leaf chains 320 and 330 must go through the root chain 310, and the contents of the coin exchange process must be recorded in the blocks of the leaf chains 320 and 330 and the block of the root chain 310, respectively. must. At this time, coin exchange between leaf chains 320 and 330 may be done via relay 340 .

図4は、本発明の一実施形態における、ブロックチェーンネットワークの詳しい構成の例を示した図である。ブロックチェーンネットワーク300は、図4に示すように、1つのルートチェーン310と複数のリーフチェーン320および330、さらにリレイヤ340で構成されてよい。 FIG. 4 is a diagram showing a detailed configuration example of a blockchain network in one embodiment of the present invention. Blockchain network 300 may consist of one root chain 310, multiple leaf chains 320 and 330, and a relay 340, as shown in FIG.

ルートチェーン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を含む例を示している。 The root chain 310 may include a Root Chain Manager Contract 411, which is a smart contract for the root chain 310, and a smart contract for each of the multiple leaf chains 320 and 330 that the blockchain network 300 includes. may contain In the embodiment of FIG. 4, the root chain 310 includes a Leaf Chain A Contract 412, which is a smart contract for Leaf Chain A 320, and a Leaf Chain B 330. It shows an example that includes Leaf Chain B Contract 413, which is a smart contract for .

また、リーフチェーン320および330それぞれは、DAppのためのスマートコントラクトを含んでよい。図4の実施形態では、リーフチェーンA320がDAppコントラクト(DApp Contract)421を含み、リーフチェーンB330がDAppコントラクト431を含む例を示している。また、リーフチェーンA320は、リーフチェーンA320のためのスマートコントラクトであるリーフチェーンマネージャコントラクト(Leaf Chain Manager Contract)422を含んでよく、リーフチェーンB330は、リーフチェーンB330のためのスマートコントラクトであるリーフチェーンマネージャコントラクト432をさらに含んでよい。 Also, each of the leaf chains 320 and 330 may contain smart contracts for DApps. The embodiment of FIG. 4 shows an example in which leaf chain A 320 includes DApp Contract 421 and leaf chain B 330 includes DApp Contract 431 . Leaf Chain A 320 may also include a Leaf Chain Manager Contract 422, which is a smart contract for Leaf Chain A 320, and Leaf Chain B 330, which is a smart contract for Leaf Chain B 330. A manager contract 432 may also be included.

リレイヤ340は、ルートチェーン310とリーフチェーン320および330のブロック生成を観察しながら、ルートチェーン310とリーフチェーン320および330に記録されるか、および/または伝達が要求される情報を呼び出ししてよい。リレイヤ340は、プロデューサ(Producer)441、カフカ(Kafka)442、インタチェーンコンシューマ(InterChain Consumer)443、インタチェーンフェイルオーバー(InterChain Failover)444、データベース(Database)445を含んでよい。 Relayer 340 may recall information recorded and/or required to be transmitted in root chain 310 and leaf chains 320 and 330 while observing block generation of root chain 310 and leaf chains 320 and 330. . Relayer 340 may include Producer 441 , Kafka 442 , InterChain Consumer 443 , InterChain Failover 444 , and Database 445 .

プロデューサ441は、ルートチェーン310を含むすべてのチェーンの新たに生成されたブロックの情報を収集してカフカ442に入力してよい。カフカ442は、一種のキューサーバであって、収集した情報をキューに保存して順に提供してよい。このとき、インタチェーンコンシューマ443は、チェーンごとに呼び出しが要求されるイベントをフィルタリングしてよい。イベントによって複数のフィルタリングが要求されてもよい。インタチェーンコンシューマ443は、各チェーンに呼び出しをするときに、署名のためにチェーンごとに個別のユーザを生成し、ユーザの権限をスマートコントラクトに記録してよい。 Producer 441 may collect and input to Kafka 442 information for newly created blocks for all chains, including root chain 310 . Kafka 442 is a type of queue server that may store the collected information in a queue and provide it in sequence. At this time, the inter-chain consumer 443 may filter events that require invocation on a chain-by-chain basis. Multiple filtering may be requested by an event. The interchain consumer 443 may create a separate user for each chain for signing and record the user's authority in a smart contract when making calls to each chain.

インタチェーンコンシューマ443は、次の(1)~(7)のようなイベントなどを感知してよい。 The interchain consumer 443 may sense events such as the following (1) to (7).

(1)リーフチェーンでの送金要請イベント
(1-1)インタチェーンコンシューマ443は、リーフチェーンでの送金要請イベントを感知し、ルートチェーンに送金要請内容を伝達してよい。
(1) Remittance Request Event in Leaf Chain (1-1) The inter-chain consumer 443 may detect a remittance request event in the leaf chain and transmit the remittance request content to the root chain.

(2)ルートチェーンでの送金要請イベント
(2-1)インタチェーンコンシューマ443は、ルートチェーンでの送金要請イベントを感知し、送金要請を受信するリーフチェーンに送金要請内容を伝達してよい。
(2) Remittance Request Event on Root Chain (2-1) The inter-chain consumer 443 may sense a remittance request event on the root chain and transmit the content of the remittance request to the leaf chain that receives the remittance request.

(2-2)インタチェーンコンシューマ443は、受信するリーフチェーンへの伝達が失敗したときに、送金要請を受信するリーフチェーンの識別情報を含む送金失敗情報をルートチェーンに伝達してよい。 (2-2) The interchain consumer 443 may transmit remittance failure information including the identification information of the leaf chain that receives the remittance request to the root chain when transmission to the receiving leaf chain fails.

(3)ルートチェーンでの送金要請失敗イベント
(3-1)インタチェーンコンシューマ443は、送金を要請したリーフチェーンに送金失敗内容を伝達してよい。
(3) Remittance request failure event in the root chain (3-1) The interchain consumer 443 may transmit remittance failure details to the leaf chain that requested the remittance.

(4)リーフチェーンでの送金完了イベント
(4-1)インタチェーンコンシューマ443は、ルートチェーンに送金完了内容を伝達してよい。
(4) Remittance Completion Event in Leaf Chain (4-1) The interchain consumer 443 may transmit remittance completion content to the root chain.

(5)ルートチェーンでの送金完了イベント
(5-1)インタチェーンコンシューマ443は、送金を要請したリーフチェーンに送金完了内容を伝達してよい。
(5) Remittance Completion Event in Root Chain (5-1) The interchain consumer 443 may transmit remittance completion details to the leaf chain that requested the remittance.

(6)ルートチェーンでのコイン発行イベント
(6-1)インタチェーンコンシューマ443は、コインが発行されるリーフチェーンに発行内容を伝達してよい。
(6) Coin Issuance Event on Root Chain (6-1) The interchain consumer 443 may transmit the issuance details to the leaf chain where the coin is to be issued.

(7)リーフチェーンでのブロック生成イベント
(7-1)インタチェーンコンシューマ443は、ルートチェーンにブロックのマークルツリールートハッシュを伝達してよい。
(7) Block generation event on leaf chain (7-1) Interchain consumer 443 may convey the Merkle tree root hash of the block to the root chain.

インタチェーンフェイルオーバー444は、(3-1)、(4-1)、(5-1)、(6-1)、および(7-1)が正常に伝達されるように障害克服機能を提供してよく、データベース445は、インタチェーンコンシューマ443およびインタチェーンフェイルオーバー444において受信および/または送信(伝達)する情報を保存するために活用されてよい。 Inter-chain failover 444 provides fault overcoming functionality so that (3-1), (4-1), (5-1), (6-1), and (7-1) are successfully propagated database 445 may be utilized to store information that is received and/or transmitted at interchain consumer 443 and interchain failover 444 .

図5は、本発明の一実施形態における、新たなリーフチェーンを追加する過程の例を示したフローチャートである。 FIG. 5 is a flowchart illustrating an example process of adding a new leaf chain in one embodiment of the present invention.

段階510で、ブロックチェーンネットワーク300は、リーフチェーンを構築してよい。例えば、新たなリーフチェーンは、以下で説明する新たなサービスを追加するために構築されてよい。 At step 510, the blockchain network 300 may build a leaf chain. For example, new leaf chains may be built to add new services as described below.

段階520で、ブロックチェーンネットワーク300は、リーフチェーンに、チェーン間またはコントラクト間のコイン送金を担当するリーフチェーンマネージャコントラクトを設置してよい。 At step 520, the blockchain network 300 may install a leaf chain manager contract on the leaf chain, responsible for inter-chain or inter-contract coin transfers.

段階530で、ブロックチェーンネットワーク300は、ルートチェーンに、該当のリーフチェーンを処理することのできるコントラクト(以下、リーフチェーンコントラクト)を設置してよい。 In step 530, the blockchain network 300 may install a contract (hereinafter referred to as a leaf chain contract) that can process the corresponding leaf chain in the root chain.

段階540で、ブロックチェーンネットワーク300は、設置されたルートチェーンのリーフチェーンコントラクトのアドレスをルートチェーンマネージャコントラクトに登録してよい。以下で説明する実施形態では、リーフチェーンの署名可能コントラクトのアドレスがルートチェーンマネージャコントラクトにさらに登録されてもよい。また他の実施形態では、リーフチェーンを代表するパブリックアドレスがルートチェーンマネージャコントラクトに登録されてもよい。 At step 540, the blockchain network 300 may register the address of the leaf chain contract of the installed root chain with the root chain manager contract. In the embodiments described below, the address of the leaf chain's signable contract may additionally be registered with the root chain manager contract. In still other embodiments, a public address representing the leaf chain may be registered with the root chain manager contract.

段階550で、ブロックチェーンネットワーク300は、ルートチェーンのリーフチェーンコントラクトにアクセス可能なリレイヤユーザを追加してよい。 At step 550, the blockchain network 300 may add relay users with access to the leaf chain contract of the root chain.

段階560で、ブロックチェーンネットワーク300は、リーフチェーンのリーフチェーンマネージャコントラクトにアクセス可能なリレイヤユーザを追加してよい。 At step 560, the blockchain network 300 may add relay users with access to the leafchain manager contract of the leafchain.

このとき、段階550および段階560のリレイヤユーザは、同一するユーザであってもよいし、互いに異なるユーザであってもよい。リーフチェーンごとに、そしてルートチェーンとも互いに異なる個別のリレイヤユーザを設定して活用することが、保安上において有利となることもある。ここで、リレイヤユーザは、ブロックチェーンネットワーク300が提供するサービスのアカウントに対応してよい。 At this time, the relay users in steps 550 and 560 may be the same user or different users. It may be advantageous for security to set and utilize individual relay users that are different for each leaf chain and even for the root chain. Here, relay users may correspond to accounts of services provided by the blockchain network 300 .

図6は、本発明の一実施形態における、新たなサービスを追加する過程の例を示したフローチャートである。 FIG. 6 is a flowchart illustrating an example process of adding a new service in one embodiment of the invention.

段階610で、ブロックチェーンネットワーク300は、リーフチェーンに該当のサービスのコントラクトを設置してよい。設置したコントラクトのアドレスは、該当のサービスを区分する値として使用されてよい。該当のサービスは、チェーン間のコイン交換プロトコルを備えたコントラクトであってよい。 At step 610, the blockchain network 300 may install a corresponding service contract on the leaf chain. The address of the installed contract may be used as a value for distinguishing the corresponding service. The service in question may be a contract with an inter-chain coin exchange protocol.

段階620で、ブロックチェーンネットワーク300は、リーフチェーンのリーフチェーンマネージャコントラクトに、該当のサービスに対して設置されたコントラクトのアドレスを登録してよい。例えば、図5の段階520では、リーフチェーンに、チェーン間またはコントラクト間のコイン送金を担当するリーフチェーンマネージャコントラクトを設置することについて説明した。このようなリーフチェーンマネージャコントラクトにサービスのためのコントラクトのアドレスが登録されてよい。 At step 620, the blockchain network 300 may register the address of the contract established for the service in the leafchain manager contract of the leafchain. For example, step 520 of FIG. 5 described setting up a leaf chain manager contract on the leaf chain, which is responsible for coin transfers between chains or contracts. Addresses of contracts for services may be registered in such leaf chain manager contracts.

段階630で、ブロックチェーンネットワーク300は、設置されたコントラクトのアドレスをルートチェーンのルートチェーンマネージャコントラクトに登録してよい。このとき、設置されたコントラクトのアドレスは、ルートチェーンマネージャコントラクトの管理者権限によって登録されてよい。リーフチェーンのサービスに対して設置されたコントラクトのアドレスをルートチェーンに設置された該当のリーフチェーンのリーフチェーンコントラクトとともにルートチェーンマネージャコントラクトに登録すれば、ルートチェーンのリーフチェーンコントラクトにもリーフチェーンのサービスに対して設置されたコントラクトのアドレスが該当のリーフチェーンのサービスとして登録されてよい。 At step 630, the blockchain network 300 may register the address of the installed contract with the root chain manager contract of the root chain. At this time, the address of the installed contract may be registered by the administrator authority of the root chain manager contract. If the address of the contract set for the leaf chain service is registered in the root chain manager contract together with the leaf chain contract of the corresponding leaf chain set in the root chain, the leaf chain contract of the root chain also has the leaf chain service. The address of the contract established for may be registered as a service on the corresponding leafchain.

図7は、本発明の一実施形態における、サービスにコインを発行する過程の例を示したフローチャートである。 FIG. 7 is a flow chart showing an example of the process of issuing coins for services in one embodiment of the present invention.

段階710で、ルートチェーンのルートチェーンマネージャコントラクトは、ルートチェーンに設置されたリーフチェーンコントラクトに登録されたサービスに対するコントラクトのアドレスに対してコイン発行を要請してよい。例えば、ルートチェーンのルートチェーンマネージャコントラクトは、ルートチェーンに設置されたリーフチェーンコントラクトによってコインを発行するためのサービスに対するコントラクトのアドレスによって該当のサービスを識別してよく、識別されたサービスに対してコイン発行イベントを発生させてよい。 At step 710, the root chain manager contract of the root chain may request coin issuance to the address of the contract for services registered in the leaf chain contract installed in the root chain. For example, the root chain manager contract of the root chain may identify the corresponding service by the address of the contract for the service for issuing coins by the leaf chain contract installed in the root chain, and the coin for the identified service. A publish event may be generated.

段階720で、インタチェーンコンシューマは、該当のサービスに対するコイン発行イベントを感知し、該当のリーフチェーンのリーフチェーンマネージャコントラクトにサービスのコイン発行を要請してよい。 At step 720, the interchain consumer may sense a coining event for the corresponding service and request coining for the service from the leafchain manager contract of the corresponding leafchain.

段階730で、リーフチェーンマネージャコントラクトは、該当のサービスを検索してコインを発行してよい。このとき、コインは、該当のサービスのコントラクトを設置するときに入力したサービスオペレータ(一例として、図5の段階560で追加されたリレイヤユーザ)に発行されてよい。 At step 730, the Leaf Chain Manager contract may search for the appropriate service and issue coins. At this time, coins may be issued to the service operator (for example, the relay user added in step 560 of FIG. 5) entered when setting up the contract for the corresponding service.

図8は、本発明の一実施形態における、コイン交換過程の例を示したフローチャートである。同一するチェーンの同一するサービスにおけるコイン交換は、該当のリーフチェーンのコイン交換のためのスマートコントラクトによってなされてよい。また、同一するチェーンの異なるサービス間のコインの交換は、該当のリーフチェーンのリーフチェーンマネージャコントラクトによってなされてよい。例えば、同一するチェーンの第1サービスから第2サービスへの送金は、リーフチェーンマネージャコントラクトが第1サービスの送金要請にしたがって第2サービスのコントラクトのアドレスを呼び出すことによってなされてよい。このとき、同一するリーフチェーンの異なるサービス間でコイン交換がなされるときは、コイン交換結果がルートチェーンに伝達されてよい。これは、リーフチェーンの各サービスが保有するコインの量の変更内容をルートチェーンが把握できるようにするためである。この反面、異なるチェーン間のコインの交換は、以下の段階810~890によってなされてよい。図8の段階810~890は、図4を参照しながら説明したリーフチェーンA320とリーフチェーンB330間のコイン交換を例示して説明する。 FIG. 8 is a flow chart showing an example of a coin exchange process in one embodiment of the present invention. Coin exchanges in the same service on the same chain may be done by a smart contract for coin exchange on the corresponding leaf chain. Also, exchange of coins between different services on the same chain may be done by the leaf chain manager contract of the corresponding leaf chain. For example, remittance from a first service to a second service on the same chain may be made by the leaf chain manager contract calling the address of the second service contract according to the remittance request of the first service. At this time, when coins are exchanged between different services of the same leaf chain, the coin exchange result may be transmitted to the root chain. This is so that the root chain can grasp changes in the amount of coins held by each service on the leaf chain. On the other hand, the exchange of coins between different chains may be done by following steps 810-890. Steps 810-890 of FIG. 8 illustrate and illustrate the coin exchange between leaf chain A 320 and leaf chain B 330 described with reference to FIG.

段階810で、リーフチェーンA320は、ユーザaの、リーフチェーンB330のユーザbに対するコイン交換要請(送金要請)を受信してよい。このとき、リーフチェーンA320は、ユーザaの残高などを把握し、コイン交換要請が正常な要請である場合にリーフチェーンA320のブロックに記録してよい。交換要請されたコイン(送金要請されたコイン)は、リーフチェーンA320が含むリーフチェーンマネージャコントラクトによってユーザaの残高から差し引かれてよく、使用できないようにロックされてよい。例えば、リーフチェーンA320のリーフチェーンマネージャコントラクトは、送金要請された金額だけユーザaの残高と送金要請するサービスの残高を確認した後、リーフチェーンA320の通貨量から差し引かれる金額が使用されないようにロックを設定してよい。差し引かれたユーザaの金額に関する情報は、エスクローコントラクトに記録されてよい。このような送金の成功に関する記録は、プロデューサ441によってカフカ442に記録されてよい。送金要請が正常でない場合、リーフチェーンA320は、送金要請の失敗内容をブロックに記録してよい。また、リーフチェーンA320は、送金要請が失敗したときにイベントを記録しないことにより、送金が発生しないようにしてよい。 At step 810, Leaf Chain A 320 may receive a coin exchange request (remittance request) from User a to User b of Leaf Chain B 330. At this time, the leaf chain A320 may grasp the balance of the user a and record it in the block of the leaf chain A320 if the coin exchange request is normal. The exchange-requested coin (remittance-requested coin) may be deducted from user a's balance by the leaf chain manager contract included in leaf chain A 320, and may be locked from use. For example, the leaf chain manager contract of the leaf chain A320 confirms the balance of the user a and the balance of the service requesting the remittance by the amount requested for remittance, and then locks the amount deducted from the currency amount of the leaf chain A320 so that it is not used. can be set. Information about the deducted usera amount may be recorded in an escrow contract. A record of such a successful transfer may be recorded in Kafka 442 by producer 441 . If the remittance request is not normal, the leaf chain A320 may record the details of the failure of the remittance request in a block. Also, Leaf Chain A 320 may prevent remittance from occurring by not recording an event when a remittance request fails.

段階820で、インタチェーンコンシューマ443は、リーフチェーンA320からリーフチェーンB330への送金要請イベントを感知し、ルートチェーン310に該当の送金要請を伝達してよい。送金要請イベントの感知は、プロデューサ441の取引収集によって感知されてよく、インタチェーンコンシューマ443は、感知された送金要請イベントの感知に応答してルートチェーン310に該当の送金要請を伝達してよい。 In step 820 , the interchain consumer 443 may detect a remittance request event from the leaf chain A 320 to the leaf chain B 330 and transmit the corresponding remittance request to the root chain 310 . The detection of a remittance request event may be sensed by the transaction collection of the producer 441, and the interchain consumer 443 may transmit the corresponding remittance request to the root chain 310 in response to sensing the sensed remittance request event.

段階830で、ルートチェーン310は、リーフチェーンA320で発行された総コイン量を、送金要請情報を利用することで分析することによって該当の送金要請が正常な要請であるかを確認し、該当の送金要請が正常な要請である場合は、リーフチェーンA320からリーフチェーンB330へのコイン交換要請をブロックに記録してよい。交換要請は、送金するコイン量だけ使用されないようにロックされてよい。また、ルートチェーン310は、該当の送金要請が正常な要請でない場合は、失敗内容をブロックに記録してよい。失敗として記録された送金要請は、再びインタチェーンコンシューマ443で送金失敗イベントとして感知されてリーフチェーンA320に伝達されてよく、送金失敗イベントを受信したリーフチェーンA320は、ロックされたコインを解除して再びユーザaに返還してよい。 In step 830, the root chain 310 analyzes the total amount of coins issued by the leaf chain A 320 using the remittance request information to check whether the corresponding remittance request is normal. If the remittance request is a normal request, a coin exchange request from the leaf chain A320 to the leaf chain B330 may be recorded in the block. A redemption request may be locked from being used for the amount of coins to be transferred. In addition, the root chain 310 may record failure details in a block when the corresponding remittance request is not a normal request. A remittance request recorded as a failure may be detected again as a remittance failure event by the interchain consumer 443 and transmitted to the leaf chain A320, and the leaf chain A320 receiving the remittance failure event unlocks the locked coins. It may be returned to user a again.

段階840で、インタチェーンコンシューマ443は、ルートチェーン310からリーフチェーンB330への送金要請イベントを感知し、リーフチェーンB330に該当の送金要請を伝達してよい。リーフチェーンB330が正常に作動せずに呼び出しが失敗する場合は、再びルートチェーン310にリーフチェーンB330のシステム異常による伝達失敗内容を送信してよい。失敗として記録された要請は、再びインタチェーンコンシューマ443で送金失敗イベントとして感知されてリーフチェーンA320に伝達されてよく、送金失敗イベントを受信したリーフチェーンA320は、ロックされたコインを解除して再びユーザaに返還してよい。 In step 840, the interchain consumer 443 may detect a remittance request event from the root chain 310 to the leaf chain B330 and transmit the corresponding remittance request to the leaf chain B330. If the leaf chain B330 does not operate normally and the call fails, the contents of the transmission failure due to the system failure of the leaf chain B330 may be sent to the root chain 310 again. A request recorded as a failure may be detected again as a remittance failure event by the interchain consumer 443 and transmitted to the leaf chain A320. You may return it to user a.

段階850で、リーフチェーンB330は、該当の送金要請が正常な要請である場合は、ユーザbにコインを送金し、リーフチェーンB330の全体通貨量を送金されたコイン量だけ増加させてよい。送金要請が失敗する場合には、失敗内容をブロックに記録してよい。 In step 850, if the corresponding remittance request is a normal remittance request, the leaf chain B330 may remit coins to the user b and increase the total currency amount of the leaf chain B330 by the remitted coin amount. If the remittance request fails, the details of the failure may be recorded in a block.

段階860で、インタチェーンコンシューマ443は、リーフチェーンBの送金完了結果をイベントとして感知し、ハッシュと成功の可否をルートチェーン310に伝達してよい。 In step 860 , the interchain consumer 443 may sense the remittance completion result of the leaf chain B as an event and transmit hash and success/failure to the root chain 310 .

段階870で、ルートチェーン310は、送金結果を受信して送金失敗と送金成功にしたがって処理してよく、その結果をハッシュとともにブロックに記録してよい。送金が成功した場合、ルートチェーン310は、ロックされたコイン送金要請を解除してリーフチェーンA320からリーフチェーンB330への送金を行い、それぞれの通貨量を変更してよい。送金が失敗した場合、ルートチェーン310は、ロックされたコイン送金要請を解除して再びリーフチェーンA320に返還してよい。 At step 870, the root chain 310 may receive the remittance result and process according to remittance failure and remittance success, and may record the result in a block with a hash. If the remittance is successful, the root chain 310 may release the locked coin remittance request, perform remittance from the leaf chain A 320 to the leaf chain B 330, and change the amount of each currency. If the remittance fails, the root chain 310 may release the locked coin remittance request and return it to the leaf chain A 320 again.

段階880で、インタチェーンコンシューマ443は、ルートチェーン310で処理した送金結果イベントを感知し、リーフチェーンA320にその結果を伝達してよい。 At stage 880, interchain consumer 443 may sense the remittance result event processed by root chain 310 and communicate the result to leaf chain A 320.

段階890で、リーフチェーンA320は、送金結果を受信し、成功の場合は、ロックされたコインを解除してリーフチェーンA320の全体通貨量を調節(全体通貨量から送金金額だけ差し引く)してよい。送金が失敗した場合は、リーフチェーンA320は、ロックされたコインを解除してユーザaに返還してよい。リーフチェーンA320は、このような送金結果を、ルートチェーン310に記録されたハッシュとともにブロックに記録してよい。 At step 890, the leaf chain A320 receives the remittance result, and if successful, may release the locked coins and adjust the total currency amount of the leaf chain A320 (subtract the remittance amount from the total currency amount). . If the remittance fails, Leaf Chain A 320 may unlock the locked coin and return it to user a. Leaf Chain A 320 may record such remittance results in a block together with the hash recorded in Root Chain 310 .

図9は、本発明の一実施形態における、各チェーン間のスマートコントラクトによるコイン交換データの流れを示した図である。 FIG. 9 is a diagram showing the flow of coin exchange data by smart contracts between chains in one embodiment of the present invention.

(1)ユーザaのコイン交換要請をリーフチェーンA320のDApp1(920)が受信すれば、DApp1(920)は、リーフチェーンマネージャコントラクトA910に交換要請をしてよい。リーフチェーンマネージャコントラクトA910は、交換取引ハッシュ(eTxHash)を生成し、交換取引ハッシュ、送金しようとするユーザa(の識別子)とサービスa(の識別子)、送金を受けるサービスb(の識別子)とユーザb(の識別子)、金額情報(送金金額)、および/または要請時間を記録(送金要請記録(エスクロー情報)を生成)してよい。このとき、リーフチェーンマネージャコントラクトA910は、DApp1(920)のコントラクトの全体通貨量からユーザaの保有金額を差し引いてよい。 (1) When the DApp1 (920) of the leaf chain A320 receives the coin exchange request of the user a, the DApp1 (920) may make an exchange request to the leaf chain manager contract A910. The leaf chain manager contract A 910 generates an exchange transaction hash (eTxHash), exchange transaction hash, user a (identifier of) trying to send money and service a (identifier of), service b (identifier of) receiving money transfer and user b (identifier of), amount information (remittance amount), and/or request time (generate remittance request record (escrow information)). At this time, the leaf chain manager contract A 910 may subtract the holding amount of user a from the total currency amount of the contract of DApp1 (920).

(2)プロデューサ441は、(1)で生成された取引を収集してよく、インタチェーンコンシューマ443は、ルートチェーン310のリーフチェーンAコントラクト412に送金を要請してよい。 (2) Producer 441 may collect the transaction generated in (1), and Interchain Consumer 443 may request remittance from Leaf Chain A contract 412 of Root Chain 310 .

(3)リーフチェーンAコントラクト412は、ルートチェーンマネージャコントラクト411によって送金要請情報をルートチェーン310に対して個別に記録してよい。このとき、リーフチェーンマネージャAコントラクト412が管理するDApp1(920)の全体通貨量を送金金額だけ差し引いてよい。 (3) Leaf chain A contract 412 may individually record remittance request information to root chain 310 by root chain manager contract 411 . At this time, the total currency amount of DApp1 (920) managed by the leaf chain manager A contract 412 may be subtracted by the remittance amount.

(4)プロデューサ441は、(3)で生成された取引を収集してよく、インタチェーンコンシューマ443は、送金を受けるサービスがあるリーフチェーンB330のリーフチェーンマネージャコントラクトB940に送金を要請してよい。 (4) Producer 441 may collect the transactions generated in (3), and Interchain Consumer 443 may request remittances to Leaf Chain Manager Contract B940 of Leaf Chain B330, which has services to receive remittances.

(5)リーフチェーンB330のリーフチェーンマネージャコントラクトB940は、送金しようとするサービスであるDApp3(950)を呼び出し、DApp3(950)のコントラクトからユーザbに送金がなされるようにしてよい。このとき、DApp3(950)のコントラクトは、リーフチェーンB330の全体通貨量も増加させてよい。 (5) Leaf chain manager contract B 940 of leaf chain B 330 may call DApp3 (950), which is the service to be remitted, and remit to user b from the contract of DApp3 (950). At this time, the contract of DApp3 (950) may also increase the total currency amount of Leaf Chain B330.

(6)プロデューサ441は、(5)で生成された取引を収集してよく、インタチェーンコンシューマ443は、ルートチェーン310のリーフチェーンBコントラクト413に送金完了を要請してよい。 (6) Producer 441 may collect the transaction generated in (5), and Interchain Consumer 443 may request Leaf Chain B contract 413 of Root Chain 310 to complete remittance.

(7)ルートチェーン310のリーフチェーンBコントラクト413は、ルートチェーンマネージャコントラクト411に該当の送金要請のエスクロー(送金要請記録)情報をインポートして送金完了を処理してよい。送金が成功した場合、リーフチェーンBコントラクト413が管理するDApp3950では送金金額分だけリーフチェーンB330の全体通貨量を増加させてよく、ルートチェーン310のルートチェーンマネージャコントラクト411から該当の送金要請記録が削除されてよい。送金が失敗した場合、リーフチェーンAコントラクト412に登録された、送金要請したサービスであるDApp1(920)では送金金額分だけリーフチェーンA320の全体通貨量を再び増加させてよく、その後、ルートチェーン310のルートチェーンマネージャコントラクト411から該当の送金要請記録が削除されてよい。 (7) The leaf chain B contract 413 of the root chain 310 may import the escrow (remittance request record) information of the corresponding remittance request to the root chain manager contract 411 to process the remittance completion. If the remittance is successful, the DApp 3950 managed by the leaf chain B contract 413 may increase the total currency amount of the leaf chain B 330 by the remittance amount, and the corresponding remittance request record is deleted from the root chain manager contract 411 of the root chain 310. may be If the remittance fails, DApp1 (920), which is the remittance requesting service registered in the leaf chain A contract 412, may increase the total currency amount of the leaf chain A 320 again by the remittance amount, and then the root chain 310 , the corresponding remittance request record may be deleted from the root chain manager contract 411 of .

(8)プロデューサ441は、(7)で生成された取引を収集してよく、インタチェーンコンシューマ443は、送金したリーフチェーンA320のリーフチェーンマネージャコントラクトA910に送金完了を要請してよい。 (8) The producer 441 may collect the transaction generated in (7), and the interchain consumer 443 may request the remittance completion to the leaf chain manager contract A910 of the remitted leaf chain A320.

(9)リーフチェーンA320のリーフチェーンマネージャコントラクトA910は、送金完了情報を受信し、該当の交換取引ハッシュが完了したことを記録し、送金要請記録にある該当の要請を削除してよい。送金が失敗した場合、リーフチェーンマネージャコントラクトA910は、送金要請記録にある金額をユーザaに再び返還してよく、DApp1(920)の全体通貨量も送金金額分だけ再び増加させた後、送金要請記録から該当の要請を削除してよい。 (9) Leaf Chain Manager Contract A 910 of Leaf Chain A 320 may receive the remittance completion information, record that the corresponding exchange transaction hash is completed, and delete the corresponding request in the remittance request record. If the remittance fails, Leaf Chain Manager Contract A 910 may return the amount in the remittance request record to User A again, and increase the total currency amount of DApp1 (920) by the remittance amount again, and then send the remittance request. You may delete the request from your records.

実施形態によって、リレイヤは、チェーンごとに存在してもよい。例えば、図4を参照しながら説明したように、1つのルートチェーン310と2つのリーフチェーン320および330が存在する場合、合計3つのチェーンのための3つのリレイヤが構成されてもよい。この場合、ルートチェーン310のリレイヤは、2つのリーフチェーン320および330との要請、データ、および/またはイベントの伝達を処理してよく、2つのリーフチェーン320および330それぞれのリレイヤは、ルートチェーン310との要請、データ、および/またはイベントの伝達を処理してよい。このとき、リーフチェーンのためのリレイヤの談合を防ぐために、リレイヤそれぞれと連結するチェーンは、予め設定された時間周期(一例として、ブロック時間周期)ごとに動的に変更されてよい。このような実施形態において、ハッシュは、ハッシュ時間ロックコントラクトにより、チェーン間を移動するときにリレイヤによって交換取引が中間に強奪あるいは変調されないようにしてよい。このようなハッシュ時間ロックは、ユーザが交換取引の結果を直接確認することのできる時間を提供するために利用されてよい。また、リレイヤが意図しない重複支払を防ぐための唯一の識別子として個別の交換取引識別子が活用されてよい。このような交換取引識別子は、リーフチェーン間の価値移動がある場合、交換取引を唯一に識別してトラッキングするために活用されてよい。 Depending on the embodiment, a relay may exist for each chain. For example, as described with reference to FIG. 4, if there is one root chain 310 and two leaf chains 320 and 330, three relay layers for a total of three chains may be configured. In this case, the relays of root chain 310 may handle the communication of requests, data, and/or events to and from two leaf chains 320 and 330, and the relays of each of the two leaf chains 320 and 330 are connected to root chain 310. may process the communication of requests, data, and/or events with At this time, in order to prevent collusion of relayers for leaf chains, the chains connected to each relayer may be dynamically changed for each preset time period (eg, block time period). In such an embodiment, the hash may prevent the exchange transaction from being intercepted or modulated in the middle by the relayer as it travels between chains due to the hash time lock contract. Such hashed time locks may be utilized to provide a time period during which the user can directly confirm the outcome of the exchange transaction. Also, the individual exchange transaction identifier may be leveraged as a unique identifier to prevent unintentional duplicate payments by the relayer. Such exchange transaction identifiers may be leveraged to uniquely identify and track exchange transactions when there is value movement between leaf chains.

このようなブロックチェーンネットワーク300でチェーン間にデータを伝達するときに、伝達するシステムで伝達するデータを変調することがある。一例として、リーフチェーンA320からルートチェーン310にデータを伝達するときに、リーフチェーンA320でデータを変調する可能性が存在する。特に、リーフチェーンをパブリックブロックチェーンの形態に確張するためにリーフチェーンごとにリレイヤが実現される場合、このようなリレイヤに対する依存度を減らし、プロトコル端でデータ認証の問題を解決する必要がある。このために、ブロックチェーンネットワーク300は、以下のような5つの要求事項を有する。 When transmitting data between chains in the blockchain network 300, the transmitting system may modulate the transmitted data. As an example, the possibility exists to modulate data in leaf chain A 320 when communicating data from leaf chain A 320 to root chain 310 . In particular, if a relay is implemented for each leaf chain to ensure that the leaf chain is in the form of a public blockchain, it is necessary to reduce the dependence on such relays and solve the problem of data authentication at the protocol end. . To this end, the blockchain network 300 has the following five requirements.

1.ベースコインのチェーン間の送金が可能でなければならない。ここで、ベースコインとは、ブロックチェーンネットワーク300の固有のコイン体系で使用されるコインを意味してよい。 1. It must be possible to transfer base coins between chains. Here, the base coin may mean a coin used in a unique coin system of the blockchain network 300.

2.ルートチェーンがすべてのチェーンのベースコインを管理しなければならない。このとき、ベースコインの管理は、チェーン間のベースコインの送金を含んでよい。 2. The root chain must manage the base coin of all chains. At this time, base coin management may include base coin transfers between chains.

3.リレイヤがデータを変調して伝達できないようにしなければならない。 3. The relayer must modulate the data so that it cannot be transmitted.

4.リーフチェーンから送金を受けてユーザへの送金は成功したが、失敗メッセージを伝達することによって重複支払が発生しないようにしなければならない。 4. Although remittance was received from the leaf chain and the remittance to the user was successful, duplicate payments should not occur by transmitting a failure message.

5.送金でベースコインを受信するユーザの確認なく、チェーン間の送金が迅速になされなければならない。 5. Transfers between chains should be done quickly without confirmation of the user receiving the base coin in the transfer.

このような要求事項のために、ルートチェーンでは、権限をもつユーザによってベースコインの鋳造(mint)と焼却(burn)が発生するようにしてよい。または、権限をもつユーザがマルチシグウォレットによって確認を受けてベースコインを鋳造または焼却させることができるようにしてよい。このとき、リーフチェーンでは、ルートチェーンでコイン発行要請を受ける場合に発行を実行してよい。また、リーフチェーンから他のリーフチェーンに送金を行う場合、2つのリーフチェーンではルートチェーンの認証された情報が伝達されたことを確認した後に鋳造と焼却が実行されてよい。例えば、ベースコインを送金するリーフチェーンでは該当のベースコインに対する焼却を実行してよく、ベースコインを受信するリーフチェーンでは該当のベースコインに対する鋳造を実行してよい。 Due to such requirements, the root chain may allow base coin mints and burns to occur by authorized users. Alternatively, an authorized user may be verified by the multisig wallet to have the base coin minted or burned. At this time, the leaf chain may issue coins when the root chain receives a coin issue request. Also, when transferring money from one leaf chain to another leaf chain, minting and burning may be performed after confirming that the authenticated information of the root chain has been transmitted between the two leaf chains. For example, a leaf chain that sends base coins may burn the corresponding base coins, and a leaf chain that receives base coins may mint the corresponding base coins.

一方、リレイヤのデータ変調を防ぐためには、伝達しようとするデータが変調されないようにしなければならない。以下では、データの変調を遮断するための方法について説明する。 On the other hand, in order to prevent relay layer data modulation, data to be transmitted must not be modulated. A method for blocking data modulation will be described below.

1つ目の方法では、伝達しようとする原本データを署名してよい。データを送信する主体(from user)がデータを受信しようとするチェーンにおいて既知のユーザである場合は、署名された原本データに基づいて原本データの変調状態を確認してよい。このために、コントラクトは、コントラクト自身のプライベートキーをもつ状態で生成されてよく、プライベートキーに対応するパブリックキーを公開してよい。このとき、コントラクトから他のチェーンに伝達が必要な情報を署名してイベントとして記録してよく、したがって、原本データが該当のコントラクトから処理されたということを証明することができる。例えば、コントラクトは、原本データと自身のコントラクトアドレスをコントラクトのプライベートキーによって署名してよい。この場合、任意のユーザは、コントラクトのプライベートキーに対応するパブリックキーを利用して署名された原本データを検証してよく、すべてのチェーンで唯一に生成される該当のコントラクトのコントラクトアドレスにより、該当のコントラクトによってデータが伝達されたことが証明されてよい。しかし、1つ目の方法では、コントラクトのプライベートキーはコントラクトのデータベースに保存されなければならず、ブロックチェーンネットワークでデータベースは共有およびオープンされるため、チェーンのすべてのノードにプライベートキーが共有され、したがって、これ以上プライベートキーではなくなる。 In the first method, the original data to be transmitted may be signed. If the data from user is a known user in the chain from which the data is intended to be received, the modulation state of the original data may be verified based on the signed original data. To this end, a contract may be created with its own private key and may publish a public key corresponding to the private key. At this time, information that needs to be transmitted from the contract to another chain may be signed and recorded as an event, thus proving that the original data has been processed from the corresponding contract. For example, a contract may sign the original data and its contract address with the contract's private key. In this case, any user may verify the signed original data using the public key corresponding to the private key of the contract, and the contract address of the contract, which is uniquely generated on all chains, It may be proved that the data was transmitted by the contract of However, in the first method, the contract private key must be stored in the contract database, and the database is shared and open in the blockchain network, so that all nodes in the chain share the private key, Therefore, it is no longer a private key.

2つ目の方法では、プライベートキーをコントラクトに保存するのではなく、1つのチェーンを代表するプライベートキーを、同じチェーン内で合意をなすノードであるCノードと共有し、チェーン認証が要求されるときに使用できるようにしてよい。一例として、各チェーンは、合意のためのn(一例として、nは4~8)個のCノードがプライベートキーを共有して維持してよい。ユーザや他のコントラクトは、該当のチェーンのためのシステム(一例として、該当のチェーンに設置されたシステムコントラクト)にデータの署名を要求してよく、システムは、要求されたデータに署名し、署名されたデータを提供してよい。このとき、該当のチェーンのコントラクトは、データの署名と伝達に対するイベントを記録してよく、リレイヤを経て他のチェーンに署名されたデータを伝達してよい。例えば、ルートチェーンでルートチェーンのプライベートキーと対をなすパブリックキーによって生成される識別値であるパブリックアドレスは、リーフチェーンのジェネシスブロックに記録されることにより、リーフチェーンで変調することができなくなる。ルートチェーンによってプライベートキーで署名されたデータは、リーフチェーンでジェネシスブロックに記録されたパブリックアドレスと比較することにより、署名されたデータがルートチェーンから発送されたものであることを検証することができる。これと同じように、リーフチェーンも、リーフチェーンのプライベートキーによって生成されるパブリックアドレスを、ルートチェーンに該当のリーフチェーンと関連して設置されたリーフチェーンコントラクトに登録してよい。この場合、ルートチェーンは、リーフチェーンによってリーフチェーンのプライベートキーで署名されたデータと該当のリーフチェーンコントラクトに登録されたパブリックアドレスとを比較することにより、署名されたデータが該当のリーフチェーンから発送されたものであることを検証してよい。ただし、2つ目の方法は、合意のためのCノードでプライベートキーを共有することのできるプライベートブロックチェーンでは使用可能であるが、外部サービスの提供のために公開されるパブリックブロックチェーン(パブリックリーフチェーン)では使用が不可能である。 In the second method, instead of storing the private key in the contract, the private key representing one chain is shared with the C-nodes, which are consensus nodes in the same chain, and chain authentication is required. It may be made available at times. As an example, each chain may maintain a private key shared by n (in one example, n is 4-8) C-nodes for consensus. A user or other contract may request data to be signed by the system for that chain (for example, a system contract installed on that chain), and the system will sign the requested data and You may provide the data At this time, the contract of the corresponding chain may record the event of data signing and delivery, and may deliver the signed data to another chain through the relay layer. For example, a public address, which is an identification value generated by a public key paired with a private key of the root chain in the root chain, is recorded in the genesis block of the leaf chain, so that it cannot be modulated in the leaf chain. Data signed by the root chain with a private key can be compared with the public address recorded in the genesis block on the leaf chain to verify that the signed data originated from the root chain. . Similarly, a leafchain may also register a public address generated by the leafchain's private key with a leafchain contract established in association with that leafchain on the rootchain. In this case, the root chain compares the data signed by the leaf chain with the private key of the leaf chain and the public address registered in the corresponding leaf chain contract, and the signed data is sent from the corresponding leaf chain. It may be verified that the However, the second method can be used with private blockchains where private keys can be shared by C-nodes for consensus, but public blockchains exposed for the provision of external services (public leaf chains). chain) cannot be used.

3つ目の方法は、ルートチェーンのすべてのCノードそれぞれが合意のために有している固有のプライベートキーを活用する方法である。一例として、ルートチェーンが8つのCノードを含む場合は、8つのプライベートキーが存在してよい。この場合、該当のプライベートキーによって生成されるルートチェーンのすべてのCノードそれぞれのパブリックアドレスが、すべてのリーフチェーンそれぞれに保存されてよい。このとき、ルートチェーンで生成されたものであることを確認する必要のあるデータは、ルートチェーンのリーダーノードが自身のプライベートキーで署名してブロックに記録してよく、該当のデータがリーフチェーンに伝達されるようにしてよい。ここで、リーダーノードは、Cノードのうちから任意に選定されたノードであってよく、必要によっては、他のCノードのうちの1つに変更されてよい。この場合、リーフチェーンは、署名されたデータとリーフチェーンに保存されたパブリックアドレスとを比較することにより、署名されたデータがルートチェーンから発送されたものであることを検証することができる。上述したように、リーフチェーンは、ルートチェーンのすべてのCノードのパブリックアドレスが分かっているため、署名されたデータを検証するときに得られるパブリックアドレスが既知のルートチェーンのCノードのパブリックアドレスのうちの1つであるかを検証することにより、署名されたデータを検証してよい。ただし、ルートチェーンが含むCノードの数が公開され、Cノードをルートチェーンに追加または削除などの変更が発生する場合は、すべてのリーフチェーンそれぞれに記録された情報は更新しなければならない。特に、外部サービスのために割り当てられたパブリックブロックチェーン(パブリックリーフチェーン)に記録された情報は直接更新することができないため、該当のパブリックブロックチェーンで記録された情報を更新するように情報を提供(パブリックアドレスの更新を可能にするための情報を公知)しなければならない。これと同じように、リーフチェーンのCノードも、合意のために固有のプライベートキーを有してよく、このようなプライベートキーが活用されてよい。この場合、Cノードそれぞれのパブリックアドレスは、ルートチェーンに該当のリーフチェーンと関連して設置されたリーフチェーンコントラクトに登録されてよく、ルートチェーンは、署名されたデータと該当のリーフチェーンコントラクトに登録されたパブリックアドレスとを比較することにより、署名されたデータが該当のリーフチェーンから発送されたものであることを検証してよい。 A third method is to leverage a unique private key that every C-node in the root chain has for consensus purposes. As an example, if the root chain contains 8 Cnodes, there may be 8 private keys. In this case, the public addresses of all C-nodes of the root chain generated by that private key may be stored in each of the leaf chains. At this time, the data that needs to be verified as being generated in the root chain can be signed by the root chain leader node with its own private key and recorded in the block, and the corresponding data is transferred to the leaf chain. It may be transmitted. Here, the leader node may be a node arbitrarily selected from among the C-nodes, and may be changed to one of other C-nodes if necessary. In this case, the LeafChain can verify that the signed data was sent from the RootChain by comparing the signed data with the public address stored in the LeafChain. As mentioned above, the leaf chain knows the public addresses of all C nodes of the root chain, so the public address obtained when verifying the signed data is the known public address of the C nodes of the root chain. The signed data may be verified by verifying that it is one of them. However, if the number of C-nodes included in the root chain is disclosed and changes such as addition or deletion of C-nodes to the root chain occur, the information recorded in each leaf chain must be updated. In particular, since the information recorded in the public blockchain (public leaf chain) allocated for external services cannot be directly updated, information is provided to update the information recorded in the relevant public blockchain. (Publicize information to enable updating of public addresses). Similarly, leaf-chain C-nodes may also have unique private keys for consensus, and such private keys may be leveraged. In this case, the public address of each C node may be registered in a leaf chain contract established in relation to the corresponding leaf chain in the root chain, and the root chain is registered in the corresponding leaf chain contract with the signed data. By comparing the signed public address, it may be verified that the signed data originated from the relevant leaf chain.

4つ目の方法は、ルートチェーンのすべてのCノードで生成されるパブリックアドレスの組み合わせによって生成される代表パブリックアドレス(Common Public Address)をすべてのリーフチェーンそれぞれに共有する方法である。この場合にも、ルートチェーンでCノードを追加または削除するなどの変更が発生する場合は、すべてのリーフチェーンそれぞれに記録された情報を更新しなければならないが、リーフチェーンそれぞれで共有しなければならないパブリックアドレスを代表パブリックアドレス1つに減らすことができ、ルートチェーンが含むCノードの数は公開されないという長所がある。ただし、代表パブリックアドレスが変更されるため、変更時には保安に注意しなければならない。4つ目の方法では、ルートチェーンのすべてのCノードのパブリックアドレスそれぞれをすべてのCノードそれぞれがすべて分かっていなければならない。また、4つ目の方法では、プライベートキーが複数あったとしても1つのパブリックアドレス(代表パブリックアドレス)を生成することができ、プライベートキーが1つ以上のコンファームによって暗号を解除することができるように、署名のためのアルゴリズムとこれを検証するアルゴリズムを修正したモジュールが要求される。 A fourth method is to share a representative public address (Common Public Address) generated by combining public addresses generated by all C nodes of the root chain to all leaf chains. Even in this case, if a change such as adding or deleting a C node occurs in the root chain, the information recorded in each leaf chain must be updated, but must be shared by each leaf chain. It has the advantage that the number of public addresses that do not need to be shared can be reduced to one representative public address, and the number of C-nodes included in the root chain is not disclosed. However, since the representative public address will be changed, security must be taken care of when changing. In the fourth method, every C-node must know every public address of every C-node in the root chain. In the fourth method, even if there are multiple private keys, one public address (representative public address) can be generated, and the encryption can be decrypted by confirming one or more private keys. As such, a module is required that modifies the algorithm for signing and the algorithm for verifying it.

5つ目の方法では、1つ目の方法を活用可能にするために、ブロックチェーンに次のような機能を追加する。5つ目の方法では、コントラクトがパブリックキーによってコントラクトアドレスを生成し、プライベートキーを暗号化してコントラクトが保存するようにしてよい。プライベートキーが分かっており、プライベートキーによってパブリックキーを得ることができ、パブリックキーによってコントラクトアドレスを生成することができる。このとき、署名のためのコントラクト(以下、署名可能コントラクト)は、1つのチェーンに1つだけが存在しても問題ない。例えば、署名可能コントラクトを設置するときに、暗号化されたプライベートキーとプライベートキーによって生成されるパブリックキーがパラメータとなって署名可能コントラクトに伝達されてよい。署名可能コントラクトは、受信したパブリックキーによってコントラクトアドレスを生成してよい。このとき、同じコントラクトアドレスがあれば、コントラクトアドレスの生成は失敗となる。暗号化されたプライベートキーは、以下で説明するパスワードによって復号されてよく、署名可能コントラクトによってデータベースに保存されてよい。このとき、任意のコントラクトがデータを署名しようとする場合、署名しようとするデータと署名可能コントラクトに保存された暗号化されたプライベートキーを復号することのできるパスワードをパラメータとして署名可能コントラクトに伝達してよい。このとき、ブロックチェーンですべての要請(一例として、HTTPS(Hypertext Transfer Protocol Secure)を利用した要請)による情報はブロックやログに記録される反面、パスワードはどこにも保存/記録されてはならない。したがって、5つ目の方法では、パスワードパラメータをブロックやログなどのどこにも保存/記録されないタイプ(以下、「セキュアタイプ」)として定義してよい。このようなパスワードパラメータは、該当のブロックチェーンで支援されてよい。この場合、署名可能コントラクトは、パスワードによって暗号化されたプライベートキーを復元した後、復元されたプライベートキーを利用して入力されたデータを署名してよく、署名した結果(署名されたデータ)を署名要請したコントラクトに返還してよい。署名可能コントラクトのコントラクトアドレスは、各リーフチェーンのジェネシスブロックに記録されてよい。ただし、5つ目の方法では、システム上でセキュアタイプを個別に定義して活用しなければならず、暗号化されたプライベートキーとパブリックキーがシステム外部で生成されて提供されなければならず、プライベートキーが暗号化されて伝達されるため、プライベートキーが正常に生成されて伝達されるかどうかを確認することができない。ルートチェーンから送信されるデータであることをリーフチェーンが立証するために、リーフチェーンでは、該当のデータを署名した署名可能コントラクトがルートチェーンに設置されたコントラクトであるかをルートチェーンに照会して直ぐに把握してよく、該当の署名コントラクトがルートチェーンにコントラクトに存在するコントラクトであるということが立証されれば、署名されたデータがルートチェーンで生成または処理されたデータであるということが立証されるようになる。 In the fifth method, the following functions are added to the blockchain to enable the first method to be used. In a fifth method, the contract may generate the contract address with the public key and encrypt the private key for storage by the contract. The private key is known, the private key allows the public key to be obtained, and the public key allows the contract address to be generated. At this time, there is no problem even if only one contract for signing (hereinafter referred to as a signable contract) exists in one chain. For example, when establishing a signable contract, an encrypted private key and a public key generated from the private key may be passed as parameters to the signable contract. A signable contract may generate a contract address with a received public key. At this time, if the same contract address exists, the contract address generation fails. The encrypted private key may be decrypted by a password described below and stored in a database by a signable contract. At this time, when an arbitrary contract wants to sign data, the data to be signed and a password that can decrypt the encrypted private key stored in the signable contract are passed to the signable contract as parameters. you can At this time, information from all requests in the blockchain (for example, requests using HTTPS (Hypertext Transfer Protocol Secure)) is recorded in blocks or logs, but passwords should not be saved/recorded anywhere. Therefore, in a fifth method, password parameters may be defined as types that are not stored/recorded anywhere, such as blocks or logs (hereinafter "secure types"). Such password parameters may be backed by the corresponding blockchain. In this case, the signable contract may, after restoring the password-encrypted private key, sign the input data using the restored private key, and return the signed result (signed data). You may return it to the contract that requested the signature. The contract address of the signable contract may be recorded in the genesis block of each leaf chain. However, in the fifth method, secure types must be defined and leveraged separately on the system, encrypted private and public keys must be generated and provided outside the system, Since the private key is encrypted and transmitted, it is not possible to verify whether the private key was successfully generated and transmitted. In order for the leaf chain to prove that the data is sent from the root chain, the leaf chain asks the root chain whether the signable contract that signed the data is the contract installed in the root chain. It can be grasped immediately, and if it is proved that the corresponding signing contract is a contract that exists in the contract in the root chain, it is proved that the signed data is the data generated or processed in the root chain. Become so.

図10は、本発明の一実施形態における、署名可能コントラクトの設置過程の例を示した図である。図10は、署名可能コントラクト1010が暗号化されたプライベートキー1020とパブリックキー1030をパラメータとして受信し、受信されたパブリックキー1030を利用してパブリックアドレスを生成してデータベース1040に保存する例を示している。言い換えれば、データベース1040には、暗号化されたプライベートキー1020とパブリックキー1030、さらにパブリックキー1030を利用して生成されたパブリックアドレスが保存されてよい。 FIG. 10 is a diagram showing an example of a signable contract installation process in an embodiment of the present invention. FIG. 10 shows an example in which the signable contract 1010 receives an encrypted private key 1020 and public key 1030 as parameters, generates a public address using the received public key 1030, and stores it in the database 1040. ing. In other words, the database 1040 may store the encrypted private key 1020 and public key 1030 as well as the public address generated using the public key 1030 .

図11は、本発明の一実施形態における、データを署名する過程の例を示した図である。図11は、署名可能コントラクト1010がユーザや他のコントラクト1110からの署名要請を受信する例を示している。このとき、署名要請は、署名するためのデータと、図10で説明した、暗号化されたプライベートキー1020を復号するためのパスワードを含んでよい。この場合、署名可能コントラクト1010は、パスワードを利用して暗号化されたプライベートキー1020を復号してプライベートキーを得てよく、復号されたプライベートキーを利用してパラメータとして伝達されたデータを署名してよい。この後、署名可能コントラクト1010は、署名されたデータを結果として、ユーザや他のコントラクト1110に返還してよい。ここで、ユーザは、該当のブロックチェーンのノードに対応してよい。 FIG. 11 is a diagram illustrating an example process of signing data in one embodiment of the present invention. FIG. 11 shows an example of a signable contract 1010 receiving signature requests from users or other contracts 1110 . At this time, the signature request may include the data for signing and the password for decrypting the encrypted private key 1020 described in FIG. In this case, the signable contract 1010 may use the password to decrypt the encrypted private key 1020 to obtain the private key, and use the decrypted private key to sign the data conveyed as parameters. you can The signable contract 1010 may then return the signed data to the user or other contract 1110 as a result. Here, the user may correspond to the corresponding blockchain node.

6つ目の方法では、5つ目の方法の署名可能コントラクトがブロックチェーンのシステムコントラクトによって自動設置されるようにしてよい。言い換えれば、ブロックチェーンのシステムコントラクトが設置されるときに、署名可能コントラクトもともに設置されるようにしてよい。例えば、リーダーノードのようにシステムコントラクトを最初に生成するノードが、プライベートキーを生成して署名可能コントラクトを設置してよい。生成されたプライベートキーは、署名可能コントラクトによって暗号化されてデータベースに保存されてよく、暗号化されたプライベートキーを復号するためのパスワードは、該当のノードのパブリックキーによって暗号化して該当のノードのローカルに保存されてよい。他のノードは、トランザクションをコピーし、最新のパスワードが分かるノードを検索してよい。このとき、他のノードは、検索されるノードに自身のパブリックキーを伝達してパブリックキーによって暗号化されたパスワードを受信し、該当の他のノードのローカルに保存してよい。各ノードは、署名を要請するときに、自身のパブリックキーによって自身のローカルに保存された暗号化されたパスワードを復号してパスワードを得てよく、得られたパスワードを署名要請関数のパラメータとして署名可能コントラクトに伝達してよい。要請は、ブロックチェーンで提供する署名APIまたは関数を利用して処理されてよい。署名可能コントラクトのパブリックアドレスは、各リーフチェーンのジェネシスブロックに記録されてよい。ルートチェーンから送信されるデータであることを立証するためには、署名可能コントラクトを活用してよい。 In the sixth method, the signable contract of the fifth method may be automatically installed by the blockchain's system contract. In other words, when the blockchain system contract is installed, the signable contract may also be installed. For example, the node that first generates the system contract, such as the leader node, may generate the private key and install the signable contract. The generated private key may be encrypted by a signable contract and stored in a database, and the password for decrypting the encrypted private key is encrypted by the node's public key and stored in the node's public key. May be stored locally. Other nodes may copy the transaction and search for nodes that know the latest password. At this time, other nodes may transmit their public key to the node to be searched, receive the password encrypted by the public key, and store it locally in the corresponding other node. Each node, when requesting a signature, may obtain the password by decrypting its locally stored encrypted password with its own public key, and signs the resulting password as a parameter of the signature request function. It may be transmitted to a possible contract. Requests may be processed using a signature API or function provided by the blockchain. The public address of the signable contract may be recorded in the genesis block of each leaf chain. A signable contract may be leveraged to prove that data is sent from the root chain.

図12は、本発明の一実施形態における、署名可能コントラクトの設置過程の他の例を示した図である。図12は、ノードが生成したプライベートキーを署名可能コントラクト1210がノードのパブリックキー1220によって暗号化してデータベース1230に保存する例を示している。このとき、署名可能コントラクト1210は、暗号化されたプライベートキーを復号するためのパスワードをノードのパブリックキーによって暗号化して該当のノードに返還してよい。返還された暗号化されたパスワードは、ノードのローカルに保存されてよい。 FIG. 12 is a diagram showing another example of the process of installing a signable contract in one embodiment of the present invention. FIG. 12 shows an example where a signable contract 1210 encrypts a node-generated private key with the node's public key 1220 and stores it in database 1230 . At this time, the signable contract 1210 may encrypt a password for decrypting the encrypted private key with the public key of the node and return it to the corresponding node. The returned encrypted password may be stored locally on the node.

図13は、本発明の一実施形態における、データを署名する過程の他の例を示した図である。図13は、ノード1310が暗号化されたパスワードをノード1310のプライベートキーによって復号してパスワードを取得した後、取得したパスワードをパラメータとしてシステム1320に伝達してデータの署名を要請する例を示している。ここで、システム1320は、ブロックチェーンシステムに対応してよい。このとき、署名しようとするデータも、パラメータとしてともにシステム1320に伝達してよい。この場合、システム1320は、パスワードを利用して署名可能コントラクト1210にデータの署名を要請してよい。この場合、署名可能コントラクト1210は、パスワードによって暗号化されたプライベートキーを復号してよく、復号されたプライベートキーを利用してデータを署名した後、署名されたデータを返還してよい。システム1320は、返還された署名されたデータをノード1310に伝達してよい。 FIG. 13 is a diagram showing another example of the process of signing data in one embodiment of the present invention. FIG. 13 shows an example in which the node 1310 obtains the password by decrypting the encrypted password using the private key of the node 1310, and then transmits the obtained password as a parameter to the system 1320 to request data signature. there is Here, system 1320 may correspond to a blockchain system. At this time, the data to be signed may also be transmitted to the system 1320 as a parameter. In this case, the system 1320 may request the signable contract 1210 to sign the data using the password. In this case, signable contract 1210 may decrypt the password-encrypted private key, sign data using the decrypted private key, and then return the signed data. System 1320 may communicate the returned signed data to node 1310 .

一方、リーフチェーンでは、内部で処理した内容と伝達する内容とが異ならないようにしなければならない。このために、送金を処理したトランザクションのマークルツリーの証明ハッシュリストを、処理結果とともにイベントとして伝達するようにしなければならない。監視子が存在するのであれば、マークルツリーの証明情報まで伝達するかを決定する必要がある。伝達するイベント情報をコントラクトのプライベートキーによって署名してイベントに記録してよく、この場合、該当のトランザクションが処理されたということは分かるが、処理内容を変調したかどうかは把握することができないため、監視子が必要となることもある。このとき、監視子は、該当のブロックが存在するかどうかと、該当のトランザクションがイベントとして伝達したデータとともに、送金が成功したか失敗したかを確認してよい。監視子によって不正が発見されれば、該当のリーフチェーンには不利益が提供されてよい。ここで、監視子は、上述した機能を実行するノードの形態で実現されてよい。 On the other hand, the leaf chain must ensure that the internally processed content and the transmitted content do not differ. For this purpose, the proof hash list of the Merkle tree of the transaction that processed the remittance must be transmitted as an event along with the processing result. If there is a watcher, we need to decide whether to propagate the Merkle tree credentials. The event information to be transmitted may be signed with the private key of the contract and recorded in the event. , may require a watcher. At this point, the observer may check whether the block exists and whether the transfer succeeded or failed, along with the data that the transaction conveyed as an event. A penalty may be provided to the leaf chain in question if fraud is discovered by the patrol. Here, the watchers may be implemented in the form of nodes that perform the functions described above.

図14は、本発明の一実施形態における、コイン交換方法の他の例を示した図である。同一するチェーンの同一するサービスにおけるコイン交換や、同一するチェーンの異なるサービス間のコイン交換については、図8の実施形態を参照しながら説明したとおりである。図14は、図8の実施形態とは異なる実施形態であって、ルートチェーン1410、リーフチェーン1(1420)、およびリーフチェーン2(1430)を示しており、リーフチェーン1(1420)のユーザ1がリーフチェーン2(1430)のユーザ2に送金を要請した場合を仮定する。 FIG. 14 is a diagram showing another example of the coin exchange method in one embodiment of the present invention. Coin exchange in the same service of the same chain and coin exchange between different services in the same chain are as described with reference to the embodiment of FIG. FIG. 14 shows a different embodiment than that of FIG. 8, showing root chain 1410, leaf chain 1 (1420), and leaf chain 2 (1430), where user 1 of leaf chain 1 (1420) requests a remittance to User 2 of Leaf Chain 2 (1430).

過程1は、リーフチェーン1(1420)で送金要請が正常な要請であるかを確認した後、問題がない場合には、送金要請に関する情報をルートチェーン1410に伝達する過程の例である。 Process 1 is an example of a process in which leaf chain 1 (1420) confirms whether the remittance request is normal, and then transmits information on the remittance request to root chain 1410 if there is no problem.

過程2は、ルートチェーン1410で送金要請が正常な要請であるかを確認した後、問題がない場合には、リーフチェーン2(1430)に送金が可能であるかに関する確認要請を送信する過程の例である。 Process 2 is a process of confirming whether the remittance request is normal in the root chain 1410 and, if there is no problem, transmitting a confirmation request regarding whether remittance is possible to the leaf chain 2 (1430). For example.

過程3は、リーフチェーン2(1430)で送金要請が受信可能な要請であるかを確認した後、問題がない場合には、ルートチェーン1410に受信が可能であるという応答を送信する過程の例である。 Process 3 is an example of a process of checking whether the remittance request is receivable in the leaf chain 2 (1430) and, if there is no problem, transmitting a receivable response to the root chain 1410. is.

過程4は、ルートチェーン1410がリーフチェーン1(1420)およびリーフチェーン2(1430)それぞれに、送金金額を差し引いたり増額したりする領収証を発行する過程の例である。過程4.1は、ルートチェーン1410がリーフチェーン1(1420)に送金金額を差し引くための領収証を発行する過程の例であり、過程4.2は、ルートチェーン1410がリーフチェーン2(1430)に送金金額を増額するための領収証を発行する過程の例である。各チェーンでは重複差引や重複増額が発生しないように管理されてよい。 Process 4 is an example of a process in which the root chain 1410 issues receipts to each of the leaf chains 1 (1420) and 2 (1430) to deduct or increase the remittance amount. Process 4.1 is an example of a process in which the root chain 1410 issues a receipt for deducting the remittance amount to the leaf chain 1 (1420), and process 4.2 is an example of the process in which the root chain 1410 issues a receipt to the leaf chain 2 (1430). This is an example of the process of issuing a receipt for increasing the remittance amount. Each chain may be managed so that duplicate deductions and duplicate increases do not occur.

以下では、スマートコントラクトの構成について説明する。 The configuration of the smart contract is described below.

スマートコントラクトは、ルートチェーンの場合には、図4を参照しながら説明したように、ルートチェーンマネージャコントラクトを含んでよく、各リーフチェーンそれぞれのためのコントラクトを含んでよい。一方、リーフチェーンは、サービスDAppが存在する場合にはリーフチェーンマネージャコントラクトとDAppコントラクトを含んでよく、サービスDAppが存在しない場合にはリーフチェーンマネージャコントラクトを含んでよい。ルートチェーンマネージャコントラクトとリーフチェーンマネージャコントラクトは、システムコントラクトであって、ブロックチェーンが設置されるときに自動で設置されてよい。リレイヤは、イベントログをフィルタリングしてそれぞれのチェーンに伝達してよい。各チェーンは、リレイヤがデータを変調できないように管理してよい。上述したように、ルートチェーンは、各リーフチェーンのプライベートキーによって生成されたパブリックアドレスを保存してよく、リーフチェーンは、ルートチェーンの固有のプライベートキーによって生成されるパブリックアドレスを、ジェネシスブロックを生成するときに記録してよい。リレイヤが伝達する情報をすべてルートチェーンの固有のプライベートキーによって署名した情報もともに伝達されるようにしてよい。 Smart contracts may include, in the case of the root chain, a root chain manager contract, as described with reference to FIG. 4, and may include a contract for each leaf chain. On the other hand, a leafchain may contain a leafchain manager contract and a DApp contract if a service DApp is present, or a leafchain manager contract if a service DApp is not present. The root chain manager contract and the leaf chain manager contract are system contracts and may be automatically installed when the blockchain is installed. Relayers may filter event logs and propagate them to their respective chains. Each chain may manage so that relayers cannot modulate the data. As mentioned above, the root chain may store the public address generated by each leaf chain's private key, and the leaf chains store the public address generated by the root chain's unique private key in the genesis block. You may record when All information conveyed by relayers may be conveyed together with information signed by the unique private key of the root chain.

また、リーフチェーンにサービスDAppが存在する場合、ユーザは、DAppの「exchange」を定義した関数を呼び出してよい。このとき、DAppでは、icxに定義された「exchange」を呼び出してよく、これにより、icxクラスで「exchange」機能が実現される必要がある。 Also, if a service DApp exists in the leaf chain, the user may call a function that defines the "exchange" of the DApp. At this time, the DApp may call the 'exchange' defined in icx, and the 'exchange' function should be implemented in the icx class.

一方、チェーン間の送金のために必要な情報は、以下のとおりとなる。 On the other hand, the information required for inter-chain remittance is as follows.

・from user:送金をするユーザ
・origin:送金要請をしたサービスまたはリーフチェーン
・to user:送金を受けるユーザ
・destination:送金を受けるサービスまたはリーフチェーン
・value:送金金額(ベースコイン)
・eTxHash:送金トランザクションハッシュ
・message:送金メッセージ
・eSignature:データの伝達を要請したリーフチェーンの署名
ここで、リーフチェーンの署名は、from user、origin、to user、destination、value、eTxHash、messageを組み合わせて署名した値を含んでよい。
・from user: user who sends money ・origin: service or leafchain that requested money transfer ・to user: user that receives money transfer ・destination: service or leafchain that receives money money ・value: money transfer amount (base coin)
・eTxHash: remittance transaction hash ・message: remittance message ・eSignature: signature of leaf chain requesting data transfer Here, the signature of the leaf chain is a combination of from user, origin, to user, destination, value, eTxHash, and message. may contain a value signed by

図15は、本発明の一実施形態における、データ認証方法の第1例を示したフローチャートである。本実施形態に係るデータ認証方法は、ブロックチェーンネットワークのノードを実現するコンピュータ装置200によって実行されてよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が図15の方法に含まれる段階1510~1540を実行するようにコンピュータ装置200を制御してよい。 FIG. 15 is a flow chart showing a first example of a data authentication method in one embodiment of the invention. The data authentication method according to this embodiment may be executed by the computer device 200 that implements a node of the blockchain network. For example, processor 220 of computing device 200 may be implemented to execute control instructions according to the code of an operating system and the code of at least one program contained in memory 210 . Here, processor 220 may control computing device 200 such that computing device 200 performs steps 1510-1540 included in the method of FIG. 15 according to control instructions provided by code recorded in computing device 200. .

段階1510で、コンピュータ装置200は、ブロックチェーンネットワークのチェーンを代表するプライベートキーを、ブロックチェーンネットワークでの合意に参加する少なくとも1つの他のノードと共有してよい。このとき、ノードは、ブロックチェーンネットワークでの合意をなすように予め設定された複数のノードのうちの1つであってよく、少なくとも1つの他のノードも、ブロックチェーンネットワークでの合意をなすように予め設定された複数のノードに含まれてよい。 At step 1510, the computing device 200 may share the private key representing the chain of the blockchain network with at least one other node participating in the consensus on the blockchain network. At this time, the node may be one of a plurality of nodes preset to make consensus on the blockchain network, and at least one other node may also make consensus on the blockchain network. may be included in a plurality of nodes preset to .

本実施形態に係るデータ認証方法は、上述した2つ目の方法で、チェーンを代表する1つのプライベートキーを該当のチェーンのCノードが共有し、これをチェーン認証に活用する過程を説明する。言い換えれば、1つのノードを実現するコンピュータ装置200はコンピュータ装置200によって実現されるノードが参加するブロックチェーンネットワークのチェーンを代表するプライベートキーを少なくとも1つの他のノードと共有してよい。 The data authentication method according to the present embodiment is the second method described above, and the process of sharing one private key representing the chain with the C nodes of the corresponding chain and using it for chain authentication will be described. In other words, a computing device 200 implementing one node may share with at least one other node a private key representative of the chain of blockchain networks in which the node implemented by computing device 200 participates.

段階1520で、コンピュータ装置200は、プライベートキーを利用して生成されるパブリックキーを利用してブロックチェーンネットワークのパブリックアドレスを生成してよい。上述したように、パブリックアドレスは、プライベートキーによって署名されたデータが該当のブロックチェーンネットワークから発送されたものであることを検証するために提供されてよい。 At step 1520, the computing device 200 may generate a public address for the blockchain network using the public key generated using the private key. As noted above, the public address may be provided to verify that data signed by the private key originated from the blockchain network in question.

一実施形態として、ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含んでよい。この場合、コンピュータ装置200は、生成されたパブリックアドレスを複数のリーフチェーンそれぞれのジェネシスブロックに記録してよい。このとき、署名されたデータが送信されたリーフチェーンで署名されたデータとリーフチェーンのジェネシスブロックに記録されたパブリックアドレスとを比較することで、署名されたデータがルートチェーンから発送されたものであることを検証してよい。 As one embodiment, a blockchain network may include a root chain that manages data transmission between multiple leaf chains. In this case, the computer device 200 may record the generated public address in the genesis block of each of the plurality of leaf chains. At this time, by comparing the signed data in the leaf chain where the signed data was sent and the public address recorded in the genesis block of the leaf chain, it is possible to confirm that the signed data was sent from the root chain. You can verify that there is

他の実施形態として、ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含んでよい。この場合、コンピュータ装置200は、生成されたパブリックアドレスを、ルートチェーンに第1リーフチェーンと関連して設置されたリーフチェーンコントラクトに登録してよい。このとき、ルートチェーンで署名されたデータと該当のリーフチェーンコントラクトに登録されたパブリックアドレスをと比較することで、署名されたデータが第1リーフチェーンから発送されたものであることを検証してよい。 As another embodiment, the blockchain network may include a first leaf chain of multiple leaf chains whose data transmission is managed by a root chain. In this case, the computing device 200 may register the generated public address with the leaf chain contract installed in the root chain in association with the first leaf chain. At this time, by comparing the data signed in the root chain with the public address registered in the corresponding leaf chain contract, it is verified that the signed data was sent from the first leaf chain. good.

段階1530で、コンピュータ装置200は、ブロックチェーンネットワークから他のブロックチェーンネットワークに伝達しようとするデータを、ブロックチェーンネットワークに設置されたコントラクトによってプライベートキーで署名してよい。このとき、署名されたデータが記録されたブロックがブロックチェーンネットワークのチェーンに追加されてよい。 At step 1530, the computing device 200 may sign data to be transmitted from the blockchain network to another blockchain network with a private key according to a contract installed in the blockchain network. At this time, a block containing the signed data may be added to the chain of the blockchain network.

段階1540で、コンピュータ装置200は、署名されたデータをコントラクトによって他のブロックチェーンネットワークに伝達してよい。このとき、署名されたデータとパブリックアドレスとの比較により、署名されたデータがブロックチェーンネットワークから発送されたものであることが検証されてよい。 At step 1540, computing device 200 may communicate the signed data to other blockchain networks by way of the contract. A comparison of the signed data with the public address may then verify that the signed data originated from the blockchain network.

図16は、本発明の一実施形態における、データ認証方法の第2例を示したフローチャートである。本実施形態に係るデータ認証方法は、ブロックチェーンネットワークのノードを実現するコンピュータ装置200によって実行されてよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が図16の方法に含まれる段階1610~1630を実行するようにコンピュータ装置200を制御してよい。 FIG. 16 is a flow chart showing a second example of a data authentication method in one embodiment of the invention. The data authentication method according to this embodiment may be executed by the computer device 200 that implements a node of the blockchain network. For example, processor 220 of computing device 200 may be implemented to execute control instructions according to the code of an operating system and the code of at least one program contained in memory 210 . Here, processor 220 may control computing device 200 such that computing device 200 performs steps 1610-1630 included in the method of FIG. 16 according to control instructions provided by code recorded in computing device 200. .

段階1610で、コンピュータ装置200は、ノードのプライベートキーを利用してノードのパブリックアドレスを生成してよい。ノードのプライベートキーは、ノードがブロックチェーンネットワークで合意のために有している固有のプライベートキーであってよい。 At step 1610, computing device 200 may generate the node's public address using the node's private key. A node's private key may be a unique private key that the node has for consensus on the blockchain network.

段階1620で、コンピュータ装置200は、ブロックチェーンネットワークから他のブロックチェーンネットワークに伝達しようとするデータを、ノードのプライベートキーを利用して署名してよい。このとき、署名されたデータが記録されたブロックがブロックチェーンネットワークのチェーンに追加されてよい。 At step 1620, the computing device 200 may use the node's private key to sign data to be transmitted from the blockchain network to another blockchain network. At this time, a block containing the signed data may be added to the chain of the blockchain network.

段階1630で、コンピュータ装置200は、署名されたデータを他のブロックチェーンネットワークに伝達してよい。このとき、前記パブリックアドレスを利用することで、前記署名されたデータが前記ブロックチェーンネットワークから発送されたものであることが検証されてよい。 At step 1630, computing device 200 may communicate the signed data to other blockchain networks. The public address may then be used to verify that the signed data originated from the blockchain network.

一実施形態において、ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含んでよい。このとき、ブロックチェーンネットワークで合意をなすように予め設定された複数のノード(本実施形態に係るコンピュータ装置200が実現するノードを含む複数のノード)それぞれで生成されたパブリックアドレスが複数のリーフチェーンそれぞれに保存されてよい。この場合、署名されたデータが送信された第1リーフチェーンで署名されたデータと第1リーフチェーンに保存された複数のノードそれぞれのパブリックアドレスとを比較することで、署名されたデータがルートチェーンから発送されたものであることを検証してよい。 In one embodiment, a blockchain network may include a root chain that manages data transmission between multiple leaf chains. At this time, the public addresses generated by each of the plurality of nodes (the plurality of nodes including the node realized by the computer device 200 according to the present embodiment) set in advance so as to make an agreement in the blockchain network are the plurality of leaf chains. may be stored separately. In this case, by comparing the signed data in the first leaf chain where the signed data was sent and the public addresses of each of the multiple nodes stored in the first leaf chain, the signed data is identified as the root chain. You may verify that it was shipped from

他の実施形態において、ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含んでよい。このとき、ブロックチェーンネットワークで合意をなすように予め設定された複数のノード(本実施形態に係るコンピュータ装置200が実現するノードを含む複数のノード)それぞれで生成されたパブリックアドレスが、ルートチェーンに第1リーフチェーンと関連して設置されたリーフチェーンコントラクトに登録されてよい。この場合、ルートチェーンで署名されたデータとリーフチェーンコントラクトに登録されたパブリックアドレスとを比較することで、署名されたデータが第1リーフチェーンから発送されたものであることを検証してよい。 In other embodiments, a blockchain network may include a first leaf chain of multiple leaf chains with data transmission managed by a root chain. At this time, the public addresses generated by each of the plurality of nodes (the plurality of nodes including the node realized by the computer device 200 according to the present embodiment) set in advance so as to make an agreement in the blockchain network are attached to the root chain. It may be registered with a leaf chain contract established in association with the first leaf chain. In this case, it may be verified that the signed data was sent from the first leaf chain by comparing the data signed in the root chain with the public address registered in the leaf chain contract.

また他の実施形態において、ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含んでよい。このとき、ブロックチェーンネットワークで合意をなすように予め設定された複数のノード(本実施形態に係るコンピュータ装置200が実現するノードを含む複数のノード)それぞれで生成されたパブリックアドレスの組み合わせによって生成される代表パブリックアドレスが、複数のリーフチェーンそれぞれに保存されてよい。この場合、署名されたデータが送信された第1リーフチェーンで署名されたデータと第1リーフチェーンに保存された代表パブリックアドレスとを比較することで、署名されたデータがルートチェーンから発送されたものであることを検証してよい。 In still other embodiments, a blockchain network may include a root chain that manages data transmission between multiple leaf chains. At this time, a combination of public addresses generated by each of a plurality of nodes (a plurality of nodes including the node realized by the computer device 200 according to the present embodiment) set in advance so as to make an agreement in the blockchain network. A representative public address may be stored in each of the multiple leaf chains. In this case, the signed data was sent from the root chain by comparing the signed data on the first leaf chain where the signed data was sent and the representative public address stored on the first leaf chain. You can verify that it is

また他の実施形態において、ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含んでよい。このとき、ブロックチェーンネットワークで合意をなすように予め設定された複数のノード(本実施形態に係るコンピュータ装置200が実現するノードを含む複数のノード)それぞれで生成されたパブリックアドレスの組み合わせによって生成される代表パブリックアドレスが、ルートチェーンとリーフチェーン間の仲介を処理するルートチェーンに第1リーフチェーンと関連して設置されたリーフチェーンコントラクトに登録されてよい。この場合、ルートチェーンで署名されたデータと該当のリーフチェーンコントラクトに登録された代表パブリックアドレスとを比較することで、署名されたデータが第1リーフチェーンから発送されたものであることを検証してよい。 In still other embodiments, a blockchain network may include a first leaf chain of multiple leaf chains whose data transmission is managed by a root chain. At this time, a combination of public addresses generated by each of a plurality of nodes (a plurality of nodes including the node realized by the computer device 200 according to the present embodiment) set in advance so as to make an agreement in the blockchain network. A representative public address may be registered with a leaf chain contract established in association with a first leaf chain on the root chain that handles intermediation between the root chain and leaf chains. In this case, by comparing the data signed in the root chain with the representative public address registered in the corresponding leaf chain contract, it is verified that the signed data was sent from the first leaf chain. you can

図17は、本発明の一実施形態における、データ認証方法の第3例を示したフローチャートである。本実施形態に係るデータ認証方法は、ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置200によって実行されてよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が図17の方法に含まれる段階1710~1760を実行するようにコンピュータ装置200を制御してよい。ここで、少なくとも1つのプログラムコードは、少なくともブロックチェーンネットワークのコントラクトによるコードを含んでよい。 FIG. 17 is a flow chart showing a third example of a data authentication method in one embodiment of the invention. The data authentication method according to the present embodiment may be performed by the computer device 200 operating according to the contract of the blockchain network. For example, processor 220 of computing device 200 may be implemented to execute control instructions according to the code of an operating system and the code of at least one program contained in memory 210 . Here, processor 220 may control computing device 200 such that computing device 200 performs steps 1710-1760 included in the method of FIG. 17 according to control instructions provided by code recorded in computing device 200. . Here, the at least one program code may comprise at least code according to a blockchain network contract.

段階1710で、コンピュータ装置200は、暗号化されたプライベートキーとプライベートキーで生成されるパブリックキーをパラメータとして受信してよい。 At step 1710, computing device 200 may receive as parameters an encrypted private key and a public key generated from the private key.

段階1720で、コンピュータ装置200は、受信したパブリックキーによってコントラクトアドレスを生成してよい。 At step 1720, computing device 200 may generate a contract address with the received public key.

段階1730で、コンピュータ装置200は、暗号化されたプライベートキーとコントラクトアドレスをデータベースに保存してよい。 At step 1730, computing device 200 may store the encrypted private key and contract address in a database.

段階1740で、コンピュータ装置200は、署名するデータと暗号化されたプライベートキーを復号するためのパスワードをパラメータとして含む署名要請を受信してよい。ここで、パスワードは、ブロックチェーンネットワークのブロックや、いずれのログにも保存されないセキュアタイプとして定義されてよい。 At step 1740, the computing device 200 may receive a signature request including as parameters the data to be signed and a password for decrypting the encrypted private key. Here, the password may be defined as a secure type that is not stored in blocks of the blockchain network or in any logs.

段階1750で、コンピュータ装置200は、署名要請に応答してパスワードによって暗号化されたプライベートキーを復号し、復号されたプライベートキーによってデータを署名することで、署名されたデータを生成してよい。このとき、署名されたデータが記録されたブロックが前記ブロックチェーンネットワークのチェーンに追加されてよい。 At step 1750, the computing device 200 may generate signed data by decrypting the password-encrypted private key in response to the signature request and signing the data with the decrypted private key. At this time, a block in which the signed data is recorded may be added to the chain of the blockchain network.

段階1760で、コンピュータ装置200は、生成された署名されたデータを返還してよい。このとき、署名されたデータは、データの署名を要請したノードに返還されてよい。 At step 1760, computing device 200 may return the generated signed data. At this time, the signed data may be returned to the node that requested the signing of the data.

一実施形態において、ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含んでよい。このとき、コンピュータ装置200は、コントラクトアドレスを複数のリーフチェーンそれぞれのジェネシスブロックに記録してよい。この場合、署名されたデータを受信する第1リーフチェーンで署名されたデータと第1リーフチェーンのジェネシスブロックに記録されたコントラクトアドレスとを比較することで、署名されたデータがルートチェーンから発送されたものであることを検証してよい。 In one embodiment, a blockchain network may include a root chain that manages data transmission between multiple leaf chains. At this time, the computer device 200 may record the contract address in the genesis block of each of the plurality of leaf chains. In this case, the signed data is sent from the root chain by comparing the signed data in the first leaf chain that receives the signed data with the contract address recorded in the genesis block of the first leaf chain. It may be verified that the

他の実施形態において、ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含んでよい。このとき、コンピュータ装置200は、コントラクトアドレスがルートチェーンのデータベースに保存されるように、コントラクトアドレスをルートチェーンに提供してよい。この場合、ルートチェーンで署名されたデータとルートチェーンのデータベースに保存されたコントラクトアドレスとを比較することで、署名されたデータが第1リーフチェーンから発送されたものであることを検証してよい。 In other embodiments, a blockchain network may include a first leaf chain of multiple leaf chains with data transmission managed by a root chain. At this time, computing device 200 may provide the contract address to the root chain so that the contract address is stored in the root chain's database. In this case, it may be verified that the signed data originated from the first leaf chain by comparing the signed data on the root chain with the contract address stored in the root chain's database. .

図18は、本発明の一実施形態における、データ認証方法の第4例を示したフローチャートである。本実施形態に係るデータ認証方法は、ブロックチェーンネットワークのノードを実現するコンピュータ装置200によって実行されてよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が図18の方法に含まれる段階1810~1860を実行するようにコンピュータ装置200を制御してよい。 FIG. 18 is a flow chart showing a fourth example of the data authentication method in one embodiment of the present invention. The data authentication method according to this embodiment may be executed by the computer device 200 that implements a node of the blockchain network. For example, processor 220 of computing device 200 may be implemented to execute control instructions according to the code of an operating system and the code of at least one program contained in memory 210 . Here, processor 220 may control computing device 200 such that computing device 200 performs steps 1810-1860 included in the method of FIG. 18 according to control instructions provided by code recorded in computing device 200. .

段階1810で、コンピュータ装置200は、ブロックチェーンネットワークのノードのプライベートキーを暗号化して保存してよい。ここで、ノードは、ブロックチェーンネットワークで最初に生成されるノードであってよく、このようなノードでブロックチェーンネットワークのシステムコントラクトを設置する過程において署名可能コントラクトを自動設置してよい。この過程において、ノードのプライベートキーが署名可能コントラクトに伝達されてよい。このとき、署名可能コントラクトは、設置過程で伝達されるノードのプライベートキーを暗号化して保存してよい。 At step 1810, the computing device 200 may encrypt and store the private keys of the nodes of the blockchain network. Here, the node may be a node that is first generated in the blockchain network, and the signable contract may be automatically installed in the process of installing the system contract of the blockchain network in such a node. During this process, the node's private key may be communicated to the signable contract. At this time, the signable contract may encrypt and store the private key of the node transferred during the installation process.

段階1820で、コンピュータ装置200は、暗号化されたプライベートキーを復号するためのパスワードをノードのパブリックキーによって暗号化して保存してよい。パスワードは、コンピュータ装置200がプライベートキーを暗号化する過程において暗号化されたプライベートキーを復号できるように生成されてよい。一例として、対称キーによってプライベートキーを暗号化した場合、対称キーや対称キーを得るための値がパスワードによって生成されてよい。 At step 1820, the computing device 200 may encrypt and store a password for decrypting the encrypted private key with the public key of the node. The password may be generated so that computing device 200 can decrypt the encrypted private key in the process of encrypting the private key. As an example, if the private key is encrypted with a symmetric key, the password may generate the symmetric key and the value to obtain the symmetric key.

段階1830で、コンピュータ装置200は、ノードのパブリックキーによって暗号化されたパスワードをノードに返還してよい。この場合、ノードは、暗号化されたパスワードを得てよい。このとき、暗号化されたパスワードは、ノードのパブリックキーによって暗号化されたため、ノードのプライベートキーによって暗号化されたパスワードを復号してパスワードを得ることができるようになる。一方、ブロックチェーンネットワークの他のノードは、暗号化されたパスワードが返還されたノードを検索して該当のノードに他のノードのパブリックキーを送信し、該当のノードから他のノードのパブリックキーによって暗号化されたパスワードを受信して他のノードに保存してよい。このような過程により、ブロックチェーンネットワークの他のノードも、暗号化されたプライベートキーを復号するためのパスワードを得ることができるようになる。この反面、プライベートキー自体は、暗号化された状態で保存されるため表示されなくてよい。一方、パスワードは、ブロックチェーンネットワークのブロックや、いずれのログにも保存されないセキュアタイプとして定義されてよい。 At step 1830, the computing device 200 may return to the node the password encrypted by the node's public key. In this case, the node may obtain an encrypted password. At this time, since the encrypted password is encrypted with the public key of the node, it is possible to obtain the password by decrypting the encrypted password with the private key of the node. On the other hand, other nodes in the blockchain network search for the node where the encrypted password has been returned, send the public key of the other node to the corresponding node, and the public key of the other node from the corresponding node An encrypted password may be received and stored in another node. Through this process, other nodes in the blockchain network will also be able to obtain the password to decrypt the encrypted private key. On the other hand, the private key itself does not have to be displayed because it is stored in an encrypted state. A password, on the other hand, may be defined as a secure type that is not stored in blocks of the blockchain network or in any logs.

段階1840で、コンピュータ装置200は、ブロックチェーンネットワークの任意のノードから、パスワードおよびプライベートキーによって署名するためのデータをパラメータとして含む署名要請を受信してよい。任意のノードは、コンピュータ装置200から暗号化されたパスワードが返還されたノードであるか、該当のノードからパスワードが伝達された他のノードであってよい。 At step 1840, the computing device 200 may receive a signing request containing as parameters data for signing with a password and a private key from any node of the blockchain network. The arbitrary node may be a node to which the encrypted password is returned from the computer device 200 or another node to which the password is transmitted from the corresponding node.

段階1850で、コンピュータ装置200は、署名要請に応答し、パスワードによって暗号化されたプライベートキーを復号し、復号されたプライベートキーによってデータを署名することで、署名されたデータを生成してよい。 At step 1850, the computing device 200 may generate signed data by decrypting the password-encrypted private key in response to the signature request and signing the data with the decrypted private key.

段階1860で、コンピュータ装置200は、署名されたデータを返還してよい。このとき、署名されたデータは、データの署名を要請したノードに返還されてよい。 At step 1860, computing device 200 may return the signed data. At this time, the signed data may be returned to the node that requested the signing of the data.

一実施形態において、ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含んでよい。このとき、コンピュータ装置200は、コントラクトアドレスを複数のリーフチェーンそれぞれのジェネシスブロックに記録してよい。この場合、署名されたデータを受信する第1リーフチェーンで署名されたデータと第1リーフチェーンのジェネシスブロックに記録されたコントラクトアドレスとを比較することで、署名されたデータがルートチェーンから発送されたものであることを検証してよい。 In one embodiment, a blockchain network may include a root chain that manages data transmission between multiple leaf chains. At this time, the computer device 200 may record the contract address in the genesis block of each of the plurality of leaf chains. In this case, the signed data is sent from the root chain by comparing the signed data in the first leaf chain that receives the signed data with the contract address recorded in the genesis block of the first leaf chain. It may be verified that the

他の実施形態において、ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含んでよい。このとき、コンピュータ装置200は、コントラクトアドレスがルートチェーンのデータベースに保存されるようにコントラクトアドレスをルートチェーンに提供してよい。この場合、ルートチェーンで署名されたデータとルートチェーンのデータベースに保存されたコントラクトアドレスとを比較することで、署名されたデータが第1リーフチェーンから発送されたものであることを検証してよい。ルートチェーンは、上述したように、絶対信頼システムとして見なされてよい。 In other embodiments, a blockchain network may include a first leaf chain of multiple leaf chains with data transmission managed by a root chain. At this time, computing device 200 may provide the contract address to the root chain so that the contract address is stored in the root chain's database. In this case, it may be verified that the signed data originated from the first leaf chain by comparing the signed data on the root chain with the contract address stored in the root chain's database. . A root chain may be viewed as an absolute trust system, as described above.

以上のように、本発明の実施形態によると、ルートチェーンに基づいてリーフチェーンを追加する方式により、スケールアウトが可能なブロックチェーンで生成されるデータを認証する、データ認証方法およびシステムを提供することができる。 As described above, the embodiments of the present invention provide a data authentication method and system for authenticating data generated in a scalable blockchain by adding leaf chains based on the root chain. be able to.

上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。 The systems or devices described above may be realized by hardware components, software components, or a combination of hardware and software components. For example, the devices and components described in the embodiments may include, for example, processors, controllers, ALUs (arithmetic logic units), digital signal processors, microcomputers, FPGAs (field programmable gate arrays), PLUs (programmable logic units), microcontrollers, It may be implemented using one or more general purpose or special purpose computers, such as a processor or various devices capable of executing instructions and responding to instructions. The processing unit may run an operating system (OS) and one or more software applications that run on the OS. The processor may also access, record, manipulate, process, and generate data in response to executing software. For convenience of understanding, one processing device may be described as being used, but those skilled in the art will appreciate that the processing device may include multiple processing elements and/or multiple types of processing elements. You can understand. For example, a processing unit may include multiple processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.

ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記録媒体または装置に実現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。 Software may include computer programs, code, instructions, or a combination of one or more of these, to configure a processor to operate at its discretion or to independently or collectively instruct a processor. You can Software and/or data may be embodied in any kind of machine, component, physical device, virtual device, computer storage medium or device to be interpreted on or to provide instructions or data to a processing device. may be changed. The software may be stored and executed in a distributed fashion over computer systems linked by a network. Software and data may be recorded on one or more computer-readable recording media.

実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含んでよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであっても、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROM、DVDのような光媒体、フロプティカルディスクのような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。このような記録媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されてはならず、ネットワーク上で分散して存在するものであってもよい。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。 The method according to the embodiments may be embodied in the form of program instructions executable by various computer means and recorded on a computer-readable medium. The computer-readable media may include program instructions, data files, data structures, etc. singly or in combination. The program instructions recorded on the media may be those specially designed and constructed for an embodiment, or they may be of the kind known and available to those of skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks. , and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Such a recording medium may be a variety of recording means or storage means in the form of a single or multiple hardware combination, and should not be limited to media directly connected to a computer system, and may be used over a network. It may exist dispersedly. Examples of program instructions include high-level language code that is executed by a computer, such as using an interpreter, as well as machine language code, such as that generated by a compiler.

以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
As described above, the embodiments have been described based on the limited embodiments and drawings, but those skilled in the art will be able to make various modifications and variations based on the above description. For example, the techniques described may be performed in a different order than in the manner described and/or components such as systems, structures, devices, circuits, etc. described may be performed in a manner different from the manner described. Appropriate results may be achieved when combined or combined, opposed or substituted by other elements or equivalents.
Accordingly, different embodiments that are equivalent to the claims should still fall within the scope of the appended claims.

Claims (20)

ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置のデータ認証方法であって、
前記コンピュータ装置が含む少なくとも1つのプロセッサにより、暗号化されたプライベートキーとプライベートキーによって生成されるパブリックキーをパラメータとして受信する段階、
前記少なくとも1つのプロセッサにより、前記受信したパブリックキーによってコントラクトアドレスを生成する段階、
前記少なくとも1つのプロセッサにより、前記暗号化されたプライベートキーと前記コントラクトアドレスをデータベースに保存する段階、
前記少なくとも1つのプロセッサにより、署名するデータと前記暗号化されたプライベートキーを復号するためのパスワードをパラメータとして含む署名要請を受信する段階、
前記少なくとも1つのプロセッサにより、前記署名要請に応答し、前記パスワードによって前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで、署名されたデータを生成する段階、および
前記少なくとも1つのプロセッサにより、前記生成された署名されたデータを返還する段階
を含むことを特徴とする、データ認証方法。
A data authentication method for a computer device operating by a blockchain network contract, comprising:
receiving, as parameters, an encrypted private key and a public key generated from the private key by at least one processor of said computing device;
generating, by the at least one processor, a contract address with the received public key;
storing, by the at least one processor, the encrypted private key and the contract address in a database;
receiving, by the at least one processor, a signature request including as parameters data to be signed and a password for decrypting the encrypted private key;
generating signed data by the at least one processor in response to the signature request, decrypting the encrypted private key with the password, and signing the data with the decrypted private key; and returning, by the at least one processor, the generated signed data.
前記パスワードは、前記ブロックチェーンネットワークのブロックや、いずれのログにも保存されないセキュアタイプとして定義されることを特徴とする、請求項1に記載のデータ認証方法。 The data authentication method according to claim 1, characterized in that said password is defined as a secure type that is not stored in any block or in any log of said blockchain network. 前記ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含み、
前記データ認証方法は、
前記少なくとも1つのプロセッサにより、前記コントラクトアドレスを前記複数のリーフチェーンそれぞれのジェネシスブロックに記録する段階
をさらに含むことを特徴とする、請求項1または2に記載のデータ認証方法。
the blockchain network includes a root chain that manages data transmission between multiple leaf chains;
The data authentication method includes:
3. The method of claim 1 or 2, further comprising recording, by the at least one processor, the contract address in a genesis block of each of the plurality of leaf chains.
前記署名されたデータを受信する第1リーフチェーンで前記署名されたデータと前記第1リーフチェーンのジェネシスブロックに記録されたコントラクトアドレスとを比較することで、前記署名されたデータが前記ルートチェーンから発送されたものであることを検証することを特徴とする、請求項3に記載のデータ認証方法。 A first leaf chain that receives the signed data compares the signed data with a contract address recorded in a genesis block of the first leaf chain to determine whether the signed data is removed from the root chain. 4. A data authentication method according to claim 3, characterized by verifying that it was shipped. 前記ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含み、
前記データ認証方法は、
前記少なくとも1つのプロセッサにより、前記コントラクトアドレスが前記ルートチェーンのデータベースに保存されるように前記コントラクトアドレスを前記ルートチェーンに提供する段階
をさらに含むことを特徴とする、請求項1~4のいずれか一項に記載のデータ認証方法。
The blockchain network includes a first leaf chain of a plurality of leaf chains whose data transmission is managed by a root chain;
The data authentication method includes:
5. The step of providing, by the at least one processor, the contract address to the root chain so that the contract address is stored in a database of the root chain. The data authentication method according to item 1.
前記ルートチェーンで前記署名されたデータと前記ルートチェーンのデータベースに保存された前記コントラクトアドレスとを比較することで、前記署名されたデータが前記第1リーフチェーンから発送されたものであることを検証することを特徴とする、請求項5に記載のデータ認証方法。 verifying that the signed data was sent from the first leaf chain by comparing the signed data in the root chain with the contract address stored in the database of the root chain; 6. The data authentication method according to claim 5, characterized in that: 前記署名されたデータが記録されたブロックが、前記ブロックチェーンネットワークのチェーンに追加されることを特徴とする、請求項1~6のいずれか一項に記載のデータ認証方法。 The data authentication method according to any one of claims 1 to 6, characterized in that the block in which the signed data is recorded is added to the chain of the blockchain network. ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置のデータ認証方法であって、
前記コンピュータ装置が含む少なくとも1つのプロセッサにより、前記ブロックチェーンネットワークのノードのプライベートキーを暗号化して保存する段階、
前記少なくとも1つのプロセッサにより、前記暗号化されたプライベートキーを復号するためのパスワードを前記ノードのパブリックキーに暗号化して保存する段階、
前記少なくとも1つのプロセッサにより、前記ノードのパブリックキーによって暗号化されたパスワードを前記ノードに返還する段階、
前記少なくとも1つのプロセッサにより、前記ブロックチェーンネットワークの任意のノードから前記パスワードおよび前記プライベートキーによって署名するためのデータをパラメータとして含む署名要請を受信する段階、
前記少なくとも1つのプロセッサにより、前記署名要請に応答し、前記パスワードによって前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで、署名されたデータを生成する段階、および
前記少なくとも1つのプロセッサにより、前記署名されたデータを返還する段階
を含むことを特徴とする、データ認証方法。
A data authentication method for a computer device operating by a blockchain network contract, comprising:
encrypting and storing private keys of nodes of the blockchain network by at least one processor included in the computing device;
encrypting and storing, by the at least one processor, a password for decrypting the encrypted private key in the node's public key;
returning, by the at least one processor, to the node a password encrypted with the node's public key;
receiving, by the at least one processor, a signature request including data for signing with the password and the private key as parameters from any node of the blockchain network;
generating signed data by the at least one processor in response to the signature request, decrypting the encrypted private key with the password, and signing the data with the decrypted private key; and returning, by the at least one processor, the signed data.
前記ノードは、前記ブロックチェーンネットワークで最初に生成されるノードとして前記ブロックチェーンネットワークのシステムコントラクトを設置する過程で署名可能コントラクトを設置し、
前記データ認証方法は、前記署名可能コントラクトによって動作するコンピュータ装置によって実行されることを特徴とする、請求項8に記載のデータ認証方法。
The node installs a signable contract in the process of installing a system contract of the blockchain network as the first node generated in the blockchain network;
9. The data authentication method of claim 8, wherein said data authentication method is performed by a computing device operating with said signable contract.
前記パスワードは、前記ブロックチェーンネットワークのブロックや、いずれのログにも保存されないセキュアタイプとして定義されることを特徴とする、請求項8または9に記載のデータ認証方法。 10. A data authentication method according to claim 8 or 9, characterized in that said password is defined as a secure type that is not stored in any block or in any log of said blockchain network. 前記ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含み、
前記データ認証方法は、
前記少なくとも1つのプロセッサにより、コントラクトアドレスを前記複数のリーフチェーンそれぞれのジェネシスブロックに記録する段階
をさらに含むことを特徴とする、請求項8~10のいずれか一項に記載のデータ認証方法。
the blockchain network includes a root chain that manages data transmission between multiple leaf chains;
The data authentication method includes:
The data authentication method according to any one of claims 8 to 10, further comprising: recording a contract address in a genesis block of each of said plurality of leaf chains by said at least one processor.
前記署名されたデータを受信する第1リーフチェーンで前記署名されたデータと前記第1リーフチェーンのジェネシスブロックに記録されたコントラクトアドレスとを比較することで、前記署名されたデータが前記ルートチェーンから発送されたものであることを検証することを特徴とする、請求項11に記載のデータ認証方法。 A first leaf chain that receives the signed data compares the signed data with a contract address recorded in a genesis block of the first leaf chain to determine whether the signed data is removed from the root chain. 12. A data authentication method according to claim 11, characterized by verifying that it was shipped. 前記ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第1リーフチェーンを含み、
前記データ認証方法は、
前記少なくとも1つのプロセッサにより、コントラクトアドレスが前記ルートチェーンのデータベースに保存されるように前記コントラクトアドレスを前記ルートチェーンに提供する段階
をさらに含むことを特徴とする、請求項8~12のいずれか一項に記載のデータ認証方法。
The blockchain network includes a first leaf chain of a plurality of leaf chains whose data transmission is managed by a root chain;
The data authentication method includes:
providing, by the at least one processor, the contract address to the root chain so that the contract address is stored in a database of the root chain. data authentication method described in Section 3.1.
前記ルートチェーンで前記署名されたデータと前記ルートチェーンのデータベースに保存された前記コントラクトアドレスとを比較することで、前記署名されたデータが前記第1リーフチェーンから発送されたものであることを検証することを特徴とする、請求項13に記載のデータ認証方法。 verifying that the signed data was sent from the first leaf chain by comparing the signed data in the root chain with the contract address stored in the database of the root chain; 14. The data authentication method according to claim 13, characterized in that: 前記ブロックチェーンネットワークの他のノードは、前記暗号化されたパスワードが返還されたノードを検索して前記ノードに前記他のノードのパブリックキーを送信し、前記ノードから前記他のノードのパブリックキーによって暗号化されたパスワードを受信して前記他のノードに保存することを特徴とする、請求項8~14のいずれか一項に記載のデータ認証方法。 Another node in the blockchain network searches for a node to which the encrypted password has been returned, transmits the public key of the other node to the node, and uses the public key of the other node from the node. 15. The data authentication method according to any one of claims 8 to 14, wherein an encrypted password is received and stored in said other node. 前記プライベートキーを復号するためのパスワードを周期的に更新するか、管理者からの要請にしたがって更新する段階
をさらに含む、請求項8~15のいずれか一項に記載のデータ認証方法。
The data authentication method according to any one of claims 8 to 15, further comprising: updating a password for decrypting the private key periodically or at the request of an administrator.
請求項1~16のうちのいずれか一項に記載の方法をコンピュータ装置に実行させるためのコンピュータプログラム。 A computer program for causing a computer device to perform the method according to any one of claims 1-16. 請求項1~16のうちのいずれか一項に記載の方法をコンピュータ装置に実行させるためのコンピュータプログラムが記録されていることを特徴とする、コンピュータ読み取り可能な記録媒体。 A computer-readable recording medium, characterized in that a computer program for causing a computer device to execute the method according to any one of claims 1 to 16 is recorded. ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置であって、
前記コンピュータ装置で読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサにより、
暗号化されたプライベートキーとプライベートキーによって生成されるパブリックキーをパラメータとして受信し、
前記受信したパブリックキーによってコントラクトアドレスを生成し、
前記暗号化されたプライベートキーと前記コントラクトアドレスをデータベースに保存し、
署名するデータと前記暗号化されたプライベートキーを復号するためのパスワードをパラメータとして含む署名要請を受信し、
前記パスワードを利用して前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで、署名されたデータを生成し、
前記生成された署名されたデータを返還すること
を特徴とする、コンピュータ装置。
A computer device that operates according to a blockchain network contract,
at least one processor implemented to execute instructions readable by said computing device;
by the at least one processor;
receives as parameters an encrypted private key and a public key generated by the private key,
generating a contract address with the received public key;
store the encrypted private key and the contract address in a database;
receiving a signature request including as parameters data to be signed and a password for decrypting the encrypted private key;
decrypting the encrypted private key using the password and signing the data with the decrypted private key to generate signed data;
A computer device that returns the generated signed data.
ブロックチェーンネットワークのコントラクトによって動作するコンピュータ装置であって、
前記コンピュータ装置で読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサにより、
前記ブロックチェーンネットワークのノードのプライベートキーを暗号化して保存し、
前記暗号化されたプライベートキーを復号するためのパスワードを前記ノードのパブリックキーによって暗号化して保存し、
前記ノードのパブリックキーによって暗号化されたパスワードを前記ノードに返還し、
前記ブロックチェーンネットワークの任意のノードから、前記パスワードおよび前記プライベートキーによって署名するためのデータをパラメータとして含む署名要請を受信し、
前記署名要請に応答し、前記パスワードによって前記暗号化されたプライベートキーを復号し、前記復号されたプライベートキーによって前記データを署名することで、署名されたデータを生成し、
前記署名されたデータを返還すること
を特徴とする、コンピュータ装置。
A computer device that operates according to a blockchain network contract,
at least one processor implemented to execute instructions readable by said computing device;
by the at least one processor;
encrypting and storing private keys of nodes of said blockchain network;
encrypting and storing a password for decrypting the encrypted private key with the public key of the node;
returning to the node a password encrypted by the node's public key;
receiving from any node of the blockchain network a signing request containing as parameters data to be signed by the password and the private key;
generating signed data by, in response to the signature request, decrypting the encrypted private key with the password and signing the data with the decrypted private key;
A computer device that returns the signed data.
JP2021554654A 2019-03-15 2019-03-15 Methods and systems for authenticating blockchain-generated data Active JP7254954B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2019/003002 WO2020189801A1 (en) 2019-03-15 2019-03-15 Method and system for authenticating data generated in block-chain by using signable contract

Publications (2)

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

Family

ID=72519256

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021554654A Active JP7254954B2 (en) 2019-03-15 2019-03-15 Methods and systems for authenticating blockchain-generated data

Country Status (3)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422159A (en) * 2020-10-13 2022-04-29 北京金山云网络技术有限公司 Data processing method and device based on block chain
KR102532162B1 (en) * 2022-10-27 2023-05-12 주식회사 풀스택 Method for verifying ownership of a blockchain wallet without a signature function and system using thereof

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 (en) 2015-12-16 2016-10-05 주식회사 코인플러그 Ccertificate authentication system and method based on block chain
KR101637863B1 (en) 2016-01-05 2016-07-08 주식회사 코인플러그 Security system and method for transmitting a password
KR101723405B1 (en) * 2016-07-04 2017-04-06 주식회사 코인플러그 Certificate authentication system and method based on block chain
KR101903620B1 (en) 2017-06-23 2018-10-02 홍석현 Method for authorizing peer in blockchain based distributed network, and server using the same

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
JP2022531642A (en) 2022-07-08
KR20210096287A (en) 2021-08-04
KR102572834B1 (en) 2023-08-30
WO2020189801A1 (en) 2020-09-24

Similar Documents

Publication Publication Date Title
US11533164B2 (en) System and method for blockchain-based cross-entity authentication
US20220084020A1 (en) System and method for scaling blockchain networks with secure off-chain payment hubs
CN111164935B (en) Systems and methods for providing privacy and security protection in blockchain-based private transactions
JP7378451B2 (en) digital fiat currency
JP6370016B2 (en) Hierarchical network system, node and program used therefor
CN110620810B (en) Non-linked ownership of continuous asset transfer over blockchain
JP6877448B2 (en) Methods and systems for guaranteeing computer software using distributed hash tables and blockchain
JP7304963B2 (en) Program, data authentication method, and computer device
JP2021168171A (en) Method and system for recording multiple transactions on block chain
Bozic et al. Securing virtual machine orchestration with blockchains
KR20190132047A (en) Method for Providing Service Platform based on Blockchain by using Smart Contract
KR20190132054A (en) Method for Providing Cryptocurrency Trading Platform by using Smart Contract based on Blockchain
KR20190132159A (en) Method for Providing Cryptocurrency Trading Platform based on Blockchain by using Smart Contract
KR20190132052A (en) Smart Contract based on Blockchain for Cryptocurrency Trading Platform
KR20230043800A (en) Server of distributing digital content
JP7254954B2 (en) Methods and systems for authenticating blockchain-generated data
KR20230005353A (en) Sanctioned Events in a Decentralized Database
TW202139127A (en) Compute services for a platform of services associated with a blockchain
JP2020109617A (en) Transaction processing system and method for enabling extention of block chain
KR102003731B1 (en) System and method for protecting crypto currency using virtual machine
Alshinwan et al. Integrated cloud computing and blockchain systems: A review
JP2020046975A (en) Fund transfer system and method for virtual currency
KR20190132160A (en) Method for Providing Cryptocurrency Trading Platform by using Smart Contract
WO2021117515A1 (en) Electronic asset management method, and electronic asset management device
Singh et al. IoT–Blockchain Integration-Based Applications Challenges and Opportunities

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