블록체인, 과연 데이터 스토리지에 어떤 의미가 있을까요?

블록체인은 엄청난 양의 변경 불가능한 데이터를 생성하며, 그 데이터가 어떻게 저장되는지에 따라 블록체인 기반 앱의 성공 여부가 판가름 납니다. 지금부터 그 이유를 자세히 알아보겠습니다.

Blockchain

이 글은 블록체인 기술을 다루는 3부작 시리즈의 2부입니다. 블록체인이 엔터프라이즈 앱을 어떻게 현대화시키고 있는지에 대한 내용은 1 확인보시기 바랍니다

변화를 준비하는 기업에게 새로운 기술은 항상 중요한 질문을 던집니다. 이 혁신이 기존 IT 인프라에 어떤 의미가 있을 것인가? 혁신을 지원하기 위한 기반이 마련되어 있는가?

블록체인도 이러한 시나리오에 포함될 수 있습니다. 블록체인을 활용하는 기업은 데이터 관리라는 복잡한 문제에 더해 독특하고 새로운 측면의 도전과제에 직면하게 될 것입니다. 애플리케이션, 공급망, 계약, 거래, 프로세스 등을 개선하기 위해서는 기본적으로 데이터에 집중해야 합니다. 그 이유를 살펴보겠습니다.

블록체인 데이터 기초

1부에서 언급했듯이, 블록체인은 영구적이고 변경할 수 없는 정보의 디지털 기록, 즉 ‘불변의 원장’입니다.(불변(immutable)이라는 말은 삭제나 변경을 할 수 없음을, 원장(ledger)은 거래가 기록되는 파일을 의미합니다.) 이러한 원장들은 은행의 서버처럼 중앙 집중화된 단일 위치가 아니라, 전 세계 컴퓨터로 구동되는 탈중앙화된 노드 모음에 분산되어 있습니다. 그리고 기록들이 너무 많은 곳에 존재하기 때문에, 모두를 소유하는 하나의 엔티티는 존재하지 않습니다.

이론상으로는, 체인에 등록된 기록은 아무도 삭제, 변경 또는 위조할 수 없습니다. 그리고 기록을 삭제할 수 없으면, 관련 데이터가 계속 축적됩니다.

또한, 블록체인은 빠르고 간결하며 가볍습니다. 많은 양의 데이터를 저장하는 데 적합하지 않습니다. 대신, 구매 데이터 같은 거래가 블록체인에 기록되면, 해당 이벤트가 노드 전체에 기록됩니다. 구매 이미지, 설명 등 해당 거래와 관련된 모든 다른 데이터는 다른 곳에 저장됩니다. (이는 컨테이너화된 앱을 기본 저장소에 연결하여 상태를 저장할 수 있도록 해주는 퓨어스토리지의 포트웍스(Portworx®)와 크게 다르지 않습니다.) 이러한 데이터는 ‘오프체인’ 데이터라고 하며, 분산 환경에서도 쉽게 액세스할 수 있어야 합니다.

블록체인에서 데이터의 흐름은 어떠할까요?

블록체인으로 국제 화물의 운송 프로세스를 기록한다고 가정해 보겠습니다. 화물이 세관을 통과하면 내용물, 날짜, 목적지 등과 관련된 메타데이터와 함께 블록체인에 기록됩니다. 선박에 화물이 실리면, IoT 센서가 운송 중 컨테이너의 온도와 습도를 기록합니다. 수령 시 품질 문제가 발생할 경우, 해당 데이터는 영구적으로 기록됩니다.

이러한 블록체인의 장점은 어느 일방 당사자가 원장을 소유하고 있지 않기 때문에 원장의 기록에 이의를 제기할 수 없다는 것입니다. 또한, 지연 발생 시 즉시 추적할 수 있습니다. 데이터를 조작하거나 삭제할 수 없습니다. 그러나 모든 관련 데이터가 블록체인에 저장되지 않을 가능성이 높습니다. 그 대신, 암호화된 해시를 사용해 배송 데이터가 기록되고 아마도 오라클 네트워크(Oracle Network)를 통해 연결되는 오프체인 스토리지로 사용자를 안내할 것입니다.

오라클 네트워크가 블록체인을 데이터에 연결하는 방법

블록체인은 그 자체로도 훌륭한 스마트 계약서이자 원장입니다. 블록체인은 간단한 계산을 수행할 수 있지만, 고급 기능과 효율성이 부족한 경우가 많습니다. 예를 들어, 스스로 오프체인 데이터에 액세스할 수 없습니다. 실질적으로 데이터 및 애플리케이션에 연결할 방법이 없다면, 블록체인의 이점을 활용하기 어렵습니다. 그렇다고 블록체인을 단일 서버, API 또는 데이터베이스에 연결하면, 블록체인은 아무 의미가 없게 됩니다. 이러한 기능을 도입하게 되면 중앙 집중화를 다시 도입해야 하기 때문입니다.

이 부분에서 오라클 네트워크가 진가를 발휘합니다.

Chainlink와 같은 오라클 네트워크는 블록체인 원장과 스마트 계약을 현실 세계와 데이터 스토리지로 연결해주는 탈중앙화된 서드파티 기술입니다. 탈중앙화 상태를 유지하면서 결합 조직의 역할을 합니다.

그러나 아무 스토리지나 가능한 것은 아닙니다. 특히, 블록체인 애플리케이션의 규모가 커지면 더욱 그렇습니다. 블록체인의 속도와 효율성을 유지하려면, 스토리지는 빠르고 확장성이 뛰어나야 하며 다양한 유형의 데이터를 통합할 수 있어야 합니다.

블록체인이 데이터베이스를 대체할까요? 

그럴 수도 있고, 그렇지 않을 수도 있습니다. 둘다 데이터를 저장하지만 그 방법은 다릅니다. 블록체인은 불변성이 뛰어난 반면 효율성은 떨어집니다. 많은 블록체인은 이들을 기본 데이터베이스 저장소에 연결해주는 오라클 네트워크 없이는 존재할 수 없습니다. 블록체인은 데이터를 저장한다는 점에서 차세대 데이터베이스로 생각할 수 있지만, 몇 가지 중요한 차이점이 존재합니다.

  • 블록체인은 중앙 집중화되지 않고 분산됩니다. 일반적으로 데이터베이스는 한 곳에 존재하고, 한 명의 데이터베이스 소유자가 기록된 내용을 관리하며 데이터베이스의 내용을 제어할 수 있습니다. 블록체인은 하나의 엔티티가 소유한 하나의 서버에 존재하지 않습니다. 다른 사용자들이 소유하고 있는 여러 노드에 존재합니다.
  • 블록체인은 변경할 수 없습니다. 이는 블록체인에 한 번 저장되면 기록을 삭제하거나 변경할 수 없다는 의미입니다. 추가만 할 수 있는 기록 시스템입니다. 기존의 트랜잭션 데이터베이스는 수정되도록 설계되었습니다. 블록체인은 일부 사용 사례에는 적합하지만 전부에 적합한 것은 아닙니다.
  • 블록체인에는 한 명이 아닌 여러 명의 관리자가 있습니다.즉, 블록체인에서는 한 명의 관리자를 신뢰할 필요가 없습니다. 블록체인 자체는 사기 또는 불신에 대한 유효성과 방어의 증거가 됩니다.
  • 블록체인은 큰 사이즈의 파일을 저장하는 데는 효율적이지 않습니다. 공공 블록체인에 많은 양의 데이터를 저장하려면 비용과 시간이 많이 듭니다. 핵심 원장 데이터와 관련 해시 이외의 다른 데이터를 체인에 저장하는 것은 효율적이지 않으며, 확장 또한 불가능합니다. 각 트랜잭션으로 체인에 기록되는 테라바이트당 비용이 빠르게 증가할 수 있으며, 데이터를 읽어올 때마다 수수료가 추가됩니다.¹ 또한 메가바이트당 몇 분 정도 시간이 소요되기 때문에 SLA를 충족할 수 없습니다. 이 때문에 블록체인은 일종의 오프체인 스토리지에 의존하는 경우가 많습니다.

이러한 차이점으로 인해 완전한 보안, 유효성 및 추적 가능성이 포함된 기록 시스템이 필요할 때는 블록체인이 적합할 수 있습니다. 그러나 더 큰 파일과 더 많은 관련 메타데이터를 저장하려면, 기본 데이터베이스가 필요합니다.

블록체인에는 현대적인 블록체인 전용 스토리지가 필요합니다

블록체인은 아직 성숙되고 있는 단계입니다. 기업들에게는 좋은 소식입니다(영문자료). 하지만 스토리지를 고려할 때는 문제가 될 수 있습니다. 오프체인 데이터는 기하급수적으로 축적될 것이기 때문에, 더 나은 데이터 스토리지 플랫폼이 이러한 새로운 전략에 포함되어야 합니다. 또한, 기존 앱들의 스토리지를 잠식하지 않도록, 데이터 관리 업무, 액세스 권한, 데이터 모델 및 데이터스토어에 수정이 필요합니다.

“데이터 스토리지 문제가 해결되지 않는 한, 블록체인은 실질적으로 어떤 산업도 변혁시킬 수 없습니다.” –JaxEnter.com

블록체인 애플리케이션이 SLA를 충족하려면, 오프체인 데이터 스토리지가 강력하고 탄력적이며 확장 가능해야 합니다. 분산 시스템의 데이터 관리에 있어서 특히 초고속 통합 파일 및 오브젝트 스토리지(UFFO)의 중요성이 앞으로 더 커질 것입니다. 새로운 영역에 발을 들이려는 기업의 최선책은 NVMe 기반 퓨어스토리지 플래시블레이드(FlashBlade®) 같이 입증된 기술을 활용하고 연결하는 것입니다.

이어지는 3부도 기대해주세요!


  1. https://medium.com/coinmonks/storing-on-ethereum-analyzing-the-costs-922d41d6b316