본문 바로가기
블록체인 칼럼

블록체인 데이터베이스 BigchainDB 2.0

by 두우우부 2020. 6. 4.
반응형

 

BigchainDB는

Bitcoin이 탄생한 지 10년 이상 지나서 Bitcoin을 비롯한 많은 가상 통화 네트워크를 지원하는 블록체인의 검증과 도입이 업계에서 진행되어 왔습니다. 블록체인은 조작이 매우 어렵고, 여러 노드로 구성된 네트워크는 견고하다는 장점이 있는 반면, 데이터의 저장 장소로서는 넘어야 할 벽으로 처리 속도라는 과제를 안고 있습니다.

 

이러한 과제를 해결하기 위해, 독일의 수도 베를린에 본사를 둔 BigchainDB GmbH는 데이터베이스처럼 사용하는 블록체인 기반의 분산 데이터베이스 BigchainDB을 개발했습니다. BigchainDB의 역사는 BigchainDB 개발의 계기가 된 전신인 Ascribe도 포함하면 2014년부터 이고, BigchainDB 자체의 개발도 2016년부터 시작되었습니다.

 

 

BigchainDB • • The blockchain database.

With high throughput, low latency, powerful query functionality, decentralized control, immutable data storage and built-in asset support, BigchainDB is like a database with blockchain characteristics.

www.bigchaindb.com

 

2018년에는 BigchainDB GmbH가 데이터 마켓 플레이스와 Ocean Protocol 개발에 전념하게 되었고, IPDB Foundation이 BigchainDB 소프트웨어 및 네트워크 관리를 점령했습니다. IPDB Foundation은 블록체인 기술과 분산형 거버넌스의 연구 개발을 촉진하는 비영리 단체로, BigchainDB GmbH와 마찬가지로 베를린에 본사를 두고 있습니다. IPDB Foundation의 구성원으로 BigchainDB GmbH 외에도 도이치 텔레콤, IPFS, Internet Archive, Tendermint 등 기업이나 조직의 이름이 거론되고 있습니다.

 

 

IPDB · The Interplanetary Database

IPBD rewards experimentation and research like no other distributed ledger. It is both an ideal testbed and operational environment serving DLT applications that go beyond mere token transaction and storage systems. The IPDB network is designed to extend a

ipdb.io

 

IPDB Foundation Assumes Governance of BigchainDB Software and Testnet

IPDB Foundation will be taking over governance of the BigchainDB software, testnet, and related intellectual property (IP) via a donation…

medium.com

BigchainDB v1에서 v2로 업데이트 되면서 쓰기 노드 및 데이터베이스 자체가 분산된 합의 형성에 블록체인 기반의 분산 합의 형성 엔진인 Tendermint가 채용되는 등 여러 중요한 개선 사항이 추가되었습니다.

 

BigchainDB의 구조

네트워크의 전체 상

아래의 그림과 같이 BigchainDB 네트워크는 여러 노드로 구성되어 있습니다. 각각의 노드는 로컬에 독립적인 mongo DB를 가지며, 네트워크가 취급하는 데이터의 완전한 복사본을 가지고 있습니다. 노드 간의 통신은 합의 형성 엔진인 Tendermint를 통해 이루어집니다.

 

BigchainDB는 Tendermint를 이용하여 노드의 3분의 1까지 고장이 나도 전체 네트워크가 제대로 작동하며 비잔틴 장군 문제에 대한 저항력을 실현하고 있습니다. 확장성 측면에서 Tendermint의 처리 능력은 5 대륙 7 데이터 센터의 64 노드로, 초당 수천 트랜잭션이 가능합니다. 트랜잭션 확정까지 걸리는 시간이 1 ~ 2초임을 감안하면, Bigchain DB도 비슷한 처리 능력을 기대할 수 있을 것입니다. 또한 Tendermint는 BigchainDB 네트워크끼리 상호 연결하는 인터페이스 역할을 할 가능성도 있습니다.

 

또한 BigchainDB 네트워크에서는 아무나 노드를 운용할 수 있는 것이 아니라, 네트워크의 주체가 노드의 목록을 관리하기 때문에, 악의적인 사람이나 조직이 다량의 노드를 사용하여 네트워크를 공격하는 사태는 일어나지 않습니다.

4개의 노드로 구성된 BigchainDB 네트워크

 

데이터 구조

각 노드가 가지는 mongo DB는 NoSQL이라는 데이터베이스로, MySQL로 대표되는 관계형 데이터베이스처럼 미리 스키마가 정의된 테이블에 데이터를 쓰는 것이 아니라 문서 형태로 유연하게 데이터를 처리합니다. BigchainDB에서 취급하는 데이터는 'Asset(자산)'이라고 불리며, 사용자가 자산을 'create(생성)'하고 다른 사용자에게 자산을 'transfer(전송)'할 수 있습니다. 여기에서 블록체인에 많이 사용되는 소유권의 선언과 이전(양도)에 대한 발상이 엿보입니다. BigchainDB는 자산으로서 자전거 같은 물리적인 소유권뿐만 아니라 토큰이나 문서, 상태 머신까지 모든 데이터를 처리할 수 ​​있습니다.

 

리퀘스트 처리

BigchainDB의 네트워크에 대한 처리를 요청하기 위해 BigchainDB HTTP API를 사용합니다. 리퀘스트는 네트워크의 모든 노드에 대해도 가능합니다. Asset의 작성 및 이전 처리는 어떤 노드도 공통으로 수행하지만, 로컬 데이터베이스의 인덱스를 만드는 방법과 로컬 데이터베이스에서 제공하는 데이터의 종류와 방법은 각 노드에서 자유롭게 결정할 수 있습니다.

 

노드는 쓰기 요청을 받으면 노드 내의 BigchainDB 서버가 유효한 리퀘스트인지 확인합니다. 유효한 요청이라면 JSON으로 정보를 정리하여 트랜잭션 노드의 Tendermint에 전달합니다(잘못된 요청은 요청자에게 400 오류를 리턴합니다). 트랜잭션은 로컬 Tendermint의 메모리풀에 저장되며, 네트워크 내의 노드가 Tendermint 프로토콜에 준하여 합의형성됩니다. BigchainDB 서버는 Tendermint에서 Commit 메시지를 받고 처음으로 데이터를 mongo DB에 기록합니다.

 

BigchainDB에서의 트랜잭션 처리의 상세 등 자세한 내용은 BigchainDB 2.0 백서가 도움이됩니다.

 

BigchainDB 2.0 The Blockchain Database.pdf
0.57MB

 

BigchainDB의 용도

BigchainDB 2.0 백서에서는 서플라이 체인, 소유권 관리, IoT, 감사기록 ​​등 BigchainDB의 다양한 용도가 소개되어 있습니다. 이전 버전의 BigchainDB는 음악 스트리밍 서비스 Resonate에서 이용되었고, Toyot Research Institute와 채용 테크놀로지에서도 실험적으로 이용이 검토되어 왔습니다. Bigchain DB2.0에 관한 유명 기업의 사례는 아직 나오지 않았지만, IPDB Foundation 퍼블릭 네트워크에서 사용할 수 있습니다.

 

BigchainDB는 모든 Asset을 취급하는 블록체인 기반의 분산 데이터베이스로, 조작이 극도로 어려운 블록체인 특유의 성질을 가지면서도 기존의 데이터베이스처럼 사용의 용이성과 확장성을 겸비하고 있습니다. 노드의 목록을 네트워크 운영자가 관리하고 싶은 경우에도 Bigchain DB는 유효합니다.

 

BigchainDB를 이용한다 해도 시스템 전체가 완전한 분산형일 필요는 없습니다. BigchainDB 백서에서는 BigchainDB를 어떻게 시스템에 포함시킬지, 분산의 정도에 따라 표로 나타내고 있습니다. 완전히 분산된 시스템에서 데이터베이스에 BigchainDB을 도입하는 것 이외에도 일반 웹/응용 프로그램의 데이터베이스만 BigchainDB로 분산화가 가능합니다.

 

BigchainDB 통합 예제

 

BigchainDB 네트워크 구축 및 이용 방법은 BigchainDB의 웹 사이트에 튜토리얼이 있습니다.

 

BigchainDB의 미래

BigchainDB에 대한 명확한 로드맵은 공개되어 있지 않습니다. BigchainDB과 IPDB Foundation은 블로그와 소셜 미디어의 커뮤니케이션은 그다지 활발하지 않지만, GitHub의 BigchainDB 저장소에 코드가 업데이트되어 튜토리얼이 공개되어있기 때문에, 프로젝트 자체는 액티브하다고 할 수 있습니다.

 

 

BigchainDB

Meet BigchainDB. The Blockchain Database. BigchainDB has 65 repositories available. Follow their code on GitHub.

github.com

 

결론

웹 애플리케이션을 구축할 때, 응용 프로그램 서버와 데이터베이스 서버를 선택하여 응용 프로그램을 작성하기 위한 언어와 프레임 워크와 시스템 구성을 결정하고 있습니다. 웹 응용 프로그램의 보급기의 데이터베이스는 MySQL, Oracle 등 고전적인 관계형 데이터베이스가 사용되었지만 2010년대에 들어서면서 관계형 데이터베이스보다 데이터 구조가 유연한 NoSQL이라는 유형의 데이터베이스를 사용할 수 있게 되었습니다. 시스템의 분산화가 진행되는 가운데, 2020년대에는 데이터의 저장 장소로 BigchainDB의 이름이 올라가게 될지도 모릅니다.

 

BigchainDB의 미래와 함께 분산형 시스템을 구축할 때의 표준이 어떻게 완성되어 갈지 주목하고 싶은 부분입니다.

반응형