Distributed Database와 BlockChain의 차이점

Hong·2022년 11월 6일
0
post-thumbnail

🧱

신뢰라는 한 단어만 제외한다면 중앙화된 분산 데이터베이스 시스템 대신 블록체인을 사용할 이유가 전혀 없다.
왜냐하면 아직까지 블록체인은 아래와 같은 문제점들이 존재하기 때문이다.
1.거래비밀성, 권한통제
퍼블릭 블록체인만 한정했을 때 블록체인 데이터 베이스에 저장되는 모든 정보가 공개된다. 만약 누군가가 악의적으로 블록체인에 개인정보와 관련된 정보를 올리고 이 트랜잭션이 채택되어 블록체인에 영원히 반영된다면? 그리고 그것을 모두가 열람할 수 있는 권한이 있다면? 아직까지 우리는 이러한 문제를 어떻게 해결해야 하고 누가 정보를 열람하고 열람하지 않을 수 있는 권한을 주는지 등의 문제를 생각해야 한다.
2.신뢰 및 보안 유지
현재는 일어나기 힘든 일이지만 양자컴퓨터의 등장이나 51%공격같이 견고해 보이는 블록체인 네트워크 자체가 무너질 수 있는 상황도 분명 존재한다.
3.확장성 확보
현재 비트코인과 같은 블록체인 네트워크는 Visa카드나 Master카드, Paypal의 데이터 처리속도를 따라가지 못한다.

누군가는 블록체인 기술이 그저 데이터 조각에 불과하다고 말하고 누군가는 4차 산업혁명 속에서 대부분의 시스템 근간을 바꿀 기술이라고 찬양한다. 블록체인 정말로 혁신이 될지 안될지는 아무도 알 수 없다. 2000년대 초반 닷컴버블이 상승하고 터지는 과정에서도 많은 사람들이 인터넷이 어떤 효용을 우리 생활에 가져다 줄지 아무도 몰랐다. 1990년대에 페이스북, 우버, 에어비앤비, 유튜브 등을 상상할 수 있는 사람은 아무도 없었다. 블록체인이 인터넷처럼 거대한 변화를 일으킨다는 보장을 할 수는 없지만 개인적인 바람으로는 군주제에서 민주주의로 국가권력이 위에서 아래로 이동되었듯이 금융주권도 그렇게 이동하기를 바란다.




💾 분산 데이터베이스의 대표적 기술

Clustering


Data base Server가 다운되는 경우를 대비하기 위해서 어떻게 해야할까?

  • 서버를 여러개로 만들면 됨, Active-Active 방식과 Active-Stand By방식이 존재함 위의 사진은 Active-Stand방식


Replication


Data base자체가 다운되는 경우를 대비하기 위해서 어떻게 해야할까?

  • data base를 여러개로 만들면 됨, Master data base와 Slave data base가 존재하는데 단순 읽기 쿼리는 Slave로 보내서 data base 성능을 높일 수 있음


Sharding


Data base가 너무 방대해서 쿼리처리 성능이 좋지 않은데 어떻게 해결할 수 있을까?

  • data base table을 나눠서 저장하면 됨, partitioning과 데이터를 나누는 방식적으로 차이가 있음

Horizional Partitioning(Sharding)

  • 분할된 테이블은 같은 스키마를 가질 수 있다는 장점이 있다

Vertical Partitioning

  • 자주 사용하는 column을 분리시켜 성능을 향상시킬 수 있다


Hash Sharding

  • shard key는 data base id를 hashing하여 결정함
    구현이 간단하고 데이터의 양만 보았을 때 고르게 분산된다는 장점이 있지만 데이터의 효율성은 전혀 고려하지 않고 데이터를 분산시키며 shard갯수를 추가하고 싶다면 처음부터 데이터를 다시 나눠야 하기 때문에 확장성이 떨어짐


Dynamic Sharding

  • Locator Service를 통해서 data base의 id 범위를 정하고 범위에 따라 shard key를 구성시키는 방식이다 꽤나 괜찮은 방법이지만 shard key를 정하는 Locator Service에 문제가 생기면 data base에도 문제가 전이됨


Entity Group Sharding

  • 하나의 shard안에(entity, 개체) 관련이 있는 데이터를 저장한다. 쿼리 처리가 빨라진다는 장점이 있지만 같은 entity안에 있지 않은 데이터를 쿼리할 경우가 생기면 문제가 생긴다

[우아한Tech설명영상]
https://www.youtube.com/watch?v=y42TXZKFfqQ




⛓️ 분산 데이터베이스와 블록체인의 차이점(퍼블릭 블록체인으로 한정)

가장 큰 차이점

  1. 분산 데이터베이스와 달리 블록체인은 악의적인 사용자를 전제하고 만들어진 데이터 저장 시스템(합의 알고리즘은 악의적인 사용자가 만들어낸 데이터를 데이터 베이스에 저장하는 것을 막아줌)
  2. 블록체인은 운영주체가 존재하지 않아서 시스템 전체가 다운될 리스크가 적음
profile
Notorious

0개의 댓글