JP2021533638A - ブロックチェーンネットワーク上でグループ鍵基盤の二重署名トランザクション構造を構成するノードグループ管理装置およびコンピューティング装置 - Google Patents
ブロックチェーンネットワーク上でグループ鍵基盤の二重署名トランザクション構造を構成するノードグループ管理装置およびコンピューティング装置 Download PDFInfo
- Publication number
- JP2021533638A JP2021533638A JP2021505768A JP2021505768A JP2021533638A JP 2021533638 A JP2021533638 A JP 2021533638A JP 2021505768 A JP2021505768 A JP 2021505768A JP 2021505768 A JP2021505768 A JP 2021505768A JP 2021533638 A JP2021533638 A JP 2021533638A
- Authority
- JP
- Japan
- Prior art keywords
- group
- node
- nodes
- transaction
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0215—Including financial accounts
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3678—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0492—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload by using a location-limited connection, e.g. near-field communication or limited proximity of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- 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
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- 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/1044—Group management mechanisms
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/0825—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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0872—Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
-
- 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/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- 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
- H04L9/3236—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 using cryptographic hash functions
- H04L9/3239—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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Abstract
一実施例に係るノードグループ管理装置は、分散データベースを共有するブロックチェーンネットワークを構成しそれぞれ秘密鍵および公開鍵を保有するノードのうち、一部のノードが属した第1グループを管理し、前記ブロックチェーンネットワークと通信する通信インターフェースと、それぞれの公開鍵を含む前記第1グループのノードに関する情報およびプロセッサの動作遂行に関する命令語を保存する一つ以上のメモリと、前記命令語を通じて動作するように前記一つ以上のメモリと連結されて前記第1グループのノードがトランザクションを生成する場合、前記トランザクションに前記秘密鍵の署名と共に、前記第1グループのノードに関する情報に基づいて前記トランザクションに追加的な署名をするグループ秘密鍵を生成して前記第1グループのノードが共通して保有するように前記グループ秘密鍵を前記第1グループに配布する動作をする一つ以上のプロセッサとを含む。【選択図】図1
Description
本文書の実施例は、ブロックチェーンネットワーク上でグループ鍵に基づいて二重に署名と検証が要求されるトランザクション構造を構成してセキュリティ性を強化させる技術に関する。
ブロックチェーンシステムは、情報が入っているブロックがチェーンの形態でつながっているブロックチェーンを分散型データベースとして運営することによって、ブロックチェーンネットワークを構成するノードが共通した情報を共有できるようにする。このようなブロックチェーンに情報を記録したり変更を加えるためにノードはネットワーク上にトランザクションを発生させ、他のノードによって該当トランザクションが正しいものであるかが検証される過程を経ることになる。このようなトランザクションの発生および検証は、それぞれのノードが保有する秘密鍵(private key)および公開鍵(public key)によって遂行される。
各ノードは自身の公開鍵のみをブロックチェーンネットワーク上に露出させ、伝達しようとする情報を自身の秘密鍵で署名して伝達しようとする情報と署名を束ねたトランザクションを他のノードに伝播する。これを受信した他のノードは、公開鍵を通じて署名を復号化して該当トランザクションが正しい者によって署名されたものであるかをチェックしてトランザクションの検証過程を経る。
公開鍵は秘密鍵に基づいて生成されるが、非可逆関数を通じて生成されるため公開鍵が知られてもそれから秘密鍵を復元することは難しい。しかし、秘密鍵自体がハッキングされると、ハッキングした者が該当アカウントで望むトランザクションをすべて発生させることができるという致命的な問題がある。このため、ハッキングした者がアカウントに保有されたすべての暗号通貨を他のところに振り替える悪意のトランザクションを発生させてブロックに記録させるのであれば、ブロックチェーン上ではこれを再び元に戻すことができないため非常に大きな被害につながることになる。
しかし、秘密鍵は一度定められると変更ができないため、ただ一度の流出だけでも直ちにアカウントを取り換えなければならず、流出したという事実を知る前にすでに元に戻せない深刻な被害が発生する場合が大多数である。
このように、秘密鍵一つのみで保護されるブロックチェーンアカウントは秘密鍵自体のハッキングという致命的な弱点があるため、アカウントをより効果的に保護できる新しい代案が必要である。
本文書の実施例は、複数のノードからなるグループの情報に基づいて、グループ内のノード同士でのみ共有されるグループ秘密鍵を生成する技術を通じて前述した問題を解決しようとする。この時、生成されるグループ秘密鍵はグループ内部のノード情報を管理する信頼性が確保されたノードによって生成され、グループ秘密鍵によってセキュリティ性の向上という同一の利益を共有するグループ内部のノードの立場ではグループ秘密鍵を流出させる実益がなく、グループ外部のノードの立場では他のグループの情報を分からないためグループ秘密鍵を類推できないように設計され得る。
また、本文書の実施例は、たとえグループ秘密鍵が流出しても、グループ秘密鍵が周期的に更新され、また、ノードグループ内に変更が発生した場合に更新されるようにする技術を通じて、ハッキング被害が発生することを防止することができる。これに加え、ハッキングした者が悪意のトランザクションの発生を試みる場合、残りの一つの鍵を通じての署名が追加的に要求されるため、アカウント所有者がハッキングを認知した後に代案を準備する時間を確保させることができる。
このように、本文書の実施例は、トランザクション署名と検証が二重に要求される構造を構成してブロックチェーンネットワークのセキュリティ性を向上させようとする。
一実施例に係るノードグループ管理装置は、分散データベースを共有するブロックチェーンネットワークを構成するノードのうち、一部のノードが属した第1グループを管理し(前記ブロックチェーンネットワークに参加するすべてのノードはそれぞれ秘密鍵および公開鍵を保有する)、前記ブロックチェーンネットワークと通信する通信インターフェースと、前記第1グループのノードに関する情報およびプロセッサの動作遂行に関する命令語を保存する一つ以上のメモリ(前記第1グループのノードに関する情報は前記第1グループのノードそれぞれの公開鍵を含む)と、前記命令語を通じて動作するように前記一つ以上のメモリと連結され、前記第1グループのノードがトランザクションを生成する場合、前記トランザクションに前記秘密鍵の署名と共に、前記第1グループのノードに関する情報に基づいて前記トランザクションに追加的な署名を遂行するようにするグループ秘密鍵を生成して、前記第1グループのノードが共通して保有するように前記グループ秘密鍵を前記第1グループに配布する動作を遂行する一つ以上のプロセッサとを含むことができる。
一実施例に係るコンピューティング装置は、分散データベースを共有するブロックチェーンネットワークを構成するノードを遂行し(前記ブロックチェーンネットワークに参加するすべてのノードはそれぞれ秘密鍵および公開鍵を保有する)、前記ブロックチェーンネットワークと通信する通信インターフェースと、前記一つのノードが属した第1グループを管理する前記ノードグループ管理装置に関する情報、前記ノードグループ管理装置が時間の流れに沿って配布した複数のグループ秘密鍵、およびプロセッサの動作遂行に関する命令語を保存する一つ以上のメモリ(前記複数のグループ秘密鍵は時間情報を含む)と、前記命令語を通じて動作するように前記一つ以上のメモリと連結され、トランザクションを生成する場合、前記時間情報を参照して、前記複数のグループ秘密鍵のうち最新で保存されたグループ秘密鍵から既設定された周期以前に生成されたグループ秘密鍵を利用した署名を前記トランザクションに含ませる動作を遂行する一つ以上のプロセッサとを含むことができる。
一実施例に係るノードグループ管理方法は、分散データベースを共有するブロックチェーンネットワークを構成するノードおよびノードグループ管理装置によって遂行させ(前記ブロックチェーンネットワークを構成するすべてのノードはそれぞれの秘密鍵および公開鍵を保有する)、前記ノードグループ管理装置に第1グループのノードに関する情報を前記第1グループのノードから受信させる段階(前記第1グループは前記装置が管理するノードが含まれたグループであり、前記第1グループのノードに関する情報は前記第1グループのノードそれぞれの公開鍵を含む)と、前記ノードグループ管理装置に前記第1グループのノードがトランザクションを生成する場合、前記第1グループのノードに関する情報に基づいて前記秘密鍵とともに追加的な署名として使われるグループ秘密鍵を生成させる段階と、前記ノードグループ管理装置に、前記第1グループのノードが共通して保有するように前記グループ秘密鍵を前記第1グループのノードに配布させる段階とを含むことができる。
前述した実施例によると、トランザクション署名に秘密鍵とグループ秘密鍵を共に使うため、秘密鍵がハッキングされたとしてもグループ秘密鍵の署名を要請する構成を通じてハッキングによる被害を防止することができる。
また、信頼性が確保されたゲートウェイを通じてグループ秘密鍵とグループ公開鍵を生成および配布してグループ鍵基盤のトランザクション署名に対する信頼度を高めることができる。
これに加えて、グループ秘密鍵の生成を周期的に遂行し、またはノードグループに変更が発生する場合ごとに遂行することによって、グループ秘密鍵の露出可能性を最小化することができる。
併せて、ノードがトランザクションを生成する場合、ブロックチェーンネットワーク上のすべてに配布されたグループ秘密鍵を通じての署名を遂行することによって、通信ディレイによるトランザクション検証エラーを防止することができる。
この他に、本文書を通じて直接的または間接的に把握される多様な効果が提供され得る。
図面の説明と関連して、同一または類似する構成要素に対しては同一または類似する参照符号が使われ得る。
以下、多様な実施例が添付された図面を参照して記載される。しかし、これは特定の実施形態に対して限定しようとするものではなく、実施例の多様な変更(modification)、均等物(equivalent)、および/または代替物(alternative)を含むものと理解されるべきである。
図1は、一実施例に係る分散ネットワークシステム100のブロック図である。
図1を参照すると、一実施例に係る分散ネットワークシステム100は、複数のコンピューティング装置110、120、130、140を通じて具現され得る。図1で4個のコンピューティング装置110、120、130、140が図示されたが、これに限定されず、分散ネットワークシステム100は図示されていない任意の数のコンピューティング装置をさらに含むことができる。
ネットワーク105は有線ネットワークおよび/または無線ネットワークを含むことができる。例えば、ネットワーク105はLAN(local area network)、WAN(wide area network)、仮想ネットワーク、遠隔通信ネットワークのうち少なくとも一つであり得る。
分散ネットワークシステム100は、コンピューティング装置110、120、130、140がネットワーク105を通じて動作可能なように、互いに連結されて同一の情報を有する分散データベースを共有するピアツーピアネットワークであるブロックチェーンネットワークを構成することができる。
コンピューティング装置110、120、130、140は,分散データベースの状態を変化させるために遂行する作業の単位であるトランザクション(transaction)を分散ネットワークシステム100上に発生させることができる。コンピューティング装置110、120、130、140は分散ネットワークシステム100で発生するトランザクションを検証および実行し、トランザクションの記録をブロックチェーン(blockchain)の構造形態で保存して分散データベースを管理することができる。
それぞれのコンピューティング装置110、120、130、140はトランザクションを発生させ、トランザクションの完全性を検証するためにブロックチェーンアカウント情報を有することができる。ブロックチェーンアカウント情報は秘密鍵(private key)と公開鍵(public key)(以下、通称の場合「個人鍵」と指称する)を含むことができる。秘密鍵はトランザクションが正しい者によって発生したことを検証するようにするためのデジタル署名手段であって、トランザクションに含まれるメッセージと秘密鍵をハッシングして生成することができる。
公開鍵は使用者のアカウントアドレス(account address)として機能したり、トランザクションに含まれたデジタル署名が正しい使用者の秘密鍵によって生成されたことを検証するための手段として機能することができる。
本文書の実施例によると、コンピューティング装置110、120、130、140は、個人鍵とともに、二重にトランザクション署名および検証の役割に使われるグループ秘密鍵(group private key)およびグループ公開鍵(group public key)(以下、通称の場合「グループ鍵」と指称する)を保有することができる。グループ鍵に対するより詳しい説明は、図11〜図15とともに後述することにする。
コンピューティング装置110、120、130、140はトランザクションが発生すると、発生したトランザクションの完全性を検証し、分散ネットワークシステム100で約束された合意アルゴリズム(例:POW、POS、DPOSなど)に基づいて既生成されたブロックに続く新しいブロックを生成し、新しく生成されたブロックは他のコンピューティング装置110、120、130、140に伝播しながらトランザクションが実行され得る。ブロックは複数のトランザクション情報を含むことができる。
図2は、一実施例に係るブロックチェーン構造を説明するための図面である。
図2の(1)を参照すると、ブロックチェーンはブロック単位で保存されたデータが線形的に連結され得る。各ブロックは以前ブロック(例えば、「ブロック2」の以前ブロックは「ブロック1」)を指すことによって連結され得る。ただし、ブロックの連結形態はこのような例示に限定されるものではない。
図2の(2)を参照すると、ブロック210はヘッダ(header)220とボディ(body)230で構成され得る。
ヘッダ220に保存されたデータは該当ブロック210に対する要約情報として理解され得る。ヘッダ220はソフトウェアのバージョン情報であるソフトウェアのバージョン、以前ブロックのヘッダのハッシュ値として以前ブロックを指すハッシュポインタの役割をする以前ブロックハッシュ、トランザクションを要約した情報であるマークルルート(Merkle Root)、ブロック210が生成された日付および時間であるタイムスタンプを含むことができる。ブロックハッシュ値はブロック210のヘッダ220に保存されたデータに基づいて計算され得る。次のブロックは以前ブロックのブロックハッシュ値を保存することによって以前ブロックを指すことができる。これに伴い、分散ネットワークシステム100はブロックチェーンネットワークシステムと呼称され得る。
ボディ230はブロック210内に保存および保存の対象となるデータであるトランザクションを含むトランザクション目録およびブロック210に含まれたトランザクションの総数であるトランザクションの個数を含むことができる。例えば、トランザクションは取引内訳であり得るが、例示に過ぎず、これに限定されない。
コンピューティング装置110はプロセッサ111およびメモリ112を含むことができる。例えば、メモリ112はRAM(random access memory)、メモリバッファ、ハードドライブ、データベース、EPROM(erasable programmable read−only memory)、EEPROM(electrically erasable read−only memory)、ROM(read−only memory)などを含むことができる。
プロセッサ111は汎用プロセッサ、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、DSP(Digital Signal Processor)などであり得る。
コンピューティング装置110、120、130、140の一つ以上の部分はハードウェア基盤モジュール(例えば、DSP(digital signal processor)、FPGA(field programmable gate array))および/またはソフトウェア基盤モジュール(例えば、メモリに保存されおよび/またはプロセッサで実行されるコンピュータコードのモジュール)を含むことができる。一部の実施例で、コンピューティング装置110、120、130、140と関連した一つ以上の機能(例えば、プロセッサ111、121、131、141と関連した機能)は一つ以上のモジュールに含まれ得る。
コンピューティング装置110のメモリ112は分散データベース114を含むことができる。コンピューティング装置110、120、130、140はネットワーク105を通じて分散データベース114、124、134、144を具現することができる。分散データベース114、124、134、144は複数個のコンピューティング装置110、120、130、140が同一の情報を共有する公共元帳(public ledger)として理解され得る。プロセッサ111は他のコンピューティング装置からトランザクション(transaction)(例:分散データベースのデータを変更させるためのメッセージ)と関連した同期化データなどを受信することに応答して、分散データベース114をアップデートするためにモジュール、機能および/またはプロセスを実行するように構成され得る。
図3は、一実施例に係る分散ネットワークシステム100に含まれるノードの種類を説明するための図面である。
図3を参照すると、分散ネットワークシステム100に含まれるコンピューティング装置(例:図1のコンピューティング装置110、120、130、140)それぞれはノード(node)として理解され得る。分散ネットワークシステム100に含まれるノードはフルノード(full node:FN)300とライトノード(light node:LN)400に区分され得る。
フルノード300は、ブロックチェーン200に含まれるすべての情報(例:ヘッダ220情報およびボディ230情報)をリアルタイムに同期化して維持するノードである。ライトノード400はトランザクション機能(例:財布機能)を遂行できるノードである。ライトノード400はトランザクションを発生させ、発生したトランザクションをネットワーク105を通じて隣のノードに伝播することができる。一部の実施例で、ライトノード400はブロックチェーン200に含まれる一部の情報(例:ヘッダ220情報)のみを有し、生成されたブロックに対する検証を遂行してもよい。
以下、フルノード300とライトノード400は分散ネットワークシステム100に含まれるノード600と呼称され得る。
分散ネットワークシステム100に含まれたノードは位置情報に基づいて互いに異なるまたは同一グループに所属することができる。位置的に近いところに位置したノードは同一グループに分類され得る。
グループは分散ネットワークシステム100と通信する少なくとも一つ以上のサーバー(図6の500)によって決定され得る。以下、一つのサーバー500として説明するが、複数のサーバー500がグループの分類を遂行できる。サーバー500はノードの位置情報に基づいて隣接したノードを同一グループに分類することができる。これに伴い、相互間に通信を頻繁に遂行する隣のノードが一つのグループに属することになり、通信の効率性が増加し得る。サーバー500はサードパーティーによって運営され得る。
フルノード300の少なくとも一部はゲートウェイ(gatewayまたはGW、本文書の一部において「ノードグループ管理装置」とも指称される)301として動作することができる。ゲートウェイ301はブロック210を生成することができ、一つのグループを管理することができる。ゲートウェイ301はブロック210を生成することによってブロック補償を受け取り、受け取ったブロック補償を自身が属したグループのノードに分配することができる。互いに異なるゲートウェイ301は互いに異なるグループを管理することができる。ゲートウェイ301はグループ秘密鍵およびグループ公開鍵を生成することができ、同一グループ内のノードにグループ秘密鍵を共有し、グループの外部にグループ公開鍵を配布することができる。
図3において、グループ1は4個のフルノード300と6個のライトノード400を含んでいる。4個のフルノード300のうち1個のフルノード300がゲートウェイ301として動作することができる。ゲートウェイ301はグループ1に所属したノードに対する情報を有することができる。ゲートウェイ301はブロック補償を受け取ると、グループ1に所属したノードにブロック補償を分配することができる。分散ネットワークシステム100は一つ以上のグループを有することができ、それぞれのグループは少なくとも一つのゲートウェイ301を有することができる。
グループ1をはじめとする各グループのグループ構成および各ノードの個数は例示的なものに過ぎず、ゲートウェイ301として動作可能な一つのフルノードを除いてフルノード300の個数およびライトノード400の個数は任意に定められ得る。一実施例により、一つのグループに含まれるノードの総数は最大512個であり得るが、例示に過ぎず、これに限定されない。
図4は、一実施例に係るフルノード300に対するブロック図を示す。
図4を参照すると、フルノード300は通信インターフェース305、プロセッサ310、メモリ320を含むことができる。フルノード300は通信インターフェース305を通じて分散ネットワークシステム100に含まれるノードおよびサーバー500と通信を遂行できる。
プロセッサ310はトランザクション生成モジュール312およびトランザクション検証モジュール314を含むことができる。
また、フルノード300がゲートウェイ301として動作する場合、プロセッサ310はグループ秘密鍵生成モジュール316およびグループ公開鍵生成モジュール318をさらに含むことができる。
プロセッサ310はメモリ320に保存された命令語を実行して、トランザクション生成モジュール312、トランザクション検証モジュール314、グループ秘密鍵生成モジュール316およびグループ公開鍵生成モジュール318のうち少なくとも一つを駆動させることができる。トランザクション生成モジュール312、トランザクション検証モジュール314、グループ秘密鍵生成モジュール316およびグループ公開鍵生成モジュール318それぞれは、財布プログラム328に含まれた命令語が実行されて駆動され得るがこれに限定されない。
トランザクション生成モジュール312、トランザクション検証モジュール314、グループ秘密鍵生成モジュール316およびグループ公開鍵生成モジュール318それぞれは、ハードウェア、ソフトウェアまたはこれらの組み合わせで具現されてもよい。トランザクション生成モジュール312、トランザクション検証モジュール314、グループ秘密鍵生成モジュール316およびグループ公開鍵生成モジュール318それぞれによって遂行される動作は、プロセッサ310により遂行される動作として理解され得る。
トランザクション生成モジュール312は、ブロック内に保存および保存の対象となるデータ(例:取引内訳)をブロックに含ませることを要請するトランザクションを生成することができる。トランザクション生成モジュール312は秘密鍵を利用した電子署名とグループ鍵を利用したデジタル署名をトランザクションに含ませることができる。
トランザクション検証モジュール314は、自ら生成したトランザクションまたは他のノードから受信したトランザクションを個人公開鍵およびグループ公開鍵に基づいて検証することができる。
秘密鍵およびグループ鍵を利用したデジタル署名とトランザクションの検証は図14および図15で詳しく後述する。
グループ秘密鍵生成モジュール316は、ゲートウェイ301のフルノード300が管理するグループ内に含まれたノードの情報に基づいてグループ秘密鍵を生成することができる。グループ秘密鍵は同一グループ内部のノード間でのみ共有される情報であって、秘密鍵とともにトランザクション署名に利用され得る。
グループ公開鍵生成モジュール318は生成されたグループ秘密鍵に対する演算を通じてグループ公開鍵を生成することができる。グループ公開鍵はグループ外部のブロックチェーンネットワークに配布される情報であって、トランザクション署名の検証に利用され得る。
メモリ320はブロックチェーン情報322(例:図2のブロックチェーン200と関連した情報)、サーバー目録324、グループ加入内訳326、財布プログラム328およびグループ鍵目録329を含むことができる。
ブロックチェーン情報322は図2のブロックチェーン200に含まれる情報を含むことができる。本文書に開示された多様な実施例に係るフルノード300はウインドウズ(登録商標)やリナックス(登録商標)環境のコンピューティング装置であり得る。フルノード300はブロックチェーン200と関連した情報を保存しリアルタイムに同期化できるハードウェア資源を有することができる。
サーバー目録324は分散ネットワークシステム100のノードに対してグルーピングを遂行するサーバーと関連した情報を含むことができる。例えば、サーバー目録324はサーバー500の固有IDとサーバー500位置情報(IP、緯度、経度)を含むことができる。フルノード300はグループに加入したりゲートウェイ301となるためにサーバー目録324に含まれる少なくとも一つのサーバー500に要請を送ることができる。
グループ加入内訳326はフルノード300が以前にグループに加入した履歴がある場合、そのグループと関連した情報を含むことができる。例えばグループ加入内訳326は加入したグループのゲートウェイ301のアカウント情報を含むことができる。
財布プログラム328はトランザクションの生成および検証のための命令語と関連データを含むことができる。一実施例により、フルノード300がゲートウェイ301として動作する場合、財布プログラム328はグループ秘密鍵とグループ公開鍵の生成のための命令語と関連データを含むことができる。フルノード300のアカウントは財布プログラム328のノードアドレスとなり得る。財布プログラム328はウインドウズ(登録商標)やリナックス(登録商標)の環境で動作するプログラムであり得る。
グループ鍵目録329はフルノード300が属したグループのグループ秘密鍵およびフルノード300が属したグループをはじめとする外部グループで生成されたグループ公開鍵を保存することができる。フルノード300はグループ秘密鍵およびグループ公開鍵が生成されたグループに関する情報、およびグループ秘密鍵が生成された順序情報とグループ公開鍵が生成された順序情報を共に保存することができる。これに対するより詳細な説明は図11〜図15とともに後述する。
フルノード300がゲートウェイ301として動作する場合、フルノード300はゲートウェイ目録330とノードプール335をさらに含むことができる。ゲートウェイ目録330は現在ゲートウェイ301として動作してグループを運営しているゲートウェイ301−1、301−2、〜301−nと関連した情報を含むことができる。ゲートウェイ目録330はサーバー500にも保管され得、サーバー500の動作不能のような例外状況でバックアップの役割をすることができる。
多様な実施例において、一つのフルノード300が複数個のゲートウェイとして動作することができる。この場合、前記複数個のゲートウェイはIPは同一であるものの、異なるポート番号を有することができる。
ノードプール335はゲートウェイ301が運営するグループに所属したノード(コンピューティング装置)と関連した情報を含むことができる。ノードプール335は自身のグループに属するノード600の目録を含むことができる。例えば、ノードプール335は自身のグループに属するノード600の公開鍵および各ノード600を識別するインデックス情報を含むことができ、インデックス情報と公開鍵はマッピングされて保存され得る。
図5は、一実施例に係るライトノード400に対するブロック図を示す。図5を参照すると、ライトノード400は通信インターフェース405、プロセッサ410、メモリ420を含むことができる。ライトノード400は通信インターフェース405を通じて分散ネットワークシステム100に含まれるノードおよびサーバー500と通信を遂行できる。
プロセッサ510はトランザクション生成モジュール412を含むことができる。例えば、プロセッサ510はメモリ520に保存された命令語を実行してトランザクション生成モジュール412を駆動させることができる。トランザクション生成モジュール412は財布プログラム422に含まれた命令語が実行されて駆動され得るが、これに限定されない。
トランザクション生成モジュール412はハードウェア、ソフトウェアまたはこれらの組み合わせで具現されてもよい。トランザクション生成モジュール412により遂行される動作はプロセッサ410により遂行される動作として理解され得る。
トランザクション生成モジュール412はブロック内に保存および保存の対象となるデータ(例:取引内訳)をブロックに含ませることを要請するトランザクションを生成することができる。トランザクション生成モジュール412は秘密鍵を利用した電子署名とグループ鍵を利用した電子署名をトランザクションに含ませることができる。トランザクション生成モジュール412は生成されたグループ鍵の順序情報を考慮してトランザクション署名に使われるグループ秘密鍵を選択することができる。これに対する説明は図14および図15とともに後述する。
ライトノード400はメモリ420に財布プログラム422、サーバー目録424、およびグループ加入内訳426を保存することができる。
財布プログラム422はトランザクションの生成および検証のための命令語と関連データを含むことができる。財布プログラム422はアンドロイド(登録商標)やIOS(登録商標)のようなモバイル環境で動作するプログラムであり得る。サーバー目録424とグループ加入内訳426はフルノード300のサーバー目録324およびグループ加入内訳326と実質的に同一である。
グループ鍵目録428はライトノード400が属したグループのグループ秘密鍵を保存することができる。ここで、グループ鍵目録428はフルノード300のグループ鍵目録329とは異なり、各グループ別グループ公開鍵を含まないが、これはライトノード400はトランザクションに対する検証を遂行しないためである。
図6は、一実施例に係るサーバー500に対するブロック図を示す。図6を参照すると、サーバー500は通信インターフェース505、プロセッサ510、およびメモリ520を含むことができる。サーバー500は通信インターフェース505を通じて分散ネットワークシステム100のノード(フルノード300、ライトノード400)と通信を遂行できる。
プロセッサ510はグルーピングモジュール512を含むことができる。例えば、プロセッサ510はメモリ520に保存された命令語を実行してグルーピングモジュール512を駆動させることができる。グルーピングモジュール512はハードウェア、ソフトウェアまたはこれらの組み合わせで具現され得る。グルーピングモジュール512により遂行される動作はプロセッサ510により遂行される動作として理解され得る。グルーピングモジュール512はノードの位置情報に基づいてノードに対するグループを決定することができる。
メモリ520はゲートウェイ目録522とサーバー目録524を保存することができる。ゲートウェイ目録522はフルノード300に保存されるゲートウェイ目録330と互いに同期化され得る。サーバー目録524はサーバー500と同じ役割を遂行する他のサーバーに対する情報を含むことができる。
図7は、一実施例に係るゲートウェイの登録過程を説明するためのフローチャートである。
フルノード300はゲートウェイ301として動作するために、いずれか一つのサーバー(第1サーバー500−1)にゲートウェイ登録要請メッセージを送信することができる(701)。フルノード300は内部に保存されたサーバー目録を利用して、サーバー目録に含まれるいずれか一つのサーバーに前記メッセージを送信することができる。例えば、第1サーバー500−1に前記メッセージが送信された例示が図示された。
ゲートウェイ登録メッセージは、フルノード300のIPアドレス情報、フルノード300のポート(port)番号情報、フルノード300の緯度情報、フルノード300の経度情報のうち少なくともいずれか一つの情報を含むことができる。前記情報はゲートウェイ301の位置と関連した情報として理解され得る。
第1サーバー500−1は受信されたゲートウェイ登録メッセージの有効性を検査し(703)、ゲートウェイ登録応答メッセージをフルノード300に送信することができる(705)。第1サーバー500−1はゲートウェイ登録要請メッセージに含まれたデータとゲートウェイ目録情報を比較することができる。第1サーバー500−1はフルノード300の位置と関連した情報を利用して、前記フルノード300と隣接した位置にあるゲートウェイ301をゲートウェイ目録の中から選択することができる。
ゲートウェイ登録応答メッセージは、ゲートウェイ登録メッセージに対する処理結果に対する成功/失敗の有無(return_val)を含むことができ、前記フルノード300に割当されるゲートウェイIDを含むことができる。
フルノード300はゲートウェイ登録応答メッセージに含まれた前記処理結果が成功である場合、受信されたゲートウェイIDを自身のIDとして登録し(707)、第1サーバー500−1にゲートウェイ登録処理メッセージを送信することができる(709)。ゲートウェイ登録処理メッセージはフルノード300が登録したゲートウェイIDを含むことができる。もし、ゲートウェイ登録応答メッセージに含まれた前記処理結果が失敗である場合、フルノード300はサーバー目録に含まれた他のサーバーに動作701〜動作709を遂行することになる。
第1サーバー500−1はゲートウェイ登録処理メッセージを受信すると、それに含まれたゲートウェイIDを利用してゲートウェイ目録を更新することができる(711)。第1サーバー500−1はゲートウェイ追加要請メッセージを他のサーバーに伝送することによって、更新されたゲートウェイ目録を伝播することができる。ゲートウェイ追加要請メッセージは下記の情報のうち少なくとも一つ以上の情報を含むことができる。ゲートウェイ追加要請メッセージは第1サーバー500−1の同期化インデックス(番号)を含むことができる。同期化インデックスはゲートウェイ目録が更新される時(ゲートウェイが追加される時)に更新される数字であり得る。例えば、同期化インデックスは0〜232−1値の範囲内の数字であり得る。ゲートウェイ追加要請メッセージは第1サーバー500−1に登録されたゲートウェイの個数と第1サーバー500−1に含まれたゲートウェイ目録を含むことができる。ゲートウェイ追加要請メッセージはゲートウェイ目録に含まれたゲートウェイのIPアドレス、ポート番号、緯度情報、経度情報のうち少なくとも一つを含むことができる。
ゲートウェイ追加要請メッセージは、例えば、第1サーバー500−1に保存されたサーバー目録に含まれた第2サーバー500−2〜第nサーバー500−nに伝送され得る(713、717)。ゲートウェイ追加要請メッセージを受信した第2サーバー500−2は前記メッセージを送信した第1サーバー500−1を識別することができる。例えば第2サーバー500−2は前記メッセージが送信された送信先のIPを利用して第1サーバー500−1を識別することができる。第2サーバー500−2は第2サーバー500−2に保存されたゲートウェイ目録をロードすることができる。具体的には、第2サーバー500−2は受信されたメッセージに含まれた第1同期化インデックスと第2サーバー500−2に保存された第2同期化インデックスを比較することができる。もし、第1同期化インデックスが第2同期化インデックスより大きいのであれば、第2サーバー500−2は第2サーバー500−2に保存されたゲートウェイ目録を前記メッセージを通じて受信されたゲートウェイ目録に更新し、自身の第2同期化インデックスを更新することができる。ゲートウェイ更新過程が完了すると、第2サーバー500−2は処理結果が反映されたゲートウェイ追加応答メッセージを第1サーバー500−1に伝送することができる(715)。713動作〜715動作は第1サーバー500−1のサーバー目録に含まれた第2サーバー500−2の他に第3サーバー〜第nサーバー500−nに対して遂行され得る。
図8は、一実施例に係るゲートウェイの管理動作を説明するためのフローチャートである。
フルノード300が第1サーバー500−1によってゲートウェイ301として登録されると、第1サーバー500−1はゲートウェイ301を管轄することになる。また、フルノード300はゲートウェイ301として動作を遂行することになる。第1サーバー500−1は周期的にゲートウェイ301にメッセージが到達可能であるかどうかを検査することができる。例えば、第1サーバー500−1はPINGメッセージをゲートウェイ301に伝送し(801)、それに対する応答メッセージを受信することによって(803)ゲートウェイ301が正常動作中であるかどうかを判断することができる。動作801および動作803はあらかじめ定められた周期(例:2分)ごとに繰り返し遂行され得る。
例えば、PINGメッセージはPINGメッセージを識別するための任意の数を含むことができる。PING応答メッセージは受信したPINGメッセージに含まれた任意の数を含むことができる。第1サーバー500−1は前記任意の数を比較することによって、該当PINGメッセージに対する応答が受信されたことを確認することができる。
もし、第1サーバー500−1がゲートウェイ301に繰り返しPINGメッセージを送ったにもかかわらず、それに対する応答がない場合には、ゲートウェイ301をゲートウェイ目録から削除することができる(807)。例えば、第1サーバー500−1はあらかじめ定められた回数(例:3回)のPINGメッセージを伝送し、それに対する応答が受信されない場合、該当ゲートウェイ301で関連プログラムが終了したか、ゲートウェイ301のネットワークが断絶されたものと判断することができる。
この場合、第1サーバー500−1は他のサーバーにゲートウェイ削除要請メッセージを伝送することによって、他のサーバーとゲートウェイ目録を同期化することができる((809、813))。ゲートウェイ削除要請メッセージは第1サーバー500−1の同期化インデックス(番号)を含むことができる。同期化インデックスはゲートウェイ目録が更新される時(すなわち、ゲートウェイが削除される時)に更新される数字であり得る。例えば、同期化インデックスは0〜232−1値の範囲内の数字であり得る。ゲートウェイ削除要請メッセージは第1サーバー500−1に登録されたゲートウェイの個数と第1サーバー500−1に含まれたゲートウェイ目録を含むことができる。
ゲートウェイ削除要請メッセージは、例えば、第1サーバー500−1に保存されたサーバー目録に含まれた第2サーバー500−2〜第nサーバー500−nに伝送され得る(809、813)。ゲートウェイ削除要請メッセージを受信した第2サーバー500−2は前記メッセージを送信した第1サーバー500−1を識別することができる。例えば第2サーバー500−2は前記メッセージが送信された送信先のIPを利用して第1サーバー500−1を識別することができる。第2サーバー500−2は第2サーバー500−2に保存されたゲートウェイ目録をロードすることができる。具体的には、第2サーバー500−2は受信されたメッセージに含まれた第1同期化インデックスと第2サーバー500−2に保存された第2同期化インデックスを比較することができる。もし、第1同期化インデックスが第2同期化インデックスより大きいのであれば、第2サーバー500−2は第2サーバー500−2に保存されたゲートウェイ目録を前記メッセージを通じて受信されたゲートウェイ目録に更新し、自身の第2同期化インデックスを更新することができる。ゲートウェイ更新過程が完了すると、第2サーバー500−2は処理結果が反映されたゲートウェイ削除応答メッセージを第1サーバー500−1に伝送することができる(811)。809動作および813動作は第1サーバー500−1のサーバー目録に含まれた第2サーバー500−2の他に第3サーバー〜第nサーバー500−nに対して遂行され得る。
図9A、図9Bおよび図9Cは、一実施例でノードがグループに加入する動作を説明するためのフローチャートである。
分散ネットワークシステム100に含まれるフルノード300(ゲートウェイとして動作しないフルノード)とライトノード400は、少なくとも一つのゲートウェイ301によって運営されるいずれか一つのグループに加入することができる。以下、ライトノード400がグループに加入する動作を例示として説明するが、フルノード300も同一の動作を遂行することによってグループに加入することができる。
一例において、ライトノード400はグループ加入内訳を含むことができる。グループ加入内訳は例えば、分散ネットワークシステム100の少なくとも一つのゲートウェイと連結された履歴がある場合、連結されたゲートウェイと関連した情報を含むことができる。
ライトノード400はグループ加入内訳を照会することができる(901)。グループ加入内訳は少なくとも一つのゲートウェイのアドレスを含むことができる。例えば、前記アドレスはゲートウェイのアドレスとして分散ネットワークシステム100上に登録されているアドレス(例:公開鍵、財布アドレス)として理解され得る。グループ加入内訳は例えば、第1ゲートウェイ301−1のアドレス、および第2ゲートウェイ301−2のアドレスを含むことができる。ライトノード400はグループ加入内訳で第1ゲートウェイ301−1を先に選択し(903)、第1ゲートウェイ301−1にグループ加入要請メッセージを伝送することができる(905)。グループ加入要請メッセージはライトノード400のアドレス(例:財布アドレス)を含むことができる。第1ゲートウェイ301−1はグループ加入要請メッセージを受信すると、ライトノード400の加入可能の有無を確認することができる(907)。第1ゲートウェイ301−1は受信されたライトノード400のアドレスを確認し、前記ライトノード400を収容できるかどうかを確認することができる。例えば、それぞれのゲートウェイに対して収容可能なノードの個数が制限され得る。前記個数はそれぞれのゲートウェイのハードウェア環境および/またはソフトウェアの政策によってあらかじめ設定され得る。
第1ゲートウェイ301−1は、ライトノード400を収容可能な場合、ライトノード400のアドレスを第1ゲートウェイ301−1のノードプールに保存することができる。第1ゲートウェイ301−1はライトノード400に対応するノードIDを生成し、前記ノードIDと前記ライトノード400のアドレスを前記ノードプールに保存することができる。前記ノードIDとライトノード400のアドレスはマッピングされて保存され得る。
しかし、第1ゲートウェイ301−1がライトノード400を収容不可能な場合、ライトノード400は他のノードに再びグループ加入要請をしなければならない。
第1ゲートウェイ301−1は、ライトノード400のグループ加入要請メッセージに対するグループ加入応答メッセージをライトノード400に伝送することができる。グループ加入応答メッセージは、グループ加入要請に対する成功/失敗の有無を含むことができる。また、グループ加入が成功した場合、ライトノード400に対して生成されたノードIDが含まれ得る。
例えば、第1ゲートウェイ301−1がライトノード400を収容できない場合、失敗(例:null)の応答を含むグループ加入応答メッセージをライトノード400に伝送することができる(909)。ライトノード400は受信されたグループ加入応答メッセージをパーシングし、失敗の有無を確認すると、グループ加入内訳のうち第1ゲートウェイ301−1ではない他のゲートウェイを選択することができる。もし、グループ加入内訳に他のゲートウェイがそれ以上ない場合には、ライトノード400は図9bを通じて後述される動作を遂行できる。
図9Aで、ライトノード400はグループ加入内訳に含まれた第2ゲートウェイ301−2を選択することができる(911)。ライトノード400は第2ゲートウェイ301−2にグループ加入要請メッセージを伝送することができる(913)。第2ゲートウェイ301−2は受信されたライトノード400のアドレスを確認し、前記ライトノード400を収容できるかどうかを確認することができる(915)。第2ゲートウェイ301−2は、ライトノード400を収容可能な場合、ライトノード400のアドレスを第2ゲートウェイ301−2のノードプールに保存することができる(917)。例えば、第2ゲートウェイ301−2はライトノード400に対応するノードIDを生成し、前記ノードIDと前記ライトノード400のアドレスを前記ノードプールに保存することができる。第2ゲートウェイ301−2は、ライトノード400のグループ加入要請メッセージに対するグループ加入応答メッセージをライトノード400に伝送することができる(919)。該当グループ加入応答メッセージはグループ加入要請に対する成功の応答を含むことができ、ライトノード400に対するノードIDを含むことができる。
図9Bを参照すると、ライトノード400がグループ加入内訳を含まない場合、ライトノード400はサーバー目録に含まれるサーバーのうちいずれか一つのサーバー500にゲートウェイ情報要請メッセージを伝送することができる(950)。ゲートウェイ情報要請メッセージはライトノード400のIP情報、ライトノード400のポート情報、ライトノード400の緯度情報、およびライトノード400の経度情報のうち少なくとも一つの情報を含むことができる。
サーバー500はゲートウェイ情報要請メッセージに応答して、候補ゲートウェイ目録を生成することができる(953)。サーバー500はゲートウェイ情報応答メッセージを伝送することができる(955)。ゲートウェイ情報応答メッセージは、前記生成した候補ゲートウェイ目録と候補ゲートウェイの個数情報を含むことができる。
ライトノード400は受信された候補ゲートウェイ目録を利用して、図9Aを通じて上述された動作901〜動作919を遂行できる。もし、現在加入可能なグループがない場合、動作951〜動作955は繰り返し遂行され得る。
図9Cを参照すると、一例示において、ライトノード400はライトノード400の位置情報として緯度情報および/または経度情報を獲得することができる(961)。例えば、ライトノード400はポータブルデバイス(例:スマートフォン、タブレットPC)であり得る。ライトノード400の位置はリアルタイムに変更され得る。
ライトノード400は前記の緯度情報および/または経度情報を含むゲートウェイ情報要請メッセージをサーバー500に伝送することができる(963)。多様な実施例において、ライトノード400の緯度座標および/または経度座標が変更されることによって、サーバー500に接続しなければならないゲートウェイに対する情報を要請することができる。またはライトノード400はサーバー500に一定の周期ごとに現在の位置情報に基づいて接続しなければならないゲートウェイに対する情報を要請することができる。
一部の実施例において、ゲートウェイ情報要請メッセージはライトノード400が要請したゲートウェイの個数、ライトノード400のIPアドレス、ライトノード400の緯度情報、およびライトノード400の経度情報を含むことができる。
サーバー500はノード待機プールにライトノード400を登録することができる(965)。サーバー500はライトノードからゲートウェイ情報要請メッセージを受信すると、前記要請を順次処理するためにノード待機プールを運営することができる。以下、サーバー500の動作はサーバー500のプロセッサ510のグルーピングモジュール512によって遂行され得る。
サーバー500はゲートウェイ目録を照会し(967)、ゲートウェイ目録に含まれたゲートウェイとライトノード400の間の距離を計算することができる(969)。例えば、サーバー500はライトノード400の緯度情報および経度情報とゲートウェイの緯度情報および経度情報に基づいて、両者間の距離(例:GPS座標上距離)を計算することができる。サーバー500はゲートウェイ目録に含まれたゲートウェイに対して前記計算を遂行し、ライトノード400と近い距離を有する順で候補ゲートウェイを決定することができる。サーバー500は決定された候補ゲートウェイが含まれた候補ゲートウェイ目録を生成することができる(971)。候補ゲートウェイ目録はライトノード400によって要請された個数の候補ゲートウェイを含むことができる。サーバー500は候補ゲートウェイ目録を含むゲートウェイ情報応答メッセージをライトノード400に伝送することができる(983)。
図10は、一実施例に係るサーバー間のゲートウェイ目録を同期化する動作のフローチャートである。
サーバー500はあらかじめ定められた周期ごとにサーバー500に含まれたゲートウェイ目録を他のサーバーに共有することができる。図10を参照すると、例えば第1サーバー500−1と第2サーバー500−2の同期化過程が例示された。第2サーバー500−2はゲートウェイ目録に対する同期化要請メッセージを第1サーバー500−1に伝送することができる(1001)。前記同期化要請メッセージは、第2サーバー500−2に保存された同期化インデックス(番号)、ゲートウェイ目録を含むことができる。同期化インデックスはゲートウェイ目録が更新される時に更新される数字であり得る。例えば、同期化インデックスは0〜232−1値の範囲内の数字であり得る。
第1サーバー500−1は第1サーバー500−1に保存された第1同期化インデックスと第2サーバー500−2から受信された第2同期化インデックスを比較することができる。もし、第2同期化インデックスが第1同期化インデックスより大きいのであれば、第1サーバー500−1は第1サーバー500−1に保存されたゲートウェイ目録を前記メッセージを通じて受信されたゲートウェイ目録に更新し、自身の第1同期化インデックスを更新することができる(1003)。第1サーバー500−1は同期化要請応答メッセージを第2サーバー500−2に伝送することができる。同期化要請応答メッセージは同期化要請に対する処理結果(成功または失敗)を含むことができる。動作1001〜動作1005はあらかじめ定められた周期ごとに分散ネットワークシステム100に含まれる互いに異なるサーバーの間で遂行され得る。
多様な実施例において、新しく追加された第nサーバー500−nは初期化ブーティングを遂行し(1011)、任意の隣のサーバーである第1サーバー500−1に初期同期化要請メッセージを伝送することができる(1013)。第1サーバー500−1は初期同期化応答メッセージを第nサーバー500−nに伝送することができる。初期同期化応答メッセージは、分散ネットワークシステム100に含まれたサーバーに対する情報を含むことができる。サーバーに対する情報は、サーバーの個数、サーバーに保存されたゲートウェイの目録、ゲートウェイの個数、ゲートウェイ目録に対する同期化インデックスを含むことができる。第nサーバー500−nは初期同期化応答メッセージを受信すると、前記メッセージに含まれた情報を保存し、同期化を遂行できる。
図11は、一実施例によりゲートウェイ(301、請求項の「ノードグループ管理装置」)がグループ秘密鍵を生成する動作の例示図である。
ゲートウェイ301は前述した通り、ブロックチェーンネットワークに参加するノードのうち、一部のノードを一つのグループとして管理する機能をすることができる。ゲートウェイ301のグループ秘密鍵生成モジュール316は自身のグループ内のノードがトランザクション署名時に、秘密鍵とともに二重に署名に使われ得るグループ秘密鍵を生成することができる。ゲートウェイ301は自身のグループ内のノードと共有し、グループ秘密鍵の署名検証に使われるグループ公開鍵を他のグループに配布することができる。
図11を参照すると、ゲートウェイ301は自身のグループに参加するノードの情報をノードプール335に保存している。ノードプール335はグループ内の各ノードを識別するインデックス情報および各ノードの公開鍵情報をマッピングして保存することができる。例えば、第1ゲートウェイ301が100個のノードを管理する場合、ノードプール335には100個のノードのインデックス情報1〜100とそれぞれの公開鍵をマッピングして保存することができる。
まず、ゲートウェイ301はグループ秘密鍵を生成するために、ノードプール335に保存されたノードの公開鍵のうち一部を選定することができる。図11のように、ゲートウェイ301はランダムにインデックス情報1、3、25、99にマッピングされた公開鍵を選定することができ、または下記の例示の方法を使うことができる。
例えば、ゲートウェイ301はグループ内のノードの総数を所定の自然数で割った商の倍数に該当するインデックスを有する公開鍵を選定することができる。たとえば、ノードの総数が100個である場合、ランダムな自然数7で割った商である14の倍数である14、28、42、56、50、84、98のインデックスとマッピングされた公開鍵を選定することができる。
次に、ゲートウェイ301は選ばれた各公開鍵をビットのみからなるビット情報が出力されるように所定のハッシュ生成アルゴリズムを通じて変換することができる。たとえば各公開鍵にbase58 decodingを適用して160ビットからなるビット列を抽出することができる。
その後、ゲートウェイ301はそれぞれのビット列にビット演算(bitwise operation、例えば、^、&、>>、<<またはこれらの組み合わせ)を遂行して一つの合成されたビット列(図11、160ビットの1101001010011・・・00)を生成することができる。
その後、ゲートウェイ301は合成されたビット列に時間情報からなるビット列を連結してグループ秘密鍵を生成することができる。この時、時間情報ビット列はUNIX TIMEを使うことができる。ゲートウェイ301はグループ秘密鍵のビット数が秘密鍵のビット数と同一となるようにするために、時間情報のビット列に任意のビット列を連結することができる。
例えば、256ビットのグループ秘密鍵を作るためには、合成されたビット列が160ビットであるとき96ビットを連結しなければならないため、時間情報ビット列をCurrnet Time(32bit)×sysrandom(64bit)で構成することができる。ただし、これは例示に過ぎず、グループ秘密鍵の生成方法はこのような例示に限定されるものではない。
ゲートウェイ301は一つのグループ秘密鍵が持続的に使われる場合、悪意の攻撃によってグループ秘密鍵が露出する憂慮を防止するために、所定の周期でグループ秘密鍵を新しく生成したり、ゲートウェイ301が管理するグループに変更(例:ノードの追加または脱退)が発生する場合にグループ秘密鍵を新しく生成してグループ内のノードに配布することができる。
グループ秘密鍵の生成周期は、グループ秘密鍵から生成されたグループ公開鍵がゲートウェイ301間で共有されなければならないため、ゲートウェイ301間の送受信されるメッセージの通信ディレイ(例:2〜4秒)を考慮して選択され得る。一実施例により、グループ秘密鍵の生成周期は5〜60秒であり得るが、このような数値は例示に過ぎず、限定するものではない。
ゲートウェイ301のグループ公開鍵生成モジュール318はグループ秘密鍵から所定の関数を通じてグループ公開鍵を生成することができる。所定の関数はグループ秘密鍵に基づいてはグループ公開鍵を生成することができるが、第1グループ公開鍵に基づいてはグループ秘密鍵を作ることはできない非可逆関数であって、例えば、楕円曲線積算関数(Elliptic Curve Digital Signature Algorithm、ECDSA)を含むことができるが、これに限定されはしない。
図12は、一実施例でゲートウェイ301がグループ秘密鍵およびグループ公開鍵を生成および配布する動作を説明するためのフローチャートである。
前提動作としてゲートウェイ301がグループに含まれるノードを選定したり、ノードからグループへの参加を要請されてグループを決定する方法は、前述した図9A〜図9Cの動作を参照することができるが、ゲートウェイ301が複数のノードからなるグループを結成する方法はこれに限定されず、多様な方法を利用することができる。
以下、第1グループを管理するゲートウェイを第1グループゲートウェイ301−1、第1グループに含まれたノードを第1グループノード600−1と呼称し、第2グループを管理するゲートウェイを第2グループゲートウェイ301−2、第2グループに含まれたノードを第2グループノード600−2と呼称して、ゲートウェイ301がグループ秘密鍵およびグループ公開鍵を生成および配布する動作を説明する。
第1グループゲートウェイ301−1は、第1グループに含まれたノードの情報に基づいて第1グループ秘密鍵および第1グループ公開鍵を生成することができる(2001)。
第1グループゲートウェイ301−1は、第1グループノードに第1グループ秘密鍵(または第1グループ公開鍵を含むことができる)を配布することができる(2003)。第1グループノードのうち一つである第1グループノードa(600−1a)は、第1グループ秘密鍵を受信して自ら第1グループ公開鍵を生成することができる。
第1グループゲートウェイ301−1は外部グループに第1グループ公開鍵を配布することができる(2005)。外部グループのうち第2グループを管理する第2グループゲートウェイ301−2は、第1グループ公開鍵を受信して保存することができる(2007)。第2グループゲートウェイ301−2は第2グループノードに第1グループ公開鍵を配布することができる(2009)。第2グループノードのうちトランザクション検証機能をする第1グループノードa(600−2a)は、第1グループ公開鍵を保存して第1グループで生成されたトランザクションの検証に使うことができる。
併せて、第1グループ秘密鍵が生成された後に第1グループノードに変更が発生する状況を仮定してみる。ノードbが第1グループゲートウェイ301−1にグループ加入要請を伝送することができる(2011)。第1グループゲートウェイ301−1はノードbのグループ加入要請を承認することができ、承認時に第1グループノードb(600−1b)の情報をノードプール335に保存することができる(2013)。このようなグループ加入動作は図9A〜図9Cの動作を通じて遂行され得るが、これに限定されはしない。
第1グループゲートウェイ301−1は新しく変更されたノードプール335の情報に基づいて第1グループ秘密鍵および第1グループ公開鍵を新しく生成することができる(2015)。
第1グループゲートウェイ301−1は第1グループノードに第1グループ秘密鍵(または第1グループ公開鍵を含むことができる)を配布することができる(2017)。第1グループノードに該当する第1グループノードa(600−1a)および第1グループノードbは、第1グループ秘密鍵を受信して自ら第1グループ公開鍵を生成することができる。
第1グループゲートウェイ301−1は外部グループに第1グループ公開鍵を配布することができる(2019)。外部グループのうち第2グループを管理する第2グループゲートウェイ301−2は、第1グループ公開鍵を受信して保存することができる(2021)。第2グループゲートウェイ301−2は第2グループノードに第1グループ公開鍵を配布することができる(2023)。第2グループノードのうちトランザクション検証機能をする第1グループノードa(600−2a)は、第1グループ公開鍵を保存して第1グループで生成されたトランザクションの検証に使うことができる。第1グループゲートウェイ301−1は、グループに対する変更が発生しなくても周期的に第1グループ秘密鍵および第1グループ公開鍵を生成することができる。
一方、外部グループで最新で生成されたグループ秘密鍵で署名されたトランザクションを受信する時点より、外部グループで最新で生成されたグループ公開鍵を受信する時間差が発生して、最新のグループ公開鍵をより遅く受信するのであれば、正しく生成されたトランザクションであっても検証に失敗する状況を図13と共に詳察する。
図13は、一実施例でノードがグループ秘密鍵の選択によって検証が可能な状況と検証が不可能な状況を説明するためのフローチャートである。
まず、第2グループゲートウェイ301−2は第2グループに含まれたノードの情報に基づいて第2グループ秘密鍵aおよび第2グループ公開鍵aを生成することができる(2201)。
第2グループゲートウェイ301−2は第2グループノードに第2グループ秘密鍵a(または第2グループ公開鍵aを含むことができる)を配布することができる(2203)。第2グループノードのうち一つである第1グループノードa(600−2a)は第2グループ秘密鍵aを受信して自ら第2グループ公開鍵aを生成することができる。
第2グループゲートウェイ301−2は外部グループに第2グループ公開鍵aを配布することができる(2205)。外部グループのうち第1グループを管理する第1グループゲートウェイ301−1は第2グループ公開鍵aを受信して保存することができる(2207)。第1グループゲートウェイ301−1は第1グループノードに第2グループ公開鍵aを配布することができる(2209)。
一方、第2グループゲートウェイ301−2はグループ情報が変更されたり生成周期が到来して、第2グループに含まれたノードの情報に基づいて第2グループ秘密鍵bおよび第2グループ公開鍵bを新しく生成し(2211)、第2グループノードに第2グループ秘密鍵bを配布することができる(2213)。
ただし、第1グループに第2グループ公開鍵bが配布される前に、第1グループノードa(600−1a)が第2グループ秘密鍵bを通じて署名したトランザクションが第1グループに到達した場合(2215)には、第1グループノードa(600−1a)は第2グループ秘密鍵bを保存していないため、該当トランザクションが正しい署名であっても検証をすることができない。
したがって、第1グループに第2グループ公開鍵bが配布される前であれば、第2グループノードa(600−2a)は、たとえ新しい第2グループ秘密鍵bが配布されたとしても、以前に保存していた第2グループ秘密鍵aで署名しないと該当トランザクションの検証を受けることができない。より詳細に図14を通じて各グループが保有しているグループ公開鍵の状態を詳察する。
図14は、一実施例により各グループに配布されたグループ公開鍵の状態を示す例示図である。それぞれの大きいボックスは第1グループ、第2グループ、第3グループに配布されているグループ公開鍵の現在の状態を示す。そして、縦方向の第1周期〜第6周期はグループ鍵を生成する周期を意味し、下に行くほど最新で生成されたグループ公開鍵を意味する。またA−1〜A−6は第1グループで生成されたグループ公開鍵、B−1〜B−6は第2グループで生成されたグループ公開鍵、C−1〜C−6は第3グループで生成されたグループ公開鍵を意味する。
図14を参照すると、現在の状態で第1グループはA−6グループ公開鍵まで生成したが、配布のディレイ(2219)により第2グループにはまだA−6グループ公開鍵が到達しておらず、第3グループにはまだA−5およびA−6グループ公開鍵が到達していない状態である。したがって、第1グループのノードがA−6のグループ秘密鍵で署名をしたとしても、第2グループおよび第3グループのノードは該当トランザクションを検証することができない。また、第1グループのノードがA−5のグループ秘密鍵で署名をしたとしても第3グループのノードは該当トランザクションを検証することができない。これに伴い、トランザクションの実行遅延が発生することができる。
したがって、このような状況を防止するために、第1グループのノードは最新で配布されたグループ秘密鍵があるとしても、すでにブロックチェーンネットワークにすべて配布されているグループ秘密鍵を使ってトランザクションに署名することができる。
このために、ノードは配布されたグループ秘密鍵の視覚情報とともに受信して最新順で所定個数のグループ秘密鍵を保存し、トランザクションを生成する場合に図13の2217動作のように、最新で保存されたグループ秘密鍵から既設定された周期または時間(例:ブロックチェーン上にグループ公開鍵がすべて配布され得る通信ディレイ時間を考慮して設定)の以前に生成されたグループ秘密鍵を利用して署名してトランザクションの検証不可状況を防止することができる。
図15は、一実施例に係るグループ秘密鍵基盤のトランザクション二重署名およびグループ公開鍵基盤のトランザクション二重検証の概念図である。
図15を参照すると、ノードはメッセージの内容と秘密鍵を共にハッシングした第1署名情報とともに、メッセージの内容とグループ秘密鍵を共にハッシングした第2署名情報を生成することができる。これに伴い、ノードはブロックチェーンネットワークに発生させるトランザクションの構造として、メッセージ、第1署名情報、第2署名情報、公開鍵およびグループ公開鍵を含ませることができる。例えば、ブロックチェーンネットワークに配布されるトランザクションは、
1 027d774e8a4f7e03d226dcab58298fa8a0acc
1 027d774e8a4f7e03d226dcab58298fa8a0acc
78afeb309d7195cb930f55dccaf22 03a6960346cc0698247d4178f521e0c5e43f1b28b3b647b9413e0058f6108f6dddの実際の例示であって、定められた規約に沿って情報の順序が配列された16進数の列を含むことができる。該当トランザクションを受信したノードは、定められた形式で16進数情報を分類してスタックに積むことができる。例えば、形式に対する規約が、OP_0<Sig−Wallet><Sig−Group>OP_2<Public Key Wallet><Public Key Group>OP_2 OP_CHECKMULTISIGのような場合、トランザクションを受信したノードは<Sig−Wallet>に該当する数字列から第1署名情報、<Sig−Group>に該当する数字列から第2署名情報、<Public Key Wallet>に該当する数字列から公開鍵情報、<Public Key Group>に該当する数字列からグループ公開鍵情報を抽出することができる。
これに伴い、トランザクションを受信したノードは、公開鍵を通じて第1署名が正しい秘密鍵によって署名されたものであるかを検証し、これに加え、グループ公開鍵を通じて第2署名が正しいグループ秘密鍵によって署名されたものであるかを検証して、最終的に該当トランザクションが正しいものであるかを検証することができる。
前述した実施例によると、トランザクション署名に秘密鍵とグループ秘密鍵を共に使うため、秘密鍵がハッキングされたとしてもグループ秘密鍵の署名を要請する構成を通じてハッキングによる被害を防止することができる。また、信頼性が確保されたゲートウェイ301を通じてグループ秘密鍵とグループ公開鍵を生成および配布して、グループ鍵基盤のトランザクション署名に対する信頼度を高めることができる。これに加え、グループ秘密鍵の生成を周期的に遂行したり、またはグループに変更が発生した場合ごとに遂行することによって、グループ秘密鍵の露出可能性を最小化することができる。併せて、ノードがトランザクションを生成する場合、ブロックチェーンネットワーク上のすべてに配布されたグループ秘密鍵を通じての署名を遂行することによって、配布ディレイによるトランザクション検証エラーを防止することができる。
図11〜図15とともに説明された動作の順序は例示に過ぎず、その時系列的順序が限定されるものではなく、設計により論理的に変更することができる。また、図11〜図15とともに説明されたゲートウェイ301の動作は図4のプロセッサが含むモジュールによって遂行される動作として理解され得る。併せて、図11〜図15とともに説明されたノードの動作は図4のフルノードまたは図5のライトノードのプロセッサが含むモジュールによって遂行される動作として理解され得る。
本文書の多様な実施例およびこれに使われた用語は本文書に記載された技術的特徴を特定の実施例に限定しようとするものではなく、該当実施例の多様な変更、均等物、または代替物を含むものと理解されるべきである。図面の説明と関連して、類似するまたは関連した構成要素に対しては類似する参照符号が使われ得る。アイテムに対応する名詞の単数型は関連した文脈上明白に異なるように指示しない限り、アイテム一つまたは複数個を含むことができる。
本文書で、「AまたはB」、「AおよびBのうち少なくとも一つ」、「AまたはBのうち少なくとも一つ」、「A、BまたはC」、「A、BおよびCのうち少なくとも一つ」、および「A、B、またはCのうち少なくとも一つ」のような文面のそれぞれは、その文面のうち該当する文面に共に羅列された項目の可能なすべての組み合わせを含むことができる。「第1」、「第2」、または「最初」または「二番目」のような用語は、単に該当構成要素を他の該当構成要素と区分するために使われ得、該当構成要素を他の側面(例:重要性または順序)に限定しない。ある(例:第1)構成要素が他の(例:第2)構成要素に、「機能的に」または「通信的に」という用語とともにまたはこのような用語なしに、「結合」または「接続」と言及された場合、それはある構成要素が他の構成要素に直接的に(例:有線で)、無線で、または第3構成要素を通じて連結され得るということを意味する。
本文書で使われた用語「モジュール」はハードウェア、ソフトウェアまたはファームウェアで具現されたユニットを含むことができ、例えば、ロジック、論理ブロック、部品、または回路などの用語と相互に互換的に使われ得る。モジュールは、一体に構成された部品または一つまたはそれ以上の機能を遂行する、部品の最小単位またはその一部となり得る。例えば、一実施例によると、モジュールはASIC(application−specific integrated circuit)の形態で具現され得る。
本文書の多様な実施例は、機器(machine)(例:電子装置)によって読み取り可能な保存媒体(例:メモリ)に保存された一つ以上の命令語を含むソフトウェア(例:プログラム)で具現され得る。保存媒体はRAM(random access memory)、メモリバッファ、ハードドライブ、データベース、EPROM(erasable programmable read−only memory)、EEPROM(electrically erasable read−only memory)、ROM(read−only memory)などを含むことができる。
また、本文書の実施例のプロセッサは、保存媒体から保存された一つ以上の命令語のうち少なくとも一つの命令を呼び出し、それを実行することができる。これは機器が呼び出された少なくとも一つの命令語によって少なくとも一つの機能を遂行するように運営されることを可能にする。このような一つ以上の命令語はコンパイラによって生成されたコードまたはインタープリタによって実行され得るコードを含むことができる。プロセッサは汎用プロセッサ、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、DSP(Digital Signal Processor)などであり得る。
機器で読み取り可能な保存媒体は、非一過性の(non−transitory)保存媒体の形態で提供され得る。ここで、「非一過性の」は保存媒体が実在(tangible)する装置であり、信号(signal)(例:電磁波)を含まないことを意味するだけであり、この用語はデータが保存媒体に半永久的に保存される場合と臨時的に保存される場合を区分しない。
本文書に開示された多様な実施例に係る方法はコンピュータプログラム製品(computer program product)に含まれて提供され得る。コンピュータプログラム製品は商品として販売者および購買者間に取引され得る。コンピュータプログラム製品は機器で読み取り可能な保存媒体(例:compact disc read only memory(CD−ROM))の形態で配布されたり、またはアプリケーションストア(例:プレイストア)を通じて、または二つの使用者装置(例:スマートフォン)間に直接、オンラインで配布(例:ダウンロードまたはアップロード)され得る。オンライン配布の場合に、コンピュータプログラム製品の少なくとも一部は、メーカーのサーバー、アプリケーションストアのサーバー、または中継サーバーのメモリのような機器で読み取り可能な保存媒体に少なくとも一時保存されたり、臨時的に生成され得る。
多様な実施例によると、記述した構成要素のそれぞれの構成要素(例:モジュールまたはプログラム)は、単数または複数の個体を含むことができる。多様な実施例によると、前述した該当構成要素のうち一つ以上の構成要素または動作が省略されたり、または一つ以上の他の構成要素または動作が追加され得る。おおむねまたは追加的に、複数の構成要素(例:モジュールまたはプログラム)は一つの構成要素に統合され得る。このような場合、統合された構成要素は複数の構成要素それぞれの構成要素の一つ以上の機能を、統合以前に複数の構成要素のうち該当構成要素によって遂行されるものと同一または類似するように遂行できる。多様な実施例によると、モジュール、プログラムまたは他の構成要素によって遂行される動作は順次、並列的に、繰り返し、またはヒューリスティックに実行されたり、動作のうち一つ以上が他の順序で実行されたり、省略されたり、または一つ以上の他の動作が追加され得る。
Claims (15)
- 分散データベースを共有するブロックチェーンネットワークを構成するノードのうち、一部のノードが属した第1グループを管理するノードグループ管理装置であって、前記ブロックチェーンネットワークに参加するすべてのノードはそれぞれ秘密鍵および公開鍵を保有する、ノードグループ管理装置において、
前記ブロックチェーンネットワークと通信する通信インターフェースと、
前記第1グループのノードに関する情報およびプロセッサの動作遂行に関する命令語を保存する一つ以上のメモリであって、前記第1グループのノードに関する情報は前記第1グループのノードそれぞれの公開鍵を含む、メモリと、
前記命令語を通じて動作するように前記一つ以上のメモリと連結され、前記第1グループのノードがトランザクションを生成する場合、前記トランザクションに前記秘密鍵の署名と共に、前記第1グループのノードに関する情報に基づいて前記トランザクションに追加的な署名を遂行するようにするグループ秘密鍵を生成して、前記第1グループのノードが共通して保有するように前記グループ秘密鍵を前記第1グループに配布する動作を遂行する一つ以上のプロセッサを含む、ノードグループ管理装置。 - 前記一つ以上のプロセッサは、
前記第1グループのノードのうち、一部のノードの公開鍵および時間情報に基づいて前記グループ秘密鍵を生成する、請求項1に記載のノードグループ管理装置。 - 前記一つ以上のプロセッサは、
前記一部のノードの公開鍵がそれぞれ一連のビット列になるように所定のハッシュ生成アルゴリズムに基づいて変換し、前記それぞれの一連のビット列に所定のビット演算(bitwise operation)を遂行して一つの合成されたビット列に変換し、前記時間情報をビット列で構成後に前記合成されたビット列と連結して、前記秘密鍵と同一のビット数を有する前記グループ秘密鍵を生成する、請求項2に記載のノードグループ管理装置。 - 前記一つ以上のプロセッサは、
所定の周期ごとに新しい時間情報に基づいて前記グループ秘密鍵を新しく生成して前記第1グループに配布し、
前記所定の周期は前記ブロックチェーンネットワーク上でデータがすべて配布される通信ディレイ時間より長い、請求項3に記載のノードグループ管理装置。 - 前記一つ以上のプロセッサは、
前記第1グループに変更が発生する場合、前記変更が発生した第1グループのノードのうち一部の公開鍵に対する情報に基づいて前記グループ秘密鍵を新しく生成して前記グループに配布する、請求項3に記載のノードグループ管理装置。 - 前記一つ以上のプロセッサは、
所定の周期で前記グループ秘密鍵を新しく生成して前記第1グループのノードに配布し、
前記第1グループのノードは、
前記配布されたグループ秘密鍵を受信した視覚情報とともに複数のグループ秘密鍵を保存し、前記トランザクションを生成する場合、前記複数のグループ秘密鍵のうち現在の周期から既設定された周期以前に生成されたグループ秘密鍵を利用して署名する、請求項1に記載のノードグループ管理装置。 - 前記トランザクションは、
メッセージ、前記メッセージに対して前記秘密鍵を通じての第1署名、前記秘密鍵と対応する公開鍵、前記メッセージに対して前記グループ秘密鍵を通じての第2署名および前記グループ秘密鍵と対応するグループ公開鍵を含む、請求項6に記載のノードグループ管理装置。 - 前記一つ以上のプロセッサは、
所定の周期で生成された前記グループ秘密鍵と対応するグループ公開鍵を生成して前記ブロックチェーンネットワークの他のグループである第2グループに配布し、
前記第2グループのノードは、
前記配布されたグループ公開鍵を受信した視覚情報とともに複数のグループ公開鍵を保存し、前記第1グループのノードが生成したトランザクションを検証する場合、前記複数のグループ公開鍵をすべて使って前記第1グループのノードが生成したトランザクションを検証する、請求項6に記載のノードグループ管理装置。 - 分散データベースを共有するブロックチェーンネットワークを構成するノードを遂行するコンピューティング装置であって、前記ブロックチェーンネットワークに参加するすべてのノードはそれぞれ秘密鍵および公開鍵を保有する、コンピューティング装置において、
前記ブロックチェーンネットワークと通信する通信インターフェースと、
前記一つのノードが属した第1グループを管理する請求項1に記載されたノードグループ装置に関する情報、前記ノードグループ装置が時間の流れに沿って配布した複数のグループ秘密鍵、およびプロセッサの動作遂行に関する命令語を保存する一つ以上のメモリであって、前記複数のグループ秘密鍵は時間情報を含む、メモリと、
前記命令語を通じて動作するように前記一つ以上のメモリと連結され、トランザクションを生成する場合、前記時間情報を参照して、前記複数のグループ秘密鍵のうち最新で保存されたグループ秘密鍵から既設定された周期以前に生成されたグループ秘密鍵を利用した署名を前記トランザクションに含ませる動作を遂行する一つ以上のプロセッサとを含む、コンピューティング装置。 - 分散データベースを共有するブロックチェーンネットワークを構成するノードおよびノードグループ管理装置によって遂行されるノードグループ管理方法であって、前記ブロックチェーンネットワークを構成するすべてのノードはそれぞれの秘密鍵および公開鍵を保有する、ノードグループ管理方法において、
前記ノードグループ管理装置に、第1グループのノードに関する情報を前記第1グループのノードから受信させる段階であって、前記第1グループは前記装置が管理するノードが含まれたグループであり、前記第1グループのノードに関する情報は前記第1グループのノードそれぞれの公開鍵を含む、段階と、
前記ノードグループ管理装置に、前記第1グループのノードがトランザクションを生成する場合、前記第1グループのノードに関する情報に基づいて前記秘密鍵とともに追加的な署名として使われるグループ秘密鍵を生成させる段階と、
前記ノードグループ管理装置に、前記第1グループのノードが共通して保有するように前記グループ秘密鍵を前記第1グループのノードに配布させる段階とを含む、ノードグループ管理方法。 - 前記グループ秘密鍵を生成させる段階は、
前記一部のノードの公開鍵がそれぞれ一連のビット列になるように所定のハッシュ生成アルゴリズムに基づいて変換し、前記それぞれの一連のビット列に所定のビット演算(bitwise operation)を遂行して一つの合成されたビット列に変換し、前記時間情報をビット列で構成後に前記合成されたビット列と連結して、前記秘密鍵と同一のビット数を有する前記グループ秘密鍵を生成させる段階を含む、請求項10に記載のノードグループ管理方法。 - 前記配布させる段階は、
前記ノードグループ管理装置に、所定の周期で前記グループ秘密鍵を新しく生成して前記第1グループのノードに配布させる段階を含み、
前記方法は、
前記第1グループのノードに、前記配布されたグループ秘密鍵を受信した視覚情報とともに複数のグループ秘密鍵を保存し、前記トランザクションを生成する場合、前記複数のグループ秘密鍵のうち現在の周期から既設定された周期以前に生成されたグループ秘密鍵を利用して署名させる段階を含む、請求項10に記載のノードグループ管理方法。 - 前記配布させる段階は、
前記所定の周期で生成された前記グループ秘密鍵と対応するグループ公開鍵を生成して前記ブロックチェーンネットワークの他のグループである第2グループに配布させる段階を含み、
前記方法は、
前記第2グループのノードに、前記配布されたグループ公開鍵を受信した視覚情報とともに複数のグループ公開鍵を保存させる段階と、
前記第2グループのノードに、前記第1グループのノードが生成したトランザクションを検証する場合、前記複数のグループ公開鍵をすべて使って前記第1グループのノードが生成したトランザクションを検証させる段階をさらに含む、請求項12に記載のノードグループ管理方法。 - 請求項10〜請求項13のいずれか一項に記載された方法をプロセッサが遂行するようにする命令語を含む、コンピュータプログラムが記録されたコンピュータ読み取り可能記録媒体。
- 請求項10〜請求項13のいずれか一項に記載された方法をプロセッサが遂行するようにする、コンピュータ読み取り可能記録媒体に保存されたコンピュータプログラム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862703896P | 2018-07-27 | 2018-07-27 | |
US62/703,896 | 2018-07-27 | ||
KR10-2019-0014619 | 2019-02-07 | ||
KR1020190014619A KR102120703B1 (ko) | 2018-07-27 | 2019-02-07 | 블록체인 네트워크 상에서 그룹키 기반의 이중 서명 트랜잭션 구조를 구성하는 노드 그룹 관리 장치 및 컴퓨팅 장치 |
PCT/KR2019/001731 WO2020022599A1 (ko) | 2018-07-27 | 2019-02-13 | 블록체인 네트워크 상에서 그룹키 기반의 이중 서명 트랜잭션 구조를 구성하는 노드 그룹 관리 장치 및 컴퓨팅 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021533638A true JP2021533638A (ja) | 2021-12-02 |
Family
ID=67066011
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021505768A Pending JP2021533638A (ja) | 2018-07-27 | 2019-02-13 | ブロックチェーンネットワーク上でグループ鍵基盤の二重署名トランザクション構造を構成するノードグループ管理装置およびコンピューティング装置 |
JP2021505778A Pending JP2021532494A (ja) | 2018-07-27 | 2019-07-24 | システムに含まれるノードに対してグループを運営する分散ネットワークシステム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021505778A Pending JP2021532494A (ja) | 2018-07-27 | 2019-07-24 | システムに含まれるノードに対してグループを運営する分散ネットワークシステム |
Country Status (5)
Country | Link |
---|---|
US (2) | US20210248636A1 (ja) |
JP (2) | JP2021533638A (ja) |
KR (2) | KR101994455B1 (ja) |
CN (2) | CN112913185A (ja) |
WO (1) | WO2020022760A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131399B (zh) * | 2019-12-03 | 2021-11-26 | 北京海益同展信息科技有限公司 | 一种区块链中共识节点动态增加方法及装置 |
KR102400455B1 (ko) * | 2020-04-13 | 2022-05-20 | 고려대학교 세종산학협력단 | 분산 서비스 환경에서의 사용자 개인키 백업 및 복원 프레임워크 |
KR20220035773A (ko) | 2020-09-14 | 2022-03-22 | 서강대학교산학협력단 | 블록체인 네트워크에서의 그룹키 생성 방법 |
KR102494873B1 (ko) * | 2020-10-27 | 2023-02-06 | 주식회사 온더 | 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 거래 수행장치 |
KR102430835B1 (ko) * | 2020-11-04 | 2022-08-10 | 광주과학기술원 | 블록체인 전자투표시스템, 그 시스템의 운용방법 |
KR102346292B1 (ko) * | 2020-11-11 | 2022-01-03 | 엘에스웨어(주) | 키 정보를 이용한 트랜잭션 분류 시스템 및 방법 |
KR102346293B1 (ko) * | 2020-12-08 | 2022-01-03 | 엘에스웨어(주) | 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템 및 수행방법 |
KR102343432B1 (ko) * | 2021-06-16 | 2021-12-24 | 김송환 | 모바일 기반 블록체인 분산 네트워크에 포함되는 노드들에 대하여 온 오프 상에서 가상 화폐의 지불결제 시스템 및 방법 |
US11790353B2 (en) | 2021-06-16 | 2023-10-17 | Song Hwan KIM | System and method for online/offline payment with virtual currency for nodes included in mobile-based blockchain distributed network |
KR102391186B1 (ko) * | 2021-11-24 | 2022-04-28 | 엘에스웨어(주) | 비밀 공유 기법을 이용한 블록체인 외부 명령 출력 방법 및 시스템 |
CN114363357B (zh) * | 2021-12-28 | 2024-01-19 | 上海沄熹科技有限公司 | 一种基于Gossip的分布式数据库网络连接管理方法 |
CN115361233B (zh) * | 2022-10-20 | 2023-02-03 | 中国信息通信研究院 | 基于区块链的电子文件签署方法、装置、设备和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1115373A (ja) * | 1997-06-20 | 1999-01-22 | Fuji Xerox Co Ltd | 公開鍵暗号方式 |
US20050198170A1 (en) * | 2003-12-12 | 2005-09-08 | Lemay Michael | Secure electronic message transport protocol |
JP2015033068A (ja) * | 2013-08-06 | 2015-02-16 | 日本電信電話株式会社 | ファイル共有システム、情報提供装置、情報取得装置、及びその方法、プログラム |
JP2017092713A (ja) * | 2015-11-10 | 2017-05-25 | 株式会社アメニディ | 匿名通信システムおよび該通信システムに加入するための方法 |
JP2018503322A (ja) * | 2015-01-27 | 2018-02-01 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | データリンクグループのためのグループ鍵告知および配布 |
WO2018105038A1 (ja) * | 2016-12-06 | 2018-06-14 | 三菱電機株式会社 | 通信装置及び分散型元帳システム |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040139049A1 (en) * | 1996-08-22 | 2004-07-15 | Wgrs Licensing Company, Llc | Unified geographic database and method of creating, maintaining and using the same |
AU2002251704A1 (en) * | 2000-11-03 | 2002-08-19 | Go2 Systems, Inc. | Unified geographic database and metod of creating, maintaining and using the same |
US7386318B2 (en) * | 2002-03-19 | 2008-06-10 | Pitney Bowes Mapinfo Corporation | Location based service provider |
US8301654B2 (en) * | 2009-02-24 | 2012-10-30 | Hitachi, Ltd. | Geographical distributed storage system based on hierarchical peer to peer architecture |
US9106629B2 (en) * | 2009-08-18 | 2015-08-11 | Microsoft Technology Licensing, Llc | Distributed algorithm for changing a shared value |
JP5061167B2 (ja) * | 2009-09-08 | 2012-10-31 | 株式会社野村総合研究所 | クラウドコンピューティングシステム |
US9560583B2 (en) * | 2012-12-21 | 2017-01-31 | Verizon Patent And Licensing Inc. | Gateway selection based on geographical location |
US10346814B2 (en) * | 2014-06-04 | 2019-07-09 | MONI Limited | System and method for executing financial transactions |
DE102015113942A1 (de) * | 2014-08-21 | 2016-02-25 | Affectomatics Ltd. | Rating von Urlaubszielen auf der Grundlage von affektiver Reaktion |
US11494390B2 (en) * | 2014-08-21 | 2022-11-08 | Affectomatics Ltd. | Crowd-based scores for hotels from measurements of affective response |
US9805381B2 (en) * | 2014-08-21 | 2017-10-31 | Affectomatics Ltd. | Crowd-based scores for food from measurements of affective response |
US20160098723A1 (en) * | 2014-10-01 | 2016-04-07 | The Filing Cabinet, LLC | System and method for block-chain verification of goods |
US20160162882A1 (en) * | 2014-12-08 | 2016-06-09 | Guy LaMonte McClung, III | Digital money choice and eWallet selection |
DE102016101665A1 (de) * | 2015-01-29 | 2016-08-04 | Affectomatics Ltd. | Auf datenschutzüberlegungen gestützte filterung von messwerten der affektiven reaktion |
US10158492B2 (en) * | 2015-02-25 | 2018-12-18 | Guardtime Ip Holdings Limited | Blockchain-supported device location verification with digital signatures |
US20170161713A1 (en) * | 2015-12-08 | 2017-06-08 | International Business Machines Corporation | Selecting an electronic payment account to maximize rewards |
US10355854B2 (en) * | 2015-12-17 | 2019-07-16 | Intel Corporation | Privacy preserving group formation with distributed content key generation |
GB2561729A (en) * | 2016-02-23 | 2018-10-24 | Nchain Holdings Ltd | Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system |
KR102209781B1 (ko) * | 2016-07-21 | 2021-01-28 | 주식회사 케이티 | 가상화폐 관리 방법 및 이를 위한 장치 |
US20180216946A1 (en) * | 2016-09-30 | 2018-08-02 | Mamadou Mande Gueye | Method and system for facilitating provisioning of social activity data to a mobile device based on user preferences |
EP3525389B1 (en) * | 2016-10-04 | 2021-02-17 | Nec Corporation | Embedded sim management system, node device, embedded sim management method, program, and information registrant device |
JP6533771B2 (ja) * | 2016-11-15 | 2019-06-19 | 富士通株式会社 | 通信方法、装置、及びプログラム |
CN106559211B (zh) * | 2016-11-22 | 2019-12-13 | 中国电子科技集团公司第三十研究所 | 一种区块链中隐私保护智能合约方法 |
KR101891125B1 (ko) * | 2016-12-07 | 2018-08-24 | 데이터얼라이언스 주식회사 | 분산된 네트워크 노드의 서비스 기여도 산출 시스템 및 방법 |
CN107171806B (zh) * | 2017-05-18 | 2020-04-10 | 北京航空航天大学 | 基于区块链的移动终端网络密钥协商方法 |
CN107423978A (zh) * | 2017-06-16 | 2017-12-01 | 郑州大学 | 一种基于联盟区块链的分布式能源交易认证方法 |
US10439820B2 (en) * | 2017-06-19 | 2019-10-08 | Dell Products, Lp | Method and apparatus for secure access to a mobile edge computing gateway device based on a subscriber location fingerprint |
US10452824B2 (en) * | 2017-07-24 | 2019-10-22 | Dell Products, Lp | Method and apparatus for optimized access of security credentials via mobile edge-computing systems |
CN107528886B (zh) * | 2017-07-25 | 2020-07-31 | 中国科学院计算技术研究所 | 区块链全网拆分方法与系统 |
US10380650B2 (en) * | 2017-07-26 | 2019-08-13 | Jehan Hamedi | Systems and methods for automating content design transformations based on user preference and activity data |
CN107508681A (zh) * | 2017-08-15 | 2017-12-22 | 中国联合网络通信集团有限公司 | 区块链密钥保护方法及装置 |
-
2018
- 2018-09-07 KR KR1020180107351A patent/KR101994455B1/ko active IP Right Grant
-
2019
- 2019-02-07 KR KR1020190014619A patent/KR102120703B1/ko active IP Right Grant
- 2019-02-13 JP JP2021505768A patent/JP2021533638A/ja active Pending
- 2019-02-13 CN CN201980063538.8A patent/CN112913185A/zh active Pending
- 2019-07-24 CN CN201980063366.4A patent/CN112753207A/zh active Pending
- 2019-07-24 WO PCT/KR2019/009126 patent/WO2020022760A1/ko active Application Filing
- 2019-07-24 JP JP2021505778A patent/JP2021532494A/ja active Pending
-
2021
- 2021-01-26 US US17/159,022 patent/US20210248636A1/en not_active Abandoned
- 2021-01-26 US US17/159,021 patent/US20210258154A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1115373A (ja) * | 1997-06-20 | 1999-01-22 | Fuji Xerox Co Ltd | 公開鍵暗号方式 |
US20050198170A1 (en) * | 2003-12-12 | 2005-09-08 | Lemay Michael | Secure electronic message transport protocol |
JP2015033068A (ja) * | 2013-08-06 | 2015-02-16 | 日本電信電話株式会社 | ファイル共有システム、情報提供装置、情報取得装置、及びその方法、プログラム |
JP2018503322A (ja) * | 2015-01-27 | 2018-02-01 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | データリンクグループのためのグループ鍵告知および配布 |
JP2017092713A (ja) * | 2015-11-10 | 2017-05-25 | 株式会社アメニディ | 匿名通信システムおよび該通信システムに加入するための方法 |
WO2018105038A1 (ja) * | 2016-12-06 | 2018-06-14 | 三菱電機株式会社 | 通信装置及び分散型元帳システム |
Also Published As
Publication number | Publication date |
---|---|
US20210248636A1 (en) | 2021-08-12 |
KR20200012705A (ko) | 2020-02-05 |
JP2021532494A (ja) | 2021-11-25 |
WO2020022760A1 (ko) | 2020-01-30 |
KR101994455B1 (ko) | 2019-06-28 |
CN112753207A (zh) | 2021-05-04 |
KR102120703B1 (ko) | 2020-08-05 |
US20210258154A1 (en) | 2021-08-19 |
CN112913185A (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2021533638A (ja) | ブロックチェーンネットワーク上でグループ鍵基盤の二重署名トランザクション構造を構成するノードグループ管理装置およびコンピューティング装置 | |
US11316697B2 (en) | System and method for issuing verifiable claims | |
US10938569B2 (en) | System and method for verifying verifiable claims | |
US20210126785A1 (en) | System and method for creating decentralized identifiers | |
EP3732856B1 (en) | System and method for decentralized-identifier authentication | |
CN113691597B (zh) | 区块链合约部署方法、装置、设备以及存储介质 | |
CN110597925B (zh) | 一种基于区块链的跨链数据处理方法及装置 | |
KR101781583B1 (ko) | 블록체인을 기반으로 한 파일 관리/검색 시스템 및 파일 관리/검색 방법 | |
US20200295936A1 (en) | Computer-implemented systems and methods for linking a blockchain to a digital twin | |
US20180183768A1 (en) | Systems and methods for privacy in distributed ledger transactions | |
JP2020519983A (ja) | 並列処理ブロックチェーントランザクションのためのシステムおよび方法 | |
US20200364212A1 (en) | System and method of supporting reflection of transactions between blockchain networks | |
CN111314172B (zh) | 基于区块链的数据处理方法、装置、设备及存储介质 | |
EP4216077A1 (en) | Blockchain network-based method and apparatus for data processing, and computer device | |
BR112019007232A2 (pt) | sistema e método para proteção da informação | |
US11270030B2 (en) | System and method for consensus management | |
CN112804354B (zh) | 跨链进行数据传输的方法、装置、计算机设备和存储介质 | |
CN110599175A (zh) | 一种区块处理方法及相关设备 | |
CN110941672B (zh) | 户籍管理方法、装置、设备以及存储介质 | |
EP4139875A1 (en) | An ownership data management system and method | |
CN113706313A (zh) | 基于区块链的融资方法、系统及计算机可读存储介质 | |
JP7424490B2 (ja) | 登録者端末、検証者端末、管理システムおよびプログラム | |
CN117495559A (zh) | 一种交易处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210325 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220323 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220426 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20221122 |