KR20210100865A - 고속 동기화 가능 탈중앙화 분산 데이터베이스 구성 방법 및 시스템 - Google Patents
고속 동기화 가능 탈중앙화 분산 데이터베이스 구성 방법 및 시스템 Download PDFInfo
- Publication number
- KR20210100865A KR20210100865A KR1020200014753A KR20200014753A KR20210100865A KR 20210100865 A KR20210100865 A KR 20210100865A KR 1020200014753 A KR1020200014753 A KR 1020200014753A KR 20200014753 A KR20200014753 A KR 20200014753A KR 20210100865 A KR20210100865 A KR 20210100865A
- 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]
Abstract
다양한 실시예들에 따른 블록체인을 이용한 탈중앙화 분산 데이터베이스 구성 방법 및 시스템은, 블록체인 기술을 이용하여 P2P 네트워크 참여자들에 의해 관리되는 탈중앙화 분산 데이터베이스를 구성하는 방법과 그 시스템에 관한 것으로, 수정 불가능한 블록체인인 메인체인을 이용하여 현재 어떤 작업이 진행되어야 하는지에 대한 정보를 전체 참여자에게 투명하게 제공하고, 수정 가능한 블록체인의 형태를 갖는 계정체인을 이용하여 계정의 등록과 함께 계정의 데이터베이스 상태를 개인정보의 유출 없이 전체 참여자에게 제공하고, 사용자가 자신의 데이터 동기화를 사이드체인 네트워크에 자신의 개인정보의 유출 없이 요청하고, 다수의 사이드체인을 이용하여 전체 데이터베이스 시스템의 동기화에 필요한 '승인'을 고속으로 진행하고, 동기화에 필요한 명령어를 스마트 계약으로 구성하여 동기화 진행되도록 설계하였다. 본 발명은 실제 동기화 과정에서는 동기화를 완료한 로컬 데이터베이스는 동기화를 완료하지 못한 다른 로컬 데이터베이스에게 동기화에 필요한 데이터를 제공하여 중앙 데이터베이스를 이용하는 경우에 등장하는 병목현상을 제거하고, 각 로컬 데이터베이스의 동기화 정확성을 위변조가 불가능한 공개된 메인체인과 계정체인을 이용하여 확인할 수 있도록 하여 고속 동기화가 가능한 분산 데이터베이스 방법과 그 시스템을 제안하였다.
Description
다양한 실시예들은 블록체인 기술을 이용하여 P2P(peer-to-peer) 네트워크 참여자들에 의해 관리되는 고속 동기화가 가능한 분산 데이터베이스를 구성하는 방법 및 시스템에 관한 것이다.
분산 데이터베이스는 하나의 데이터베이스 관리 시스템이 여러 중앙연산장치에 연결된 저장장치들을 제어하는 형태의 데이터베이스이다. 작은 규모의 분산 데이터베이스에서는 여러 곳에 분산된 각각의 데이터베이스의 관리를 모두 중앙서버에서 담당하는 완전 중앙집권형 방법이 가능하지만 일정 규모 이상의 데이터베이스에서는 중앙집권형 방법은 비효율적이다. 일정 규모 이상의 데이터베이스에서는 각각의 분산된 데이터베이스는 개별 데이터베이스가 독립적으로 관리되다가 일정시간을 간격으로 전체 데이터베이스의 내용을 중앙서버의 명령에 의해 동기화하는 부분 중앙집권형 방법이 널리 사용되고 있다.
완전 또는 부분 중앙집권형 방법 모두에서 중앙 데이터베이스의 역할은 절대적이다. 중앙 데이터베이스에 대한 높은 의존도는 다음 3가지 단점을 야기한다. 첫 번째 단점은 대규모 분산 데이터베이스를 관리하기 위한 중앙집권형 관리 시스템을 구축하기 위해서는 대규모 시설투자가 필요하다는 사실이다. 이는 해당 데이터베이스 시스템을 사용하는데 많은 비용을 지불해야 함을 의미하고, 또한, 시설투자의 대형화에 따라 소수의 데이터베이스 서비스 제공업체만이 경쟁에 참여할 수 있게 되어 데이터베이스 산업의 독점화가 심화되는 단점을 발생시킬 수 있다. 두 번째 단점은 중앙 데이터베이스에 문제가 발생하였을 때 분산 데이터베이스 시스템 전체가 영향 받을 수 있다는 점이다. 예를 들어 중앙 데이터베이스 시스템이 자연재해 또는 사이버 공격 등에 의해 작동이 중지되면 전체 분산 데이터베이스의 동기화도 지연되게 된다. 마지막 세 번째 단점은 중앙 데이터베이스의 높은 의존도는 중앙 데이터베이스에 대한 사이버 공격의 효과를 높여 더 빈번한 사이버 공격을 야기하는 요인이 된다는 점이다. 예를 들어, 중앙 데이터베이스의 특정 데이터에 대한 위변조는 전체 분산 데이터베이스 시스템에 위변조 효과를 줄 수 있기 때문에 사이버 공격의 대상이 될 확률이 로컬 데이터베이스에 비해 훨씬 높아지게 된다.
블록체인상에 기록되는 내용을 데이터베이스 기록되는 내용으로 간주한다면 블록체인은 분산 데이터베이스 관리 시스템의 일례로 볼 수 있다. 블록체인 구성을 위해서는 초기 대규모 시설투자가 필요치 않으며 P2P 네트워크 참여자들의 분산된 노력에 의해 신뢰할 수 있는 중앙관리가 부재한 상황에서도 전체 데이터베이스의 신뢰성을 보장한다. 또한, 중앙 데이터베이스가 아닌 수많은 곳에 분산되어 있는 데이터베이스를 동시에 위변조하는 것은 불가능하기 때문에 위변조의 위험을 사실상 제거할 수 있다. 블록체인은 블록의 채굴에 관여하는 참여자에 제한여부에 따라 공개 블록체인(public blockchain: P2P 네트워크의 모든 참여자가 블록채굴 가능)과 사설 블록체인(private blockchain: 허가받은 참여자들만이 블록채굴 가능)으로 나눌 수 있다.
암호화폐의 분산 원장으로 개발된 기존의 공개 블록체인을 분산 데이터베이스를 사용하기에는 몇 가지 단점이 있다. 첫 번째 단점은 기존의 공개 블록체인은 수정이 불가능하면서 추가만이 가능하기 때문에 블록체인의 크기가 계속 증가해야 한다는 점이 문제이다. 두 번째 단점은 확장성의 부족이다. 기존의 대용량 데이터를 기록하고 관리하기에는 기존의 공개 블록체인은 그 처리속도가 느리고, 대용량의 데이터를 직접 블록체인에 기록하는 것은 적합하지 않다. 세 번째 단점은 블록체인에 기록된 데이터는 공개 블록체인의 특성상 공개되어야하기 때문에, 민감한 개인정보를 블록체인에 기록하기에는 적합하지 않다.
공개키 암호는 보통의 대칭키 암호와는 달리, 암호과정에 사용한 키(이하, 공개키라고 지칭됨) 가 복호과정에 사용하는 키(이하, 개인키라고 지칭됨) 와 다르다. 보다 구체적으로, 공개키 암호는 공개키 를 안다고 해도 개인키 를 구하는 것이 현실적으로 불가능하게 설계되어 있다. 이러한 성질을 이용하여 암호에 사용하는 키 를 공개하여 누구나 자신이 원하는 평문 을 암호문 를 하기 [수학식 1]과 같이 계산 할 수 있는데 반해, 하기 [수학식 2]와 같은 암호문 에 대한 복호화는 복호에 사용하는 키 의 소유자만이 가능하게 하는 암호체계를 구성할 수 있다.
공개키 암호의 개인키는 전자서명에도 사용된다. 즉, 의 소유자만이 할 수 있는 일을 시행하여 그것을 서명의 증거로 그 증거의 검증은 공개키를 이용하여 누구나 할 수 있게 하는 방법이다. 일부 공개키 암호들은 특정 연산에 대해 동형이다. 하기 [수학식 3]을 만족하는 경우 해당 공개키는 연산 에 대해 동형이라고 한다.
다양한 실시예들은, 중앙 데이터베이스의 사용 없이 P2P 네트워크 참여자들의 분산된 노력과 합의에 의해 동기화가 가능한 분산 데이터베이스를 구성하는 방법과 그 시스템에 관한 것으로, 중앙 데이터베이스에 대한 높은 의존 때문에 발생하는 중앙집중형 데이터베이스 시스템의 단점을 해결하고, 탈중앙화 과정에서 발생할 수 있는 데이터베이스 내용의 유출에 의한 피해를 방지할 수 있는 방법을 제공한다.
다양한 실시예들에 따른 고속 동기화 가능 탈중앙화 분산 데이터베이스를 구성하기 위한 방법은, P2P 네트워크에 참여하는 노드들을 기반으로, 메인체인(main-chain)을 구성하는 단계, 상기 노드들의 사용자들과 관련된 계정들로 이루어지는 계정체인(account-chain)을 구성하는 단계, 상기 메인체인을 기반으로, 복수 개의 세그먼트들로 이루어지는 적어도 하나의 사이드체인(side-chain)을 구성하는 단계, 및 상기 세그먼트들의 시작과 끝을 상기 메인체인에 연결하여, 분산 데이터베이스를 구성하는 단계를 포함할 수 있다.
다양한 실시예들에 따른 고속 동기화 가능 탈중앙화 분산 데이터베이스를 구성하기 위한 시스템은, P2P 네트워크에 참여하고, 공동으로 분산 데이터베이스를 구성하여, 관리하는 노드들을 포함하고, 상기 노드들은, 상기 노드들을 기반으로, 메인체인을 구성하고, 상기 노드들의 사용자들과 관련된 계정들로 이루어지는 계정체인을 구성하고, 상기 메인체인을 기반으로, 복수 개의 세그먼트들로 이루어지는 적어도 하나의 사이드체인을 구성하고, 상기 세그먼트들의 시작과 끝을 상기 메인체인에 연결하여, 분산 데이터베이스를 구성할 수 있다.
다양한 실시예들에 따르면, 중앙 데이터베이스에 대한 높은 의존 때문에 발생하는 중앙집중형 데이터베이스 시스템의 단점을 해결하는 효과가 있다. 구체적으로, 중앙집중형 데이터베이스 시스템의 사용에 필요한 대규모 시설투자의 필요성을 감소시키고 데이터베이스 동기화 및 관리를 P2P 네트워크에서 수행하는 것을 허용하여 다수의 소규모 업체들도 데이터베이스 서비스 사업에 경쟁할 수 있는 생태계를 구축하는 효과가 있다. 아울러, 자연재해 또는 사이버 공격 등에 의해 일부 분산 데이터베이스 시스템이 오작동을 하더라도 전체 시스템에 주는 영향을 제한적이게 하여 피해를 최소화하고, 오작동 이후 복구과정에서 중앙집중형 데이터베이스 시스템에 비해 더 신속하게 전체시스템을 동기화 할 수 있게 하여, 전체 탈중앙화 분산 데이터베이스에 대한 위변조에 공격에 대한 강건성, 신뢰도 등을 중앙집중형 데이터베이스의 그것들에 동일한 수준 또 더 우수한 수준으로 유지하는 등, 탈중앙화 분산 데이터베이스 시스템의 장점을 확대시키는 효과가 있다.
또한, 데이터의 분산 수집 및 학습등이 일어나는 환경에서 개별 환경에서의 데이터 무결성 및 학습 데이터에 대한 진위 보장등의 서비스를 제공하고자 하는 경우 탈중앙화 분산 데이터베이스 구조가 이용될 수 있다. 이를 통해, 수집 데이터의 진위여부, 학습 데이터의 진위 여부 등을 판단할 수 있고, 협력적 학습(Federated Learning)의 모델 변화에 대한 추적 검증 기능이 제공될 수 있다.
도 1은 다양한 실시예들에 따른 분산 데이터베이스 구성을 위한 메인체인과 사이드체인의 관계를 개념적으로 도시하는 도면이다.
도 2는 다양한 실시예들에 따른 분산 데이터베이스 구성을 위한 메인체인과 사이드체인의 관계를 예시적으로 도시하는 도면이다.
도 3은 다양한 실시예들에 따른 시스템의 분산 데이터 구성 방법을 도시하는 도면이다.
도 2는 다양한 실시예들에 따른 분산 데이터베이스 구성을 위한 메인체인과 사이드체인의 관계를 예시적으로 도시하는 도면이다.
도 3은 다양한 실시예들에 따른 시스템의 분산 데이터 구성 방법을 도시하는 도면이다.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 설명된다.
다양한 실시예들은 고속 동기화 가능 탈중앙화 분산 데이터베이스 구성 방법 및 그 시스템에 관한 것으로, 다중 블록체인과 오프체인 데이터스토리지 기술을 이용하여 P2P 네트워크 참여자들에 의해 관리되는 동기화가 가능한 분산 데이터베이스를 구성하는 방법과 그 시스템을 제공한다.
다양한 실시예들은, 전체 시스템의 진행통제와 타임스태핑 정보를 제공하는 블록체인(이를 메인체인(Main-chain)이라고 하자)을 구성하는 단계, 로컬 데이터베이스를 사용자의 데이터를 검색하는데 필요한 정보(이를 계정(account)이라고 하자)를 기록하기 위한 수정 가능한 블록체인(이를 계정체인(Account-chain)이라고 하자)과 사용자의 실제 데이터를 저장할 로컬 오프체인 데이터스토리지로 구성하는 단계, 사용자의 데이터베이스에서의 변경사항에 따라 동기화 할 때에 수행한 내용을 사용자 스스로 로컬 데이터베이스의 계정체인과 로컬 오프체인 데이터스토리지에서 수행한 내용을 명령어 세트로 구성하는 단계, 메인체인의 블록 해쉬값에 따라 메인체인과 계정체인과는 다른 별도의 블록체인(이를 사이드체인(Side-chain)이라 하자. 이러한 사이드체인은 필요에 따라 다수를 사용할 수 있다)의 단편(segment)을 메인체인에 연결하여 생성하는 동시에, 진행되고 있던 사이드체인 단편을 메인체인에 연결하여 종료하는 단계, 사이드체인 네트워크에 사용자의 데이터베이스 동기화에 필요한 명령어 세트의 승인을 요청하고 네트워크 참여자는 요청받은 명령어 세트를 스마트 계약들로 구성된 블록을 구성하고 채굴하는 단계, 및 사이드체인 선분이 메인체인에 연결될 때 사이드체인 단편에 속해있던 스마트 계약들이 실행되어 전체 분산 데이터베이스를 동기화하는 단계로 이루어지는 것을 특징으로 한다.
1) 전체구조
다양한 실시예들에 따른 분산 데이터베이스에서는 사용자가 가입되어 있는 모든 로컬 데이터스토리지의 데이터는 사용자의 접속여부에 상관없이 일정기간을 두고 정기적으로 동기화를 통해 동일한 데이터를 유지하는 것을 목적으로 한다. 여기서 유의할 점은 분산 데이터베이스 전체가 단 하나의 데이터베이스 서비스 제공자에 의해 관리되는 것이 아니고 다수의 데이터베이스 서비스 제공자들과 다수의 데이터스토리지 관리자들에 의해 공동으로 관리되고 있다고 가정하고 있다.
데이터스토리지 관리자는 하나 또는 다수의 데이터스토리지를 관리하면서 후에 설명할 메인체인에 연결된 사이드체인의 스마트 계약과 계정체인의 내용을 이용하여 자신의 서비스에 가입한 계정의 동기화를 진행한다.
데이터베이스 서비스 제공자는 하나 또는 다수의 데이터스토리지 관리업체를 관리하면서 메인체인에 연결된 사이드체인의 스마트 계약과 계정체인의 내용을 이용하여 자신의 서비스에 가입한 계정의 동기화를 진행한다.
사용자는 자신의 데이터를 보호하기 위해 전체 데이터를 디렉토리 또는 데이터베이스의 스키마와 같은 데이터의 구조 정보를 포함한 모든 데이터를 블록단위로 암호화하여 데이터스토리지에 보관할 수 있다. 또한, 사용자는 자신의 계정을 다수의 데이터베이스 서비스 제공업체들과 다수의 로컬 데이터스토리지 관리업체들에 의해 공동으로 관리되게 할 수 있다.
2) 메인체인
다양한 실시예들은 전체 시스템의 진행통제와 타임스태핑 기능을 제공하는 메인체인을 이용한다. 이 메인체인은 다양한 형태의 블록체인 형태로 구성할 수 있는데 이 명세서에서는 실시예로 비트코인에서 사용되고 있는 작업증명 방식을 사용하는 블록체인 모델을 이용하여 설명한다. 다양한 실시예들에 따른 기술이 다른 형태의 증명방법(예: 지분증명)에도 적용 가능함은 내용으로 볼 때 자명하다.
다양한 실시예들에 따른 메인체인은 비트코인의 경우와 유사하게 정해진 시간(비트코인의 경우는 매 10분)마다 새로운 블록이 계산되어 메인체인에 추가되고, 그 계산에 대한 보상으로 지급되는 암호화폐가 존재한다고 가정한다. 이 때 정해진 시간을 회전이라고 하고, 순차적인 회전의 진행을 표시하는 ( )을 이용하여, 회전을 으로, 이 회전에서 추가되는 블록을 으로, 이 블록 이 추가된 메인체인을 으로 표시하자. 이 기호를 이용하여 회전 이 진행되는 상황에서 각 메인노드(메인체인 네트워크에 참여하는 개별 기기, 예: 참여자의 컴퓨터)가 가지고 있는 메인체인은 으로 표시할 수 있다. 상기한 기호들은 하기 [표 1]과 같이 정의된다.
블록 의 데이터는 바로 앞 블록 의 해쉬값 , 현 회전의 번호 , 그리고 현 회전이 시작되기 직전의 정보로 예측 불가능하지만 공개적으로 확인 가능한 정보(예: 태양의 흑점 활동정보, 현 회전이 시작되기 직전의 비트코인 블록)의 해쉬값 과, 현 블록의 해쉬값 의 포인터와 이 해쉬값을 구하는데 사용한 넌스값 등으로 구성되어 있다. 구체적으로, 메인체인에서의 해쉬값 과 넌스값 은 주어진 에 대하여, 하기[수학식 4]와 같은 작업증명의 해답으로 정의된다.
여기서, ' '은 비트열의 접합을 의미하고, 는 어떤 입력에 대해서든 출력으로 256 비트열을 생성하는 SHA-256 해쉬함수이고,
은 개의 0으로만 구성된 비트열을 의미하고, 는 256 비트열 중에서 처음 비트가 인 비트열의 집합을 의미한다( = 비트열 의 길이). 즉, 은 256 비트열 중에서 처음 개의 비트가 모두 0인 비트열의 집합이다. 상기 [수학식 4]의 해쉬퍼즐을 만족하는 넌스값 에 대한 결과가 하기 [수학식 5]와 같이 블록 의 해쉬값이다.
상기 [수학식 4]의 계수 은 해쉬퍼즐의 난이도를 결정하는데, 그 값이 크면 클수록 해당 해쉬퍼즐을 만족하는 넌스값을 계산하는 것이 어려워진다. 회전 에서 작업증명의 해답 을 가장 먼저 계산한 채굴자(작업증명에 참여하는 노드를 지칭함)는 블록 을 발표하고 이를 메인체인 에 연결하여 자신이 가지고 있는 메인체인을 하기[수학식 6]과 같이 확장한다. 다른 참여자들은 발표된 블록 을 검증하고 이에 대한 합의로 자신들의 메인체인에 추가한다.
3) 계정, 데이터스토리지와 계정체인
계정은 데이터베이스 사용자에 관한 정보(예: 사용자의 공개키), 사용자의 데이터에 관한 정보(예: 파일참조정보, 데이터스토리지에서의 파일의 해쉬 포인터, 동기화과정에서 변경될 내용에 대한 참조정보와 그에 대한 사용자의 전자서명)로 구성된다. 계정 자체에는 사용자의 개인정보 또는 데이터가 직접 포함되지 않아 계정이 공개되는 것에 따른 정보유출의 위험은 없다.
다양한 실시예들은 위변조 공격에 대한 방어를 위해 사용자의 전자서명을 이용한 무결성 검증 방법(이 방법은 잘 알려진 방법이므로 이에 대한 설명은 본 명세서에서는 생략한다)과 함께 계정들로 이루어진 블록체인인 계정체인과 동형암호를 이용한 위변조 방지 방법을 사용한다. 구체적으로, 계정체인의 회전(이 회전은 메인체인의 회전과 동일한 것이 아니다. 이 회전이 시작되었을 때의 계정체인을 으로 표시하자)에서 채굴되는 블록 은 바로 앞 블록 의 해쉬값 , 현 회전에서 생성되는 계정들 (여기서, 는 블록 에 포함될 계정의 수를 의미한다)의 목표값 (이에 대한 설명은 곧 등장할 것이다)과, 현 블록의 해쉬값 의 포인터와 이 해쉬값을 구하는데 사용한 넌스값 등으로 구성되어 있다. 계정 는 하기 [표 2]와 같은 정보를 가지고 있다.
계정 의 데이터의 오프체인 데이터스토리지에서의 저장정보 는 계정 가 동기화에 필요한 현재 상태를 가리킨다. 즉, 와 변경된 디렉토리, 파일 또는 변경된 내용의 (데이터스토리지에서의) 저장위치와 크기 등의 정보를 가지고 동기화를 진행한다. 이때, 실제 데이터 내용은 노출시키지 않게 동기화 직전의 상태를 표현하는데 필요한 모든 정보를 포함하고 있는 것이 바로 이다. 목표값을 설정하고 이를 블록의 해쉬값을 계산하는데 사용하여 블록체인에 수정 가능성을 제공하는 방법이 있다. 다양한 실시예들에서는 절단 해쉬값을 이용하는 방법을 제안한다. 다양한 실시예들에서는 동형암호를 이용한 방법을 제안한다.
계정 의 목표값 에 대한 입력값 은 실제 구현에서 사용할 동형암호에 따라 결정된다. 이 명세서에서는 실시예로 1024비트 길이의 정수 에 대한 모듈로 덧셈에 동형인 Paillier 공개키 암호(이 공개키 암호를 로 표시하자)를 기준으로 설명하고자 한다. 계정 의 목표값 는 하기[수학식 7]과 같이 정의된다.
계정 의 목표값 는 한 번 계산된 이후에는 변화하지 않는다. 계정 의 목표값 , 에 대한 입력값 , 그리고 현재의 에 대한 무결성 검증은 하기 [수학식 8]과 같이 계정 의 사용자의 전자서명으로 한다. 이에 대한 검증은 공개키 를 이용하여 시행한다.
여기서, 은 계정체인의 채굴자에게 알려진 가장 최근의 메인체인의 블록 해쉬값으로, 이 메인체인에서 블록 해쉬값 이 계산된 이 후에 생성되는 계정들임을 증명하는데 사용한다. 만약, 계정체인의 어떤 채굴자가 상기 [수학식 9]에서 고의적으로 가장 최근의 메인체인의 블록 해쉬값보다 훨씬 더 오래된(메인체인의 블록 해쉬값의 전파지연을 감안한 것보다도 더 오래된) 블록 해쉬값을 사용하여 자신이 등록하고자 하는 의 등록시점을 앞당기려는 시도는 계정체인의 다른 채굴자들이 검증과정에서 사용된 의 계산시점과 현시점과의 차이를 고려하여 탈락시키는 규칙을 만들어 억제한다. 상기 [수학식 9]의 해쉬퍼즐을 만족하는 넌스값 에 대한 결과가 하기 [수학식 10]과 같이 블록 의 해쉬값이다.
계정체인의 번째 회전의 작업증명의 해답 을 가장 먼저 계산한 계정체인의 채굴자는 블록 을 발표하고 이를 계정체인 에 연결하여 자신이 가지고 있는 계정체인을 하기 [수학식 11]과 같이 확장한다. 다른 참여자들은 발표된 블록 을 검증하고 이에 대한 합의로 자신들의 계정체인을 로 업데이트한다.
메인체인과 계정체인에는 P2P 네트워크 모든 노드의 참여가 가능하다. 블록채굴을 통해 블록보상이 참여의 주요동기가 될 것이다. 이를 위해 암호 화폐를 사용할 수 있고 그 거래를 기록할 별도의 블록체인을 구성할 수도 있다.
한편, 로컬 데이터스토리지의 관리자들과 데이터서비스 제공자들은 메인체인과 계정체인의 채굴에 반드시 참여해야 하는 것은 아니지만 메인체인과 계정체인의 관리에는 반드시 참여해야 한다. 그들은 메인체인과 계정체인을 이용하여 각 계정의 저장정보를 검증한 후에 전체 데이터베이스의 동기화에 참여해야하기 때문이다.
계정체인은 수정 가능한 블록체인이다. 왜냐하면, 블록 의 해쉬값 이 해당 블록에 속해있는 계정들 자체가 아닌 그것들의 에 의존하기 때문에 목표값을 변화시키지 않는 수정은 전체 계정체인의 해쉬값에 의한 연결에 위배되지 않는다.
계정 사용자의 실제 데이터는 오프체인 상태의 데이터스토리지에 저장되어 사용자 데이터의 실체 유출을 방지한다.
4) 동기화 요청
계정 의 사용자가 특정 로컬 데이터베이스(이를 DBA라고 하자)에 접속하여 데이터의 저장정보를 에서 가 되었다고 가정하자. 이 경우에 사용자의 데이터베이스 클라이언트 소프트웨어는 변화된 상황에 맞게 DBA에 기록되어 계정 의 내용을 변화시킨다. 즉, 계정 의 데이터의 저장정보가 에서 로 변화를 사용자가 승인했다는 증거로 하기 [수학식 12]를 만족하는 로 계정 의 를 교체하고, 변화된 상황에 맞게 를 하기 [수학식 13]과 같이 교체한다.
이러한 교체는 DBA에서만 벌어진 일이고 이를 다른 데이터베이스에서도 진행되게 해야 한다. 이를 위해, 사용자의 데이터베이스 클라이언트 소프트웨어는 저장상태가 에서 로 변화시키는 필요한 작업(이하, '라고 지칭됨)에 필요한 정보를 하기[수학식 15]와 같이 계산한다.
이 를 다른 데이터베이스에서도 수행시켜 전체 분산 데이터베이스에서 계정 의 데이터 저장정보가 에서 로 변화된 것에 맞추어 계정 를 변화시켜야 한다. 이러한 요청을 사이드체인 네트워크라고 지칭할 P2P 네트워크에 요청한다.
5) 사이드체인(Side-chain)
다양한 실시예들은 다수의 사이드체인을 이용하여 전체 데이터베이스 시스템의 동기화에 필요한 '승인'을 병렬처리 방식으로 고속으로 진행하려고 한다. 여기서, 승인이라 함은 특정 로컬 데이터베이스에서 발생한 변화를 전체 분산 데이터베이스에 전파해야 하는지를 결정하는 것을 의미한다.
다중 블록체인을 이용하여 블록에 기록된 내용의 수정하는 방법이 있다. 다양한 실시예들은 사이드체인을 이용하여 메인체인과는 별도로 존재하는 계정체인의 수정과 오프체인에 위치하는 데이터를 수정하는 방법을 제안한다.
예로서, 8 개의 사이드체인을 이용하는 경우를 가정해 보자. 각 계정은 어떤 사이드체인에 의해 동기화가 진행될지가 미리 결정되게 하는데, 각 계정 의 목표값 의 끝 3자리 비트(이들은 000, 001, ..., 111중에 하나이다)를 이용하여 어느 사이드체인에 의해 동기화에 대한 승인이 이루어질지가 결정된다.
사이드체인은 메인체인에 시작과 끝이 연결된 단편들(segments)로 이루어져 있고, 그 각 단편의 시작과 끝은 메인체인의 블록 해쉬값 이 결정한다. 구체적으로, -사이드체인(목표값 의 끝 3자리 비트가 000인 계정들의 동기화의 승인을 담당할 사이드체인)의 첫 단편은 로 표시하는데, 이는 메인체인의 블록 해쉬값 의 끝 3자리 비트가 처음으로 000이 되는 에서 시작하여 그 다음으로 000이 되는 이 등장할 때까지 계속된다는 의미이다. 같은 방법으로 으로 표시되는 -번째 단편은 메인체인의 블록 해쉬값 의 끝 3자리 비트가 -번째로 000이 되는 에서 시작하여 그 다음으로 메인체인의 블록 해쉬값 의 끝 3자리 비트가 000이 되는 이 등장할 때까지 계속된다.
이제, 사이드체인 단편 내의 블록에 대해서 살펴보도록 하자. 메인체인에서 블록 해쉬값 (이 해쉬값의 끝 3자리비트가 000이었다)가 발표되면 바로 -사이드체인 네트워크의 채굴자들은 -사이드체인에 동기화에 대한 승인 요청 (상기 [수학식 15] 참조)을 검증하고 검증이 통과된 것들을 블록 에 포함시켜 해당 블록을 채굴하려고 시도한다. 여기서, 블록을 표현하는 는 -사이드체인의 -번째 단편의 -번째 블록을 의미한다.
여기서, 은 직전 블록 의 해쉬값이고 은 현 블록에서 검증하고자 하는 계정의 저장정보의 변경 요청들이다. 사이드체인의 채굴자들은 요청 에 대한 검증을 실시하는데 그 대상은 상기 [수학식 15]의 의 예를 가지고 설명한다면 다음과 같다.
-사이드체인의 해쉬퍼즐의 해답 을 가장 먼저 계산한 -사이드체인의 채굴자는 블록 을 발표하고 이를 사이드체인 단편에 연결하여 확장한다. 다른 -사이드체인의 참여자들은 발표된 블록 을 검증하고 이에 대한 합의로 자신들의 사이드체인 단편에 연결하여 확장한다.
변경요청 은 스마트 계약으로 기록되어 이것들이 기록된 블록 을 포함하고 있는 사이드체인 단편 이 메인체인에 연결될 때 전체 시스템에 적용되도록 설계된다. 예를 들어, 계정체인에서의 계정정보의 수정은 스마트 계약 이 메인체인에 연결되는 즉시 실시된다.
여기서, 맨 처음 블록 은 메인체인의 연결되는 블록 이고, 즉, 이고, 맨 마지막 블록 도 메인체인의 연결되는 블록 이다. 이때, 사이드체인 단편을 메인체인에 연결시키기 위해 메인체인의 해쉬값을 하기[수학식 19]와 같이 변화시킨다.
지금까지 설명한 방식으로 다른 사이드체인의 파편들도 정의할 수 있다.
도 1은 다양한 실시예들에 따른 분산 데이터베이스 구성을 위한 메인체인과 사이드체인의 관계를 개념적으로 도시하는 도면이다. 도 2는 다양한 실시예들에 따른 분산 데이터베이스 구성을 위한 메인체인과 사이드체인의 관계를 예시적으로 도시하는 도면이다.
도 1을 참조하면, 하나의 메인체인에 적어도 하나의 사이드체인들이 연결될 수 있다. 이 때 하나의 메인체인에 하나의 사이드체인 또는 복수 개의 사이드체인들이 연결될 수 있다. 고속 동기화 기능을 가진 탈중앙화 분산 데이터베이스의 구성은 개별 독립된 시스템 환경 또는 클라우드 환경 등에서 동작이 가능하다. 예를 들면, 도 2에 도시된 바와 같이, 메인체인(B)와 사이드체인(S 0 , S 3 )는 클라우드 기반 인스턴스 환경에서 동작하며, 사이드체인 (S 1 , S 2 )는 별도의 독립된 시스템으로 동작하는 구조의 예시이다. 이러한 구조는 메인체인이 별도의 독립된 개별 시스템으로 동작하고, 사이드체인의 일부 또는 전부가 클라우드 환경에서 동작하는 구성에도 적용이 가능하다. 또한, Edge Computing 환경에서의 데이터 수집 또는 개별 데이터를 이용해 Federated Learning과 같은 서비스를 제공할 때, 각 Edge 환경에서의 데이터 무결성 및 보장을 위한 구조로 활용될 수 있다.
6) 동기화 진행
계정 의 사용자가 DB-A에서 데이터의 저장정보를 에서 로 변화시키는 작업을 진행하였고 이를 전체 분산 데이터베이스에서 동일하게 하는 동기화를 요청하였다고 가정하자. 이를 위해 사용자의 클라이언트 소프트웨어는 동기화에 필요한 요청 를 자신의 계정의 수정을 다루는 사이드체인 네트워크에 요청하였고, 해당 요청은 사이드체인에서 검증된 후에 메인체인에 연결되어 메인체인의 모든 참여자들(로컬 데이터스토리지 관리자들과 데이터서비스 제공자들은 반듯이 참여해야 한다고 가정하였다)에게 알려지게 되었다고 가정하자.
계정 의 동기화는 실제 데이터에 대한 접근을 요구한다. 이때 사용자의 개인정보의 유출이 우려된다면 앞에서 언급한 바와 같이 사용자는 디렉토리를 포함한 전체 데이터를 블록단위로 나누어 암호화하여 보관하고 동기화 과정에서는 교체가 필요한 암호화된 블록을 교체하여 동기화를 완료할 수 있다.
이제, 계정 의 동기화의 과정에 참여한 데이터스토리지 관리자가 해야 할 활동을 살펴보도록 하자. 먼저, 관리자는 메인체인과 그것에 연결되어 종료된 사이드체인 단편을 검색하여 현 메인체인의 회전에서 자신이 동기화해야 할 계정이 있는지 파악한다. 만약, 계정 의 동기화를 자신이 담당(자신의 서비스에 가입되어 있는 계정이므로)해야 하고 해당 동기화 필요한 실제 데이터가 DBA에 있다면 그곳에 접속하여 해당 데이터를 얻으려 할 것이다. 이는 병목현상을 야기할 수 있는데, 본 발명에서는 반드시 DBA에서만 해당 데이터를 얻을 필요가 없게 하여 해당 문제를 해결하고자 한다. 만약, 다른 데이터베이스 DBB에서 해당 데이터를 DBA에서 얻어 동기화를 완료하였다면 일부 다른 데이터스토리지 관리자들은 DBB에서 해당 데이터를 얻어 동기화를 진행하면 된다. 이 과정에서 DBB의 동기화가 최신의 것인지 또는 정상적인 것인지는 계정체인과 메인체인을 이용하여 확인할 수 있다. 물론, 데이터서비스 제공업체 또는 그들의 연합체가 좀 더 신속한 동기화에 도움을 줄 수도 있다.
사용자는 로컬 데이터서비스에 접속했을 때 해당 데이터베이스가 최신 상태인지를 계정체인과 메인체인을 검색함으로써 바로 확인가능하다.
하기 [표 3]은 사용자의 요청으로부터 전체 시스템의 동기화가 진행되는 과정을 보여주고 있다.
순서 | 기호 | 내용 |
1 | U: in DBA | 사용자가 DBA에 접속하여 데이터를 변경하고 해당 데이터를 동기화 명령 작성 |
1 | U SCN: | 사용자가 를 승인해 줄 것을 SCN에 요청 |
2 | SCN: in | SCN 가 포함된 블록 을 채굴하여 사이드체인 단편 에 연결 |
3 | MCN: in MC | MCN 을 MC에 연결하여 의 실행을 시스템 참여자에게 공지 |
4 | All update MC and AC | 시스템 참여자 자신들의 MC와 AC 업데이트 |
5 | DBB DBA: data | DBB는 DBA로부터 동기화에 필요한 데이터를 받아 동기화 완료. |
6 | DBC DBB: data | DBC는 DBB로부터 동기화에 필요한 데이터를 받아 동기화 완료. 이 과정에서 DBB에 대한 검증에 MC와 AC를 이용 |
여기서, U는 사용자를 의미하고, MC는 메인체인을 의미하고, AC는 계정체인을 의미하고, SC는 사이드체인을 의미하고, MCN은 메인체인 네트워크를 의미하고, CAN은 계정체인 네트워크를 의미하고, SCN은 사이드체인 네트워크를 의미하고, DBA는 데이터베이스-A(사용자가 데이터를 변경한 곳)를 의미하고, DBB는 데이터베이스-B(DBA에서 데이터를 받아 동기화 진행)를 의미하고, DBC는 데이터베이스-C(DBc에서 데이터를 받아 동기화 진행)를 의미한다.
7) 메인체인, 계정체인, 사이드체인의 보관
다양한 실시예들에서 제안하는 분산 데이터베이스 시스템의 참여자들은 계정체인의 전체를 보관할 필요는 있지만 메인체인과 사이드체인의 경우에는 최근의 데이터만 보관하고 있는 것으로 충분하다. 한편, 계정체인 자체는 주로 계정내용의 수정을 목적으로 하는 것으로 그 크기가 증가하지 않는다. 그러므로, 메인체인, 계정체인, 사이드체인의 보관에 필요한 비용의 부담은 제한적이다.
8) 암호화폐를 이용한 블록채굴에 대한 보상
메인체인, 계정체인, 사이드체인의 블록채굴에 대한 보상으로 암호 화폐를 생성하여 보상하게 하고, 해당 암호 화폐를 관리하기 위한 별도의 블록체인을 이용할 수 있다. 또한, 데이터베이스 시스템의 사용자들이 서비스 제공의 대가로 지불해야 하는 비용의 전부 또는 일부를 암호 화폐로 지불하게 하여 전체 시스템의 운영에 대한 보상체계를 구축할 수 있다.
도 3은 다양한 실시예들에 따른 시스템의 분산 데이터 구성 방법을 도시하는 도면이다.
도 3을 참조하면, P2P 네트워크의 노드들은, 310 단계에서 메인체인을 구성할 수 있다. 이 때 메인체인은 노드들을 기반으로 구성될 수 있다. 여기서, 메인체인은 블록체인 형태로 구성될 수 있다.
P2P 네트워크의 노드들은, 320 단계에서 로컬 데이터베이스를 계정체인과 로컬 오프체인 데이터스토리지로 구성할 수 있다. 이 때 계정체인은 노드들의 사용자들과 관련된 계정들로 이루어질 수 있다. 여기서, 계정체인은 블록체인 형태로 구성될 수 있다. 그리고, 로컬 오프체인 데이터스토리지는 사용자들에 대한 데이터를 저장할 수 있다.
P2P 네트워크의 노드들은, 330 단계에서 메인체인을 기반으로, 적어도 하나의 사이드체인을 구성할 수 있다. 이 때 각 사이드체인은 메인체인을 기반으로 구성되며, 복수 개의 세그먼트들로 이루어질 수 있다. 여기서, 사이드체인은 메인체인의 블록 해쉬값을 이용하여, 구성될 수 있다.
P2P 네트워크의 노드들은, 340 단계에서 사이드체인을 메인체인에 연결하여, 분산 데이터베이스를 구성할 수 있다. 이를 통해, P2P 네트워크의 노드들은, 분산 데이터베이스를 공동으로 관리할 수 있다. 이 때 P2P 네트워크의 노드들은, 사이드체인을 통해, 분산 데이터베이스를 동기화할 수 있다. 사이드체인이 로컬 오프체인 데이터스토리지에서의 사용자들 중 어느 하나의 데이터에 대한 변경의 승인을 기반으로, 분산 데이터베이스를 동기화할 수 있다. 예를 들면, 복수 개의 사이드체인들이 승인을 병렬로 처리하여, 분산 데이터베이스를 동기화할 수 있다. 여기서, 사이드체인이 승인을 기반으로 스마트 계약을 구성하고, 스마트 계약이 메인체인에 연결될 때, 계정체인이 사용자들 중 어느 하나의 계정을 변경할 수 있다.
다양한 실시예들에 따른 분산 데이터베이스 구성 방법은, 수정 불가능한 공개 블록체인인 메인체인을 이용하여 현재 어떤 작업이 진행되어야 하는지에 대한 정보를 전체 참여자에게 투명하게 제공하고, 수정 가능한 공개 블록체인인 계정체인을 이용하여 계정의 등록을 진행하는 동시에, 계정에 기록된 사용자의 데이터에 대한 데이터스토리지에서의 저장정보(예: 저장된 데이터의 해쉬포인터)를 전체 참여자에게 투명하게 제공할 수 있다.
다양한 실시예들에 따르면, 실제 데이터는 오프체인에 저장하고 계정체인에는 저장된 데이터의 해쉬포인터 등만을 기록하여 사용자가 자신의 개인정보의 유출 없이 데이터 동기화를 사이드체인 네트워크에 요청할 수 있다.
다양한 실시예들에 따르면, 다수의 사이드체인을 이용하여 전체 데이터베이스 시스템의 동기화에 필요한 '승인'을 병렬처리 방식으로 고속으로 진행하고, 동기화에 필요한 명령어를 스마트 계약으로 구성하여 사이드체인 단편이 메인체인에 연결될 때 동기화가 진행되도록 할 수 있다.
다양한 실시예들에 따르면, 동기화 과정에서 동기화를 완료한 로컬 데이터베이스가 동기화를 완료하지 못한 다른 로컬 데이터베이스에게 동기화에 필요한 데이터를 제공하여 중앙 데이터베이스를 이용하는 경우에 등장하는 병목현상을 제거하고, 각 로컬 데이터베이스의 동기화 정확성을 메인체인과 계정체인을 이용하여 확인할 수 있도록 할 수 있다.
다양한 실시예들에 따르면, 메인체인을 이용하여 전체 참여자들(사용자, 데이터베이스 서비스 제공자, 데이터스토리지 관리자, 계정체인 채굴자, 사이드 채굴자)에게 각 계정의 데이터베이스 변화 시점에 대한 합의를 제공할 수 있다.
다양한 실시예들에 따르면, 계정체인에 수정 가능한 블록체인을 사용하여 계정체인을 보관하는데 필요한 저장 공간의 크기를 획기적으로 감소시킬 수 있다.
다양한 실시예들에 따르면, 수정 가능한 블록체인인 계정체인을 구성하기 위해 동형암호를 이용한 목표값을 설정하는 방법과 그것을 이용하여 사용자만이 동기화 요청을 할 수 있게 할 수 있다(상기 [수학식 14] 참조).
다양한 실시예들에 따르면, 메인체인, 계정체인, 사이드체인의 블록채굴에 대한 보상으로 암호 화폐를 생성하여 보상하게 하고, 해당 암호 화폐를 관리하기 위한 별도의 블록체인을 이용하며, 데이터베이스 시스템의 사용자들이 서비스 제공의 대가로 지불해야 하는 비용의 전부 또는 일부를 암호 화폐로 지불하게 하여 전체 시스템의 운영에 대한 보상체계를 구축할 수 있다.
다양한 실시예들에 따르면, 각 로컬 데이터베이스의 동기화 정확성을 메인체인과 계정체인을 이용하여 투명하게 확인할 수 있도록 할 수 있다.
다양한 실시예들에 따르면, 메인체인과 계정체인을 이용하여 동기화의 정확성을 투명하게 관리하여 다수의 데이터베이스 서비스 제공자들과 데이터스토리지 관리자들이 경쟁할 수 있는 생태계를 제공하는 한편, 여러 업체들이 연합으로 서비스를 제공할 수 있다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성 요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성 요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성 요소를 다른 구성 요소와 구분하기 위해 사용될 뿐 해당 구성 요소들을 한정하지 않는다. 어떤(예: 제 1) 구성 요소가 다른(예: 제 2) 구성 요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성 요소가 상기 다른 구성 요소에 직접적으로 연결되거나, 다른 구성 요소(예: 제 3 구성 요소)를 통하여 연결될 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
다양한 실시예들에 따르면, 기술한 구성 요소들의 각각의 구성 요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성 요소들 중 하나 이상의 구성 요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성 요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성 요소들(예: 모듈 또는 프로그램)은 하나의 구성 요소로 통합될 수 있다. 이런 경우, 통합된 구성 요소는 복수의 구성 요소들 각각의 구성 요소의 하나 이상의 기능들을 통합 이전에 복수의 구성 요소들 중 해당 구성 요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
Claims (15)
- 고속 동기화 가능 탈중앙화 분산 데이터베이스를 구성하기 위한 방법에 있어서,
P2P 네트워크에 참여하는 노드들을 기반으로, 메인체인(main-chain)을 구성하는 단계;
상기 노드들의 사용자들과 관련된 계정들로 이루어지는 계정체인(account-chain)을 구성하는 단계;
상기 메인체인을 기반으로, 복수 개의 세그먼트들로 이루어지는 적어도 하나의 사이드체인(side-chain)을 구성하는 단계; 및
상기 세그먼트들의 시작과 끝을 상기 메인체인에 연결하여, 분산 데이터베이스를 구성하는 단계를 포함하는 방법.
- 제 1 항에 있어서, 상기 분산 데이터베이스를 구성하는 단계는,
상기 사이드체인이 상기 사용자들 중 어느 하나의 데이터에 대한 변경의 승인을 기반으로, 상기 분산 데이터베이스를 동기화하는 단계를 포함하는 방법.
- 제 1 항에 있어서,
상기 메인체인과 계정체인은 블록체인 형태로 구성되는 방법.
- 제 2 항에 있어서,
상기 사용자들에 대한 데이터를 저장하기 위한 로컬 오프체인 데이터스토리지를 구성하는 단계를 더 포함하는 방법.
- 제 4 항에 있어서, 상기 계정체인을 구성하는 단계 및 상기 로컬 오프체인 데이터스토리지를 구성하는 단계는,
로컬 데이터베이스를 상기 계정체인 및 상기 로컬 오프체인 데이터스토리지로 구성하는 방법.
- 제 1 항에 있어서, 상기 사이드체인을 구성하는 방법은,
상기 메인체인의 블록 해쉬값을 이용하여, 상기 사이드체인을 구성하는 단계를 포함하는 방법.
- 제 2 항에 있어서, 상기 분산 데이터베이스를 동기화하는 단계는,
복수 개의 사이드체인들이 상기 승인을 병렬로 처리하여, 상기 분산 데이터베이스를 동기화하는 방법.
- 제 2 항에 있어서, 상기 분산 데이터베이스를 동기화하는 단계는,
상기 사이드체인이 상기 승인을 기반으로 스마트 계약을 구성하는 단계; 및
상기 스마트 계약이 상기 메인체인에 연결될 때, 상기 계정체인이 상기 사용자들 중 어느 하나의 계정을 변경하는 단계를 포함하는 방법.
- 고속 동기화 가능 탈중앙화 분산 데이터베이스를 구성하기 위한 시스템에 있어서,
P2P 네트워크에 참여하고, 공동으로 분산 데이터베이스를 구성하여, 관리하는 노드들을 포함하고,
상기 노드들은,
상기 노드들을 기반으로, 메인체인을 구성하고,
상기 노드들의 사용자들과 관련된 계정들로 이루어지는 계정체인을 구성하고,
상기 메인체인을 기반으로, 복수 개의 세그먼트들로 이루어지는 적어도 하나의 사이드체인을 구성하고,
상기 세그먼트들의 시작과 끝을 상기 메인체인에 연결하여, 분산 데이터베이스를 구성하는 시스템.
- 제 9 항에 있어서, 상기 노드들은,
상기 사이드체인을 통해, 상기 로컬 오프체인 데이터스토리지에서의 상기 사용자들 중 어느 하나의 데이터에 대한 변경의 승인을 기반으로, 상기 분산 데이터베이스를 동기화하는 시스템.
- 제 10 항에 있어서, 상기 노드들은,
상기 사용자들에 대한 데이터를 저장하기 위한 로컬 오프체인 데이터스토리지를 구성하는 시스템.
- 제 11 항에 있어서, 상기 노드들은,
로컬 데이터베이스를 상기 계정 체인 및 상기 로컬 오프체인 데이터스토리지로 구성하는 시스템.
- 제 9 항에 있어서, 상기 노드들은,
상기 메인체인의 블록 해쉬값을 이용하여, 상기 사이드체인을 구성하는 시스템.
- 제 10 항에 있어서, 상기 노드들은,
복수 개의 사이드체인들을 통해, 상기 승인을 병렬로 처리하여, 상기 분산 데이터베이스를 동기화하는 시스템.
- 제 10 항에 있어서, 상기 노드들은,
상기 사이드체인을 통해, 상기 승인을 기반으로 스마트 계약을 구성하고,
상기 스마트 계약이 상기 메인체인에 연결될 때, 상기 계정체인에서의 상기 사용자들 중 어느 하나의 계정을 변경하는 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200014753A KR102349014B1 (ko) | 2020-02-07 | 2020-02-07 | 고속 동기화 가능 탈중앙화 분산 데이터베이스 구성 방법 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200014753A KR102349014B1 (ko) | 2020-02-07 | 2020-02-07 | 고속 동기화 가능 탈중앙화 분산 데이터베이스 구성 방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210100865A true KR20210100865A (ko) | 2021-08-18 |
KR102349014B1 KR102349014B1 (ko) | 2022-01-11 |
Family
ID=77464680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200014753A KR102349014B1 (ko) | 2020-02-07 | 2020-02-07 | 고속 동기화 가능 탈중앙화 분산 데이터베이스 구성 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102349014B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923214A (zh) * | 2021-08-30 | 2022-01-11 | 江苏地北网络工程有限公司 | 一种基于双层网络去中心化储存的区块链系统 |
US20230138816A1 (en) * | 2021-11-01 | 2023-05-04 | Binh Minh Nguyen | System and method to reach consensus in a multi-chain iot environment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101701131B1 (ko) * | 2016-04-28 | 2017-02-13 | 주식회사 라피 | 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템 |
KR20190009958A (ko) * | 2017-07-20 | 2019-01-30 | 주식회사 더블체인 | 확장형 블록체인 시스템 및 블록체인 확장방법 |
KR20190132047A (ko) * | 2018-05-18 | 2019-11-27 | 주식회사 비즈모델라인 | 스마트 컨트랙트를 이용한 블록체인 기반 서비스 플랫폼 제공 방법 |
-
2020
- 2020-02-07 KR KR1020200014753A patent/KR102349014B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101701131B1 (ko) * | 2016-04-28 | 2017-02-13 | 주식회사 라피 | 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템 |
KR20190009958A (ko) * | 2017-07-20 | 2019-01-30 | 주식회사 더블체인 | 확장형 블록체인 시스템 및 블록체인 확장방법 |
KR20190132047A (ko) * | 2018-05-18 | 2019-11-27 | 주식회사 비즈모델라인 | 스마트 컨트랙트를 이용한 블록체인 기반 서비스 플랫폼 제공 방법 |
Non-Patent Citations (1)
Title |
---|
OAS Blockchain Renaissance Project, WHITE PAPER version 2.2 (2018.09.15.) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923214A (zh) * | 2021-08-30 | 2022-01-11 | 江苏地北网络工程有限公司 | 一种基于双层网络去中心化储存的区块链系统 |
US20230138816A1 (en) * | 2021-11-01 | 2023-05-04 | Binh Minh Nguyen | System and method to reach consensus in a multi-chain iot environment |
Also Published As
Publication number | Publication date |
---|---|
KR102349014B1 (ko) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3669280B1 (en) | Shared blockchain data storage | |
US11270308B2 (en) | Shared blockchain data storage | |
EP3669281B1 (en) | Shared blockchain data storage | |
US10892888B2 (en) | System and method for information protection | |
AU2018322507B2 (en) | System and method for information protection | |
KR102433504B1 (ko) | 허가된 블록체인 네트워크를 위한 에러 정정 코드에 기초하는 블록체인 데이터 저장 | |
EP3769499B1 (en) | Indexing and recovering encoded blockchain data | |
CN104836862B (zh) | 一种智能终端数据存储方法 | |
EP3794770B1 (en) | Shared blockchain data storage based on error correction code | |
EP3791538B1 (en) | Shared blockchain data storage based on error correction code | |
Hao et al. | Outsourced data integrity verification based on blockchain in untrusted environment | |
KR102349014B1 (ko) | 고속 동기화 가능 탈중앙화 분산 데이터베이스 구성 방법 및 시스템 | |
CN111033491A (zh) | 基于纠错编码存储共享的区块链数据 | |
Fu et al. | Searchable encryption scheme for multiple cloud storage using double‐layer blockchain | |
AU2019321746A1 (en) | Dynamic blockchain data storage based on error correction code | |
KR102181098B1 (ko) | 블록 체인을 이용한 분산 데이터베이스 시스템 및 방법 | |
Hwang et al. | Efficient real-time auditing and proof of violation for cloud storage systems | |
AU2019101581A4 (en) | System and method for information protection | |
US20200267133A1 (en) | First communication device, second communication device, method, and computer program | |
JP7231909B2 (ja) | 情報処理装置及びプログラム |
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 |