RDB로 다 될 것 같은데, 왜 블록체인을 써야 하나요?

데이터베이스 등장 배경

데이터베이스 시스템 사용 전에는 파일처리를 통해 데이터를 관리했습니다. 저용량 데이터 및 간단한 데이터 처리 형태는 파일처리가 가능했지만, 데이터의 용량이 늘어나고, 데이터 조작 레벨이 높아지며, 데이터를 처리할 때 발생하는 비용이 많아짐에 따라, 이러한 문제점을 해결하고자 파일처리 구조에서 데이터베이스 시스템으로 전환기를 맞이했습니다.

데이터베이스 정의

“Relational Database”의 줄임말로써, 키(Key), 값(Value)들의 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 장부라고 할 수 있습니다. 추가적으로 1970년 에드거 F. 커드가 제안한 “데이터 관계형 모델에 기초하는 디지털 데이터베이스”라고 위키피디아에서 정의하고 있습니다.

→ 다양한 데이터형을 관리/저장하기 위한 데이터 보관소

데이터베이스 사용 목적

저변에 깔려있는 고객들의 의중 “모든 것은 시간이 해결해 주리라”

  • 시간, 비용 절약
  • 기존 고객들은 잘 닦아 놓은 지름길을 원함
  • 마루타가 되길 원치 않음
  • 대안을 찾지 못함
사용목적
  • 데이터는 모든 사용자에게 동일한 정보 제공
  • 데이터 중복 최소화
  • 다양한 관리 시스템 존재
  • 데이터 보안성 제공
  • 조작 가능한 언어 제공 (SQL)
  • 활성화된 커뮤니티 존재
  • 이미 검증된 안정성

데이터베이스 특징

가장 큰 특징은 트랜잭션 처리입니다. 데이터베이스에서 트랜잭션 처리는 아래와 같은 특징을 가집니다.

  1. 원자성(Atomicity)

트랜잭션 일련의 작업들이 부분적으로 종료되지 않고 안전하게 모두 실행 완료되었는지를 보장합니다.

  1. 일관성(Consistency)

트랜잭션 처리가 완료되고 난 이후에 데이터 조회 시 항상 동일한 데이터 조회가 가능함을 보장합니다.

  1. 고립성(Isolation)

특정 트랜잭션을 처리하고 있다고 가정한다면 처리되고 있는 도중에는 누군가 데이터에 접근할 수 없음을 보장합니다.

ex) A 유저가 이체거래를 하고 있는 도중에 거래내역을 조회한다면 처리되고 있는 시점의 데이터 조회 불가

     4. 지속성(Continuous)

트랜잭션 처리가 완료되면 영원히 기록이 반영됨을 보장합니다.

블록체인과 데이터베이스의 공통점

  1. 사용자들에게 동일한 정보를 제공한다는 점에서 일관성을 보장
  2. 중복된 데이터는 저장할 수 없도록 최소한으로 제공
  3. 데이터를 실수로 유실/복원해야 할 경우 백업체계를 통한 복원 가능 → 안정성
  4. 데이터 암호화를 통한 보안성
    • 현재 블록체인은 공개키 기반의 암호화 기법을 사용
    • 필요하다면 데이터베이스에서는 데이터를 기록할 때 암호화할 수 있음. 블록체인은 데이터 자체를 SHA-256으로 해싱한 값을 기록하게 됨 → 오리지널 데이터는 평문화 되어 특정 repository에 기록됨 (차이점)
  1. 데이터베이스에서 특정 시점에 수행될 수 있도록 PL/SQL 제공 → 블록체인의 스마트컨트랙트와 유사

블록체인과 데이터베이스 차이점

  1. 블록체인의 불가역성

제일 큰 차이점이라고 볼 수 있는 부분이 바로 블록체인의 불가역성입니다. 일반적으로 데이터베이스는 C(create)/R(read)/U(update)/D(delete)를 제공하는 것에 반해, 블록체인에 기록된 데이터는 절대로 삭제할 수 없도록 설계되어 있습니다.

  1. 블록체인의 무결성

무결성이 가져다주는 가장 큰 특징은 기록된 데이터가 안전하게 저장되어 있으며 저장된 데이터가 악의적으로 조작 불가능한 상태를 말합니다. → 퓨어한 상태

특정 시점에 기록된 데이터를 조작하기 위해서는 DB에서처럼 SQL을 통해 조작이 불가능하며, 51% 공격을 통해서 공격받을 수 있지만, 이것 또한 다양한 방어 기법을 통해서 차단되고 있습니다.

  1. 블록체인의 다양한 합의 알고리즘 형태

기존 레거시와는 다르게 블록체인에서는 분산 환경에서의 데이터 정합성을 보장하기 위해서 합의 알고리즘을 사용하고 있습니다. 합의 알고리즘을 통해 데이터를 검증하고 원자성을 보장합니다.

  1. 블록체인은 중앙 집중 방식이 아닌 분산 환경을 제공

데이터베이스도 동일하게 제공할 수 있지만 일관성, 정합성, 원자성, 무결성, 가용성, 처리 속도 등의 이슈가 존재합니다.

  1. 암호화폐

암호화폐는 퍼블릭 환경의 블록체인 기반 서비스에서 일반 유저들도 블록 검증을 할 수 있도록 노드 참여를 유도하고, 보상체계(리워드)를 마련하여 원활한 서비스를 제공할 수 있도록 만들어진 가상의 화폐라고 볼 수 있습니다.

엔터프라이즈 환경에서는 암호화폐 기능이 현재 없음 필요 없음

사실상 필요성이 크게 대두되지는 않습니다. 이는 프라이빗 한 환경 자체가 신뢰된 시스템들과의 합의를 통해서 진행되기 때문입니다. 하지만 사내 식당, 카페테리아 등 정책과 필요에 의해 발급하고 사용할 수는 있습니다.

결론

엔터프라이즈 환경에서 아래 3가지 특징을 만족하는 서비스를 필요로 할 때 블록체인을 사용할 수 있을 것 입니다. 단, 다수의 참여자가 데이터를 공유하고 중개인을 통해서 신뢰를 보장받을 수 있는 환경이라면 데이터베이스(DB)를 사용해도 무방합니다.

  1. 데이터 투명성/무결성을 필요로 하는 서비스 환경
  2. 다수의 참여자가 존재하고 데이터를 공유하며 중개인을 통하여 신뢰를 보장받아야 할 때
  3. 기존 레거시 환경의 TPS가 블록체인이 감당할 수 있을 수준의 TPS보다 낮은 처리의 서비스를 운영하는 경우
    • 적당한 TPS를 요하는 서비스에서 사용 가능할 것으로 보임
    • 최근 다양한 합의 알고리즘이 나오면서 10만 이상 TPS 성능이 도출됨

– 스마트컨트랙트 사용 시 TPS는 어느 정도 감소 감안

– Visa 카드가 최대 2~3000TPS 수준임을 감안했을 때 훌륭한 수준

– 리얼타임 서비스까지 적용 가능한 수준으로 보고 있으나 다양한 검증사례가 필요

    • 플랫폼마다 TPS 성능 측정 방식/합의 알고리즘에 대한 논란의 여지가 있어 보임

 

엔터프라이즈 환경을 위한 블록체인 솔루션

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

필수 입력 사항입니다.
필수 입력 사항입니다.
유효한 이메일 주소를 입력해주세요.
You need to agree with the terms to proceed

메뉴