바로가기 메뉴
본문 바로가기
대메뉴 바로가기

TECH M

확장성 확보하라… 판세 흔들 다양한 실험 확산

ISSUE&TREND 블록체인 기술 진화 방향

2018-04-20안명호 에덴체인 창업자

[테크M =안명호 에덴체인 창업자] 블록체인은 세상을 바꿀 잠재력을 갖추고 있지만 기술적으로 풀어야할 숙제들이 많은 것 또한 현실이다. 최우선 과제 중 하나가 성능이다. 블록체인이 비즈니스에 투입되려면 성능 이슈는 반드시 극복해야할 장애물로 꼽힌다. 지금의 성능으로는 중앙집중식 서버 모델과 맞서기는 역부족이다.

현재 시점에서 비트코인은 초당 7건, 이더리움은 초당 13건 정도의 트랜잭션을 처리할 수 있다. 비자나 마스터카드가 보유한 처리 역량에는 한참 못미친다. 비자만 해도 초당 처리 능력이 5만6000건에 달한다.

 

확장성 강화 기술 속속 등장

블록체인 성능 이슈는 주로 확장성(Scalability)에 대한 것이다. 현재 상황에서 초당 1000건을 처리한다면 매우 우수한 성능이다. 그러나 1초에 1만 건을 처리해야 하는 상황에서 1000건이라는 처리속도는 한계가 있다. 1만건도 처리할 수 있는 성능을 갖추지 않으면 1000건이라는 성능은 의미가 없다. 확장성은 1000건은 물론 필요에 따라 1만건도 커버할 수 있다는 의미다.

블록체인은 태생적으로 확장성에 한계가 있는 구조다. 블록체인 기술을 요약하면 ‘탈중앙화되고 분산된 읽기만 가능한 데이터베이스’라고 할 수 있다. ‘탈중앙화’와 ‘분산’이라는 키워드를 제대로 이해하면 블록체인이 갖는 문제를 쉽게 파악할 수 있다. 어떤기술이 필요한지도 예상할 수 있다.

‘분산’은 하나가 아닌 여러 노드를 사용한다는 것을 의미한다. 데이터 저장에 사용하는 노드가 복수라는 뜻이다. 여러 개 노드를 사용할 경우 노드간 데이터를 어떻게 처리할지 관리할 수 있는 방법이 필요한데, ‘탈중앙화’라는 키워드를 대입하면 중앙기관이나 사람 개입없이 데이터를 다룬다는 것을 알 수 있다.

중앙기관이 없는 상황에서도 블록체인을 구성하는 여러 노드들이 데이터를 처리할 수 있는 것은 합의 알고리즘(Consensus Algorithm)에 기반하기 때문이다. 각 노드들이 서로를 검증하고, 51% 이상이 옳다고 인정하면 해당 거래나 데이터를 올바른 데이터로 인식하고 처리하는 것이 합의 알고리즘의 핵심이다. 사람들이 중요한 일을 결정할 때 투표를 하는 것과 비슷하다.

합의 알고리즘은 종류에 상관없이 3가지 조건을 만족시켜야 한다. 동의(Agreement), 타당성(Validity), 종료(Termination)가 바로 그것이다.

동의는 해킹당하지 않은 정직한 노드들이 올바른 트랜잭션을 적법한다고 판단한다는 뜻이다. 타당성은 잘못된 트랜잭션에 대해 정직한 노드들이 인정하지 않는 것을 의미하며, 종료는 모든 트랜잭션들은 시간이 지남에 따라 정직한 노드들에게 알려진다는 것을 의미한다. 합의 알고리즘은 시간을 필요로 하는 과정이다.

블록체인의 확장성에도 많은 영향을 미칠 수밖에 없다.

블록체인이 비즈니스 생태계에서 즉시 전력감이 되기 위해서는 확장성을 강화할 필요가 있다. 실제 최신 블록체인 프로젝트들을 보면 확장성 문제를 해결하는데 초점을 맞춘 것들이 많다. 그런만큼 확장성을 중심으로 바라보면 블록체인 기술이 몰고올 변화도 어느 정도 예측이 가능하다.

확장성 강화에 초점을 맞춘 블록체인 프로젝트로는 이더리움 킬러(Ethereum Killer)를 자처하는 이오스(EOS)가 대표적이다. 이오스는 병렬화(Parallelization) 방식을 적용해 확장성을 확보했고, 초당 수백만 단위까지 처리 성능을 끌어올릴 수 있다고 강조한다.

현재 시점에서 블록체인의 확장성을 강화하기 위해 언급되는 기술들은 크게 3가지로 구분된다.

우선 오프체인 솔루션(Off-chain Solution)이다. 사이드체인(Side Chain)으로도 불리는 오프체인 솔루션은 기존 블록체인을 메인 체인으로 간주하고 모든 트랜잭션은 별도 사이드체인에서 처리하고 필요한 것만 메인체인에 기록하는 방식이다. 앞서 언급한 합의 알고리즘의을 구성하는 3가지 요건 중 하나인 타당성을 포기하고 성능을 높이는 기술이다. 기본적으로 처리해야 하는 각 노드들간 검증과 합의 과정을 생략하기 때문에 기존 시스템과 동작하는 방식이 유사하다고 할 수 있다. 과정이 생략되는 만큼, 속도는 빨라진다.

하지만 오프체인 솔루션은 블록체인이 갖는 중요한 기술적 특징을 제거하는 것이어서 적절한 대안인지 의문이 드는 것도 사실이다.

다음은 DAG(Directed Acyclic Graph)다. DAG는 그래프 방식으로 일반 블록체인처럼 체인으로 연결된 구조가 아니다. 트랜잭션을 매우 효율적으로 구성해 속도를 높이고 확장성을 확보할 수 있지만 오프체인과 방식과 마찬가지로 블록체인에 중요한 요소인 타당성을 포기하는 구조다.

마지막으로 주목받는 기술은 최근들어 많이 언급되는 샤딩(Sharding)이다. 샤딩은 병렬처리를 통해 확장성을 확보하는 방식이다. 예를 들어 100개의 트랜잭션이 있다면 이것을 10개씩 나눠 각각의 샤드(Shards)를 만들고, 10개 샤드를 동시에 실행하는 개념이다.

기존 블록체인 기술들은 트랜잭션을 나눠 처리하지 않고 하나로 모아 처리하는 직렬처리 방식이어서 많은 노드를 추가하고, 초당 처리속도를 높혀도 확장성을 확보하는데는 한계가 있었다. 하지만 샤딩은 병렬처리여서 동시에 여러개 트랜잭션을 처리해, 확장성을 확보할 수 있다. 샤딩을 이용하면 샤드의 수를 조정함으로써 필요한 만큼 컴퓨팅 파워를 확보할 수 있다.

앞에서 언급한 블록체인 확장성 강화 기술들은 엄밀히 말해 합의 알고리즘의 3가지 요소를 모두 충족하지 못한다. 어느 특정 요소를 희생하면서 확장성을 얻는 방식이기 때문에 최선이 아니라 차선(Alatenative)을 선택한다는 것이 올바른 표현일 수 있다.

현재 시점에서 보면 관련 연구가 많이 이뤄지고 있는 샤딩이 블록체인의 확장성 강화에 많이 투입될 가능성이 높아 보인다.

샤딩과 관련해 필자가 올해 관심있게 보는 것은 샤딩이 진짜 가치를 보여줄지, 아니면 새로운 아키텍처와 디자인을 통해 블록체인의 확장성이 확보될지 확인하는 것이다.

샤딩은 기존 아키텍처를 크게 건드리지 않기 때문에 시스템을 그대로 유지하면서 확장성을 얻을 수 있다. 기존 블록체인을 활용하는 경우라면 환영받을 수밖에 없다.

기존 아키텍처나 데이터 구조를 손대는 것은 간단한 일이 아니다. 블록체인도 마찬가지다. 기존 시스템 운영에 사용된 많은 노드들도 업데이트해야 하기 때문에 하고 싶어도 실행에 옮기기는 어렵다.

사람들의 관심도 높아진 상황에서 블록체인 기술은 이제 스스로의 가치를 실제 서비스와 연결시켜 증명해야 한다. 이를 위해 확장성은 반드시 확보해야 하는 요소다. 샤딩으로 확장성 이슈를 해결할지, 해결한다 해도 지속 가능성을 확보할 수 있을지는 좀더 지켜보고 판단해야 할 것 같다.

샤딩이 사람들의 기대를 충족시키지 못한다면, 결국 디자인을 바꾸는(redesign) 방법을 통해 확장성을 확보하는 쪽으로 흐름이 바뀔 것이다. 이렇게 된다면 기존 블록체인 기술보다는 새로운 블록체인에 유리한 상황이 만들어질 것이다. 이것은 블록체인 생태계의 지각 변동으로 이어질 수 있다.

<본 기사는 테크M 제60호(2018년 4월) 기사입니다>

 

뉴스