솔루션

블록체인 기술과 NoSQL 데이터베이스 비교

NoSQL 데이터베이스와 최신 블록체인 원장은 일련의 공통된 원칙을 활용합니다. 두 가지를 모두 애플리케이션에 구현하면 플랫폼이 서로를 보완할 수 있으므로 많은 것을 성취할 수 있습니다.

블록체인이란 무엇인가요?

블록체인은 전 세계 수천 개의 서로 다른 서버와 데이터베이스에 데이터를 저장하고 모든 참여자가 볼 수 있으며 거의 즉시 검색할 수 있는 분산 원장을 개발하기 위한 P2P 기술입니다. 블록체인은 비트코인과 같은 암호화폐의 기반 기술입니다.

이 문서에서는 블록체인과 NoSQL의 시너지 효과가 겹치는 두 가지 사항을 살펴봅니다. 카우치베이스의 NoSQL 플랫폼은 다음 엔터프라이즈 분산 원장 애플리케이션을 지원할 수 있습니다. 하이퍼레저. 이 주제는 매우 심오하지만 공통점과 기회를 파악하는 데 도움이 되는 두 가지 피상적인 아이디어, 즉 분산 컴퓨팅과 세계 상태만 다루겠습니다.

블록체인 전반에 대한 자세한 내용은 다음 아카데미 페이지를 참조하세요. ledger.com를 클릭하면 미리보기가 아래에 표시됩니다.

Blockchain-based ledgers shared load and transactions similar to Couchbase NoSQL
신뢰 | P2P | 불변성 - 블록체인 원장의 모든 구성 요소 https://www.ledger.com/academy/blockchain/what-is-blockchain/

분산 컴퓨팅

최신 엔터프라이즈 아키텍처는 병렬 처리 CPU/GPU 환경, 멀티노드 데이터베이스 클러스터, 서로 다른 로케일에 동기화된 클러스터가 있는 글로벌 데이터센터 등 분산 컴퓨팅을 핵심으로 구축됩니다.

애플리케이션 개발자는 이러한 아키텍처의 분산 처리 속도, 복구 가능성, 확장성(그 자체로도 중요한 주제입니다!)을 활용하여 원하는 사용자 경험을 구축하는 데 집중하고 백엔드 데이터 시스템은 무거운 작업을 처리하도록 맡길 수 있습니다.

배포된다는 것은 무엇을 의미합니까?? 가장 기본적인 형태는 노드 클러스터의 일부로 관리되는 서버가 두 대 이상 있는 것을 의미합니다. 이상적으로는 분산 시스템에는 단일 장애 지점이나 중앙 집중식 제어가 없습니다.

또한 워크로드 항목이 기본 원자 프로세서에서 소화할 수 있는 조각으로 나뉘어져 있다고 가정합니다(예: 여러 노드에 작업을 분산하는 경우).

이러한 종류의 시스템의 다른 이름으로는 피어 투 피어 네트워크, 클러스터 컴퓨팅, 병렬 처리 등이 있습니다. Wikipedia 에는 오늘날까지 이어져 온 시스템의 종류에 대한 훌륭한 목록이 있습니다.

블록체인은 분산화의 전형입니다.

이러한 장점에도 불구하고 분산 컴퓨팅이 널리 보급된 것은 아니며, 현대 기업 내에서도 여전히 많은 시스템이 중앙 집중화되어 있는 것이 일반적입니다. 여기에는 글로벌 금융 시스템이나 공급망 관리와 같이 복원력을 염두에 두고 설계되어야 할 산업이 포함되며, 메인프레임 컴퓨팅을 중심으로 중앙 집중화되는 경향이 있습니다.

Peer-to-peer network application graph diagram

피어 투 피어 분산 애플리케이션 https://en.wikipedia.org/wiki/Peer-to-peer

그런데 중앙 집중식 시스템은 실패하면 절대적으로 실패하기 때문에 언제든 알 수 있습니다! 모든 데이터나 서비스가 단일 시스템에서 실행되면 모든 것이 완전히 멈추기 때문에 언제 다운되는지 쉽게 알 수 있습니다.

교체 장비를 가동하는 데 시간이 걸리거나, 사용자를 다시 라우팅하기 전에 장애를 발견하는 데 시간이 걸리거나, 기타 여러 가지 치명적인 엔지니어링상의 이유 때문일 수 있습니다. 중앙 집중식 시스템은 우리가 지향하는 피어 투 피어 네트워크와는 정반대입니다.

하지만 비트코인과 같은 플랫폼이 도입되면서 차세대 디지털 화폐와 '원장'이 서서히 증명되고 있습니다. 이제 탈중앙화 기술을 활용하는 수천 개의 다양한 암호화폐와 수십 개의 블록체인 백엔드가 존재합니다.

여담으로, "분산 원장"은 다음과 같지 않습니다. 작업 증명 시나리오 를 사용하지 않습니다. 대신, 원장은 이미 업데이트를 수행하는 애플리케이션에 대한 신뢰를 가지고 있으며 체인에 추가하기 위해 특별한 작업을 수행할 필요가 없다고 생각하면 됩니다. 마찬가지로 작업 증명 시스템은 궁극적으로 블록체인 애플리케이션을 주류로 끌어들이는 데 필요한 고성능에 초점을 맞추지 않습니다.

분산형 NoSQL

마찬가지로 기업들은 다운타임을 줄이기 위해 내부 시스템에 보다 분산된 접근 방식을 활용할 방법을 모색하고 있습니다. 원장 기반 시스템인 경우 현재 몇 가지 접근 방식을 사용할 수 있습니다. 범용 데이터베이스를 사용하려는 경우, 특히 데이터 관리를 위한 옵션도 있습니다.

일부 분산 시스템을 사용하는 기업에서는 대부분의 기술이 데이터베이스, 특히 NoSQL 플랫폼에서 발견될 가능성이 높습니다. Couchbase의 기둥 중 하나는 처음부터 이러한 분산 특성으로, 레거시 데이터베이스가 효과적으로 메우지 못했던 중요한 격차를 메워왔습니다.

Couchbase & Blockchain technologies both rely on distributed computing environments
Couchbase는 여러 노드 또는 여러 클러스터에 걸쳐 애플리케이션과 서비스를 확장하는 기능인 다차원 확장이라는 개념을 도입했습니다.

 

또 다른 JSON 문서 저장소를 도입한다고 해도 그것이 단일 노드에서만 실행된다면 특별한 의미가 없었을 것입니다. 마찬가지로, 또 다른 블록체인 기술도 여러 머신에 분산되어 있지 않다면 별다른 의미가 없을 것입니다.

중앙 집중식이라면 단일 장애 지점과 통제 지점이 생겨 전체 시스템의 신뢰가 무너질 수 있습니다. 다행히도 카우치베이스와 블록체인, 그리고 관련 기술은 분산 시스템의 필요성과 가치를 제시하고 있습니다.

하이퍼레저 구성 요소

블록체인 분산 원장의 또 다른 공통점은 다음과 같습니다. 하이퍼레저 그리고 카우치베이스 는 관리 중인 자산에 대한 단일 '현재' 보기를 제공하는 사용 사례입니다.

하이퍼레저 패브릭(특정 분산 원장 구현)에서는 시스템에서 두 가지 유형의 데이터 처리 구성 요소가 작동합니다.

운영 트랜잭션 는 모든 원장의 핵심으로, 원장의 모든 트랜잭션을 검증하고 생성하며 기록합니다. 하이퍼레저 패브릭은 트랜잭션을 시작할 수 있는 사용자를 승인하기 위한 모든 기본 제공 권한을 처리하고 다양한 백엔드 기술에 저장합니다.

세계 상태 는 또 다른 주요 구성 요소로, 모든 개별 운영 트랜잭션이 아닌 현재 계정 값을 유지하는 또 다른 데이터 뷰입니다. 한 엔티티에서 다른 엔티티로 트랜잭션이 수행되면 월드 상태도 업데이트되므로 새 값이 최신 상태로 유지됩니다. 이전 트랜잭션은 월드 상태에 저장되지 않습니다.

월드 스테이트 시스템의 각 계정은 하나의 값을 갖지만, 전체 내역은 거래 시스템에 의해 정확하게 상세하게 저장됩니다.

NoSQL 소스

위의 두 구성 요소는 모두 Couchbase를 사용하여 구현할 수 있습니다. NoSQL 데이터베이스 를 백엔드로 사용합니다. Couchbase는 다양한 사용 사례, 금융, 사기 탐지, IoT 등 다양한 분야에서 처리량이 많은 운영 트랜잭션을 처리합니다.  분산형 ACID 트랜잭션 도 가능하며, 이는 그 자체로 주제입니다(향후 게시물에서 자세히 설명합니다).

카우치베이스가 블록체인 시스템의 기본 백엔드 데이터베이스로 자리 잡으면 다음과 같은 두 가지 기능을 모두 수행할 수 있습니다. 운영세계 상태 데이터 저장/검색.

카우치베이스는 여러 다른 데이터베이스의 데이터 집합을 저장하는 데 자주 사용되며, 다음과 같은 기능을 제공합니다. 진실의 출처 (vs. 기록 시스템). 이는 현재 관심 있는 데이터의 구체화된 그림을 저장하는 세계 상태와 유사할 수 있습니다.

따라서 카우치베이스는 애플리케이션의 사용자 프로필을 저장해야 하는 애플리케이션 개발자에게 적합합니다. 예를 들어, 다른 백엔드 시스템에서는 개별 데이터를 최신 상태로 유지하지만 사용자가 로그인하면 사용자 프로필을 단일 JSON 문서로 즉시 사용할 수 있습니다.

이러한 맥락에서 Couchbase 사용의 궁극적인 이점은 개발자를 위한 모든 기본 제공 이점을 누릴 수 있다는 것입니다. 데이터가 데이터베이스에 저장되면 강력한 SQL 기반 쿼리 도구, 자연어를 사용한 전체 텍스트 검색, 방대한 데이터 세트에 대한 대규모 빅데이터 분석 등에 원활하게 액세스할 수 있습니다. 이를 통해 개발자는 제품과 사용자에 집중하고 백엔드 시스템은 모든 것을 관리하고 동기화할 수 있습니다.

예를 들어, 전체 텍스트 쿼리를 사용하면 데이터베이스에서 키 또는 기타 텍스트 데이터 속성에 대한 임시 전체 텍스트 검색을 수행할 수 있습니다. 전체 텍스트 인덱스는 검색 조건을 취해 주어진 문서에 대한 반전된 인덱스에서 일치하는 항목을 찾습니다. 표준 표 형식의 SQL 쿼리 결과 대신, 검색 요청의 관련 결과는 소스 문서 자체에 대한 포인터를 제공하며, 텍스트가 발생하는 문서의 필드와 값을 가리킬 수도 있습니다.

블록체인 시스템 자체에서 실시간 이벤트 스트림 쿼리를 제공할 수도 있지만, 원본 데이터 세트의 기록 검색에는 전체 텍스트 검색이 더 유용합니다.

왜 NoSQL + 블록체인인가요?

이 두 기술을 단순히 비교하기보다는 개발자와 아키텍트가 두 기술을 어떻게 함께 사용할 수 있는지 살펴볼 것을 권장하고 싶습니다. 한 가지 방법을 소개합니다.

카우치베이스는 모든 분산 원장 또는 블록체인 기술 위에 애플리케이션 개발자 레이어 역할을 할 수 있습니다. 운영 데이터베이스 구성 요소 또는 세계 상태. 전 세계 국가 데이터베이스는 엔터프라이즈 솔루션을 구축 중이고 최종 사용자에게 계정 세부 정보를 빠르고 쉽게 표시해야 하는 경우 조사할 수 있는 훌륭한 첫 번째 사용 사례입니다.

예를 들어, 블록체인 트랜잭션이 발생하고 월드 스테이트가 업데이트되면 동일한 업데이트가 카우치베이스에 전송되어 사용자에게 제공될 수 있습니다. 카우치베이스는 모바일 SDK와 포괄적인 분석 SQL 지원 등을 갖추고 있기 때문에 블록체인 시스템과 함께 제공되는 것보다 훨씬 더 강력한 데이터 인터페이스를 즉시 제공합니다.

이는 사용자가 최신 정보에 빠르게 액세스할 수 있도록 하려는 경우에 특히 중요합니다.

블록체인 시스템은 정보를 전파하는 데 시간이 걸리지만, 카우치베이스는 고급 프로토콜을 사용해 훨씬 더 빠르게 정보를 전파하며, 변경 사항이 발생하면 데이터 보기를 구축할 수 있습니다. 또한 카우치베이스는 멀티 클러스터 환경에서 실행되기 때문에 플랫폼의 안정성과 복원력이 블록체인 시스템의 유사한 요구 사항을 따라갈 수 있습니다.

통합

하이퍼레저와 카우치베이스가 기성품으로 통합되어 있지는 않지만, 카우치베이스 SDK는 모든 주요 프로그래밍 언어를 지원합니다. 블록체인 기반 원장을 구축하는 사람은 누구나 현재 세계 상태 업데이트를 NoSQL 데이터베이스 블록체인 API와 카우치베이스 API를 모두 사용하여 JSON으로 전송합니다.

이러한 종류의 통합을 구축하는 데 관심이 있으시다면, Hyperledger Fabric의 현재 백엔드 공급자를 확인하고 그 중 하나를 Couchbase Server에 맞게 조정하세요.

Couchbase SDK showing multiple languages

카우치베이스 개발자 SDK는 인기 언어를 지원합니다 https://www.couchbase.com/products/developer-sdk

또한 이 기능을 직접 구현할 수도 있습니다. 체인코드 스마트 컨트랙트 애플리케이션이 원장을 업데이트하는 동안 전송됩니다. 저는 이제 막 시스템의 이러한 측면을 이해하기 시작했지만, 다른 포스팅에서 데이터베이스 사용자 정의 함수(UDF)와 블록체인 체인 코드를 비교/대조하여 더 많은 참고 자료를 제공해드릴 수 있을 것입니다.


블록체인에 대해 더 자세히 알아볼 수 있는 것이 많지만, 유사점과 중복점을 살펴보는 것이 여러분의 사고력을 키우는 데 도움이 되길 바랍니다.

이 주제나 통합에 대한 아이디어에 관심이 있으시면 다음에서 연결하여 토론해 보십시오. 트위터 또는 LinkedIn 또는 이 기사를 통해 Medium.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 타일러 미첼 - 선임 제품 마케팅 매니저

카우치베이스에서 선임 제품 마케팅 매니저로 일하며 제품에 대한 지식을 대중에게 알리는 동시에 가치 있는 콘텐츠로 현장 팀을 지원하고 있습니다.

댓글 하나

  1. 미첼, 고마워요! 페이스북 메시지, 타임라인, 허블 사진 등 긴 역사적 아카이브는 어떻게 해야 하나요? 데이터, 색인 및 검색 노드를 생성할 때 WORM(Write once read many) 매체나 블록체인만 사용하는 방법이 있나요? (제가 알기로는 블록체인은 절대 변하지 않으므로 테이프와 같은 제로 에너지 사용 장치에만 저장하면 충분할 것 같습니다. 아니면 블록체인을 읽는 것이 테이프에서 읽고 클라이언트로 옮기는 것보다 더 저렴하거나 더 비쌉니까?

    1. 좋은 질문입니다. 저도 잘 모르겠지만 블록체인과 NoSQL 모두에 대한 다양한 사용 사례가 분명히 있습니다!

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.