쿼크체인 설명서 Part 1 :
블록체인의 확장성에 대한 간략한 소개, 그리고 쿼크체인

QuarkChain
QuarkChain Official
10 min readAug 2, 2018

현재의 블록체인 업계는 낮은 초당 트랜잭션 처리량 (Transaction Per Second, TPS)로 인해 크게 어려움을 겪고 있습니다. 예를 들어 중앙화된 알리페이와 같은 전자지불 시스템은 2017년 11월 11일 자로 초당 20만 건 이상의 트랜잭션을 처리할 수 있는 능력을 내재했던데 반해, 비트코인은 초당 6~7개의 트랜잭션을 처리하며, 이더리움은 대략 초당 15개의 트랜잭션을 처리하는데 그치고 있습니다. 이러한 낮은 초당 트랜잭션 처리량은 블록체인 애플리케이션의 넓은 잠재력마저도 제한하는 처지에 놓이고 말았습니다.

출처 : QuarkChain 개편 전 홈페이지

이렇듯 중앙화된 시스템이 훨씬 빠른 초당 트랜잭션 처리량을 가지고 있음에도 불구하고, 어마어마한 인터넷의 사용 인구로 인해 확장성은 중앙화된 세계에서도 근본적인 문제로 자리하고 있습니다. 모든 인터넷 사용자의 니즈를 만족시키기 위해서 구글, 페이스북과 같은 인터넷 회사나 혹은 오픈소스 커뮤니티, 학회에 참여한 많은 수의 컴퓨터 과학자들과 엔지니어들이 다양한 고 확장성 시스템의 개발과 제작 및 검증에 그들의 자원과 노력을 쏟아붓고 있습니다. 이들 중 구글 File System, BigTable, Hadoop, Cassandra 등과 같은 프로젝트는 이러한 노력으로 탄생한 주목할만한 프로젝트 중 하나입니다.

쿼크체인은 위에 언급된 프로젝트들에 적용된 기술을 이용하여 블록체인의 확장성 문제를 해결하는 것을 목표로 삼고 있습니다. 그러나 이런 중앙화된 확장성 향상 기술 중 대부분은 탈 중앙화된 환경에 적합하지 않기 때문에 단순히 기술이 있다고 해서 바로 적용할 수는 없습니다. 블록체인의 핵심가치인 탈 중앙성과 보안성을 유지한 상태로 블록체인의 확장성을 확보하기 위하여 블록체인에 가장 적합하고, 블록체인에 잘 통합시켜 탈 중앙화된 환경에 적용할 수 있는 기술을 심혈을 기울여 선정해야 합니다.

애초에 탈 중앙화 환경에서는 이러한 전례가 없었기 때문에 위와 같은 방법을 따른다는 것의 진정한 의미는 결국 우리 스스로가 인프라를 구축해야 한다는 것으로 귀결됩니다. 그러나 긍정적인 측면이 있다면, 우리 팀은 구글, 페이스북 및 우버와 같이 그들의 확장성 시스템의 설계, 시험, 유지 보수 및 최적화를 했던 광범위한 경험을 가진 회사에서 선임 소프트웨어 엔지니어로 근무했던 멤버들로 구성되었다는 점입니다.

쿼크체인의 확장 기술에 대해 좀 더 자세하게 논의하기에 앞서, 중앙화된 환경에서의 확장성에 대한 역사를 간략하게 살펴보겠습니다.

중앙화된 환경에서의 확장성에 대한 간략한 역사

2000년대 인터넷 시대 이전에 대부분의 사람들은 서비스의 성장을 위한 성능 요구 조건을 만족시키기 위해 일반적인 확장성 확보 방법인 수직적 확장성 혹은 스케일 업(Scale Up)에 의존하였습니다. 통상 수직적 확장성을 확보하기 위해서 아래와 같이 더 비싸고 향상된 성능의 하드웨어를 설치하여 단일 노드의 성능을 향상시키는 방법을 사용합니다.

· 컴퓨팅 병목현상 해결을 위한 더 빠른 CPU 설치
· 메모리/캐시 병목현상 해결을 위한 메모리 용량 설치
· 저장소 병목현상 해결을 위한 더 빠른 디스크 설치

다양한 분야에서 수직적 확장성에 전문성을 가진 여러 회사가 있습니다. 대표적으로는 아래와 같습니다.

· 데이터베이스 분야 특화 기업 오라클
· 워크스테이션 분야에 특화 기업 썬마이크로시스템즈
· 저장소 분야에 특화 기업 델 EMC

수직적 확장성의 주요 이점은 단순히 자원을 더 추가만 하면 되기 때문에 관리가 비교적 간단하다는 점에 있습니다. 이러한 이점의 이면에는 몇 가지의 큰 단점이 존재합니다.

· 첫 번째로 수직적 확장성을 위한 솔루션의 선행 투자비용이 높다는 점입니다. 예를 들어 엔트리 레벨의 델 EMC 저장소 구축을 위한 비용은 시중에 유통되는 상용 PC에 비해 매우 비쌉니다.

· 수직적 확장성 솔루션에서는 시스템의 수용력(Capacity)이 상한에 다다랐을 때, 추가적으로 더 많은 수용력(Capacity)을 확보하기 위한 비용이 훨씬 많이 발생합니다. 즉, 2배의 수용력(Capacity)을 확보하기 위해서는 하드웨어 리소스의 물리적인 한계에 기인하여 2배를 훨씬 상회하는 자원이 필요하게 되는 것입니다.
「 예를 들어 18년 6월 11일의 ark.intel.com에서 게재된 그들이 판매하는 CPU의 가격정책에 관한 내용을 살펴봅시다. 인텔 Xeon 쿼드코어(4 코어) E5–1620-v4 CPU의 경우 3.8GHz까지의 코어 당 가격은 불과 300 달러였던 반면, 인텔 Xeon 옥타코어(8 코어) E5–1680 v4의 경우 4.0Ghz까지의 코어 당 가격은 1723 달러에 달했던 사례는 이러한 주장을 뒷받침해주는 좋은 예시가 될 것입니다. (GHz 당 가격을 살펴보면 쿼드코어의 경우 총 15.2GHz로 GHz 당 19.7달러의 가격이었으며, 옥타코어의 경우 총 32GHz로 GHz 당 53달러의 가격을 보였습니다. )」

인터넷 애플리케이션의 폭발적인 성장과 함께 인터넷 사용자도 시간의 흐름에 따라 지수함수적으로 폭발적으로 증가하고 있습니다. 따라서 수직적 솔루션을 통해 애플리케이션의 사용자를 유치하는 것은 매우 많은 비용이 들거나, 심지어 때로는 불가능할 때도 있습니다. 구글과 페이스북과 같은 새로운 인터넷 기업들은 범 세계적인 사용자들의 서비스 니즈를 만족시키기 위하여 상용화 PC 위에서도 동작할 수 있는 거대한 규모의 분산화 시스템을 구축하여 수평적 확장성 혹은 스케일 아웃(Scale-Out)을 확보하였고, 이를 통해 확장성 문제를 해결하였습니다. 이런 방법 통해 아래와 같은 이득을 취하였습니다.

· 첫 번째로 초기 투자비용의 절감입니다. 새로운 서비스는 초기 유저 수요를 감당할 수 있는 불과 몇 개의 노드만 설치하면 됩니다.

· 두 번째는 선형적으로 비례한다는 점입니다. 노드를 추가하면 시스템의 수용력(Capacity)은 선형적으로 증가하게 됩니다. 이는 사용자의 숫자가 늘어나더라도 선형적인 비용을 투입하여 노드를 추가하게 되면 시스템의 수용력(Capacity)은 수요량에 비례하여 증가시킬 수 있다는 의미입니다.

일부 유명한 시스템은 더 뛰어난 수평적 확장성을 제공하기 위해 위해 설계가 되고 실제 사용이 되고 있습니다.
· Google File System (저장소)
· Google의 BigTable (데이터의 키값 저장소)
· Google의 MapReduce (빅데이터 계산)
· Hadoop과 HDFS, HBase, MapReduce 등 구글 오픈소스의 대항마
· Cassandra (데이터의 키값 저장소)

이러한 시스템을 가능하게 하는 핵심 기술은 바로 샤딩(Sharding)입니다. 샤딩은 전체 시스템의 상태를 다수의 상대적으로 서로가 독립된 하위 상태인 샤드(Shards)로 분할하고, 각 하위 상태인 샤드 별로 수평적인 처리를 할 수 있는 여러 노드를 합쳐 하나의 클러스터로 구축하는 방법을 이야기합니다. 더 많은 샤드와 노드를 클러스터 내에 선형적으로 추가하는 샤딩 설계를 통해 시스템의 수용력(Capacity)은 선형적으로 증가할 수 있습니다.

탈 중앙화 환경에서의 확장성

앞서 언급한 중앙화 환경에서의 확장성의 역사를 통해 탈 중앙화 환경에서의 확장성에 대한 교훈을 얻을 수 있습니다. (단, 우리는 온 체인 솔루션에 대해서만 이야기할 것입니다. )

· 현존하는 단일 블록체인의 성능을 향상하기 위한 온 체인 솔루션은 우리가 수직적 확장성 솔루션이라고 불렀던 것입니다.

· 예를 들어 비트코인은 1M의 크기의 블록이 600초의 간격으로 생성이 됩니다. 라이트코인(LTC)는 비트코인의 블록 생성 간격을 600초에서 150초로 줄이는 방법을 통해 확장성을 개선하였고, 비트코인캐시(BCH)는 블록 사이즈를 1M에서 8M로 증가시켜 비트코인을 개선하였습니다. 그러나 글로벌 P2P 네트워크 전송 제한으로 인하여 블록 간격을 더 줄인다든지, 블록 사이즈를 더 키운다든지 하는 방법은 무의미한 블록 생성 가능성이 증가하게 되고, 이는 해시 파워의 낭비를 야기하게 될 것입니다.

· 이러한 상황에서 단일 블록체인의 수용력(Capacity)를 더욱 증가시키기 위해서 최근의 블록체인 프로젝트들은 지분증명(PoS) 나 위임 지분증명(delegated PoS, dPoS)와 같이 개선된 합의 알고리즘을 사용하거나 완전히 새로운 알고리즘을 사용하였습니다. 이더리움의 GHOST 구현과 21개 노드만이 블록 프로듀서(BP)로서 블록을 생성할 수 있는 EOS의 dPoS는 두 가지 주목할만한 개선안이라고 할 수 있겠습니다.

· 그러나 중앙화 시스템과 유사한 이유인 P2P 네트워크와 풀노드에 대한 물리적인 한계로 인하여 우리는 이러한 수직적 확장성에 대한 접근은 곧 한계에 부딪힐 것이라 믿습니다. 우리는 범 세계적인 상업적인 니즈를 만족할 수 있는 블록체인의 구축을 위한 답은 중앙화 시스템에서 이미 성공을 입증한 수평적 확장성 안에 있다고 믿습니다. 블록체인의 수평적 확장성을 위해서는 기본적으로 단일 블록체인 상태를 예를 들면 샤드(Shard)와 같은 다수의 블록체인 상태로 분할하는 것에서부터 출발합니다. 각 샤드(Shard) 블록체인은 상대적으로 독립적인 트랜잭션을 처리할 수 있어야 하며, 각 샤드 간의 상호작용은 끊임없이 이루어질 수 있어야 합니다. 네트워크 내에 샤드의 개수가 증가하는 만큼 블록체인 네트워크의 처리량 또한 선형적으로 증가하게 될 것입니다.

쿼크 체인은 블록체인 수평적 확장성 기술인 샤딩(Sharding)을 주창하여 모든 사람이 언제 어디에서건 사용할 수 있는 블록체인을 구축하고자 합니다. 다음의 포스팅을 통해서 쿼크체인 기술의 디테일을 기술하여 중앙화된 상응 조직으로부터 (마치 쿼크체인이 중앙화된 시스템에서 영감을 얻었듯) 어떤 영감을 이끌어 내고자 합니다. 주제는 아래와 같습니다.

· 쿼크체인은 어떻게 시스템의 상태를 분할합니까?
· 쿼크체인은 어떻게 탈 중앙화 방법을 통해 더블 스펜딩 어택이나 블랙리스팅 어택과 같은 다양한 네트워크의 공격으로부터 존재하는 모든 샤드(Shards)의 보안성을 확보할 수 있는 합의를 구축합니까?
· 쿼크체인은 어떻게 샤드 간 거래를 위한 효율적이고 안전한 트랜잭션을 보여줄 수 있습니까?
· 쿼크체인은 어떻게 스마트 컨트랙트를 지원하게 됩니까?
· 쿼크체인은 어떻게 슈퍼 풀노드를 노드의 클러스터를 통해 대체하게 됩니까?

덧붙여, 우리가 쿼크체인 네트워크에서 직면하고 있거나, 시스템을 개선하기 위한 잠재적인 방향에 대한 “열린 질문(Open Question)”을 리스트화할 예정입니다. 또한 우리는 진심으로 어떠한 건설적인 피드백이나 제안에 대해서 환영하고 있습니다.

샤딩에 대해서 조금 더 공부하고 싶으시다면 다음 사설인 “쿼크체인 설명서 Part2 : 샤딩, 간략한 설명 및 블록체인에서 극복할 점들” 편을 참조하여 주시기 바랍니다.

쿼크체인이란?

쿼크체인은 수평 확장성 기술을 확용하여 블록체인의 확장성 문제를 해결하는 것을 목표로 합니다. 쿼크체인의 사명은 이 세계의 누구나 언제 어디서든 블록체인 기술사용할 수 있게 하는 것입니다. 쿼크체인에 관심이 있으시다면 아래의 링크를 따라 더 많은 정보를 확인해 주세요.

홈페이지 https://www.quarkchain.io
텔레그램(ENG) https://t.me/quarkchainio
텔레그램(KOR) https://t.me/quarkchainkorea
카카오톡 https://open.kakao.com/o/gP54vQW
트위터 https://twitter.com/Quark_Chain
Steemit https://steemit.com/@quarkchain
Medium https://medium.com/quarkchain-official
Reddit https://www.reddit.com/r/quarkchainio/
Weibo https://weibo.com/QuarkChain

--

--