KR102349014B1 - Method and system for building fast synchronizable decentralized distributed database - Google Patents

Method and system for building fast synchronizable decentralized distributed database Download PDF

Info

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
Application number
KR1020200014753A
Other languages
Korean (ko)
Other versions
KR20210100865A (en
Inventor
이남용
김철수
양진홍
Original Assignee
인제대학교 산학협력단
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인제대학교 산학협력단, 한국과학기술원 filed Critical 인제대학교 산학협력단
Priority to KR1020200014753A priority Critical patent/KR102349014B1/en
Publication of KR20210100865A publication Critical patent/KR20210100865A/en
Application granted granted Critical
Publication of KR102349014B1 publication Critical patent/KR102349014B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1858Parallel file systems, i.e. file systems supporting multiple processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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

고속 동기화 가능 탈중앙화 분산 데이터베이스 구성 방법 및 시스템{METHOD AND SYSTEM FOR BUILDING FAST SYNCHRONIZABLE DECENTRALIZED DISTRIBUTED DATABASE}Method and system for configuring a high-speed synchronization-capable decentralized distributed database

다양한 실시예들은 블록체인 기술을 이용하여 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.

공개키 암호는 보통의 대칭키 암호와는 달리, 암호과정에 사용한 키(이하, 공개키라고 지칭됨)

Figure 112020013032959-pat00001
가 복호과정에 사용하는 키(이하, 개인키라고 지칭됨)
Figure 112020013032959-pat00002
와 다르다. 보다 구체적으로, 공개키 암호는 공개키
Figure 112020013032959-pat00003
를 안다고 해도 개인키
Figure 112020013032959-pat00004
를 구하는 것이 현실적으로 불가능하게 설계되어 있다. 이러한 성질을 이용하여 암호에 사용하는 키
Figure 112020013032959-pat00005
를 공개하여 누구나 자신이 원하는 평문
Figure 112020013032959-pat00006
을 암호문
Figure 112020013032959-pat00007
를 하기 [수학식 1]과 같이 계산 할 수 있는데 반해, 하기 [수학식 2]와 같은 암호문
Figure 112020013032959-pat00008
에 대한 복호화는 복호에 사용하는 키
Figure 112020013032959-pat00009
의 소유자만이 가능하게 하는 암호체계를 구성할 수 있다.Unlike normal symmetric key cryptography, public key cryptography is the key used in the encryption process (hereinafter referred to as public key).
Figure 112020013032959-pat00001
The key used in the decryption process (hereinafter referred to as the private key)
Figure 112020013032959-pat00002
different from More specifically, public key cryptography is a public key
Figure 112020013032959-pat00003
Even if you know the private key
Figure 112020013032959-pat00004
It is designed to be practically impossible to obtain. Keys used for encryption using these properties
Figure 112020013032959-pat00005
by making public the plain text that anyone wants
Figure 112020013032959-pat00006
ciphertext
Figure 112020013032959-pat00007
can be calculated as in [Equation 1], whereas the ciphertext as shown in [Equation 2] below
Figure 112020013032959-pat00008
For decryption, the key used for decryption is
Figure 112020013032959-pat00009
It is possible to construct a cryptosystem that only the owner of

Figure 112020013032959-pat00010
Figure 112020013032959-pat00010

Figure 112020013032959-pat00011
Figure 112020013032959-pat00011

공개키 암호의 개인키는 전자서명에도 사용된다. 즉,

Figure 112020013032959-pat00012
의 소유자만이 할 수 있는 일을 시행하여 그것을 서명의 증거로 그 증거의 검증은 공개키를 이용하여 누구나 할 수 있게 하는 방법이다. 일부 공개키 암호들은 특정 연산에 대해 동형이다. 하기 [수학식 3]을 만족하는 경우 해당 공개키는 연산
Figure 112020013032959-pat00013
에 대해 동형이라고 한다. The private key of public key cryptography is also used for digital signatures. in other words,
Figure 112020013032959-pat00012
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
Figure 112020013032959-pat00013
is said to be homozygous for

Figure 112020013032959-pat00014
Figure 112020013032959-pat00014

여기서, 연산

Figure 112020013032959-pat00015
의 예로는 덧셈, 곱셈, XOR등이 있다. 동형암호는 개별 암호문의 복화화 없이 연산
Figure 112020013032959-pat00016
에 의한 계산결과에 대한 복호화를 하는 방법을 제공한다. Here, the operation
Figure 112020013032959-pat00015
Examples include addition, multiplication, and XOR. Homomorphic ciphers are computed without decryption of individual ciphertexts.
Figure 112020013032959-pat00016
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분)마다 새로운 블록이 계산되어 메인체인에 추가되고, 그 계산에 대한 보상으로 지급되는 암호화폐가 존재한다고 가정한다. 이 때 정해진 시간을 회전이라고 하고, 순차적인 회전의 진행을 표시하는

Figure 112020013032959-pat00017
(
Figure 112020013032959-pat00018
)을 이용하여, 회전을
Figure 112020013032959-pat00019
으로, 이 회전에서 추가되는 블록을
Figure 112020013032959-pat00020
으로, 이 블록
Figure 112020013032959-pat00021
이 추가된 메인체인을
Figure 112020013032959-pat00022
으로 표시하자. 이 기호를 이용하여 회전
Figure 112020013032959-pat00023
이 진행되는 상황에서 각 메인노드(메인체인 네트워크에 참여하는 개별 기기, 예: 참여자의 컴퓨터)가 가지고 있는 메인체인은
Figure 112020013032959-pat00024
으로 표시할 수 있다. 상기한 기호들은 하기 [표 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
Figure 112020013032959-pat00017
(
Figure 112020013032959-pat00018
) to rotate
Figure 112020013032959-pat00019
, the block being added in this rotation
Figure 112020013032959-pat00020
into this block
Figure 112020013032959-pat00021
This added main chain
Figure 112020013032959-pat00022
Let's mark it as Rotate using this symbol
Figure 112020013032959-pat00023
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
Figure 112020013032959-pat00024
can be displayed as The above symbols are defined as in [Table 1] below.

Figure 112020013032959-pat00025
Figure 112020013032959-pat00025
Figure 112020013032959-pat00026
번째 회전
Figure 112020013032959-pat00026
second turn
Figure 112020013032959-pat00027
Figure 112020013032959-pat00027
회전
Figure 112020013032959-pat00028
에서 추가되는 블록
rotation
Figure 112020013032959-pat00028
block added from
Figure 112020013032959-pat00029
Figure 112020013032959-pat00029
회전
Figure 112020013032959-pat00030
에서 각 노드들의 메인체인
rotation
Figure 112020013032959-pat00030
main chain of each node in
Figure 112020013032959-pat00031
Figure 112020013032959-pat00031
블록체인
Figure 112020013032959-pat00032
에 블록
Figure 112020013032959-pat00033
을 연결한 메인체인
blockchain
Figure 112020013032959-pat00032
block on
Figure 112020013032959-pat00033
main chain connecting

블록

Figure 112020013032959-pat00034
의 데이터는 바로 앞 블록
Figure 112020013032959-pat00035
의 해쉬값
Figure 112020013032959-pat00036
, 현 회전의 번호
Figure 112020013032959-pat00037
, 그리고 현 회전이 시작되기 직전의 정보로 예측 불가능하지만 공개적으로 확인 가능한 정보(예: 태양의 흑점 활동정보, 현 회전이 시작되기 직전의 비트코인 블록)의 해쉬값
Figure 112020013032959-pat00038
과, 현 블록의 해쉬값
Figure 112020013032959-pat00039
의 포인터와 이 해쉬값을 구하는데 사용한 넌스값
Figure 112020013032959-pat00040
등으로 구성되어 있다. 구체적으로, 메인체인에서의 해쉬값
Figure 112020013032959-pat00041
과 넌스값
Figure 112020013032959-pat00042
은 주어진
Figure 112020013032959-pat00043
에 대하여, 하기[수학식 4]와 같은 작업증명의 해답으로 정의된다. block
Figure 112020013032959-pat00034
data in the immediately preceding block
Figure 112020013032959-pat00035
hash value of
Figure 112020013032959-pat00036
, number of chord turns
Figure 112020013032959-pat00037
, 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.
Figure 112020013032959-pat00038
and the hash value of the current block
Figure 112020013032959-pat00039
A pointer to and the nonce value used to obtain this hash value.
Figure 112020013032959-pat00040
It consists of etc. Specifically, the hash value in the main chain
Figure 112020013032959-pat00041
and nonce value
Figure 112020013032959-pat00042
is given
Figure 112020013032959-pat00043
, is defined as the solution of the proof-of-work as shown in [Equation 4] below.

Figure 112020013032959-pat00044
Figure 112020013032959-pat00044

여기서, '

Figure 112020013032959-pat00045
'은 비트열의 접합을 의미하고,
Figure 112020013032959-pat00046
는 어떤 입력에 대해서든 출력으로 256 비트열을 생성하는 SHA-256 해쉬함수이고,
Figure 112020013032959-pat00047
Figure 112020013032959-pat00048
개의 0으로만 구성된 비트열을 의미하고,
Figure 112020013032959-pat00049
는 256 비트열 중에서 처음
Figure 112020013032959-pat00050
비트가
Figure 112020013032959-pat00051
인 비트열의 집합을 의미한다(
Figure 112020013032959-pat00052
= 비트열
Figure 112020013032959-pat00053
의 길이). 즉,
Figure 112020013032959-pat00054
은 256 비트열 중에서 처음
Figure 112020013032959-pat00055
개의 비트가 모두 0인 비트열의 집합이다. 상기 [수학식 4]의 해쉬퍼즐을 만족하는 넌스값
Figure 112020013032959-pat00056
에 대한 결과가 하기 [수학식 5]와 같이 블록
Figure 112020013032959-pat00057
의 해쉬값이다.here, '
Figure 112020013032959-pat00045
' means concatenation of bit strings,
Figure 112020013032959-pat00046
is a SHA-256 hash function that generates a 256-bit string as an output for any input,
Figure 112020013032959-pat00047
silver
Figure 112020013032959-pat00048
It means a bit string consisting of only zeros,
Figure 112020013032959-pat00049
is the first of the 256-bit strings
Figure 112020013032959-pat00050
a bit
Figure 112020013032959-pat00051
It means a set of bit strings (
Figure 112020013032959-pat00052
= bit string
Figure 112020013032959-pat00053
length of). in other words,
Figure 112020013032959-pat00054
is the first of the 256-bit strings
Figure 112020013032959-pat00055
It is a set of bit strings in which all bits are 0. A nonce value that satisfies the hash puzzle of [Equation 4]
Figure 112020013032959-pat00056
The result for the block is as follows [Equation 5]
Figure 112020013032959-pat00057
is the hash value of

Figure 112020013032959-pat00058
Figure 112020013032959-pat00058

상기 [수학식 4]의 계수

Figure 112020013032959-pat00059
은 해쉬퍼즐의 난이도를 결정하는데, 그 값이 크면 클수록 해당 해쉬퍼즐을 만족하는 넌스값을 계산하는 것이 어려워진다. 회전
Figure 112020013032959-pat00060
에서 작업증명의 해답
Figure 112020013032959-pat00061
을 가장 먼저 계산한 채굴자(작업증명에 참여하는 노드를 지칭함)는 블록
Figure 112020013032959-pat00062
을 발표하고 이를 메인체인
Figure 112020013032959-pat00063
에 연결하여 자신이 가지고 있는 메인체인을 하기[수학식 6]과 같이 확장한다. 다른 참여자들은 발표된 블록
Figure 112020013032959-pat00064
을 검증하고 이에 대한 합의로 자신들의 메인체인에 추가한다. Coefficient of [Equation 4]
Figure 112020013032959-pat00059
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
Figure 112020013032959-pat00060
The answer to proof of work in
Figure 112020013032959-pat00061
The first miner (referring to the node participating in the proof-of-work) who calculated
Figure 112020013032959-pat00062
announced the main chain
Figure 112020013032959-pat00063
Connect to and expand your main chain as shown in [Equation 6] below. The other participants are the blocks that have been announced
Figure 112020013032959-pat00064
, and add them to their main chain as a consensus.

Figure 112020013032959-pat00065
Figure 112020013032959-pat00065

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.

다양한 실시예들은 위변조 공격에 대한 방어를 위해 사용자의 전자서명을 이용한 무결성 검증 방법(이 방법은 잘 알려진 방법이므로 이에 대한 설명은 본 명세서에서는 생략한다)과 함께 계정들로 이루어진 블록체인인 계정체인과 동형암호를 이용한 위변조 방지 방법을 사용한다. 구체적으로, 계정체인의

Figure 112020013032959-pat00066
회전(이 회전은 메인체인의 회전과 동일한 것이 아니다. 이 회전이 시작되었을 때의 계정체인을
Figure 112020013032959-pat00067
으로 표시하자)에서 채굴되는 블록
Figure 112020013032959-pat00068
은 바로 앞 블록
Figure 112020013032959-pat00069
의 해쉬값
Figure 112020013032959-pat00070
, 현 회전에서 생성되는 계정들
Figure 112020013032959-pat00071
(여기서,
Figure 112020013032959-pat00072
는 블록
Figure 112020013032959-pat00073
에 포함될 계정의 수를 의미한다)의 목표값
Figure 112020013032959-pat00074
(이에 대한 설명은 곧 등장할 것이다)과, 현 블록의 해쉬값
Figure 112020013032959-pat00075
의 포인터와 이 해쉬값을 구하는데 사용한 넌스값
Figure 112020013032959-pat00076
등으로 구성되어 있다. 계정
Figure 112020013032959-pat00077
는 하기 [표 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
Figure 112020013032959-pat00066
Rotation (This rotation is not the same as the rotation of the main chain. The account chain when this rotation started
Figure 112020013032959-pat00067
(Let's denote it as ) blocks mined from
Figure 112020013032959-pat00068
is the block just before
Figure 112020013032959-pat00069
hash value of
Figure 112020013032959-pat00070
, accounts created in the current rotation
Figure 112020013032959-pat00071
(here,
Figure 112020013032959-pat00072
is the block
Figure 112020013032959-pat00073
refers to the number of accounts to be included in
Figure 112020013032959-pat00074
(Explanation for this will appear soon) and the hash value of the current block
Figure 112020013032959-pat00075
A pointer to and the nonce value used to obtain this hash value.
Figure 112020013032959-pat00076
It consists of etc. account
Figure 112020013032959-pat00077
has the same information as in [Table 2] below.

기호sign 내용Contents

Figure 112020013032959-pat00078
Figure 112020013032959-pat00078
계정
Figure 112020013032959-pat00079
의 사용자의 공개키
account
Figure 112020013032959-pat00079
user's public key
Figure 112020013032959-pat00080
Figure 112020013032959-pat00080
계정
Figure 112020013032959-pat00081
의 목표값
account
Figure 112020013032959-pat00081
target value of
Figure 112020013032959-pat00082
Figure 112020013032959-pat00082
계정
Figure 112020013032959-pat00083
의 목표값
Figure 112020013032959-pat00084
에 대한 입력값
account
Figure 112020013032959-pat00083
target value of
Figure 112020013032959-pat00084
input to
Figure 112020013032959-pat00085
Figure 112020013032959-pat00085
계정
Figure 112020013032959-pat00086
의 데이터의 오프체인에서의 저장정보
account
Figure 112020013032959-pat00086
of data stored off-chain
Figure 112020013032959-pat00087
Figure 112020013032959-pat00087
Figure 112020013032959-pat00088
에 대한 전자서명
Figure 112020013032959-pat00088
electronic signature for

계정

Figure 112020013032959-pat00089
의 데이터의 오프체인 데이터스토리지에서의 저장정보
Figure 112020013032959-pat00090
는 계정
Figure 112020013032959-pat00091
가 동기화에 필요한 현재 상태를 가리킨다. 즉,
Figure 112020013032959-pat00092
와 변경된 디렉토리, 파일 또는 변경된 내용의 (데이터스토리지에서의) 저장위치와 크기 등의 정보를 가지고 동기화를 진행한다. 이때, 실제 데이터 내용은 노출시키지 않게 동기화 직전의 상태를 표현하는데 필요한 모든 정보를 포함하고 있는 것이 바로
Figure 112020013032959-pat00093
이다. 목표값을 설정하고 이를 블록의 해쉬값을 계산하는데 사용하여 블록체인에 수정 가능성을 제공하는 방법이 있다. 다양한 실시예들에서는 절단 해쉬값을 이용하는 방법을 제안한다. 다양한 실시예들에서는 동형암호를 이용한 방법을 제안한다. account
Figure 112020013032959-pat00089
Stored information in off-chain data storage of data of
Figure 112020013032959-pat00090
is the account
Figure 112020013032959-pat00091
indicates the current state required for synchronization. in other words,
Figure 112020013032959-pat00092
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.
Figure 112020013032959-pat00093
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.

계정

Figure 112020013032959-pat00094
의 목표값
Figure 112020013032959-pat00095
에 대한 입력값
Figure 112020013032959-pat00096
은 실제 구현에서 사용할 동형암호에 따라 결정된다. 이 명세서에서는 실시예로 1024비트 길이의 정수
Figure 112020013032959-pat00097
에 대한 모듈로 덧셈에 동형인 Paillier 공개키 암호(이 공개키 암호를
Figure 112020013032959-pat00098
로 표시하자)를 기준으로 설명하고자 한다. 계정
Figure 112020013032959-pat00099
의 목표값
Figure 112020013032959-pat00100
는 하기[수학식 7]과 같이 정의된다. account
Figure 112020013032959-pat00094
target value of
Figure 112020013032959-pat00095
input to
Figure 112020013032959-pat00096
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
Figure 112020013032959-pat00097
Paillier public-key cryptography homomorphic to modulo addition to
Figure 112020013032959-pat00098
Let's denote it as ). account
Figure 112020013032959-pat00099
target value of
Figure 112020013032959-pat00100
is defined as follows [Equation 7].

Figure 112020013032959-pat00101
Figure 112020013032959-pat00101

여기서,

Figure 112020013032959-pat00102
는 1024비트를 생성하는 해쉬함수이고,
Figure 112020013032959-pat00103
는 계정
Figure 112020013032959-pat00104
의 사용자의 공개키이고,
Figure 112020013032959-pat00105
의 덧셈은 정수
Figure 112020013032959-pat00106
에 대한 모듈로 덧셈이다. here,
Figure 112020013032959-pat00102
is a hash function that generates 1024 bits,
Figure 112020013032959-pat00103
is the account
Figure 112020013032959-pat00104
is the public key of the user of
Figure 112020013032959-pat00105
The addition of is an integer
Figure 112020013032959-pat00106
is a modulo addition to .

계정

Figure 112020013032959-pat00107
의 목표값
Figure 112020013032959-pat00108
는 한 번 계산된 이후에는 변화하지 않는다. 계정
Figure 112020013032959-pat00109
의 목표값
Figure 112020013032959-pat00110
,
Figure 112020013032959-pat00111
에 대한 입력값
Figure 112020013032959-pat00112
, 그리고 현재의
Figure 112020013032959-pat00113
에 대한 무결성 검증은 하기 [수학식 8]과 같이 계정
Figure 112020013032959-pat00114
의 사용자의 전자서명으로 한다. 이에 대한 검증은 공개키
Figure 112020013032959-pat00115
를 이용하여 시행한다.account
Figure 112020013032959-pat00107
target value of
Figure 112020013032959-pat00108
does not change once calculated. account
Figure 112020013032959-pat00109
target value of
Figure 112020013032959-pat00110
,
Figure 112020013032959-pat00111
input to
Figure 112020013032959-pat00112
, and the current
Figure 112020013032959-pat00113
Integrity verification for the account as shown in [Equation 8]
Figure 112020013032959-pat00114
of the user's electronic signature. Verification of this is public key
Figure 112020013032959-pat00115
is implemented using

Figure 112020013032959-pat00116
Figure 112020013032959-pat00116

계정체인의 블록

Figure 112020013032959-pat00117
의 해쉬값
Figure 112020013032959-pat00118
과 넌스값
Figure 112020013032959-pat00119
은 주어진
Figure 112020013032959-pat00120
에 대하여, 하기 [수학식 9]와 같은 작업증명의 해답으로 정의된다. block of account chain
Figure 112020013032959-pat00117
hash value of
Figure 112020013032959-pat00118
and nonce value
Figure 112020013032959-pat00119
is given
Figure 112020013032959-pat00120
, is defined as a solution to the proof of work as in [Equation 9] below.

Figure 112020013032959-pat00121
Figure 112020013032959-pat00121

여기서,

Figure 112020013032959-pat00122
은 계정체인의 채굴자에게 알려진 가장 최근의 메인체인의 블록 해쉬값으로,
Figure 112020013032959-pat00123
이 메인체인에서 블록 해쉬값
Figure 112020013032959-pat00124
이 계산된 이 후에 생성되는 계정들임을 증명하는데 사용한다. 만약, 계정체인의 어떤 채굴자가 상기 [수학식 9]에서 고의적으로 가장 최근의 메인체인의 블록 해쉬값보다 훨씬 더 오래된(메인체인의 블록 해쉬값의 전파지연을 감안한 것보다도 더 오래된) 블록 해쉬값을 사용하여 자신이 등록하고자 하는
Figure 112020013032959-pat00125
의 등록시점을 앞당기려는 시도는 계정체인의 다른 채굴자들이 검증과정에서 사용된
Figure 112020013032959-pat00126
의 계산시점과 현시점과의 차이를 고려하여 탈락시키는 규칙을 만들어 억제한다. 상기 [수학식 9]의 해쉬퍼즐을 만족하는 넌스값
Figure 112020013032959-pat00127
에 대한 결과가 하기 [수학식 10]과 같이 블록
Figure 112020013032959-pat00128
의 해쉬값이다.here,
Figure 112020013032959-pat00122
is the most recent block hash value of the main chain known to miners of the account chain,
Figure 112020013032959-pat00123
Block hash value in this main chain
Figure 112020013032959-pat00124
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
Figure 112020013032959-pat00125
Attempts to advance the registration time of
Figure 112020013032959-pat00126
In consideration of the difference between the calculation time of A nonce value that satisfies the hash puzzle of [Equation 9]
Figure 112020013032959-pat00127
A block as in [Equation 10]
Figure 112020013032959-pat00128
is the hash value of

Figure 112020013032959-pat00129
Figure 112020013032959-pat00129

계정체인의

Figure 112020013032959-pat00130
번째 회전의 작업증명의 해답
Figure 112020013032959-pat00131
을 가장 먼저 계산한 계정체인의 채굴자는 블록
Figure 112020013032959-pat00132
을 발표하고 이를 계정체인
Figure 112020013032959-pat00133
에 연결하여 자신이 가지고 있는 계정체인을 하기 [수학식 11]과 같이 확장한다. 다른 참여자들은 발표된 블록
Figure 112020013032959-pat00134
을 검증하고 이에 대한 합의로 자신들의 계정체인을
Figure 112020013032959-pat00135
로 업데이트한다. account chain
Figure 112020013032959-pat00130
The answer to the proof-of-work of the second rotation
Figure 112020013032959-pat00131
The miner of the account chain who first calculated
Figure 112020013032959-pat00132
announced and the account chain
Figure 112020013032959-pat00133
Connect to and expand your account chain as shown in [Equation 11] below. The other participants are the blocks that have been announced
Figure 112020013032959-pat00134
verify their account chains and agree to them
Figure 112020013032959-pat00135
update to

Figure 112020013032959-pat00136
Figure 112020013032959-pat00136

메인체인과 계정체인에는 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.

계정체인은 수정 가능한 블록체인이다. 왜냐하면, 블록

Figure 112020013032959-pat00137
의 해쉬값
Figure 112020013032959-pat00138
이 해당 블록에 속해있는 계정들
Figure 112020013032959-pat00139
자체가 아닌 그것들의
Figure 112020013032959-pat00140
에 의존하기 때문에 목표값을 변화시키지 않는 수정은 전체 계정체인의 해쉬값에 의한 연결에 위배되지 않는다. The account chain is a modifiable blockchain. because the block
Figure 112020013032959-pat00137
hash value of
Figure 112020013032959-pat00138
Accounts belonging to this block
Figure 112020013032959-pat00139
of them, not themselves
Figure 112020013032959-pat00140
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

계정

Figure 112020013032959-pat00141
의 사용자가 특정 로컬 데이터베이스(이를 DBA라고 하자)에 접속하여 데이터의 저장정보를
Figure 112020013032959-pat00142
에서
Figure 112020013032959-pat00143
가 되었다고 가정하자. 이 경우에 사용자의 데이터베이스 클라이언트 소프트웨어는 변화된 상황에 맞게 DBA에 기록되어 계정
Figure 112020013032959-pat00144
의 내용을 변화시킨다. 즉, 계정
Figure 112020013032959-pat00145
의 데이터의 저장정보가
Figure 112020013032959-pat00146
에서
Figure 112020013032959-pat00147
로 변화를 사용자가 승인했다는 증거로 하기 [수학식 12]를 만족하는
Figure 112020013032959-pat00148
로 계정
Figure 112020013032959-pat00149
Figure 112020013032959-pat00150
를 교체하고, 변화된 상황에 맞게
Figure 112020013032959-pat00151
를 하기 [수학식 13]과 같이 교체한다. account
Figure 112020013032959-pat00141
user of , connects to a specific local database ( let's call this DB A)
Figure 112020013032959-pat00142
at
Figure 112020013032959-pat00143
Let's assume that In this case, the user's database client software is recorded in DB A according to the changed situation and
Figure 112020013032959-pat00144
change the content of i.e. account
Figure 112020013032959-pat00145
data storage information of
Figure 112020013032959-pat00146
at
Figure 112020013032959-pat00147
As proof that the user has approved the change to [Equation 12]
Figure 112020013032959-pat00148
account as
Figure 112020013032959-pat00149
of
Figure 112020013032959-pat00150
to replace and adapt to the changed situation
Figure 112020013032959-pat00151
is replaced with the following [Equation 13].

Figure 112020013032959-pat00152
Figure 112020013032959-pat00152

Figure 112020013032959-pat00153
Figure 112020013032959-pat00153

여기서, 주목할 점은 개인키

Figure 112020013032959-pat00154
의 소유자인 계정
Figure 112020013032959-pat00155
의 사용자만이 상기 [수학식 12]를 만족하는
Figure 112020013032959-pat00156
를 하기 [수학식 14]로 계산할 수 있다는 점이다.Here, it should be noted that the private key
Figure 112020013032959-pat00154
account that is the owner of
Figure 112020013032959-pat00155
Only users of [Equation 12] are satisfied
Figure 112020013032959-pat00156
can be calculated by the following [Equation 14].

Figure 112020013032959-pat00157
Figure 112020013032959-pat00157

이러한 교체는 DBA에서만 벌어진 일이고 이를 다른 데이터베이스에서도 진행되게 해야 한다. 이를 위해, 사용자의 데이터베이스 클라이언트 소프트웨어는 저장상태가

Figure 112020013032959-pat00158
에서
Figure 112020013032959-pat00159
로 변화시키는 필요한 작업(이하,
Figure 112020013032959-pat00160
'라고 지칭됨)에 필요한 정보를 하기[수학식 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
Figure 112020013032959-pat00158
at
Figure 112020013032959-pat00159
necessary work to change to (hereinafter,
Figure 112020013032959-pat00160
') is calculated as follows [Equation 15].

Figure 112020013032959-pat00161
Figure 112020013032959-pat00161

여기서,

Figure 112020013032959-pat00162
는 두 저장정보
Figure 112020013032959-pat00163
,
Figure 112020013032959-pat00164
사이의 차이를 표현하는 정보이다. here,
Figure 112020013032959-pat00162
is the two stored information
Figure 112020013032959-pat00163
,
Figure 112020013032959-pat00164
Information representing the difference between

Figure 112020013032959-pat00165
를 다른 데이터베이스에서도 수행시켜 전체 분산 데이터베이스에서 계정
Figure 112020013032959-pat00166
의 데이터 저장정보가
Figure 112020013032959-pat00167
에서
Figure 112020013032959-pat00168
로 변화된 것에 맞추어 계정
Figure 112020013032959-pat00169
를 변화시켜야 한다. 이러한 요청을 사이드체인 네트워크라고 지칭할 P2P 네트워크에 요청한다. this
Figure 112020013032959-pat00165
is also performed in other databases to account for the entire distributed database.
Figure 112020013032959-pat00166
data storage information of
Figure 112020013032959-pat00167
at
Figure 112020013032959-pat00168
account in accordance with the change to
Figure 112020013032959-pat00169
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 개의 사이드체인을 이용하는 경우를 가정해 보자. 각 계정은 어떤 사이드체인에 의해 동기화가 진행될지가 미리 결정되게 하는데, 각 계정

Figure 112020013032959-pat00170
의 목표값
Figure 112020013032959-pat00171
의 끝 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.
Figure 112020013032959-pat00170
target value of
Figure 112020013032959-pat00171
Using the last 3 bits of (these are one of 000, 001, ..., 111), it is determined by which sidechain will approve the synchronization.

사이드체인은 메인체인에 시작과 끝이 연결된 단편들(segments)로 이루어져 있고, 그 각 단편의 시작과 끝은 메인체인의 블록 해쉬값

Figure 112020013032959-pat00172
이 결정한다. 구체적으로,
Figure 112020013032959-pat00173
-사이드체인(목표값
Figure 112020013032959-pat00174
의 끝 3자리 비트가 000인 계정들의 동기화의 승인을 담당할 사이드체인)의 첫 단편은
Figure 112020013032959-pat00175
로 표시하는데, 이는 메인체인의 블록 해쉬값
Figure 112020013032959-pat00176
의 끝 3자리 비트가 처음으로 000이 되는
Figure 112020013032959-pat00177
에서 시작하여 그 다음으로 000이 되는
Figure 112020013032959-pat00178
이 등장할 때까지 계속된다는 의미이다. 같은 방법으로
Figure 112020013032959-pat00179
으로 표시되는
Figure 112020013032959-pat00180
-번째 단편은 메인체인의 블록 해쉬값
Figure 112020013032959-pat00181
의 끝 3자리 비트가
Figure 112020013032959-pat00182
-번째로 000이 되는
Figure 112020013032959-pat00183
에서 시작하여 그 다음으로 메인체인의 블록 해쉬값
Figure 112020013032959-pat00184
의 끝 3자리 비트가 000이 되는
Figure 112020013032959-pat00185
이 등장할 때까지 계속된다. 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.
Figure 112020013032959-pat00172
this decides Specifically,
Figure 112020013032959-pat00173
-Sidechain (target value)
Figure 112020013032959-pat00174
The first fragment of the sidechain that will be responsible for authorizing the synchronization of accounts with the last 3 bits of 000) is
Figure 112020013032959-pat00175
, which is the block hash value of the main chain.
Figure 112020013032959-pat00176
where the last three bits of the first become 000
Figure 112020013032959-pat00177
starting at , then 000
Figure 112020013032959-pat00178
This means that it will continue until it appears. in the same way
Figure 112020013032959-pat00179
displayed as
Figure 112020013032959-pat00180
-The first fragment is the block hash value of the main chain
Figure 112020013032959-pat00181
the last 3 bits of
Figure 112020013032959-pat00182
- the first to be 000
Figure 112020013032959-pat00183
Starting with , then the block hash value of the main chain
Figure 112020013032959-pat00184
where the last 3 bits of
Figure 112020013032959-pat00185
This continues until this appears.

이제, 사이드체인 단편

Figure 112020013032959-pat00186
내의 블록에 대해서 살펴보도록 하자. 메인체인에서 블록 해쉬값
Figure 112020013032959-pat00187
(이 해쉬값의 끝 3자리비트가 000이었다)가 발표되면 바로
Figure 112020013032959-pat00188
-사이드체인 네트워크의 채굴자들은
Figure 112020013032959-pat00189
-사이드체인에 동기화에 대한 승인 요청
Figure 112020013032959-pat00190
(상기 [수학식 15] 참조)을 검증하고 검증이 통과된 것들을 블록
Figure 112020013032959-pat00191
에 포함시켜 해당 블록을 채굴하려고 시도한다. 여기서, 블록을 표현하는
Figure 112020013032959-pat00192
Figure 112020013032959-pat00193
-사이드체인의
Figure 112020013032959-pat00194
-번째 단편의
Figure 112020013032959-pat00195
-번째 블록을 의미한다. Now, the sidechain fragment
Figure 112020013032959-pat00186
Let's take a look at the blocks within. Block hash value on the main chain
Figure 112020013032959-pat00187
(The last 3 bits of this hash value were 000) When it is announced
Figure 112020013032959-pat00188
- Miners in the sidechain network
Figure 112020013032959-pat00189
- Request approval for sync to sidechain
Figure 112020013032959-pat00190
(Refer to [Equation 15] above) and block those that have passed the verification
Figure 112020013032959-pat00191
Attempts to mine the block by including it in Here, the block representing
Figure 112020013032959-pat00192
Is
Figure 112020013032959-pat00193
- of side chain
Figure 112020013032959-pat00194
- of the second fragment
Figure 112020013032959-pat00195
- means the second block.

블록

Figure 112020013032959-pat00196
가 채굴되는 과정은, 하기 [수학식 16]과 같이 주어진
Figure 112020013032959-pat00197
에 대하여, 작업증명방식으로 정의된다. block
Figure 112020013032959-pat00196
The process in which is mined is given as in [Equation 16]
Figure 112020013032959-pat00197
For , it is defined as a proof-of-work method.

Figure 112020013032959-pat00198
Figure 112020013032959-pat00198

여기서,

Figure 112020013032959-pat00199
은 직전 블록
Figure 112020013032959-pat00200
의 해쉬값이고
Figure 112020013032959-pat00201
은 현 블록에서 검증하고자 하는 계정의 저장정보의 변경 요청들이다. 사이드체인의 채굴자들은 요청
Figure 112020013032959-pat00202
에 대한 검증을 실시하는데 그 대상은 상기 [수학식 15]의
Figure 112020013032959-pat00203
의 예를 가지고 설명한다면 다음과 같다. here,
Figure 112020013032959-pat00199
the previous block
Figure 112020013032959-pat00200
is the hash value of
Figure 112020013032959-pat00201
are requests to change the stored information of the account to be verified in the current block. Sidechain miners request
Figure 112020013032959-pat00202
, and the target of [Equation 15] above is
Figure 112020013032959-pat00203
To explain with an example of

(1)

Figure 112020013032959-pat00204
의 위치를 이용하여 계정
Figure 112020013032959-pat00205
의 저장정보 확인(데이터 변경이 실제로 진행된 로컬 데이터베이스를 제외하고 계정
Figure 112020013032959-pat00206
의 사용자가 가입한 모든 데이터베이스에서는
Figure 112020013032959-pat00207
이어야 함).(One)
Figure 112020013032959-pat00204
account using the location of
Figure 112020013032959-pat00205
Check the stored information of
Figure 112020013032959-pat00206
In all databases subscribed by users of
Figure 112020013032959-pat00207
should be).

(2)

Figure 112020013032959-pat00208
를 진행하면
Figure 112020013032959-pat00209
로 변화하는지 검증.(2)
Figure 112020013032959-pat00208
If you proceed
Figure 112020013032959-pat00209
verify that it changes to .

(3) 입력값

Figure 112020013032959-pat00210
Figure 112020013032959-pat00211
에 맞게 제시되었는지 확인.(3) input value
Figure 112020013032959-pat00210
go
Figure 112020013032959-pat00211
Make sure it is presented in accordance with the

(4) 계정

Figure 112020013032959-pat00212
의 전자서명
Figure 112020013032959-pat00213
검증 (4) account
Figure 112020013032959-pat00212
electronic signature of
Figure 112020013032959-pat00213
Verification

상기 [수학식 16]의 해쉬퍼즐을 만족하는 넌스값

Figure 112020013032959-pat00214
에 대한 결과가 하기 [수학식 17]과 같이 블록
Figure 112020013032959-pat00215
의 해쉬값이다.A nonce value that satisfies the hash puzzle of [Equation 16]
Figure 112020013032959-pat00214
The result for the block is as follows [Equation 17]
Figure 112020013032959-pat00215
is the hash value of

Figure 112020013032959-pat00216
Figure 112020013032959-pat00216

Figure 112020013032959-pat00217
-사이드체인의 해쉬퍼즐의 해답
Figure 112020013032959-pat00218
을 가장 먼저 계산한
Figure 112020013032959-pat00219
-사이드체인의 채굴자는 블록
Figure 112020013032959-pat00220
을 발표하고 이를 사이드체인 단편에 연결하여 확장한다. 다른
Figure 112020013032959-pat00221
-사이드체인의 참여자들은 발표된 블록
Figure 112020013032959-pat00222
을 검증하고 이에 대한 합의로 자신들의 사이드체인 단편에 연결하여 확장한다.
Figure 112020013032959-pat00217
-The answer to the hash puzzle of the sidechain
Figure 112020013032959-pat00218
was first calculated
Figure 112020013032959-pat00219
- The miner of the sidechain is a block
Figure 112020013032959-pat00220
, and extend it by linking it to a sidechain fragment. Different
Figure 112020013032959-pat00221
-Participants in the sidechain will participate in the announced block
Figure 112020013032959-pat00222
Validate and expand by connecting to their sidechain fragments with consensus.

변경요청

Figure 112020013032959-pat00223
은 스마트 계약으로 기록되어 이것들이 기록된 블록
Figure 112020013032959-pat00224
을 포함하고 있는 사이드체인 단편
Figure 112020013032959-pat00225
이 메인체인에 연결될 때 전체 시스템에 적용되도록 설계된다. 예를 들어, 계정체인에서의 계정정보의 수정은 스마트 계약
Figure 112020013032959-pat00226
이 메인체인에 연결되는 즉시 실시된다. request for change
Figure 112020013032959-pat00223
is recorded as a smart contract and the block in which these are recorded
Figure 112020013032959-pat00224
A sidechain fragment containing
Figure 112020013032959-pat00225
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
Figure 112020013032959-pat00226
It will be implemented as soon as it is connected to this main chain.

메인체인에 연결되는

Figure 112020013032959-pat00227
-사이드체인의
Figure 112020013032959-pat00228
-번째 단편
Figure 112020013032959-pat00229
의 블록은 하기 [수학식 18]과 같다.connected to the main chain
Figure 112020013032959-pat00227
- of side chain
Figure 112020013032959-pat00228
-th fragment
Figure 112020013032959-pat00229
The block of [Equation 18] is as follows.

Figure 112020013032959-pat00230
Figure 112020013032959-pat00230

여기서, 맨 처음 블록

Figure 112020013032959-pat00231
은 메인체인의 연결되는 블록
Figure 112020013032959-pat00232
이고, 즉,
Figure 112020013032959-pat00233
이고, 맨 마지막 블록
Figure 112020013032959-pat00234
도 메인체인의 연결되는 블록
Figure 112020013032959-pat00235
이다. 이때, 사이드체인 단편을 메인체인에 연결시키기 위해 메인체인의 해쉬값을 하기[수학식 19]와 같이 변화시킨다. Here, the first block
Figure 112020013032959-pat00231
is a block connected to the main chain
Figure 112020013032959-pat00232
is, that is,
Figure 112020013032959-pat00233
and the last block
Figure 112020013032959-pat00234
Blocks connected to the domain chain
Figure 112020013032959-pat00235
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].

Figure 112020013032959-pat00236
Figure 112020013032959-pat00236

지금까지 설명한 방식으로 다른 사이드체인의 파편들도 정의할 수 있다. 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

계정

Figure 112020013032959-pat00237
의 사용자가 DB-A에서 데이터의 저장정보를
Figure 112020013032959-pat00238
에서
Figure 112020013032959-pat00239
로 변화시키는 작업을 진행하였고 이를 전체 분산 데이터베이스에서 동일하게 하는 동기화를 요청하였다고 가정하자. 이를 위해 사용자의 클라이언트 소프트웨어는 동기화에 필요한 요청
Figure 112020013032959-pat00240
를 자신의 계정의 수정을 다루는 사이드체인 네트워크에 요청하였고, 해당 요청은 사이드체인에서 검증된 후에 메인체인에 연결되어 메인체인의 모든 참여자들(로컬 데이터스토리지 관리자들과 데이터서비스 제공자들은 반듯이 참여해야 한다고 가정하였다)에게 알려지게 되었다고 가정하자. account
Figure 112020013032959-pat00237
user of DB-A saves data
Figure 112020013032959-pat00238
at
Figure 112020013032959-pat00239
Assume that the task of changing to . To do this, the user's client software makes the necessary requests for synchronization.
Figure 112020013032959-pat00240
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

계정

Figure 112020013032959-pat00241
의 동기화는 실제 데이터에 대한 접근을 요구한다. 이때 사용자의 개인정보의 유출이 우려된다면 앞에서 언급한 바와 같이 사용자는 디렉토리를 포함한 전체 데이터를 블록단위로 나누어 암호화하여 보관하고 동기화 과정에서는 교체가 필요한 암호화된 블록을 교체하여 동기화를 완료할 수 있다. account
Figure 112020013032959-pat00241
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.

이제, 계정

Figure 112020013032959-pat00242
의 동기화의 과정에 참여한 데이터스토리지 관리자가 해야 할 활동을 살펴보도록 하자. 먼저, 관리자는 메인체인과 그것에 연결되어 종료된 사이드체인 단편을 검색하여 현 메인체인의 회전에서 자신이 동기화해야 할 계정이 있는지 파악한다. 만약, 계정
Figure 112020013032959-pat00243
의 동기화를 자신이 담당(자신의 서비스에 가입되어 있는 계정이므로)해야 하고 해당 동기화 필요한 실제 데이터가 DBA에 있다면 그곳에 접속하여 해당 데이터를 얻으려 할 것이다. 이는 병목현상을 야기할 수 있는데, 본 발명에서는 반드시 DBA에서만 해당 데이터를 얻을 필요가 없게 하여 해당 문제를 해결하고자 한다. 만약, 다른 데이터베이스 DBB에서 해당 데이터를 DBA에서 얻어 동기화를 완료하였다면 일부 다른 데이터스토리지 관리자들은 DBB에서 해당 데이터를 얻어 동기화를 진행하면 된다. 이 과정에서 DBB의 동기화가 최신의 것인지 또는 정상적인 것인지는 계정체인과 메인체인을 이용하여 확인할 수 있다. 물론, 데이터서비스 제공업체 또는 그들의 연합체가 좀 더 신속한 동기화에 도움을 줄 수도 있다. Now, account
Figure 112020013032959-pat00242
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
Figure 112020013032959-pat00243
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.

순서order 기호sign 내용Contents 1One U:

Figure 112020013032959-pat00244
in DBAU:
Figure 112020013032959-pat00244
in DBA 사용자가 DBA에 접속하여 데이터를 변경하고 해당 데이터를 동기화 명령
Figure 112020013032959-pat00245
작성
A user connects to DB A , changes data, and synchronizes the data.
Figure 112020013032959-pat00245
write
1 One U
Figure 112020013032959-pat00246
SCN:
Figure 112020013032959-pat00247
U
Figure 112020013032959-pat00246
SCN:
Figure 112020013032959-pat00247
사용자가
Figure 112020013032959-pat00248
를 승인해 줄 것을 SCN에 요청
user
Figure 112020013032959-pat00248
request SCN to approve
22 SCN:
Figure 112020013032959-pat00249
in
Figure 112020013032959-pat00250
SCN:
Figure 112020013032959-pat00249
in
Figure 112020013032959-pat00250
SCN
Figure 112020013032959-pat00251
가 포함된 블록
Figure 112020013032959-pat00252
을 채굴하여 사이드체인 단편
Figure 112020013032959-pat00253
에 연결
SCN
Figure 112020013032959-pat00251
block containing
Figure 112020013032959-pat00252
Mining the sidechain fragment
Figure 112020013032959-pat00253
connect to
33 MCN:
Figure 112020013032959-pat00254
in MC
MCN:
Figure 112020013032959-pat00254
in MC
MCN
Figure 112020013032959-pat00255
을 MC에 연결하여
Figure 112020013032959-pat00256
의 실행을 시스템 참여자에게 공지
MCN
Figure 112020013032959-pat00255
by connecting to MC
Figure 112020013032959-pat00256
notifies system participants of the
44 All update MC and AC All update MC and AC 시스템 참여자 자신들의 MC와 AC 업데이트MC and AC updates of system participants themselves 55 DBB
Figure 112020013032959-pat00257
DBA: data
DBB
Figure 112020013032959-pat00257
DBA: data
DBB는 DBA로부터 동기화에 필요한 데이터를 받아 동기화 완료. DB B receives the data required for synchronization from DB A and completes the synchronization.
66 DBC
Figure 112020013032959-pat00258
DBB: data
DB C
Figure 112020013032959-pat00258
DB B : data
DBC DBB로부터 동기화에 필요한 데이터를 받아 동기화 완료. 이 과정에서 DBB에 대한 검증에 MC와 AC를 이용 DB C is Synchronization is completed by receiving the data required for synchronization from DB B. In this process, MC and AC are used to verify DB B.

여기서, 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 step 310 . At this time, the main chain can be configured based on nodes. Here, the main chain may be configured in the form of a block chain.

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 step 320 . In this case, the account chain may consist of accounts related to users of nodes. Here, the account chain may be configured in the form of a block chain. And, the local off-chain data storage can store data about users.

P2P 네트워크의 노드들은, 330 단계에서 메인체인을 기반으로, 적어도 하나의 사이드체인을 구성할 수 있다. 이 때 각 사이드체인은 메인체인을 기반으로 구성되며, 복수 개의 세그먼트들로 이루어질 수 있다. 여기서, 사이드체인은 메인체인의 블록 해쉬값을 이용하여, 구성될 수 있다. Nodes of the P2P network may configure at least one sidechain based on the main chain in step 330 . At this time, each side chain is configured based on the main chain and may consist of a plurality of segments. Here, the side chain can be configured using the block hash value of the main chain.

P2P 네트워크의 노드들은, 340 단계에서 사이드체인을 메인체인에 연결하여, 분산 데이터베이스를 구성할 수 있다. 이를 통해, P2P 네트워크의 노드들은, 분산 데이터베이스를 공동으로 관리할 수 있다. 이 때 P2P 네트워크의 노드들은, 사이드체인을 통해, 분산 데이터베이스를 동기화할 수 있다. 사이드체인이 로컬 오프체인 데이터스토리지에서의 사용자들 중 어느 하나의 데이터에 대한 변경의 승인을 기반으로, 분산 데이터베이스를 동기화할 수 있다. 예를 들면, 복수 개의 사이드체인들이 승인을 병렬로 처리하여, 분산 데이터베이스를 동기화할 수 있다. 여기서, 사이드체인이 승인을 기반으로 스마트 계약을 구성하고, 스마트 계약이 메인체인에 연결될 때, 계정체인이 사용자들 중 어느 하나의 계정을 변경할 수 있다. Nodes in the P2P network can configure a distributed database by connecting the sidechain to the main chain in step 340. Through this, nodes of the P2P network can jointly manage the distributed database. At this time, nodes in the P2P network can synchronize the distributed database through the sidechain. A sidechain can synchronize the distributed database based on the approval of changes to the data of any one of the users in the local off-chain datastore. For example, multiple sidechains can process authorization in parallel to synchronize distributed databases. Here, when the sidechain constructs a smart contract based on approval, and the smart contract is connected to the main chain, the account chain can change the account of any one of the users.

다양한 실시예들에 따른 분산 데이터베이스 구성 방법은, 수정 불가능한 공개 블록체인인 메인체인을 이용하여 현재 어떤 작업이 진행되어야 하는지에 대한 정보를 전체 참여자에게 투명하게 제공하고, 수정 가능한 공개 블록체인인 계정체인을 이용하여 계정의 등록을 진행하는 동시에, 계정에 기록된 사용자의 데이터에 대한 데이터스토리지에서의 저장정보(예: 저장된 데이터의 해쉬포인터)를 전체 참여자에게 투명하게 제공할 수 있다. 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.
삭제delete 제 1 항에 있어서,
상기 메인체인과 계정체인은 블록체인 형태로 구성되는 방법.
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.
제 1 항에 있어서,
상기 사용자들에 대한 데이터를 저장하기 위한 로컬 오프체인 데이터스토리지를 구성하는 단계를 더 포함하는 방법.
The method of claim 1,
and configuring a local off-chain datastore to store data about the users.
제 4 항에 있어서, 상기 계정체인을 구성하는 단계 및 상기 로컬 오프체인 데이터스토리지를 구성하는 단계는,
로컬 데이터베이스를 상기 계정체인 및 상기 로컬 오프체인 데이터스토리지로 구성하는 방법.
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.
제 1 항에 있어서, 상기 사이드체인을 구성하는 단계는,
상기 메인체인의 블록 해쉬값을 이용하여, 상기 사이드체인을 구성하는 단계를 포함하는 방법.
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.
제 1 항에 있어서, 상기 분산 데이터베이스를 동기화하는 단계는,
복수 개의 사이드체인들이 상기 승인을 병렬로 처리하여, 상기 분산 데이터베이스를 동기화하는 방법.
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.
삭제delete 고속 동기화 가능 탈중앙화 분산 데이터베이스를 구성하기 위한 시스템에 있어서,
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.
삭제delete 제 9 항에 있어서, 상기 노드들은,
상기 사용자들에 대한 데이터를 저장하기 위한 로컬 오프체인 데이터스토리지를 구성하는 시스템.
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.
제 11 항에 있어서, 상기 노드들은,
로컬 데이터베이스를 상기 계정 체인 및 상기 로컬 오프체인 데이터스토리지로 구성하는 시스템.
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.
제 9 항에 있어서, 상기 노드들은,
상기 메인체인의 블록 해쉬값을 이용하여, 상기 사이드체인을 구성하는 시스템.
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.
제 9 항에 있어서, 상기 노드들은,
복수 개의 사이드체인들을 통해, 상기 승인을 병렬로 처리하여, 상기 분산 데이터베이스를 동기화하는 시스템.
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.
삭제delete
KR1020200014753A 2020-02-07 2020-02-07 Method and system for building fast synchronizable decentralized distributed database KR102349014B1 (en)

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 (2)

* Cited by examiner, † Cited by third party
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

Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US11438383B2 (en) Controlling permissible actions a computing device can perform on a data resource based on a use policy evaluating an authorized context of the device
EP3669281B1 (en) Shared blockchain data storage
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
CN111144881A (en) Selective access to asset transfer data
CA3037833C (en) System and method for information protection
KR102433504B1 (en) Blockchain data storage based on error correction codes for permissioned blockchain networks
EP3794770B1 (en) Shared blockchain data storage based on error correction code
CN104836862B (en) A kind of Intelligent terminal data storage method
EP3791538B1 (en) Shared blockchain data storage based on error correction code
US11343101B2 (en) Authentication through verification of an evolving identity credential
KR20210045353A (en) Indexing and recovery of encoded blockchain data
Hao et al. Outsourced data integrity verification based on blockchain in untrusted environment
KR102349014B1 (en) Method and system for building fast synchronizable decentralized distributed database
CN111033491A (en) Storing shared blockchain data based on error correction coding
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
JP7231909B2 (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