KR102349014B1 - Method and system for building fast synchronizable decentralized distributed database - Google Patents
Method and system for building fast synchronizable decentralized distributed database Download PDFInfo
- Publication number
- KR102349014B1 KR102349014B1 KR1020200014753A KR20200014753A KR102349014B1 KR 102349014 B1 KR102349014 B1 KR 102349014B1 KR 1020200014753 A KR1020200014753 A KR 1020200014753A KR 20200014753 A KR20200014753 A KR 20200014753A KR 102349014 B1 KR102349014 B1 KR 102349014B1
- Authority
- KR
- South Korea
- Prior art keywords
- chain
- account
- database
- synchronization
- distributed database
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1858—Parallel file systems, i.e. file systems supporting multiple processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
다양한 실시예들에 따른 블록체인을 이용한 탈중앙화 분산 데이터베이스 구성 방법 및 시스템은, 블록체인 기술을 이용하여 P2P 네트워크 참여자들에 의해 관리되는 탈중앙화 분산 데이터베이스를 구성하는 방법과 그 시스템에 관한 것으로, 수정 불가능한 블록체인인 메인체인을 이용하여 현재 어떤 작업이 진행되어야 하는지에 대한 정보를 전체 참여자에게 투명하게 제공하고, 수정 가능한 블록체인의 형태를 갖는 계정체인을 이용하여 계정의 등록과 함께 계정의 데이터베이스 상태를 개인정보의 유출 없이 전체 참여자에게 제공하고, 사용자가 자신의 데이터 동기화를 사이드체인 네트워크에 자신의 개인정보의 유출 없이 요청하고, 다수의 사이드체인을 이용하여 전체 데이터베이스 시스템의 동기화에 필요한 '승인'을 고속으로 진행하고, 동기화에 필요한 명령어를 스마트 계약으로 구성하여 동기화 진행되도록 설계하였다. 본 발명은 실제 동기화 과정에서는 동기화를 완료한 로컬 데이터베이스는 동기화를 완료하지 못한 다른 로컬 데이터베이스에게 동기화에 필요한 데이터를 제공하여 중앙 데이터베이스를 이용하는 경우에 등장하는 병목현상을 제거하고, 각 로컬 데이터베이스의 동기화 정확성을 위변조가 불가능한 공개된 메인체인과 계정체인을 이용하여 확인할 수 있도록 하여 고속 동기화가 가능한 분산 데이터베이스 방법과 그 시스템을 제안하였다. A method and system for configuring a decentralized distributed database using blockchain according to various embodiments relates to a method and system for configuring a decentralized distributed database managed by P2P network participants using blockchain technology, and modified Using the main chain, which is an impossible block chain, information about what kind of work should be done now is transparently provided to all participants, and the database status of the account along with account registration using the account chain in the form of a modifiable block chain is provided to all participants without leakage of personal information, the user requests synchronization of their data to the sidechain network without leakage of their personal information, and ‘approval’ required for synchronization of the entire database system using multiple sidechains is designed to proceed at high speed and to synchronize by configuring the commands required for synchronization into a smart contract. In the actual synchronization process, a local database that has completed synchronization provides data necessary for synchronization to other local databases that have not completed synchronization, thereby eliminating a bottleneck that appears when using a central database, and synchronizing accuracy of each local database We proposed a distributed database method and system that enables high-speed synchronization by allowing users to verify using the public main chain and account chain that cannot be forged or tampered with.
Description
다양한 실시예들은 블록체인 기술을 이용하여 P2P(peer-to-peer) 네트워크 참여자들에 의해 관리되는 고속 동기화가 가능한 분산 데이터베이스를 구성하는 방법 및 시스템에 관한 것이다. Various embodiments relate to a method and system for constructing a distributed database capable of high-speed synchronization managed by peer-to-peer (P2P) network participants using blockchain technology.
분산 데이터베이스는 하나의 데이터베이스 관리 시스템이 여러 중앙연산장치에 연결된 저장장치들을 제어하는 형태의 데이터베이스이다. 작은 규모의 분산 데이터베이스에서는 여러 곳에 분산된 각각의 데이터베이스의 관리를 모두 중앙서버에서 담당하는 완전 중앙집권형 방법이 가능하지만 일정 규모 이상의 데이터베이스에서는 중앙집권형 방법은 비효율적이다. 일정 규모 이상의 데이터베이스에서는 각각의 분산된 데이터베이스는 개별 데이터베이스가 독립적으로 관리되다가 일정시간을 간격으로 전체 데이터베이스의 내용을 중앙서버의 명령에 의해 동기화하는 부분 중앙집권형 방법이 널리 사용되고 있다. A distributed database is a type of database in which one database management system controls storage devices connected to several central processing units. In a small-scale distributed database, a fully centralized method in which the central server is in charge of managing each database distributed in several places is possible, but the centralized method is inefficient for databases of a certain size or larger. In databases larger than a certain size, each distributed database is managed independently, and a partial centralized method is widely used in which the contents of the entire database are synchronized by the command of the central server at regular intervals.
완전 또는 부분 중앙집권형 방법 모두에서 중앙 데이터베이스의 역할은 절대적이다. 중앙 데이터베이스에 대한 높은 의존도는 다음 3가지 단점을 야기한다. 첫 번째 단점은 대규모 분산 데이터베이스를 관리하기 위한 중앙집권형 관리 시스템을 구축하기 위해서는 대규모 시설투자가 필요하다는 사실이다. 이는 해당 데이터베이스 시스템을 사용하는데 많은 비용을 지불해야 함을 의미하고, 또한, 시설투자의 대형화에 따라 소수의 데이터베이스 서비스 제공업체만이 경쟁에 참여할 수 있게 되어 데이터베이스 산업의 독점화가 심화되는 단점을 발생시킬 수 있다. 두 번째 단점은 중앙 데이터베이스에 문제가 발생하였을 때 분산 데이터베이스 시스템 전체가 영향 받을 수 있다는 점이다. 예를 들어 중앙 데이터베이스 시스템이 자연재해 또는 사이버 공격 등에 의해 작동이 중지되면 전체 분산 데이터베이스의 동기화도 지연되게 된다. 마지막 세 번째 단점은 중앙 데이터베이스의 높은 의존도는 중앙 데이터베이스에 대한 사이버 공격의 효과를 높여 더 빈번한 사이버 공격을 야기하는 요인이 된다는 점이다. 예를 들어, 중앙 데이터베이스의 특정 데이터에 대한 위변조는 전체 분산 데이터베이스 시스템에 위변조 효과를 줄 수 있기 때문에 사이버 공격의 대상이 될 확률이 로컬 데이터베이스에 비해 훨씬 높아지게 된다. The role of the central database is absolute in both fully or partially centralized methods. A high reliance on a central database causes three disadvantages: The first disadvantage is the fact that large-scale facility investment is required to establish a centralized management system for managing large-scale distributed databases. This means that you have to pay a lot of money to use the database system. Also, due to the increase in facility investment, only a small number of database service providers can participate in the competition, which will cause the disadvantage of deepening the monopoly of the database industry. can The second disadvantage is that when a problem occurs in the central database, the entire distributed database system can be affected. For example, if the central database system goes down due to a natural disaster or cyber attack, the synchronization of the entire distributed database will also be delayed. The third and final disadvantage is that the high dependence of the central database increases the effectiveness of cyber attacks on the central database, which is a factor that causes more frequent cyber attacks. For example, forgery of specific data in the central database can have a forgery effect on the entire distributed database system, so the probability of being a target of a cyber attack is much higher than that of a local database.
블록체인상에 기록되는 내용을 데이터베이스 기록되는 내용으로 간주한다면 블록체인은 분산 데이터베이스 관리 시스템의 일례로 볼 수 있다. 블록체인 구성을 위해서는 초기 대규모 시설투자가 필요치 않으며 P2P 네트워크 참여자들의 분산된 노력에 의해 신뢰할 수 있는 중앙관리가 부재한 상황에서도 전체 데이터베이스의 신뢰성을 보장한다. 또한, 중앙 데이터베이스가 아닌 수많은 곳에 분산되어 있는 데이터베이스를 동시에 위변조하는 것은 불가능하기 때문에 위변조의 위험을 사실상 제거할 수 있다. 블록체인은 블록의 채굴에 관여하는 참여자에 제한여부에 따라 공개 블록체인(public blockchain: P2P 네트워크의 모든 참여자가 블록채굴 가능)과 사설 블록체인(private blockchain: 허가받은 참여자들만이 블록채굴 가능)으로 나눌 수 있다. If the contents recorded on the block chain are regarded as the contents recorded in the database, the block chain can be viewed as an example of a distributed database management system. The initial large-scale facility investment is not required for block chain configuration, and the distributed effort of P2P network participants ensures the reliability of the entire database even in the absence of reliable central management. In addition, since it is impossible to simultaneously forge and falsify databases distributed in numerous places other than the central database, the risk of forgery can be virtually eliminated. Depending on whether or not there are restrictions on the participants involved in block mining, the blockchain is divided into public blockchain (all participants in the P2P network can mine block) and private blockchain (only authorized participants can mine block). can be shared
암호화폐의 분산 원장으로 개발된 기존의 공개 블록체인을 분산 데이터베이스를 사용하기에는 몇 가지 단점이 있다. 첫 번째 단점은 기존의 공개 블록체인은 수정이 불가능하면서 추가만이 가능하기 때문에 블록체인의 크기가 계속 증가해야 한다는 점이 문제이다. 두 번째 단점은 확장성의 부족이다. 기존의 대용량 데이터를 기록하고 관리하기에는 기존의 공개 블록체인은 그 처리속도가 느리고, 대용량의 데이터를 직접 블록체인에 기록하는 것은 적합하지 않다. 세 번째 단점은 블록체인에 기록된 데이터는 공개 블록체인의 특성상 공개되어야하기 때문에, 민감한 개인정보를 블록체인에 기록하기에는 적합하지 않다. There are several disadvantages to using a distributed database with the existing public blockchain developed as a distributed ledger of cryptocurrency. The first disadvantage is that the existing public blockchain cannot be modified and can only be added, so the problem is that the size of the blockchain must continue to increase. The second drawback is the lack of scalability. The existing public blockchain is slow to record and manage existing large-capacity data, and it is not suitable to directly record large-capacity data in the blockchain. The third disadvantage is that the data recorded on the blockchain must be disclosed due to the nature of the public blockchain, so it is not suitable for recording sensitive personal information on the blockchain.
공개키 암호는 보통의 대칭키 암호와는 달리, 암호과정에 사용한 키(이하, 공개키라고 지칭됨) 가 복호과정에 사용하는 키(이하, 개인키라고 지칭됨) 와 다르다. 보다 구체적으로, 공개키 암호는 공개키 를 안다고 해도 개인키 를 구하는 것이 현실적으로 불가능하게 설계되어 있다. 이러한 성질을 이용하여 암호에 사용하는 키 를 공개하여 누구나 자신이 원하는 평문 을 암호문 를 하기 [수학식 1]과 같이 계산 할 수 있는데 반해, 하기 [수학식 2]와 같은 암호문 에 대한 복호화는 복호에 사용하는 키 의 소유자만이 가능하게 하는 암호체계를 구성할 수 있다.Unlike normal symmetric key cryptography, public key cryptography is the key used in the encryption process (hereinafter referred to as public key). The key used in the decryption process (hereinafter referred to as the private key) different from More specifically, public key cryptography is a public key Even if you know the private key It is designed to be practically impossible to obtain. Keys used for encryption using these properties by making public the plain text that anyone wants ciphertext can be calculated as in [Equation 1], whereas the ciphertext as shown in [Equation 2] below For decryption, the key used for decryption is It is possible to construct a cryptosystem that only the owner of
공개키 암호의 개인키는 전자서명에도 사용된다. 즉, 의 소유자만이 할 수 있는 일을 시행하여 그것을 서명의 증거로 그 증거의 검증은 공개키를 이용하여 누구나 할 수 있게 하는 방법이다. 일부 공개키 암호들은 특정 연산에 대해 동형이다. 하기 [수학식 3]을 만족하는 경우 해당 공개키는 연산 에 대해 동형이라고 한다. The private key of public key cryptography is also used for digital signatures. in other words, It is a method that can be done by anyone using a public key to do what only the owner of . Some public key ciphers are isomorphic for certain operations. If the following [Equation 3] is satisfied, the corresponding public key is calculated is said to be homozygous for
여기서, 연산 의 예로는 덧셈, 곱셈, XOR등이 있다. 동형암호는 개별 암호문의 복화화 없이 연산 에 의한 계산결과에 대한 복호화를 하는 방법을 제공한다. Here, the operation Examples include addition, multiplication, and XOR. Homomorphic ciphers are computed without decryption of individual ciphertexts. It provides a method of decoding the calculation result by
다양한 실시예들은, 중앙 데이터베이스의 사용 없이 P2P 네트워크 참여자들의 분산된 노력과 합의에 의해 동기화가 가능한 분산 데이터베이스를 구성하는 방법과 그 시스템에 관한 것으로, 중앙 데이터베이스에 대한 높은 의존 때문에 발생하는 중앙집중형 데이터베이스 시스템의 단점을 해결하고, 탈중앙화 과정에서 발생할 수 있는 데이터베이스 내용의 유출에 의한 피해를 방지할 수 있는 방법을 제공한다. Various embodiments relate to a method and a system for configuring a distributed database that can be synchronized by distributed effort and consensus of P2P network participants without the use of a central database, and a centralized database that occurs due to high dependence on the central database It provides a method to solve the shortcomings of the system and prevent damage due to leakage of database contents that may occur during the decentralization process.
다양한 실시예들에 따른 고속 동기화 가능 탈중앙화 분산 데이터베이스를 구성하기 위한 방법은, P2P 네트워크에 참여하는 노드들을 기반으로, 메인체인(main-chain)을 구성하는 단계, 상기 노드들의 사용자들과 관련된 계정들로 이루어지는 계정체인(account-chain)을 구성하는 단계, 상기 메인체인을 기반으로, 복수 개의 세그먼트들로 이루어지는 적어도 하나의 사이드체인(side-chain)을 구성하는 단계, 및 상기 세그먼트들의 시작과 끝을 상기 메인체인에 연결하여, 분산 데이터베이스를 구성하는 단계를 포함할 수 있다. A method for configuring a high-speed synchronization-capable decentralized distributed database according to various embodiments includes: configuring a main-chain based on nodes participating in a P2P network; accounts related to users of the nodes constructing an account-chain consisting of may include the step of configuring a distributed database by connecting to the main chain.
다양한 실시예들에 따른 고속 동기화 가능 탈중앙화 분산 데이터베이스를 구성하기 위한 시스템은, P2P 네트워크에 참여하고, 공동으로 분산 데이터베이스를 구성하여, 관리하는 노드들을 포함하고, 상기 노드들은, 상기 노드들을 기반으로, 메인체인을 구성하고, 상기 노드들의 사용자들과 관련된 계정들로 이루어지는 계정체인을 구성하고, 상기 메인체인을 기반으로, 복수 개의 세그먼트들로 이루어지는 적어도 하나의 사이드체인을 구성하고, 상기 세그먼트들의 시작과 끝을 상기 메인체인에 연결하여, 분산 데이터베이스를 구성할 수 있다. A system for configuring a high-speed synchronization-capable decentralized distributed database according to various embodiments includes nodes that participate in a P2P network and jointly configure and manage a distributed database, wherein the nodes are based on the nodes. , composing a main chain, composing an account chain composed of accounts related to users of the nodes, composing at least one side chain composed of a plurality of segments based on the main chain, and starting of the segments A distributed database can be constructed by connecting the and the end to the main chain.
다양한 실시예들에 따르면, 중앙 데이터베이스에 대한 높은 의존 때문에 발생하는 중앙집중형 데이터베이스 시스템의 단점을 해결하는 효과가 있다. 구체적으로, 중앙집중형 데이터베이스 시스템의 사용에 필요한 대규모 시설투자의 필요성을 감소시키고 데이터베이스 동기화 및 관리를 P2P 네트워크에서 수행하는 것을 허용하여 다수의 소규모 업체들도 데이터베이스 서비스 사업에 경쟁할 수 있는 생태계를 구축하는 효과가 있다. 아울러, 자연재해 또는 사이버 공격 등에 의해 일부 분산 데이터베이스 시스템이 오작동을 하더라도 전체 시스템에 주는 영향을 제한적이게 하여 피해를 최소화하고, 오작동 이후 복구과정에서 중앙집중형 데이터베이스 시스템에 비해 더 신속하게 전체시스템을 동기화 할 수 있게 하여, 전체 탈중앙화 분산 데이터베이스에 대한 위변조에 공격에 대한 강건성, 신뢰도 등을 중앙집중형 데이터베이스의 그것들에 동일한 수준 또 더 우수한 수준으로 유지하는 등, 탈중앙화 분산 데이터베이스 시스템의 장점을 확대시키는 효과가 있다. According to various embodiments, there is an effect of solving the disadvantages of the centralized database system caused by the high dependence on the central database. Specifically, it reduces the need for large-scale facility investment required for the use of a centralized database system and allows database synchronization and management to be performed in a P2P network, thereby establishing an ecosystem where many small businesses can compete in the database service business. has the effect of In addition, even if some distributed database systems malfunction due to natural disasters or cyberattacks, damage is minimized by limiting the impact on the entire system, and the entire system is synchronized more quickly than the centralized database system in the recovery process after malfunction. To expand the advantages of a decentralized distributed database system, such as maintaining robustness and reliability against attacks against forgery and falsification of the entire decentralized distributed database at the same level or superior to those of the centralized database It works.
또한, 데이터의 분산 수집 및 학습등이 일어나는 환경에서 개별 환경에서의 데이터 무결성 및 학습 데이터에 대한 진위 보장등의 서비스를 제공하고자 하는 경우 탈중앙화 분산 데이터베이스 구조가 이용될 수 있다. 이를 통해, 수집 데이터의 진위여부, 학습 데이터의 진위 여부 등을 판단할 수 있고, 협력적 학습(Federated Learning)의 모델 변화에 대한 추적 검증 기능이 제공될 수 있다. In addition, in an environment in which distributed collection and learning of data occurs, a decentralized distributed database structure may be used to provide services such as data integrity and authenticity guarantee for learning data in an individual environment. Through this, it is possible to determine the authenticity of the collected data, the authenticity of the learning data, and the like, and a tracking verification function for the model change of the federated learning can be provided.
도 1은 다양한 실시예들에 따른 분산 데이터베이스 구성을 위한 메인체인과 사이드체인의 관계를 개념적으로 도시하는 도면이다.
도 2는 다양한 실시예들에 따른 분산 데이터베이스 구성을 위한 메인체인과 사이드체인의 관계를 예시적으로 도시하는 도면이다.
도 3은 다양한 실시예들에 따른 시스템의 분산 데이터 구성 방법을 도시하는 도면이다. 1 is a diagram conceptually illustrating the relationship between a main chain and a side chain for configuring a distributed database according to various embodiments.
2 is a diagram exemplarily illustrating the relationship between a main chain and a side chain for configuring a distributed database according to various embodiments.
3 is a diagram illustrating a method of configuring distributed data in a system according to various embodiments of the present disclosure;
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 설명된다. Hereinafter, various embodiments of the present document will be described with reference to the accompanying drawings.
다양한 실시예들은 고속 동기화 가능 탈중앙화 분산 데이터베이스 구성 방법 및 그 시스템에 관한 것으로, 다중 블록체인과 오프체인 데이터스토리지 기술을 이용하여 P2P 네트워크 참여자들에 의해 관리되는 동기화가 가능한 분산 데이터베이스를 구성하는 방법과 그 시스템을 제공한다. Various embodiments relate to a method and system for configuring a high-speed synchronization-capable decentralized distributed database, and a method for configuring a synchronization-enabled distributed database managed by P2P network participants using multiple blockchain and off-chain data storage technology; provide that system.
다양한 실시예들은, 전체 시스템의 진행통제와 타임스태핑 정보를 제공하는 블록체인(이를 메인체인(Main-chain)이라고 하자)을 구성하는 단계, 로컬 데이터베이스를 사용자의 데이터를 검색하는데 필요한 정보(이를 계정(account)이라고 하자)를 기록하기 위한 수정 가능한 블록체인(이를 계정체인(Account-chain)이라고 하자)과 사용자의 실제 데이터를 저장할 로컬 오프체인 데이터스토리지로 구성하는 단계, 사용자의 데이터베이스에서의 변경사항에 따라 동기화 할 때에 수행한 내용을 사용자 스스로 로컬 데이터베이스의 계정체인과 로컬 오프체인 데이터스토리지에서 수행한 내용을 명령어 세트로 구성하는 단계, 메인체인의 블록 해쉬값에 따라 메인체인과 계정체인과는 다른 별도의 블록체인(이를 사이드체인(Side-chain)이라 하자. 이러한 사이드체인은 필요에 따라 다수를 사용할 수 있다)의 단편(segment)을 메인체인에 연결하여 생성하는 동시에, 진행되고 있던 사이드체인 단편을 메인체인에 연결하여 종료하는 단계, 사이드체인 네트워크에 사용자의 데이터베이스 동기화에 필요한 명령어 세트의 승인을 요청하고 네트워크 참여자는 요청받은 명령어 세트를 스마트 계약들로 구성된 블록을 구성하고 채굴하는 단계, 및 사이드체인 선분이 메인체인에 연결될 때 사이드체인 단편에 속해있던 스마트 계약들이 실행되어 전체 분산 데이터베이스를 동기화하는 단계로 이루어지는 것을 특징으로 한다. Various embodiments include the steps of constructing a block chain that provides progress control and time stepping information of the entire system (let's call this the main-chain), information necessary to search the user's data in the local database (the account (let's call it an account) and configure a modifiable blockchain (let's call it an account-chain) to record the user's real data and a local off-chain datastore to store the user's real data, changes made in the user's database In accordance with this step, the user himself configures the contents performed in the local database's account chain and local off-chain data storage into a command set for the contents performed when synchronizing according to the A separate block chain (let's call this a side-chain. Such a side-chain can be used multiple times if necessary) is created by connecting it to the main chain, and at the same time creating a fragment of the side chain in progress. connecting to the main chain and terminating, requesting the sidechain network to approve the instruction set required for user database synchronization, and network participants constructing and mining blocks composed of smart contracts with the requested instruction set; and It is characterized in that when a chain segment is connected to the main chain, smart contracts belonging to the side chain fragment are executed to synchronize the entire distributed database.
1) 전체구조1) Overall structure
다양한 실시예들에 따른 분산 데이터베이스에서는 사용자가 가입되어 있는 모든 로컬 데이터스토리지의 데이터는 사용자의 접속여부에 상관없이 일정기간을 두고 정기적으로 동기화를 통해 동일한 데이터를 유지하는 것을 목적으로 한다. 여기서 유의할 점은 분산 데이터베이스 전체가 단 하나의 데이터베이스 서비스 제공자에 의해 관리되는 것이 아니고 다수의 데이터베이스 서비스 제공자들과 다수의 데이터스토리지 관리자들에 의해 공동으로 관리되고 있다고 가정하고 있다.In the distributed database according to various embodiments, the purpose of maintaining the same data through regular synchronization for a certain period of time regardless of whether the user is connected or not is the purpose of maintaining the same data of all local data storages to which the user is subscribed. It is to be noted here that it is assumed that the entire distributed database is not managed by a single database service provider, but is jointly managed by a plurality of database service providers and a plurality of data storage managers.
데이터스토리지 관리자는 하나 또는 다수의 데이터스토리지를 관리하면서 후에 설명할 메인체인에 연결된 사이드체인의 스마트 계약과 계정체인의 내용을 이용하여 자신의 서비스에 가입한 계정의 동기화를 진행한다. While managing one or more data storage, the data storage manager synchronizes the accounts that have signed up for their services using the contents of the account chain and the smart contract of the side chain connected to the main chain, which will be described later.
데이터베이스 서비스 제공자는 하나 또는 다수의 데이터스토리지 관리업체를 관리하면서 메인체인에 연결된 사이드체인의 스마트 계약과 계정체인의 내용을 이용하여 자신의 서비스에 가입한 계정의 동기화를 진행한다. The database service provider manages one or more data storage management companies and synchronizes the accounts that have signed up for their services by using the smart contract of the side chain connected to the main chain and the contents of the account chain.
사용자는 자신의 데이터를 보호하기 위해 전체 데이터를 디렉토리 또는 데이터베이스의 스키마와 같은 데이터의 구조 정보를 포함한 모든 데이터를 블록단위로 암호화하여 데이터스토리지에 보관할 수 있다. 또한, 사용자는 자신의 계정을 다수의 데이터베이스 서비스 제공업체들과 다수의 로컬 데이터스토리지 관리업체들에 의해 공동으로 관리되게 할 수 있다.In order to protect their data, users can encrypt all data in block units, including the structure information of data such as directory or database schema, and store it in data storage. In addition, the user can have his or her account managed jointly by multiple database service providers and multiple local data storage managers.
2) 메인체인2) Main chain
다양한 실시예들은 전체 시스템의 진행통제와 타임스태핑 기능을 제공하는 메인체인을 이용한다. 이 메인체인은 다양한 형태의 블록체인 형태로 구성할 수 있는데 이 명세서에서는 실시예로 비트코인에서 사용되고 있는 작업증명 방식을 사용하는 블록체인 모델을 이용하여 설명한다. 다양한 실시예들에 따른 기술이 다른 형태의 증명방법(예: 지분증명)에도 적용 가능함은 내용으로 볼 때 자명하다. Various embodiments use the main chain that provides the progress control and time-stamping function of the entire system. This main chain can be composed of various types of block chains, and in this specification, as an example, the block chain model using the proof-of-work method used in Bitcoin will be used for explanation. It is obvious from the content that the technology according to various embodiments is applicable to other types of proof methods (eg, proof of stake).
다양한 실시예들에 따른 메인체인은 비트코인의 경우와 유사하게 정해진 시간(비트코인의 경우는 매 10분)마다 새로운 블록이 계산되어 메인체인에 추가되고, 그 계산에 대한 보상으로 지급되는 암호화폐가 존재한다고 가정한다. 이 때 정해진 시간을 회전이라고 하고, 순차적인 회전의 진행을 표시하는 ( )을 이용하여, 회전을 으로, 이 회전에서 추가되는 블록을 으로, 이 블록 이 추가된 메인체인을 으로 표시하자. 이 기호를 이용하여 회전 이 진행되는 상황에서 각 메인노드(메인체인 네트워크에 참여하는 개별 기기, 예: 참여자의 컴퓨터)가 가지고 있는 메인체인은 으로 표시할 수 있다. 상기한 기호들은 하기 [표 1]과 같이 정의된다. In the main chain according to various embodiments, a new block is calculated and added to the main chain every predetermined time (every 10 minutes in the case of Bitcoin) similar to the case of Bitcoin, and a cryptocurrency that is paid as a reward for the calculation is assumed to exist. At this time, the set time is called rotation, and the ( ) to rotate , the block being added in this rotation into this block This added main chain Let's mark it as Rotate using this symbol In this situation, the main chain that each main node (individual devices participating in the main chain network, e.g., the participant's computer) has is can be displayed as The above symbols are defined as in [Table 1] below.
블록 의 데이터는 바로 앞 블록 의 해쉬값 , 현 회전의 번호 , 그리고 현 회전이 시작되기 직전의 정보로 예측 불가능하지만 공개적으로 확인 가능한 정보(예: 태양의 흑점 활동정보, 현 회전이 시작되기 직전의 비트코인 블록)의 해쉬값 과, 현 블록의 해쉬값 의 포인터와 이 해쉬값을 구하는데 사용한 넌스값 등으로 구성되어 있다. 구체적으로, 메인체인에서의 해쉬값 과 넌스값 은 주어진 에 대하여, 하기[수학식 4]와 같은 작업증명의 해답으로 정의된다. block data in the immediately preceding block hash value of , number of chord turns , and the hash value of unpredictable but publicly verifiable information (e.g. sunspot activity information, Bitcoin block just before the start of the current rotation) as information just before the start of the current rotation. and the hash value of the current block A pointer to and the nonce value used to obtain this hash value. It consists of etc. Specifically, the hash value in the main chain and nonce value is given , is defined as the solution of the proof-of-work as shown in [Equation 4] below.
여기서, ' '은 비트열의 접합을 의미하고, 는 어떤 입력에 대해서든 출력으로 256 비트열을 생성하는 SHA-256 해쉬함수이고, 은 개의 0으로만 구성된 비트열을 의미하고, 는 256 비트열 중에서 처음 비트가 인 비트열의 집합을 의미한다( = 비트열 의 길이). 즉, 은 256 비트열 중에서 처음 개의 비트가 모두 0인 비트열의 집합이다. 상기 [수학식 4]의 해쉬퍼즐을 만족하는 넌스값 에 대한 결과가 하기 [수학식 5]와 같이 블록 의 해쉬값이다.here, ' ' means concatenation of bit strings, is a SHA-256 hash function that generates a 256-bit string as an output for any input, silver It means a bit string consisting of only zeros, is the first of the 256-bit strings a bit It means a set of bit strings ( = bit string length of). in other words, is the first of the 256-bit strings It is a set of bit strings in which all bits are 0. A nonce value that satisfies the hash puzzle of [Equation 4] The result for the block is as follows [Equation 5] is the hash value of
상기 [수학식 4]의 계수 은 해쉬퍼즐의 난이도를 결정하는데, 그 값이 크면 클수록 해당 해쉬퍼즐을 만족하는 넌스값을 계산하는 것이 어려워진다. 회전 에서 작업증명의 해답 을 가장 먼저 계산한 채굴자(작업증명에 참여하는 노드를 지칭함)는 블록 을 발표하고 이를 메인체인 에 연결하여 자신이 가지고 있는 메인체인을 하기[수학식 6]과 같이 확장한다. 다른 참여자들은 발표된 블록 을 검증하고 이에 대한 합의로 자신들의 메인체인에 추가한다. Coefficient of [Equation 4] determines the difficulty of the hash puzzle, and the larger the value, the more difficult it is to calculate the nonce value that satisfies the hash puzzle. rotation The answer to proof of work in The first miner (referring to the node participating in the proof-of-work) who calculated announced the main chain Connect to and expand your main chain as shown in [Equation 6] below. The other participants are the blocks that have been announced , and add them to their main chain as a consensus.
3) 계정, 데이터스토리지와 계정체인3) Account, data storage and account chain
계정은 데이터베이스 사용자에 관한 정보(예: 사용자의 공개키), 사용자의 데이터에 관한 정보(예: 파일참조정보, 데이터스토리지에서의 파일의 해쉬 포인터, 동기화과정에서 변경될 내용에 대한 참조정보와 그에 대한 사용자의 전자서명)로 구성된다. 계정 자체에는 사용자의 개인정보 또는 데이터가 직접 포함되지 않아 계정이 공개되는 것에 따른 정보유출의 위험은 없다. The account includes information about the database user (e.g., the user's public key), information about the user's data (e.g., file reference information, hash pointer of a file in the data storage, reference information about the content to be changed during the synchronization process, and user's digital signature). The account itself does not contain the user's personal information or data directly, so there is no risk of information leakage when the account is disclosed.
다양한 실시예들은 위변조 공격에 대한 방어를 위해 사용자의 전자서명을 이용한 무결성 검증 방법(이 방법은 잘 알려진 방법이므로 이에 대한 설명은 본 명세서에서는 생략한다)과 함께 계정들로 이루어진 블록체인인 계정체인과 동형암호를 이용한 위변조 방지 방법을 사용한다. 구체적으로, 계정체인의 회전(이 회전은 메인체인의 회전과 동일한 것이 아니다. 이 회전이 시작되었을 때의 계정체인을 으로 표시하자)에서 채굴되는 블록 은 바로 앞 블록 의 해쉬값 , 현 회전에서 생성되는 계정들 (여기서, 는 블록 에 포함될 계정의 수를 의미한다)의 목표값 (이에 대한 설명은 곧 등장할 것이다)과, 현 블록의 해쉬값 의 포인터와 이 해쉬값을 구하는데 사용한 넌스값 등으로 구성되어 있다. 계정 는 하기 [표 2]와 같은 정보를 가지고 있다. Various embodiments provide an account chain, which is a block chain consisting of accounts, along with an integrity verification method using a user's digital signature (this method is a well-known method, so a description thereof will be omitted in this specification) for defense against forgery attacks Forgery prevention method using homomorphic encryption is used. Specifically, the account chain Rotation (This rotation is not the same as the rotation of the main chain. The account chain when this rotation started (Let's denote it as ) blocks mined from is the block just before hash value of , accounts created in the current rotation (here, is the block refers to the number of accounts to be included in (Explanation for this will appear soon) and the hash value of the current block A pointer to and the nonce value used to obtain this hash value. It consists of etc. account has the same information as in [Table 2] below.
electronic signature for
계정 의 데이터의 오프체인 데이터스토리지에서의 저장정보 는 계정 가 동기화에 필요한 현재 상태를 가리킨다. 즉, 와 변경된 디렉토리, 파일 또는 변경된 내용의 (데이터스토리지에서의) 저장위치와 크기 등의 정보를 가지고 동기화를 진행한다. 이때, 실제 데이터 내용은 노출시키지 않게 동기화 직전의 상태를 표현하는데 필요한 모든 정보를 포함하고 있는 것이 바로 이다. 목표값을 설정하고 이를 블록의 해쉬값을 계산하는데 사용하여 블록체인에 수정 가능성을 제공하는 방법이 있다. 다양한 실시예들에서는 절단 해쉬값을 이용하는 방법을 제안한다. 다양한 실시예들에서는 동형암호를 이용한 방법을 제안한다. account Stored information in off-chain data storage of data of is the account indicates the current state required for synchronization. in other words, Synchronization is carried out with information such as the changed directory, file, or storage location and size (in data storage) of the changed contents. At this time, it is just that it contains all the information necessary to express the state immediately before synchronization so as not to expose the actual data content. to be. There is a way to set a target value and use it to calculate the hash value of the block, giving the blockchain the possibility of modification. Various embodiments propose a method of using a truncated hash value. Various embodiments propose a method using homomorphic encryption.
계정 의 목표값 에 대한 입력값 은 실제 구현에서 사용할 동형암호에 따라 결정된다. 이 명세서에서는 실시예로 1024비트 길이의 정수 에 대한 모듈로 덧셈에 동형인 Paillier 공개키 암호(이 공개키 암호를 로 표시하자)를 기준으로 설명하고자 한다. 계정 의 목표값 는 하기[수학식 7]과 같이 정의된다. account target value of input to is determined according to the homomorphic cipher to be used in actual implementation. In this specification, an integer of 1024 bits in length as an embodiment Paillier public-key cryptography homomorphic to modulo addition to Let's denote it as ). account target value of is defined as follows [Equation 7].
여기서, 는 1024비트를 생성하는 해쉬함수이고, 는 계정 의 사용자의 공개키이고, 의 덧셈은 정수 에 대한 모듈로 덧셈이다. here, is a hash function that generates 1024 bits, is the account is the public key of the user of The addition of is an integer is a modulo addition to .
계정 의 목표값 는 한 번 계산된 이후에는 변화하지 않는다. 계정 의 목표값 , 에 대한 입력값 , 그리고 현재의 에 대한 무결성 검증은 하기 [수학식 8]과 같이 계정 의 사용자의 전자서명으로 한다. 이에 대한 검증은 공개키 를 이용하여 시행한다.account target value of does not change once calculated. account target value of , input to , and the current Integrity verification for the account as shown in [Equation 8] of the user's electronic signature. Verification of this is public key is implemented using
계정체인의 블록 의 해쉬값 과 넌스값 은 주어진 에 대하여, 하기 [수학식 9]와 같은 작업증명의 해답으로 정의된다. block of account chain hash value of and nonce value is given , is defined as a solution to the proof of work as in [Equation 9] below.
여기서, 은 계정체인의 채굴자에게 알려진 가장 최근의 메인체인의 블록 해쉬값으로, 이 메인체인에서 블록 해쉬값 이 계산된 이 후에 생성되는 계정들임을 증명하는데 사용한다. 만약, 계정체인의 어떤 채굴자가 상기 [수학식 9]에서 고의적으로 가장 최근의 메인체인의 블록 해쉬값보다 훨씬 더 오래된(메인체인의 블록 해쉬값의 전파지연을 감안한 것보다도 더 오래된) 블록 해쉬값을 사용하여 자신이 등록하고자 하는 의 등록시점을 앞당기려는 시도는 계정체인의 다른 채굴자들이 검증과정에서 사용된 의 계산시점과 현시점과의 차이를 고려하여 탈락시키는 규칙을 만들어 억제한다. 상기 [수학식 9]의 해쉬퍼즐을 만족하는 넌스값 에 대한 결과가 하기 [수학식 10]과 같이 블록 의 해쉬값이다.here, is the most recent block hash value of the main chain known to miners of the account chain, Block hash value in this main chain It is used to prove that the accounts are created after this calculation. If a miner in the account chain deliberately has a block hash value that is much older than the most recent block hash value of the main chain in [Equation 9] above (older than that considering the propagation delay of the block hash value of the main chain) you want to register using Attempts to advance the registration time of In consideration of the difference between the calculation time of A nonce value that satisfies the hash puzzle of [Equation 9] A block as in [Equation 10] is the hash value of
계정체인의 번째 회전의 작업증명의 해답 을 가장 먼저 계산한 계정체인의 채굴자는 블록 을 발표하고 이를 계정체인 에 연결하여 자신이 가지고 있는 계정체인을 하기 [수학식 11]과 같이 확장한다. 다른 참여자들은 발표된 블록 을 검증하고 이에 대한 합의로 자신들의 계정체인을 로 업데이트한다. account chain The answer to the proof-of-work of the second rotation The miner of the account chain who first calculated announced and the account chain Connect to and expand your account chain as shown in [Equation 11] below. The other participants are the blocks that have been announced verify their account chains and agree to them update to
메인체인과 계정체인에는 P2P 네트워크 모든 노드의 참여가 가능하다. 블록채굴을 통해 블록보상이 참여의 주요동기가 될 것이다. 이를 위해 암호 화폐를 사용할 수 있고 그 거래를 기록할 별도의 블록체인을 구성할 수도 있다. All nodes of the P2P network can participate in the main chain and the account chain. Through block mining, block rewards will be the main motivation for participation. For this, you can use cryptocurrencies and configure a separate blockchain to record those transactions.
한편, 로컬 데이터스토리지의 관리자들과 데이터서비스 제공자들은 메인체인과 계정체인의 채굴에 반드시 참여해야 하는 것은 아니지만 메인체인과 계정체인의 관리에는 반드시 참여해야 한다. 그들은 메인체인과 계정체인을 이용하여 각 계정의 저장정보를 검증한 후에 전체 데이터베이스의 동기화에 참여해야하기 때문이다. On the other hand, local data storage managers and data service providers do not necessarily participate in the mining of the main chain and account chain, but they must participate in the management of the main chain and account chain. This is because they must participate in the synchronization of the entire database after verifying the stored information of each account using the main chain and the account chain.
계정체인은 수정 가능한 블록체인이다. 왜냐하면, 블록 의 해쉬값 이 해당 블록에 속해있는 계정들 자체가 아닌 그것들의 에 의존하기 때문에 목표값을 변화시키지 않는 수정은 전체 계정체인의 해쉬값에 의한 연결에 위배되지 않는다. The account chain is a modifiable blockchain. because the block hash value of Accounts belonging to this block of them, not themselves Modifications that do not change the target value do not violate the connection by hash value of the entire account chain because it depends on
계정 사용자의 실제 데이터는 오프체인 상태의 데이터스토리지에 저장되어 사용자 데이터의 실체 유출을 방지한다. Actual data of account users is stored in off-chain data storage to prevent actual leakage of user data.
4) 동기화 요청4) Synchronization request
계정 의 사용자가 특정 로컬 데이터베이스(이를 DBA라고 하자)에 접속하여 데이터의 저장정보를 에서 가 되었다고 가정하자. 이 경우에 사용자의 데이터베이스 클라이언트 소프트웨어는 변화된 상황에 맞게 DBA에 기록되어 계정 의 내용을 변화시킨다. 즉, 계정 의 데이터의 저장정보가 에서 로 변화를 사용자가 승인했다는 증거로 하기 [수학식 12]를 만족하는 로 계정 의 를 교체하고, 변화된 상황에 맞게 를 하기 [수학식 13]과 같이 교체한다. account user of , connects to a specific local database ( let's call this DB A) at Let's assume that In this case, the user's database client software is recorded in DB A according to the changed situation and change the content of i.e. account data storage information of at As proof that the user has approved the change to [Equation 12] account as of to replace and adapt to the changed situation is replaced with the following [Equation 13].
여기서, 주목할 점은 개인키 의 소유자인 계정 의 사용자만이 상기 [수학식 12]를 만족하는 를 하기 [수학식 14]로 계산할 수 있다는 점이다.Here, it should be noted that the private key account that is the owner of Only users of [Equation 12] are satisfied can be calculated by the following [Equation 14].
이러한 교체는 DBA에서만 벌어진 일이고 이를 다른 데이터베이스에서도 진행되게 해야 한다. 이를 위해, 사용자의 데이터베이스 클라이언트 소프트웨어는 저장상태가 에서 로 변화시키는 필요한 작업(이하, '라고 지칭됨)에 필요한 정보를 하기[수학식 15]와 같이 계산한다. This replacement only happened in DB A , and it should be done in other databases as well. To this end, your database client software is stored at necessary work to change to (hereinafter, ') is calculated as follows [Equation 15].
여기서, 는 두 저장정보 , 사이의 차이를 표현하는 정보이다. here, is the two stored information , Information representing the difference between
이 를 다른 데이터베이스에서도 수행시켜 전체 분산 데이터베이스에서 계정 의 데이터 저장정보가 에서 로 변화된 것에 맞추어 계정 를 변화시켜야 한다. 이러한 요청을 사이드체인 네트워크라고 지칭할 P2P 네트워크에 요청한다. this is also performed in other databases to account for the entire distributed database. data storage information of at account in accordance with the change to should change These requests are made to the peer-to-peer network, which we will refer to as the sidechain network.
5) 사이드체인(Side-chain)5) Side-chain
다양한 실시예들은 다수의 사이드체인을 이용하여 전체 데이터베이스 시스템의 동기화에 필요한 '승인'을 병렬처리 방식으로 고속으로 진행하려고 한다. 여기서, 승인이라 함은 특정 로컬 데이터베이스에서 발생한 변화를 전체 분산 데이터베이스에 전파해야 하는지를 결정하는 것을 의미한다. Various embodiments try to perform 'approval' required for synchronization of the entire database system at high speed in a parallel processing method using multiple sidechains. Here, "approval" means deciding whether to propagate changes occurring in a specific local database to the entire distributed database.
다중 블록체인을 이용하여 블록에 기록된 내용의 수정하는 방법이 있다. 다양한 실시예들은 사이드체인을 이용하여 메인체인과는 별도로 존재하는 계정체인의 수정과 오프체인에 위치하는 데이터를 수정하는 방법을 제안한다. There is a method to modify the contents recorded in a block using multiple blockchains. Various embodiments propose a method of modifying an account chain that exists separately from the main chain and modifying data located off-chain using a side chain.
예로서, 8 개의 사이드체인을 이용하는 경우를 가정해 보자. 각 계정은 어떤 사이드체인에 의해 동기화가 진행될지가 미리 결정되게 하는데, 각 계정 의 목표값 의 끝 3자리 비트(이들은 000, 001, ..., 111중에 하나이다)를 이용하여 어느 사이드체인에 의해 동기화에 대한 승인이 이루어질지가 결정된다. As an example, let's assume that 8 sidechains are used. Each account allows a pre-determined by which sidechain to synchronize. target value of Using the last 3 bits of (these are one of 000, 001, ..., 111), it is determined by which sidechain will approve the synchronization.
사이드체인은 메인체인에 시작과 끝이 연결된 단편들(segments)로 이루어져 있고, 그 각 단편의 시작과 끝은 메인체인의 블록 해쉬값 이 결정한다. 구체적으로, -사이드체인(목표값 의 끝 3자리 비트가 000인 계정들의 동기화의 승인을 담당할 사이드체인)의 첫 단편은 로 표시하는데, 이는 메인체인의 블록 해쉬값 의 끝 3자리 비트가 처음으로 000이 되는 에서 시작하여 그 다음으로 000이 되는 이 등장할 때까지 계속된다는 의미이다. 같은 방법으로 으로 표시되는 -번째 단편은 메인체인의 블록 해쉬값 의 끝 3자리 비트가 -번째로 000이 되는 에서 시작하여 그 다음으로 메인체인의 블록 해쉬값 의 끝 3자리 비트가 000이 되는 이 등장할 때까지 계속된다. A sidechain consists of segments connected to the main chain at the beginning and the end, and the start and end of each segment is the block hash value of the main chain. this decides Specifically, -Sidechain (target value) The first fragment of the sidechain that will be responsible for authorizing the synchronization of accounts with the last 3 bits of 000) is , which is the block hash value of the main chain. where the last three bits of the first become 000 starting at , then 000 This means that it will continue until it appears. in the same way displayed as -The first fragment is the block hash value of the main chain the last 3 bits of - the first to be 000 Starting with , then the block hash value of the main chain where the last 3 bits of This continues until this appears.
이제, 사이드체인 단편 내의 블록에 대해서 살펴보도록 하자. 메인체인에서 블록 해쉬값 (이 해쉬값의 끝 3자리비트가 000이었다)가 발표되면 바로 -사이드체인 네트워크의 채굴자들은 -사이드체인에 동기화에 대한 승인 요청 (상기 [수학식 15] 참조)을 검증하고 검증이 통과된 것들을 블록 에 포함시켜 해당 블록을 채굴하려고 시도한다. 여기서, 블록을 표현하는 는 -사이드체인의 -번째 단편의 -번째 블록을 의미한다. Now, the sidechain fragment Let's take a look at the blocks within. Block hash value on the main chain (The last 3 bits of this hash value were 000) When it is announced - Miners in the sidechain network - Request approval for sync to sidechain (Refer to [Equation 15] above) and block those that have passed the verification Attempts to mine the block by including it in Here, the block representing Is - of side chain - of the second fragment - means the second block.
블록 가 채굴되는 과정은, 하기 [수학식 16]과 같이 주어진 에 대하여, 작업증명방식으로 정의된다. block The process in which is mined is given as in [Equation 16] For , it is defined as a proof-of-work method.
여기서, 은 직전 블록 의 해쉬값이고 은 현 블록에서 검증하고자 하는 계정의 저장정보의 변경 요청들이다. 사이드체인의 채굴자들은 요청 에 대한 검증을 실시하는데 그 대상은 상기 [수학식 15]의 의 예를 가지고 설명한다면 다음과 같다. here, the previous block is the hash value of are requests to change the stored information of the account to be verified in the current block. Sidechain miners request , and the target of [Equation 15] above is To explain with an example of
(1) 의 위치를 이용하여 계정 의 저장정보 확인(데이터 변경이 실제로 진행된 로컬 데이터베이스를 제외하고 계정 의 사용자가 가입한 모든 데이터베이스에서는 이어야 함).(One) account using the location of Check the stored information of In all databases subscribed by users of should be).
(2) 를 진행하면 로 변화하는지 검증.(2) If you proceed verify that it changes to .
(3) 입력값 가 에 맞게 제시되었는지 확인.(3) input value go Make sure it is presented in accordance with the
(4) 계정 의 전자서명 검증 (4) account electronic signature of Verification
상기 [수학식 16]의 해쉬퍼즐을 만족하는 넌스값 에 대한 결과가 하기 [수학식 17]과 같이 블록 의 해쉬값이다.A nonce value that satisfies the hash puzzle of [Equation 16] The result for the block is as follows [Equation 17] is the hash value of
-사이드체인의 해쉬퍼즐의 해답 을 가장 먼저 계산한 -사이드체인의 채굴자는 블록 을 발표하고 이를 사이드체인 단편에 연결하여 확장한다. 다른 -사이드체인의 참여자들은 발표된 블록 을 검증하고 이에 대한 합의로 자신들의 사이드체인 단편에 연결하여 확장한다. -The answer to the hash puzzle of the sidechain was first calculated - The miner of the sidechain is a block , and extend it by linking it to a sidechain fragment. Different -Participants in the sidechain will participate in the announced block Validate and expand by connecting to their sidechain fragments with consensus.
변경요청 은 스마트 계약으로 기록되어 이것들이 기록된 블록 을 포함하고 있는 사이드체인 단편 이 메인체인에 연결될 때 전체 시스템에 적용되도록 설계된다. 예를 들어, 계정체인에서의 계정정보의 수정은 스마트 계약 이 메인체인에 연결되는 즉시 실시된다. request for change is recorded as a smart contract and the block in which these are recorded A sidechain fragment containing It is designed to be applied to the entire system when connected to the main chain. For example, the modification of account information in the account chain is a smart contract It will be implemented as soon as it is connected to this main chain.
메인체인에 연결되는 -사이드체인의 -번째 단편 의 블록은 하기 [수학식 18]과 같다.connected to the main chain - of side chain -th fragment The block of [Equation 18] is as follows.
여기서, 맨 처음 블록 은 메인체인의 연결되는 블록 이고, 즉, 이고, 맨 마지막 블록 도 메인체인의 연결되는 블록 이다. 이때, 사이드체인 단편을 메인체인에 연결시키기 위해 메인체인의 해쉬값을 하기[수학식 19]와 같이 변화시킨다. Here, the first block is a block connected to the main chain is, that is, and the last block Blocks connected to the domain chain to be. At this time, in order to connect the sidechain fragment to the main chain, the hash value of the main chain is changed as follows [Equation 19].
지금까지 설명한 방식으로 다른 사이드체인의 파편들도 정의할 수 있다. Fragments of other sidechains can also be defined in the manner described so far.
도 1은 다양한 실시예들에 따른 분산 데이터베이스 구성을 위한 메인체인과 사이드체인의 관계를 개념적으로 도시하는 도면이다. 도 2는 다양한 실시예들에 따른 분산 데이터베이스 구성을 위한 메인체인과 사이드체인의 관계를 예시적으로 도시하는 도면이다. 1 is a diagram conceptually illustrating the relationship between a main chain and a side chain for configuring a distributed database according to various embodiments. 2 is a diagram exemplarily illustrating the relationship between a main chain and a side chain for configuring a distributed database according to various embodiments.
도 1을 참조하면, 하나의 메인체인에 적어도 하나의 사이드체인들이 연결될 수 있다. 이 때 하나의 메인체인에 하나의 사이드체인 또는 복수 개의 사이드체인들이 연결될 수 있다. 고속 동기화 기능을 가진 탈중앙화 분산 데이터베이스의 구성은 개별 독립된 시스템 환경 또는 클라우드 환경 등에서 동작이 가능하다. 예를 들면, 도 2에 도시된 바와 같이, 메인체인(B)와 사이드체인(S 0 , S 3 )는 클라우드 기반 인스턴스 환경에서 동작하며, 사이드체인 (S 1 , S 2 )는 별도의 독립된 시스템으로 동작하는 구조의 예시이다. 이러한 구조는 메인체인이 별도의 독립된 개별 시스템으로 동작하고, 사이드체인의 일부 또는 전부가 클라우드 환경에서 동작하는 구성에도 적용이 가능하다. 또한, Edge Computing 환경에서의 데이터 수집 또는 개별 데이터를 이용해 Federated Learning과 같은 서비스를 제공할 때, 각 Edge 환경에서의 데이터 무결성 및 보장을 위한 구조로 활용될 수 있다. Referring to FIG. 1 , at least one side chain may be connected to one main chain. In this case, one side chain or a plurality of side chains may be connected to one main chain. The configuration of a decentralized distributed database with a high-speed synchronization function can be operated in an individual independent system environment or in a cloud environment. For example, as shown in Figure 2, the main chain (B) and side chains ( S 0 , S 3 ) operate in a cloud-based instance environment, and the side chains ( S 1 , S 2 ) are separate independent systems. This is an example of a structure that works with This structure can be applied to a configuration in which the main chain operates as a separate and independent system, and some or all of the side chains operate in a cloud environment. In addition, when data collection in the edge computing environment or services such as federated learning using individual data are provided, it can be used as a structure for data integrity and guarantee in each edge environment.
6) 동기화 진행6) Synchronization progress
계정 의 사용자가 DB-A에서 데이터의 저장정보를 에서 로 변화시키는 작업을 진행하였고 이를 전체 분산 데이터베이스에서 동일하게 하는 동기화를 요청하였다고 가정하자. 이를 위해 사용자의 클라이언트 소프트웨어는 동기화에 필요한 요청 를 자신의 계정의 수정을 다루는 사이드체인 네트워크에 요청하였고, 해당 요청은 사이드체인에서 검증된 후에 메인체인에 연결되어 메인체인의 모든 참여자들(로컬 데이터스토리지 관리자들과 데이터서비스 제공자들은 반듯이 참여해야 한다고 가정하였다)에게 알려지게 되었다고 가정하자. account user of DB-A saves data at Assume that the task of changing to . To do this, the user's client software makes the necessary requests for synchronization. requested to the sidechain network that handles the modification of one's account, and the request is verified on the sidechain and then connected to the mainchain, saying that all participants in the mainchain (local data storage administrators and data service providers must participate) Assume that it became known to
계정 의 동기화는 실제 데이터에 대한 접근을 요구한다. 이때 사용자의 개인정보의 유출이 우려된다면 앞에서 언급한 바와 같이 사용자는 디렉토리를 포함한 전체 데이터를 블록단위로 나누어 암호화하여 보관하고 동기화 과정에서는 교체가 필요한 암호화된 블록을 교체하여 동기화를 완료할 수 있다. account Synchronization of data requires access to real data. At this time, if there is a concern about the leakage of the user's personal information, as mentioned above, the user can encrypt and store the entire data including the directory by block unit, and replace the encrypted block that needs to be replaced during the synchronization process to complete the synchronization.
이제, 계정 의 동기화의 과정에 참여한 데이터스토리지 관리자가 해야 할 활동을 살펴보도록 하자. 먼저, 관리자는 메인체인과 그것에 연결되어 종료된 사이드체인 단편을 검색하여 현 메인체인의 회전에서 자신이 동기화해야 할 계정이 있는지 파악한다. 만약, 계정 의 동기화를 자신이 담당(자신의 서비스에 가입되어 있는 계정이므로)해야 하고 해당 동기화 필요한 실제 데이터가 DBA에 있다면 그곳에 접속하여 해당 데이터를 얻으려 할 것이다. 이는 병목현상을 야기할 수 있는데, 본 발명에서는 반드시 DBA에서만 해당 데이터를 얻을 필요가 없게 하여 해당 문제를 해결하고자 한다. 만약, 다른 데이터베이스 DBB에서 해당 데이터를 DBA에서 얻어 동기화를 완료하였다면 일부 다른 데이터스토리지 관리자들은 DBB에서 해당 데이터를 얻어 동기화를 진행하면 된다. 이 과정에서 DBB의 동기화가 최신의 것인지 또는 정상적인 것인지는 계정체인과 메인체인을 이용하여 확인할 수 있다. 물론, 데이터서비스 제공업체 또는 그들의 연합체가 좀 더 신속한 동기화에 도움을 줄 수도 있다. Now, account Let's take a look at the activities that the data storage administrator who participated in the process of synchronization of First, the administrator searches for the main chain and the fragments of the sidechains that are connected to it and finds out if there are accounts that they need to synchronize in the current main chain rotation. If the account If you have to be in charge of synchronization (because it is an account that is subscribed to your service) and the actual data required for synchronization is in DB A , you will try to access it and get the data. This may cause a bottleneck, and in the present invention, it is not necessary to obtain the corresponding data only from DB A, thereby solving the problem. If synchronization is completed by obtaining the corresponding data from DB A from another database, DB B , some other data storage managers can obtain the data from DB B and proceed with synchronization. In this process, whether the synchronization of DB B is up-to-date or normal can be checked using the account chain and the main chain. Of course, data service providers or their associations can help with faster synchronization.
사용자는 로컬 데이터서비스에 접속했을 때 해당 데이터베이스가 최신 상태인지를 계정체인과 메인체인을 검색함으로써 바로 확인가능하다. When a user accesses a local data service, he or she can immediately check whether the database is up to date by searching the account chain and main chain.
하기 [표 3]은 사용자의 요청으로부터 전체 시스템의 동기화가 진행되는 과정을 보여주고 있다. [Table 3] below shows the process of synchronizing the entire system from a user's request.
여기서, U는 사용자를 의미하고, MC는 메인체인을 의미하고, AC는 계정체인을 의미하고, SC는 사이드체인을 의미하고, MCN은 메인체인 네트워크를 의미하고, CAN은 계정체인 네트워크를 의미하고, SCN은 사이드체인 네트워크를 의미하고, DBA는 데이터베이스-A(사용자가 데이터를 변경한 곳)를 의미하고, DBB는 데이터베이스-B(DBA에서 데이터를 받아 동기화 진행)를 의미하고, DBC는 데이터베이스-C(DBc에서 데이터를 받아 동기화 진행)를 의미한다. Here, U means user, MC means main chain, AC means account chain, SC means side chain, MCN means main chain network, CAN means account chain network, , SCN means sidechain network, DBA means database-A (where the user changes data), DB B means database-B ( receiving data from DB A and synchronizing), DB C stands for Database-C ( receiving data from DB c and proceeding with synchronization).
7) 메인체인, 계정체인, 사이드체인의 보관7) Storage of main chain, account chain, and side chain
다양한 실시예들에서 제안하는 분산 데이터베이스 시스템의 참여자들은 계정체인의 전체를 보관할 필요는 있지만 메인체인과 사이드체인의 경우에는 최근의 데이터만 보관하고 있는 것으로 충분하다. 한편, 계정체인 자체는 주로 계정내용의 수정을 목적으로 하는 것으로 그 크기가 증가하지 않는다. 그러므로, 메인체인, 계정체인, 사이드체인의 보관에 필요한 비용의 부담은 제한적이다. Participants in the distributed database system proposed in various embodiments need to keep the entire account chain, but in the case of the main chain and side chain, it is sufficient to keep only the latest data. On the other hand, the account chain itself is mainly for the purpose of modifying account contents, and the size does not increase. Therefore, the burden of costs required for the storage of the main chain, account chain, and side chain is limited.
8) 암호화폐를 이용한 블록채굴에 대한 보상8) Compensation for block mining using cryptocurrency
메인체인, 계정체인, 사이드체인의 블록채굴에 대한 보상으로 암호 화폐를 생성하여 보상하게 하고, 해당 암호 화폐를 관리하기 위한 별도의 블록체인을 이용할 수 있다. 또한, 데이터베이스 시스템의 사용자들이 서비스 제공의 대가로 지불해야 하는 비용의 전부 또는 일부를 암호 화폐로 지불하게 하여 전체 시스템의 운영에 대한 보상체계를 구축할 수 있다. As a reward for block mining of the main chain, account chain, and side chain, cryptocurrency is created and compensated, and a separate blockchain can be used to manage the cryptocurrency. In addition, it is possible to construct a compensation system for the operation of the entire system by having users of the database system pay all or part of the cost to be paid in exchange for service provision in cryptocurrency.
도 3은 다양한 실시예들에 따른 시스템의 분산 데이터 구성 방법을 도시하는 도면이다. 3 is a diagram illustrating a method of configuring distributed data in a system according to various embodiments of the present disclosure;
도 3을 참조하면, P2P 네트워크의 노드들은, 310 단계에서 메인체인을 구성할 수 있다. 이 때 메인체인은 노드들을 기반으로 구성될 수 있다. 여기서, 메인체인은 블록체인 형태로 구성될 수 있다. Referring to FIG. 3 , nodes of the P2P network may configure a main chain in
P2P 네트워크의 노드들은, 320 단계에서 로컬 데이터베이스를 계정체인과 로컬 오프체인 데이터스토리지로 구성할 수 있다. 이 때 계정체인은 노드들의 사용자들과 관련된 계정들로 이루어질 수 있다. 여기서, 계정체인은 블록체인 형태로 구성될 수 있다. 그리고, 로컬 오프체인 데이터스토리지는 사용자들에 대한 데이터를 저장할 수 있다. The nodes of the P2P network may configure a local database as an account chain and a local off-chain data storage in
P2P 네트워크의 노드들은, 330 단계에서 메인체인을 기반으로, 적어도 하나의 사이드체인을 구성할 수 있다. 이 때 각 사이드체인은 메인체인을 기반으로 구성되며, 복수 개의 세그먼트들로 이루어질 수 있다. 여기서, 사이드체인은 메인체인의 블록 해쉬값을 이용하여, 구성될 수 있다. Nodes of the P2P network may configure at least one sidechain based on the main chain in
P2P 네트워크의 노드들은, 340 단계에서 사이드체인을 메인체인에 연결하여, 분산 데이터베이스를 구성할 수 있다. 이를 통해, P2P 네트워크의 노드들은, 분산 데이터베이스를 공동으로 관리할 수 있다. 이 때 P2P 네트워크의 노드들은, 사이드체인을 통해, 분산 데이터베이스를 동기화할 수 있다. 사이드체인이 로컬 오프체인 데이터스토리지에서의 사용자들 중 어느 하나의 데이터에 대한 변경의 승인을 기반으로, 분산 데이터베이스를 동기화할 수 있다. 예를 들면, 복수 개의 사이드체인들이 승인을 병렬로 처리하여, 분산 데이터베이스를 동기화할 수 있다. 여기서, 사이드체인이 승인을 기반으로 스마트 계약을 구성하고, 스마트 계약이 메인체인에 연결될 때, 계정체인이 사용자들 중 어느 하나의 계정을 변경할 수 있다. Nodes in the P2P network can configure a distributed database by connecting the sidechain to the main chain in
다양한 실시예들에 따른 분산 데이터베이스 구성 방법은, 수정 불가능한 공개 블록체인인 메인체인을 이용하여 현재 어떤 작업이 진행되어야 하는지에 대한 정보를 전체 참여자에게 투명하게 제공하고, 수정 가능한 공개 블록체인인 계정체인을 이용하여 계정의 등록을 진행하는 동시에, 계정에 기록된 사용자의 데이터에 대한 데이터스토리지에서의 저장정보(예: 저장된 데이터의 해쉬포인터)를 전체 참여자에게 투명하게 제공할 수 있다. The distributed database configuration method according to various embodiments uses the main chain, which is an unmodifiable public blockchain, to transparently provide information about what kind of work should be done to all participants, and the account chain, which is a public blockchain that can be modified. At the same time, it is possible to transparently provide all participants with information stored in the data storage for the user's data recorded in the account (eg, a hash pointer of the stored data) while registering an account using
다양한 실시예들에 따르면, 실제 데이터는 오프체인에 저장하고 계정체인에는 저장된 데이터의 해쉬포인터 등만을 기록하여 사용자가 자신의 개인정보의 유출 없이 데이터 동기화를 사이드체인 네트워크에 요청할 수 있다. According to various embodiments, real data is stored off-chain and only hash pointers of the stored data are recorded in the account chain, so that the user can request data synchronization from the sidechain network without leaking his or her personal information.
다양한 실시예들에 따르면, 다수의 사이드체인을 이용하여 전체 데이터베이스 시스템의 동기화에 필요한 '승인'을 병렬처리 방식으로 고속으로 진행하고, 동기화에 필요한 명령어를 스마트 계약으로 구성하여 사이드체인 단편이 메인체인에 연결될 때 동기화가 진행되도록 할 수 있다. According to various embodiments, the 'approval' required for synchronization of the entire database system is performed at high speed in a parallel processing method using multiple sidechains, and the commands required for synchronization are configured into a smart contract so that the sidechain fragment is converted to the main chain. Synchronization can proceed when connected to
다양한 실시예들에 따르면, 동기화 과정에서 동기화를 완료한 로컬 데이터베이스가 동기화를 완료하지 못한 다른 로컬 데이터베이스에게 동기화에 필요한 데이터를 제공하여 중앙 데이터베이스를 이용하는 경우에 등장하는 병목현상을 제거하고, 각 로컬 데이터베이스의 동기화 정확성을 메인체인과 계정체인을 이용하여 확인할 수 있도록 할 수 있다. According to various embodiments, the local database that has completed synchronization in the synchronization process provides data necessary for synchronization to other local databases that have not completed synchronization, thereby eliminating a bottleneck that appears when using the central database, and each local database Synchronization accuracy can be checked using the main chain and the account chain.
다양한 실시예들에 따르면, 메인체인을 이용하여 전체 참여자들(사용자, 데이터베이스 서비스 제공자, 데이터스토리지 관리자, 계정체인 채굴자, 사이드 채굴자)에게 각 계정의 데이터베이스 변화 시점에 대한 합의를 제공할 수 있다. According to various embodiments, consensus on the database change timing of each account can be provided to all participants (users, database service providers, data storage administrators, account chain miners, side miners) using the main chain .
다양한 실시예들에 따르면, 계정체인에 수정 가능한 블록체인을 사용하여 계정체인을 보관하는데 필요한 저장 공간의 크기를 획기적으로 감소시킬 수 있다. According to various embodiments, it is possible to dramatically reduce the size of the storage space required to store the account chain by using a block chain that can be modified in the account chain.
다양한 실시예들에 따르면, 수정 가능한 블록체인인 계정체인을 구성하기 위해 동형암호를 이용한 목표값을 설정하는 방법과 그것을 이용하여 사용자만이 동기화 요청을 할 수 있게 할 수 있다(상기 [수학식 14] 참조).According to various embodiments, a method of setting a target value using a homomorphic password to configure an account chain, which is a modifiable block chain, and using it, only a user can make a synchronization request (the [Equation 14 above] ] Reference).
다양한 실시예들에 따르면, 메인체인, 계정체인, 사이드체인의 블록채굴에 대한 보상으로 암호 화폐를 생성하여 보상하게 하고, 해당 암호 화폐를 관리하기 위한 별도의 블록체인을 이용하며, 데이터베이스 시스템의 사용자들이 서비스 제공의 대가로 지불해야 하는 비용의 전부 또는 일부를 암호 화폐로 지불하게 하여 전체 시스템의 운영에 대한 보상체계를 구축할 수 있다. According to various embodiments, a cryptocurrency is created and compensated for block mining of the main chain, account chain, and side chain, a separate block chain for managing the cryptocurrency is used, and the user of the database system It is possible to establish a compensation system for the operation of the entire system by having them pay all or part of the cost they have to pay in exchange for service in cryptocurrency.
다양한 실시예들에 따르면, 각 로컬 데이터베이스의 동기화 정확성을 메인체인과 계정체인을 이용하여 투명하게 확인할 수 있도록 할 수 있다. According to various embodiments, it is possible to transparently check the synchronization accuracy of each local database using the main chain and the account chain.
다양한 실시예들에 따르면, 메인체인과 계정체인을 이용하여 동기화의 정확성을 투명하게 관리하여 다수의 데이터베이스 서비스 제공자들과 데이터스토리지 관리자들이 경쟁할 수 있는 생태계를 제공하는 한편, 여러 업체들이 연합으로 서비스를 제공할 수 있다. According to various embodiments, the main chain and account chain are used to transparently manage the accuracy of synchronization to provide an ecosystem in which multiple database service providers and data storage managers can compete, while several companies provide services as a federation. can provide
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성 요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성 요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성 요소를 다른 구성 요소와 구분하기 위해 사용될 뿐 해당 구성 요소들을 한정하지 않는다. 어떤(예: 제 1) 구성 요소가 다른(예: 제 2) 구성 요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성 요소가 상기 다른 구성 요소에 직접적으로 연결되거나, 다른 구성 요소(예: 제 3 구성 요소)를 통하여 연결될 수 있다.The various embodiments of this document and the terms used therein are not intended to limit the technology described in this document to a specific embodiment, but it should be understood to include various modifications, equivalents, and/or substitutions of the embodiments. In connection with the description of the drawings, like reference numerals may be used for like components. The singular expression may include the plural expression unless the context clearly dictates otherwise. In this document, expressions such as “A or B”, “at least one of A and/or B”, “A, B or C” or “at least one of A, B and/or C” refer to all of the items listed together. Possible combinations may be included. Expressions such as “first”, “second”, “first” or “second” can modify the corresponding components regardless of order or importance, and are only used to distinguish one component from another. It does not limit the corresponding components. When an (eg, first) component is referred to as being “connected (functionally or communicatively)” or “connected” to another (eg, second) component, the component is It may be directly connected to the component or may be connected through another component (eg, a third component).
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다. As used herein, the term “module” includes a unit composed of hardware, software, or firmware, and may be used interchangeably with terms such as, for example, logic, logic block, component, or circuit. A module may be an integrally formed part or a minimum unit or a part of performing one or more functions. For example, the module may be configured as an application-specific integrated circuit (ASIC).
다양한 실시예들에 따르면, 기술한 구성 요소들의 각각의 구성 요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성 요소들 중 하나 이상의 구성 요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성 요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성 요소들(예: 모듈 또는 프로그램)은 하나의 구성 요소로 통합될 수 있다. 이런 경우, 통합된 구성 요소는 복수의 구성 요소들 각각의 구성 요소의 하나 이상의 기능들을 통합 이전에 복수의 구성 요소들 중 해당 구성 요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다. According to various embodiments, each component (eg, a module or a program) of the described components may include a singular or a plurality of entities. According to various embodiments, one or more components or operations among the above-described corresponding components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (eg, a module or a program) may be integrated into one component. In this case, the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to integration. According to various embodiments, operations performed by a module, program, or other component are executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations are executed in a different order, omitted, or , or one or more other operations may be added.
Claims (15)
P2P 네트워크에 참여하는 노드들을 기반으로, 메인체인(main-chain)을 구성하는 단계;
상기 노드들의 사용자들과 관련된 계정들로 이루어지는 계정체인(account-chain)을 구성하는 단계;
상기 메인체인을 기반으로, 복수 개의 세그먼트들로 이루어지는 적어도 하나의 사이드체인(side-chain)을 구성하는 단계;
상기 세그먼트들의 시작과 끝을 상기 메인체인에 연결하여, 분산 데이터베이스를 구성하는 단계; 및
상기 사이드체인이 상기 사용자들 중 어느 하나의 데이터에 대한 변경의 승인을 기반으로, 상기 분산 데이터베이스를 동기화하는 단계를 포함하고,
상기 분산 데이터베이스를 동기화하는 단계는,
상기 사이드체인이 상기 승인을 기반으로 스마트 계약을 구성하는 단계; 및
상기 스마트 계약이 상기 메인체인에 연결될 때, 상기 계정체인이 상기 사용자들 중 어느 하나의 계정을 변경하는 단계를 포함하는 방법.
A method for constructing a high-speed synchronization capable decentralized distributed database, the method comprising:
configuring a main-chain based on the nodes participating in the P2P network;
constructing an account-chain comprising accounts associated with users of the nodes;
constructing at least one side-chain comprising a plurality of segments based on the main chain;
connecting the beginning and the end of the segments to the main chain to configure a distributed database; and
Synchronizing the distributed database based on the sidechain's approval of changes to data of any one of the users;
Synchronizing the distributed database comprises:
constructing, by the sidechain, a smart contract based on the approval; and
and when the smart contract is connected to the main chain, the account chain changing the account of any one of the users.
상기 메인체인과 계정체인은 블록체인 형태로 구성되는 방법.
The method of claim 1,
A method in which the main chain and the account chain are configured in the form of a block chain.
상기 사용자들에 대한 데이터를 저장하기 위한 로컬 오프체인 데이터스토리지를 구성하는 단계를 더 포함하는 방법.
The method of claim 1,
and configuring a local off-chain datastore to store data about the users.
로컬 데이터베이스를 상기 계정체인 및 상기 로컬 오프체인 데이터스토리지로 구성하는 방법.
5. The method of claim 4, wherein configuring the account chain and configuring the local off-chain data storage comprises:
A method of configuring a local database with the account chain and the local off-chain data storage.
상기 메인체인의 블록 해쉬값을 이용하여, 상기 사이드체인을 구성하는 단계를 포함하는 방법.
The method of claim 1, wherein the step of constructing the sidechain comprises:
and constructing the side chain by using the block hash value of the main chain.
복수 개의 사이드체인들이 상기 승인을 병렬로 처리하여, 상기 분산 데이터베이스를 동기화하는 방법.
The method of claim 1, wherein synchronizing the distributed database comprises:
A method in which a plurality of sidechains process the authorization in parallel to synchronize the distributed database.
P2P 네트워크에 참여하고, 공동으로 분산 데이터베이스를 구성하여, 관리하는 노드들을 포함하고,
상기 노드들은,
상기 노드들을 기반으로, 메인체인을 구성하고,
상기 노드들의 사용자들과 관련된 계정들로 이루어지는 계정체인을 구성하고,
상기 메인체인을 기반으로, 복수 개의 세그먼트들로 이루어지는 적어도 하나의 사이드체인을 구성하고,
상기 세그먼트들의 시작과 끝을 상기 메인체인에 연결하여, 분산 데이터베이스를 구성하고,
상기 사이드체인을 통해, 상기 사용자들 중 어느 하나의 데이터에 대한 변경의 승인을 기반으로, 상기 분산 데이터베이스를 동기화하고,
상기 노드들은,
상기 사이드체인을 통해, 상기 승인을 기반으로 스마트 계약을 구성하고,
상기 스마트 계약이 상기 메인체인에 연결될 때, 상기 계정체인에서의 상기 사용자들 중 어느 하나의 계정을 변경하는 시스템.
A system for constructing a high-speed synchronization capable decentralized distributed database,
It includes nodes that participate in the P2P network and jointly configure and manage a distributed database,
The nodes are
Based on the nodes, the main chain is constructed,
construct an account chain consisting of accounts related to users of the nodes;
Based on the main chain, at least one side chain consisting of a plurality of segments is configured,
By connecting the start and end of the segments to the main chain, a distributed database is constructed,
Synchronize the distributed database based on the approval of changes to the data of any one of the users through the sidechain;
The nodes are
Through the sidechain, construct a smart contract based on the approval,
A system for changing the account of any one of the users in the account chain when the smart contract is connected to the main chain.
상기 사용자들에 대한 데이터를 저장하기 위한 로컬 오프체인 데이터스토리지를 구성하는 시스템.
10. The method of claim 9, wherein the nodes are:
A system for configuring local off-chain data storage for storing data about the users.
로컬 데이터베이스를 상기 계정 체인 및 상기 로컬 오프체인 데이터스토리지로 구성하는 시스템.
12. The method of claim 11, wherein the nodes are:
A system for configuring a local database with the account chain and the local off-chain data storage.
상기 메인체인의 블록 해쉬값을 이용하여, 상기 사이드체인을 구성하는 시스템.
10. The method of claim 9, wherein the nodes are:
A system for configuring the sidechain by using the block hash value of the main chain.
복수 개의 사이드체인들을 통해, 상기 승인을 병렬로 처리하여, 상기 분산 데이터베이스를 동기화하는 시스템. 10. The method of claim 9, wherein the nodes are:
A system for synchronizing the distributed database by processing the authorization in parallel through a plurality of sidechains.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200014753A KR102349014B1 (en) | 2020-02-07 | 2020-02-07 | Method and system for building fast synchronizable decentralized distributed database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200014753A KR102349014B1 (en) | 2020-02-07 | 2020-02-07 | Method and system for building fast synchronizable decentralized distributed database |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210100865A KR20210100865A (en) | 2021-08-18 |
KR102349014B1 true KR102349014B1 (en) | 2022-01-11 |
Family
ID=77464680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200014753A KR102349014B1 (en) | 2020-02-07 | 2020-02-07 | Method and system for building fast synchronizable decentralized distributed database |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102349014B1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923214A (en) * | 2021-08-30 | 2022-01-11 | 江苏地北网络工程有限公司 | Block chain system based on double-layer network decentralized storage |
US20230138816A1 (en) * | 2021-11-01 | 2023-05-04 | Binh Minh Nguyen | System and method to reach consensus in a multi-chain iot environment |
KR102675958B1 (en) * | 2021-12-14 | 2024-06-17 | 인제대학교 산학협력단 | A hierarchical multi-blockchain method for parallel computation in crytocurrency transfers and smart contracts and its system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101701131B1 (en) * | 2016-04-28 | 2017-02-13 | 주식회사 라피 | Data recording and validation methods and systems using the connecting of blockchain between different type |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190009958A (en) * | 2017-07-20 | 2019-01-30 | 주식회사 더블체인 | Extendable block chain system and block chain extending method |
KR20190132047A (en) * | 2018-05-18 | 2019-11-27 | 주식회사 비즈모델라인 | Method for Providing Service Platform based on Blockchain by using Smart Contract |
-
2020
- 2020-02-07 KR KR1020200014753A patent/KR102349014B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101701131B1 (en) * | 2016-04-28 | 2017-02-13 | 주식회사 라피 | Data recording and validation methods and systems using the connecting of blockchain between different type |
Non-Patent Citations (1)
Title |
---|
오아스 블럭체인 르네상스 프로젝트, WHITE PAPER version 2.2 (2018.09.15.) |
Also Published As
Publication number | Publication date |
---|---|
KR20210100865A (en) | 2021-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3669280B1 (en) | Shared blockchain data storage | |
US11270308B2 (en) | Shared blockchain data storage | |
US20220360609A1 (en) | Ephemeral control of a data resource according to a use policy | |
EP3669281B1 (en) | Shared blockchain data storage | |
CN115210741B (en) | Partially ordered blockchain | |
US10356094B2 (en) | Uniqueness and auditing of a data resource through an immutable record of transactions in a hash history | |
US10892888B2 (en) | System and method for information protection | |
KR102433504B1 (en) | Blockchain data storage based on error correction codes for permissioned blockchain networks | |
CA3037833C (en) | System and method for information protection | |
CN111144881A (en) | Selective access to asset transfer data | |
KR20200116011A (en) | Systems and methods for parallel-processing blockchain transactions | |
KR20210045353A (en) | Indexing and recovery of encoded blockchain data | |
CN104836862B (en) | A kind of Intelligent terminal data storage method | |
EP3791538B1 (en) | Shared blockchain data storage based on error correction code | |
US12088725B2 (en) | Authentication through use of an unforgeable hash function based credential | |
KR102349014B1 (en) | Method and system for building fast synchronizable decentralized distributed database | |
Hao et al. | Outsourced data integrity verification based on blockchain in untrusted environment | |
CN115136566A (en) | Distributed database | |
Fu et al. | Searchable encryption scheme for multiple cloud storage using double‐layer blockchain | |
KR20190086301A (en) | System and method for distributed database using block chain | |
Frey et al. | Dietcoin: shortcutting the Bitcoin verification process for your smartphone | |
Shah et al. | A Study on Security and Privacy related Issues in Blockchain Based Applications | |
AU2019101581A4 (en) | System and method for information protection | |
JP7574990B2 (en) | Information processing device and program | |
Lei et al. | Enhancing Editability in Permissionless Blockchain: A Three-Chain Model for Efficiency and Ledger Consistency |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |