JP7254954B2 - Methods and systems for authenticating blockchain-generated data - Google Patents
Methods and systems for authenticating blockchain-generated data Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 119
- 230000008569 process Effects 0.000 claims description 40
- 230000005540 biological transmission Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 19
- 238000012546 transfer Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000011900 installation process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 235000014435 Mentha Nutrition 0.000 description 1
- 241001072983 Mentha Species 0.000 description 1
- 235000006679 Mentha X verticillata Nutrition 0.000 description 1
- 235000002899 Mentha suaveolens Nutrition 0.000 description 1
- 235000001636 Mentha x rotundifolia Nutrition 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 235000014569 mints Nutrition 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1089—Hierarchical topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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/0833—Key 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/0836—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic 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.
以下、実施形態について、添付の図面を参照しながら詳しく説明する。 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
複数の電子機器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
通信方式が限定されることはなく、ネットワーク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
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140にサービス(一例として、ビデオ通話サービス、金融サービス、決済サービス、ソーシャルネットワークサービス、メッセージングサービス、検索サービス、メールサービス、コンテンツ提供サービス、および/または質疑応答サービスなど)を提供するシステムであってよい。
Each of
図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
このとき、図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,
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
通信モジュール230は、ネットワーク170を介してコンピュータ装置200が他の電子機器(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御にしたがってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク170を経てコンピュータ装置200の通信インタフェース230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどは、プロセッサ220やメモリ210に伝達されてよく、ファイルなどは、コンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
The
入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、カメラ、またはマウスなどの装置を、出力装置は、ディスプレイ、スピーカのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、コンピュータ装置200と1つの装置で構成されてもよい。
Input/
また、他の実施形態において、コンピュータ装置200は、図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバやデータベースなどのような他の構成要素をさらに含んでもよい。
Also, in other embodiments,
図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
ブロックチェーンネットワーク300において、ルートチェーン310は、絶対信頼システムとして見なされてよく、それぞれのリーフチェーン320および330は、ルートチェーン310に自身が信頼システムであるということを証明しなければならない。このとき、それぞれのリーフチェーン320および330は、個別のサービスと連係してよく、新たなサービスが追加されるときには新たなリーフチェーンが追加されてもよい。言い換えれば、図3の実施形態では、2つのリーフチェーン320および330を示しているが、3つ以上のリーフチェーンを含んでもよく、これは、ブロックチェーンの拡張が可能であることを意味してよい。ここで、「サービス」とは、同一または互いに異なる主体がネットワークを介して自身のユーザに提供するオンラインサービスを含んでよい。一例として、互いに異なる複数の銀行が提供するインターネットバンキングサービスそれぞれに対応する複数のリーフチェーンが構成されてよい。または、互いに異なる複数のソーシャルネットワークサービスそれぞれに対応する複数のリーフチェーンが構成されてもよい。それぞれのリーフチェーン320および330は、ルートチェーン310にブロックのハッシュを記録することによって信頼が承認されなければならない。一例として、マークルツリールートハッシュ(merkle tree root hash)が活用されてよい。
In
ルートチェーン310ではユーザ間のコイン交換は行わず、コイン交換は、それぞれのリーフチェーン320および330の内部でなされるか、および/またはリーフチェーン320および330間でなされてよい。このとき、リーフチェーン320および330間のコイン交換は、リレイヤ340を介してルートチェーン310が仲裁および管理してよい。それぞれのリーフチェーン320および330には、少なくとも1つのDApp(Decentralized Application)が含まれてよい。ここで、DApp(Decentralized Application)とは、バックエンドコードが分散されたP2P(peer-to-peer)ネットワーク上で実行し(あるいは、データの呼び出しや登録をブロックチェーンデータベースに行い)、これをフロントエンドでインタフェースとして提供するアプリケーションを意味する。このとき、それぞれのリーフチェーン320および330では、DAppの必要により、チェーンまたはコイン交換とは関係のないスマートコントラクトを設置してよく、これをルートチェーン310では関与しない。それぞれのリーフチェーン320および330でチェーン間のコイン交換のためのプロトコルを有するスマートコントラクトを設置しようとする場合には、ルートチェーン310からスマートコントラクトを設置するための許可を得なければならない。ルートチェーン310から許可が得られなかったスマートコントラクトを利用したチェーン間では、コイン交換がなされないように制限されてよい。
それぞれのリーフチェーン320および330の内部でのコイン交換は、ルートチェーン310を経る必要がなくそれぞれのリーフチェーン320および330で処理されてよく、処理された内容が含まれたすべてのブロックの要約情報(一例として、上述したマークルツリールートハッシュ)をルートチェーン310に記録してよい。この反面、リーフチェーン320および330間のコイン交換はルートチェーン310を介さなければならず、それぞれのリーフチェーン320および330のブロックとルートチェーン310のブロックにはコイン交換の処理に関する内容が記録されなければならない。このとき、リーフチェーン320および330間のコイン交換は、リレイヤ340を経てなされてよい。
Coin exchanges within each
図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.
ルートチェーン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
また、リーフチェーン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
リレイヤ340は、ルートチェーン310とリーフチェーン320および330のブロック生成を観察しながら、ルートチェーン310とリーフチェーン320および330に記録されるか、および/または伝達が要求される情報を呼び出ししてよい。リレイヤ340は、プロデューサ(Producer)441、カフカ(Kafka)442、インタチェーンコンシューマ(InterChain Consumer)443、インタチェーンフェイルオーバー(InterChain Failover)444、データベース(Database)445を含んでよい。
プロデューサ441は、ルートチェーン310を含むすべてのチェーンの新たに生成されたブロックの情報を収集してカフカ442に入力してよい。カフカ442は、一種のキューサーバであって、収集した情報をキューに保存して順に提供してよい。このとき、インタチェーンコンシューマ443は、チェーンごとに呼び出しが要求されるイベントをフィルタリングしてよい。イベントによって複数のフィルタリングが要求されてもよい。インタチェーンコンシューマ443は、各チェーンに呼び出しをするときに、署名のためにチェーンごとに個別のユーザを生成し、ユーザの権限をスマートコントラクトに記録してよい。
インタチェーンコンシューマ443は、次の(1)~(7)のようなイベントなどを感知してよい。
The
(1)リーフチェーンでの送金要請イベント
(1-1)インタチェーンコンシューマ443は、リーフチェーンでの送金要請イベントを感知し、ルートチェーンに送金要請内容を伝達してよい。
(1) Remittance Request Event in Leaf Chain (1-1) The
(2)ルートチェーンでの送金要請イベント
(2-1)インタチェーンコンシューマ443は、ルートチェーンでの送金要請イベントを感知し、送金要請を受信するリーフチェーンに送金要請内容を伝達してよい。
(2) Remittance Request Event on Root Chain (2-1) The
(2-2)インタチェーンコンシューマ443は、受信するリーフチェーンへの伝達が失敗したときに、送金要請を受信するリーフチェーンの識別情報を含む送金失敗情報をルートチェーンに伝達してよい。
(2-2) The
(3)ルートチェーンでの送金要請失敗イベント
(3-1)インタチェーンコンシューマ443は、送金を要請したリーフチェーンに送金失敗内容を伝達してよい。
(3) Remittance request failure event in the root chain (3-1) The
(4)リーフチェーンでの送金完了イベント
(4-1)インタチェーンコンシューマ443は、ルートチェーンに送金完了内容を伝達してよい。
(4) Remittance Completion Event in Leaf Chain (4-1) The
(5)ルートチェーンでの送金完了イベント
(5-1)インタチェーンコンシューマ443は、送金を要請したリーフチェーンに送金完了内容を伝達してよい。
(5) Remittance Completion Event in Root Chain (5-1) The
(6)ルートチェーンでのコイン発行イベント
(6-1)インタチェーンコンシューマ443は、コインが発行されるリーフチェーンに発行内容を伝達してよい。
(6) Coin Issuance Event on Root Chain (6-1) The
(7)リーフチェーンでのブロック生成イベント
(7-1)インタチェーンコンシューマ443は、ルートチェーンにブロックのマークルツリールートハッシュを伝達してよい。
(7) Block generation event on leaf chain (7-1)
インタチェーンフェイルオーバー444は、(3-1)、(4-1)、(5-1)、(6-1)、および(7-1)が正常に伝達されるように障害克服機能を提供してよく、データベース445は、インタチェーンコンシューマ443およびインタチェーンフェイルオーバー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
段階520で、ブロックチェーンネットワーク300は、リーフチェーンに、チェーン間またはコントラクト間のコイン送金を担当するリーフチェーンマネージャコントラクトを設置してよい。
At
段階530で、ブロックチェーンネットワーク300は、ルートチェーンに、該当のリーフチェーンを処理することのできるコントラクト(以下、リーフチェーンコントラクト)を設置してよい。
In
段階540で、ブロックチェーンネットワーク300は、設置されたルートチェーンのリーフチェーンコントラクトのアドレスをルートチェーンマネージャコントラクトに登録してよい。以下で説明する実施形態では、リーフチェーンの署名可能コントラクトのアドレスがルートチェーンマネージャコントラクトにさらに登録されてもよい。また他の実施形態では、リーフチェーンを代表するパブリックアドレスがルートチェーンマネージャコントラクトに登録されてもよい。
At
段階550で、ブロックチェーンネットワーク300は、ルートチェーンのリーフチェーンコントラクトにアクセス可能なリレイヤユーザを追加してよい。
At
段階560で、ブロックチェーンネットワーク300は、リーフチェーンのリーフチェーンマネージャコントラクトにアクセス可能なリレイヤユーザを追加してよい。
At
このとき、段階550および段階560のリレイヤユーザは、同一するユーザであってもよいし、互いに異なるユーザであってもよい。リーフチェーンごとに、そしてルートチェーンとも互いに異なる個別のリレイヤユーザを設定して活用することが、保安上において有利となることもある。ここで、リレイヤユーザは、ブロックチェーンネットワーク300が提供するサービスのアカウントに対応してよい。
At this time, the relay users in
図6は、本発明の一実施形態における、新たなサービスを追加する過程の例を示したフローチャートである。 FIG. 6 is a flowchart illustrating an example process of adding a new service in one embodiment of the invention.
段階610で、ブロックチェーンネットワーク300は、リーフチェーンに該当のサービスのコントラクトを設置してよい。設置したコントラクトのアドレスは、該当のサービスを区分する値として使用されてよい。該当のサービスは、チェーン間のコイン交換プロトコルを備えたコントラクトであってよい。
At
段階620で、ブロックチェーンネットワーク300は、リーフチェーンのリーフチェーンマネージャコントラクトに、該当のサービスに対して設置されたコントラクトのアドレスを登録してよい。例えば、図5の段階520では、リーフチェーンに、チェーン間またはコントラクト間のコイン送金を担当するリーフチェーンマネージャコントラクトを設置することについて説明した。このようなリーフチェーンマネージャコントラクトにサービスのためのコントラクトのアドレスが登録されてよい。
At
段階630で、ブロックチェーンネットワーク300は、設置されたコントラクトのアドレスをルートチェーンのルートチェーンマネージャコントラクトに登録してよい。このとき、設置されたコントラクトのアドレスは、ルートチェーンマネージャコントラクトの管理者権限によって登録されてよい。リーフチェーンのサービスに対して設置されたコントラクトのアドレスをルートチェーンに設置された該当のリーフチェーンのリーフチェーンコントラクトとともにルートチェーンマネージャコントラクトに登録すれば、ルートチェーンのリーフチェーンコントラクトにもリーフチェーンのサービスに対して設置されたコントラクトのアドレスが該当のリーフチェーンのサービスとして登録されてよい。
At
図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
段階720で、インタチェーンコンシューマは、該当のサービスに対するコイン発行イベントを感知し、該当のリーフチェーンのリーフチェーンマネージャコントラクトにサービスのコイン発行を要請してよい。
At
段階730で、リーフチェーンマネージャコントラクトは、該当のサービスを検索してコインを発行してよい。このとき、コインは、該当のサービスのコントラクトを設置するときに入力したサービスオペレータ(一例として、図5の段階560で追加されたリレイヤユーザ)に発行されてよい。
At
図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
段階810で、リーフチェーンA320は、ユーザaの、リーフチェーンB330のユーザbに対するコイン交換要請(送金要請)を受信してよい。このとき、リーフチェーンA320は、ユーザaの残高などを把握し、コイン交換要請が正常な要請である場合にリーフチェーンA320のブロックに記録してよい。交換要請されたコイン(送金要請されたコイン)は、リーフチェーンA320が含むリーフチェーンマネージャコントラクトによってユーザaの残高から差し引かれてよく、使用できないようにロックされてよい。例えば、リーフチェーンA320のリーフチェーンマネージャコントラクトは、送金要請された金額だけユーザaの残高と送金要請するサービスの残高を確認した後、リーフチェーンA320の通貨量から差し引かれる金額が使用されないようにロックを設定してよい。差し引かれたユーザaの金額に関する情報は、エスクローコントラクトに記録されてよい。このような送金の成功に関する記録は、プロデューサ441によってカフカ442に記録されてよい。送金要請が正常でない場合、リーフチェーンA320は、送金要請の失敗内容をブロックに記録してよい。また、リーフチェーンA320は、送金要請が失敗したときにイベントを記録しないことにより、送金が発生しないようにしてよい。
At
段階820で、インタチェーンコンシューマ443は、リーフチェーンA320からリーフチェーンB330への送金要請イベントを感知し、ルートチェーン310に該当の送金要請を伝達してよい。送金要請イベントの感知は、プロデューサ441の取引収集によって感知されてよく、インタチェーンコンシューマ443は、感知された送金要請イベントの感知に応答してルートチェーン310に該当の送金要請を伝達してよい。
In
段階830で、ルートチェーン310は、リーフチェーンA320で発行された総コイン量を、送金要請情報を利用することで分析することによって該当の送金要請が正常な要請であるかを確認し、該当の送金要請が正常な要請である場合は、リーフチェーンA320からリーフチェーンB330へのコイン交換要請をブロックに記録してよい。交換要請は、送金するコイン量だけ使用されないようにロックされてよい。また、ルートチェーン310は、該当の送金要請が正常な要請でない場合は、失敗内容をブロックに記録してよい。失敗として記録された送金要請は、再びインタチェーンコンシューマ443で送金失敗イベントとして感知されてリーフチェーンA320に伝達されてよく、送金失敗イベントを受信したリーフチェーンA320は、ロックされたコインを解除して再びユーザaに返還してよい。
In
段階840で、インタチェーンコンシューマ443は、ルートチェーン310からリーフチェーンB330への送金要請イベントを感知し、リーフチェーンB330に該当の送金要請を伝達してよい。リーフチェーンB330が正常に作動せずに呼び出しが失敗する場合は、再びルートチェーン310にリーフチェーンB330のシステム異常による伝達失敗内容を送信してよい。失敗として記録された要請は、再びインタチェーンコンシューマ443で送金失敗イベントとして感知されてリーフチェーンA320に伝達されてよく、送金失敗イベントを受信したリーフチェーンA320は、ロックされたコインを解除して再びユーザaに返還してよい。
In
段階850で、リーフチェーンB330は、該当の送金要請が正常な要請である場合は、ユーザbにコインを送金し、リーフチェーンB330の全体通貨量を送金されたコイン量だけ増加させてよい。送金要請が失敗する場合には、失敗内容をブロックに記録してよい。
In
段階860で、インタチェーンコンシューマ443は、リーフチェーンBの送金完了結果をイベントとして感知し、ハッシュと成功の可否をルートチェーン310に伝達してよい。
In
段階870で、ルートチェーン310は、送金結果を受信して送金失敗と送金成功にしたがって処理してよく、その結果をハッシュとともにブロックに記録してよい。送金が成功した場合、ルートチェーン310は、ロックされたコイン送金要請を解除してリーフチェーンA320からリーフチェーンB330への送金を行い、それぞれの通貨量を変更してよい。送金が失敗した場合、ルートチェーン310は、ロックされたコイン送金要請を解除して再びリーフチェーンA320に返還してよい。
At
段階880で、インタチェーンコンシューマ443は、ルートチェーン310で処理した送金結果イベントを感知し、リーフチェーンA320にその結果を伝達してよい。
At
段階890で、リーフチェーンA320は、送金結果を受信し、成功の場合は、ロックされたコインを解除してリーフチェーンA320の全体通貨量を調節(全体通貨量から送金金額だけ差し引く)してよい。送金が失敗した場合は、リーフチェーンA320は、ロックされたコインを解除してユーザaに返還してよい。リーフチェーンA320は、このような送金結果を、ルートチェーン310に記録されたハッシュとともにブロックに記録してよい。
At
図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
(2)プロデューサ441は、(1)で生成された取引を収集してよく、インタチェーンコンシューマ443は、ルートチェーン310のリーフチェーンAコントラクト412に送金を要請してよい。
(2)
(3)リーフチェーンAコントラクト412は、ルートチェーンマネージャコントラクト411によって送金要請情報をルートチェーン310に対して個別に記録してよい。このとき、リーフチェーンマネージャAコントラクト412が管理するDApp1(920)の全体通貨量を送金金額だけ差し引いてよい。
(3) Leaf
(4)プロデューサ441は、(3)で生成された取引を収集してよく、インタチェーンコンシューマ443は、送金を受けるサービスがあるリーフチェーンB330のリーフチェーンマネージャコントラクトB940に送金を要請してよい。
(4)
(5)リーフチェーンB330のリーフチェーンマネージャコントラクトB940は、送金しようとするサービスであるDApp3(950)を呼び出し、DApp3(950)のコントラクトからユーザbに送金がなされるようにしてよい。このとき、DApp3(950)のコントラクトは、リーフチェーンB330の全体通貨量も増加させてよい。
(5) Leaf chain
(6)プロデューサ441は、(5)で生成された取引を収集してよく、インタチェーンコンシューマ443は、ルートチェーン310のリーフチェーンBコントラクト413に送金完了を要請してよい。
(6)
(7)ルートチェーン310のリーフチェーンBコントラクト413は、ルートチェーンマネージャコントラクト411に該当の送金要請のエスクロー(送金要請記録)情報をインポートして送金完了を処理してよい。送金が成功した場合、リーフチェーンBコントラクト413が管理するDApp3950では送金金額分だけリーフチェーンB330の全体通貨量を増加させてよく、ルートチェーン310のルートチェーンマネージャコントラクト411から該当の送金要請記録が削除されてよい。送金が失敗した場合、リーフチェーンAコントラクト412に登録された、送金要請したサービスであるDApp1(920)では送金金額分だけリーフチェーンA320の全体通貨量を再び増加させてよく、その後、ルートチェーン310のルートチェーンマネージャコントラクト411から該当の送金要請記録が削除されてよい。
(7) The leaf
(8)プロデューサ441は、(7)で生成された取引を収集してよく、インタチェーンコンシューマ443は、送金したリーフチェーンA320のリーフチェーンマネージャコントラクトA910に送金完了を要請してよい。
(8) The
(9)リーフチェーンA320のリーフチェーンマネージャコントラクトA910は、送金完了情報を受信し、該当の交換取引ハッシュが完了したことを記録し、送金要請記録にある該当の要請を削除してよい。送金が失敗した場合、リーフチェーンマネージャコントラクトA910は、送金要請記録にある金額をユーザaに再び返還してよく、DApp1(920)の全体通貨量も送金金額分だけ再び増加させた後、送金要請記録から該当の要請を削除してよい。
(9) Leaf Chain
実施形態によって、リレイヤは、チェーンごとに存在してもよい。例えば、図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
このようなブロックチェーンネットワーク300でチェーン間にデータを伝達するときに、伝達するシステムで伝達するデータを変調することがある。一例として、リーフチェーンA320からルートチェーン310にデータを伝達するときに、リーフチェーンA320でデータを変調する可能性が存在する。特に、リーフチェーンをパブリックブロックチェーンの形態に確張するためにリーフチェーンごとにリレイヤが実現される場合、このようなリレイヤに対する依存度を減らし、プロトコル端でデータ認証の問題を解決する必要がある。このために、ブロックチェーンネットワーク300は、以下のような5つの要求事項を有する。
When transmitting data between chains in the
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
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
図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
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
図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
一方、リーフチェーンでは、内部で処理した内容と伝達する内容とが異ならないようにしなければならない。このために、送金を処理したトランザクションのマークルツリーの証明ハッシュリストを、処理結果とともにイベントとして伝達するようにしなければならない。監視子が存在するのであれば、マークルツリーの証明情報まで伝達するかを決定する必要がある。伝達するイベント情報をコントラクトのプライベートキーによって署名してイベントに記録してよく、この場合、該当のトランザクションが処理されたということは分かるが、処理内容を変調したかどうかは把握することができないため、監視子が必要となることもある。このとき、監視子は、該当のブロックが存在するかどうかと、該当のトランザクションがイベントとして伝達したデータとともに、送金が成功したか失敗したかを確認してよい。監視子によって不正が発見されれば、該当のリーフチェーンには不利益が提供されてよい。ここで、監視子は、上述した機能を実行するノードの形態で実現されてよい。 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
過程1は、リーフチェーン1(1420)で送金要請が正常な要請であるかを確認した後、問題がない場合には、送金要請に関する情報をルートチェーン1410に伝達する過程の例である。
過程2は、ルートチェーン1410で送金要請が正常な要請であるかを確認した後、問題がない場合には、リーフチェーン2(1430)に送金が可能であるかに関する確認要請を送信する過程の例である。
過程3は、リーフチェーン2(1430)で送金要請が受信可能な要請であるかを確認した後、問題がない場合には、ルートチェーン1410に受信が可能であるという応答を送信する過程の例である。
過程4は、ルートチェーン1410がリーフチェーン1(1420)およびリーフチェーン2(1430)それぞれに、送金金額を差し引いたり増額したりする領収証を発行する過程の例である。過程4.1は、ルートチェーン1410がリーフチェーン1(1420)に送金金額を差し引くための領収証を発行する過程の例であり、過程4.2は、ルートチェーン1410がリーフチェーン2(1430)に送金金額を増額するための領収証を発行する過程の例である。各チェーンでは重複差引や重複増額が発生しないように管理されてよい。
以下では、スマートコントラクトの構成について説明する。 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
段階1510で、コンピュータ装置200は、ブロックチェーンネットワークのチェーンを代表するプライベートキーを、ブロックチェーンネットワークでの合意に参加する少なくとも1つの他のノードと共有してよい。このとき、ノードは、ブロックチェーンネットワークでの合意をなすように予め設定された複数のノードのうちの1つであってよく、少なくとも1つの他のノードも、ブロックチェーンネットワークでの合意をなすように予め設定された複数のノードに含まれてよい。
At
本実施形態に係るデータ認証方法は、上述した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
段階1520で、コンピュータ装置200は、プライベートキーを利用して生成されるパブリックキーを利用してブロックチェーンネットワークのパブリックアドレスを生成してよい。上述したように、パブリックアドレスは、プライベートキーによって署名されたデータが該当のブロックチェーンネットワークから発送されたものであることを検証するために提供されてよい。
At
一実施形態として、ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含んでよい。この場合、コンピュータ装置200は、生成されたパブリックアドレスを複数のリーフチェーンそれぞれのジェネシスブロックに記録してよい。このとき、署名されたデータが送信されたリーフチェーンで署名されたデータとリーフチェーンのジェネシスブロックに記録されたパブリックアドレスとを比較することで、署名されたデータがルートチェーンから発送されたものであることを検証してよい。
As one embodiment, a blockchain network may include a root chain that manages data transmission between multiple leaf chains. In this case, the
他の実施形態として、ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第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
段階1530で、コンピュータ装置200は、ブロックチェーンネットワークから他のブロックチェーンネットワークに伝達しようとするデータを、ブロックチェーンネットワークに設置されたコントラクトによってプライベートキーで署名してよい。このとき、署名されたデータが記録されたブロックがブロックチェーンネットワークのチェーンに追加されてよい。
At
段階1540で、コンピュータ装置200は、署名されたデータをコントラクトによって他のブロックチェーンネットワークに伝達してよい。このとき、署名されたデータとパブリックアドレスとの比較により、署名されたデータがブロックチェーンネットワークから発送されたものであることが検証されてよい。
At
図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
段階1610で、コンピュータ装置200は、ノードのプライベートキーを利用してノードのパブリックアドレスを生成してよい。ノードのプライベートキーは、ノードがブロックチェーンネットワークで合意のために有している固有のプライベートキーであってよい。
At
段階1620で、コンピュータ装置200は、ブロックチェーンネットワークから他のブロックチェーンネットワークに伝達しようとするデータを、ノードのプライベートキーを利用して署名してよい。このとき、署名されたデータが記録されたブロックがブロックチェーンネットワークのチェーンに追加されてよい。
At
段階1630で、コンピュータ装置200は、署名されたデータを他のブロックチェーンネットワークに伝達してよい。このとき、前記パブリックアドレスを利用することで、前記署名されたデータが前記ブロックチェーンネットワークから発送されたものであることが検証されてよい。
At
一実施形態において、ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含んでよい。このとき、ブロックチェーンネットワークで合意をなすように予め設定された複数のノード(本実施形態に係るコンピュータ装置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
他の実施形態において、ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第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
また他の実施形態において、ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含んでよい。このとき、ブロックチェーンネットワークで合意をなすように予め設定された複数のノード(本実施形態に係るコンピュータ装置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
また他の実施形態において、ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第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
図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
段階1710で、コンピュータ装置200は、暗号化されたプライベートキーとプライベートキーで生成されるパブリックキーをパラメータとして受信してよい。
At
段階1720で、コンピュータ装置200は、受信したパブリックキーによってコントラクトアドレスを生成してよい。
At
段階1730で、コンピュータ装置200は、暗号化されたプライベートキーとコントラクトアドレスをデータベースに保存してよい。
At
段階1740で、コンピュータ装置200は、署名するデータと暗号化されたプライベートキーを復号するためのパスワードをパラメータとして含む署名要請を受信してよい。ここで、パスワードは、ブロックチェーンネットワークのブロックや、いずれのログにも保存されないセキュアタイプとして定義されてよい。
At
段階1750で、コンピュータ装置200は、署名要請に応答してパスワードによって暗号化されたプライベートキーを復号し、復号されたプライベートキーによってデータを署名することで、署名されたデータを生成してよい。このとき、署名されたデータが記録されたブロックが前記ブロックチェーンネットワークのチェーンに追加されてよい。
At
段階1760で、コンピュータ装置200は、生成された署名されたデータを返還してよい。このとき、署名されたデータは、データの署名を要請したノードに返還されてよい。
At
一実施形態において、ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含んでよい。このとき、コンピュータ装置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
他の実施形態において、ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第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,
図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
段階1810で、コンピュータ装置200は、ブロックチェーンネットワークのノードのプライベートキーを暗号化して保存してよい。ここで、ノードは、ブロックチェーンネットワークで最初に生成されるノードであってよく、このようなノードでブロックチェーンネットワークのシステムコントラクトを設置する過程において署名可能コントラクトを自動設置してよい。この過程において、ノードのプライベートキーが署名可能コントラクトに伝達されてよい。このとき、署名可能コントラクトは、設置過程で伝達されるノードのプライベートキーを暗号化して保存してよい。
At
段階1820で、コンピュータ装置200は、暗号化されたプライベートキーを復号するためのパスワードをノードのパブリックキーによって暗号化して保存してよい。パスワードは、コンピュータ装置200がプライベートキーを暗号化する過程において暗号化されたプライベートキーを復号できるように生成されてよい。一例として、対称キーによってプライベートキーを暗号化した場合、対称キーや対称キーを得るための値がパスワードによって生成されてよい。
At
段階1830で、コンピュータ装置200は、ノードのパブリックキーによって暗号化されたパスワードをノードに返還してよい。この場合、ノードは、暗号化されたパスワードを得てよい。このとき、暗号化されたパスワードは、ノードのパブリックキーによって暗号化されたため、ノードのプライベートキーによって暗号化されたパスワードを復号してパスワードを得ることができるようになる。一方、ブロックチェーンネットワークの他のノードは、暗号化されたパスワードが返還されたノードを検索して該当のノードに他のノードのパブリックキーを送信し、該当のノードから他のノードのパブリックキーによって暗号化されたパスワードを受信して他のノードに保存してよい。このような過程により、ブロックチェーンネットワークの他のノードも、暗号化されたプライベートキーを復号するためのパスワードを得ることができるようになる。この反面、プライベートキー自体は、暗号化された状態で保存されるため表示されなくてよい。一方、パスワードは、ブロックチェーンネットワークのブロックや、いずれのログにも保存されないセキュアタイプとして定義されてよい。
At
段階1840で、コンピュータ装置200は、ブロックチェーンネットワークの任意のノードから、パスワードおよびプライベートキーによって署名するためのデータをパラメータとして含む署名要請を受信してよい。任意のノードは、コンピュータ装置200から暗号化されたパスワードが返還されたノードであるか、該当のノードからパスワードが伝達された他のノードであってよい。
At
段階1850で、コンピュータ装置200は、署名要請に応答し、パスワードによって暗号化されたプライベートキーを復号し、復号されたプライベートキーによってデータを署名することで、署名されたデータを生成してよい。
At
段階1860で、コンピュータ装置200は、署名されたデータを返還してよい。このとき、署名されたデータは、データの署名を要請したノードに返還されてよい。
At
一実施形態において、ブロックチェーンネットワークは、複数のリーフチェーン間のデータ送信を管理するルートチェーンを含んでよい。このとき、コンピュータ装置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
他の実施形態において、ブロックチェーンネットワークは、ルートチェーンによってデータ送信が管理される複数のリーフチェーンのうちの第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,
以上のように、本発明の実施形態によると、ルートチェーンに基づいてリーフチェーンを追加する方式により、スケールアウトが可能なブロックチェーンで生成されるデータを認証する、データ認証方法およびシステムを提供することができる。 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つのプロセッサにより、前記コントラクトアドレスを前記複数のリーフチェーンそれぞれのジェネシスブロックに記録する段階
をさらに含むことを特徴とする、請求項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~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つのプロセッサにより、前記ブロックチェーンネットワークのノードのプライベートキーを暗号化して保存する段階、
前記少なくとも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.
前記データ認証方法は、
前記少なくとも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つのプロセッサにより、コントラクトアドレスが前記ルートチェーンのデータベースに保存されるように前記コントラクトアドレスを前記ルートチェーンに提供する段階
をさらに含むことを特徴とする、請求項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.
をさらに含む、請求項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つのプロセッサ
を含み、
前記少なくとも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.
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)
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)
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)
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 |
-
2019
- 2019-03-15 KR KR1020217022071A patent/KR102572834B1/en active IP Right Grant
- 2019-03-15 WO PCT/KR2019/003002 patent/WO2020189801A1/en active Application Filing
- 2019-03-15 JP JP2021554654A patent/JP7254954B2/en active Active
Patent Citations (6)
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 |