본문 바로가기

DevOps.

샤딩의 이해와 해결 과제

728x90

 

국제 금융 거래부터 공급망 관리에 이르기까지 온갖 분야에서 블록체인 파일럿 프로그램이 증가하고 있지만 한 가지 문제는 여전히 남아 있다. 바로 확장성의 부족이다.

피어 투 피어 네트워크에 참여하는 컴퓨터가 많아질수록 전체 시스템의 효율성은 일반적으로 떨어지게 된다. 확장성은 이미 비트코인, 이더리움의 이더와 같은 암호화폐에서 문제점으로 드러났다. 분산 원장이 금융 기술(핀테크) 기업에 도입되고 수백 배 더 빠른 결제 네트워크와 경쟁하려면 확장성과 처리량을 늘리고 지연 문제를 해결할 방법을 반드시 찾아야 한다.

그래서 등장한 것이 “샤딩(sharding)”이다.

 

 

샤딩은 거래 처리량을 늘리기 위해 많은 개발자들이 연구하고 있는 여러 방편 중 하나다. 간단히 설명하면 샤딩은 연산 및 저장 부하를 피어 투 피어(P2P) 네트워크 전반으로 분산해서 각 노드가 전체 네트워크의 거래 부하를 처리하는 일이 없도록 하는 일종의 파티션 방법이다. 각 노드는 해당 파티션(샤드)과 관련된 정보만 보관한다.

샤드에 포함된 정보는 여전히 다른 노드 간에 공유가 가능하고, 따라서 원장은 탈중앙화된 상태와 보안을 유지한다. 모든 사람이 모든 정보를 처리하고 저장하지만 않을 뿐 모든 원장 항목을 볼 수 있기 때문이다.

컨센서스의 난제
공용 블록체인의 가장 고질적인 문제 중 하나는 컨센서스 프로토콜, 즉 제안된 거래가 믿을 수 있는 거래이며 분산 원장에 추가되어야 하는지 여부에 대해 사용자들로부터 합의를 이끌어내는 과정이다. 가장 널리 사용되는 작업 증명(PoW) 메커니즘과 같은 컨센서스 프로토콜의 경우 계산 부담이 상당히 커질 수 있다.

PoW 기반 블록체인에서 각 인증 컴퓨터 또는 노드는 체인의 모든 데이터를 기록하고 컨센서스 프로세스에 참여한다. 비트코인과 같은 대규모 블록체인에서는 참여하는 노드의 대다수가 새로운 거래를 인증하고 이 정보를 기록해야 원장에 추가된다. 따라서 각 거래 완료의 속도가 느리고 과정도 어렵다. 이러한 이유로 PoW 기반의 비트코인은 초당 3.3~7개의 거래만 처리할 수 있으며, 하나의 거래가 완료되기까지 최장 10분이 걸릴 수도 있다. 또 다른 인기 있는 블록체인 원장 및 암호화폐인 이더리움 역시 초당 12~30개의 거래만 처리할 수 있다.

반면 비자의 비자넷(VisaNet)은 평균적으로 초당 1,700개의 거래를 처리한다.

모든 노드가 블록체인에 추가되는 새로운 정보를 기록하는 데 따르는 장점은 데이터의 확실성과 변경 불가성이다. PoW 기반 블록체인은 한 번 써서 여러 번 붙이는(write-once, append many) 애플리케이션이므로 변경이 불가능하다.

이더리움과 하이퍼레저는 세계적으로 선도적인 블록체인 플랫폼이며, 이더리움의 이더와 같은 암호화폐부터 “스마트” 또는 자율 실행 온라인 계약에 이르기까지 수많은 애플리케이션의 기반이 된다. 하이퍼레저와 달리 이더리움은 현재 샤딩 도입을 추진하고 있다.

이더리움에서 도입 중인 샤딩은 수평 데이터베이스 분할에 기반한 개념으로, 모든 노드가 모든 거래를 처리할 필요가 없도록 해서 확장성을 높여준다.

지난 해부터 이더리움은 블록체인 원장과 암호화폐의 거래 수가 하루 100만 건에 이른 이후 성능을 높일 방안을 모색해왔다. 제안된 방법은 두 가지로 압축됐다. 하나는 “2계층” 메커니즘으로, 체인을 벗어나 표준 데이터베이스에서 거래를 처리하고, 원장에는 영구 항목만 기록한다. 다른 하나는 병렬로 동시에 훨씬 더 많은 거래를 처리할 수 있게 해주는 샤딩이다.

2계층 프로토콜은 대부분의 거래를 체인 외부로 보내고, 2계층 시스템에 들고나기 위한 용도로만 기반 블록체인과 상호작용한다. 또 LAN 또는 인접 WAN 내에서 노드 간에 데이터를 전송하는 방법으로 P2P 블록체인 네트워크의 부담을 던다.

샤딩이 활성화된 다음 블록체인의 “상태”는 샤드(또는 파티션)로 분할된다. 각각의 고유한 사용자 계정은 하나의 샤드에 해당되고 계정은 같은 샤드의 다른 계정하고만 거래할 수 있다. 따라서 많은 병렬 거래를 동시에 실행할 수 있다. 그 다음에는 이더리움이 선택한 별개의 프로토콜을 통해 샤드 간 커뮤니케이션이 가능하다.
 
샤딩의 안전성
확장성 문제 해결 외에, 샤딩이 블록체인 본연의 보안을 유지하는 역할을 한다는 주장도 있지만, 샤딩은 블록체인의 강점인 탈중앙화와 보안 측면의 속성을 대부분 그대로 보존한다.

이론적으로 거래 처리량은 샤드의 수에 따라 선형적으로 증가한다. 샤드가 4개라면 처리량은 대략 4배가 된다. 샤드의 수는 몇 개든 될 수 있다.

중요한 것은 세부적인 부분이다. 블록체인의 보안을 유지하기 위해서는 샤드 점유가 발생하지 않도록 해야 한다. 코넬 대학이 발표한 연구 논문에 따르면 특정 샤드의 노드가 손상되면 해당되는 데이터 부분이 영구적으로 손실될 수 있다.

예를 들어 이더리움 네트워크 모델에서 노드는 샤드에 무작위로 할당되어야 하며, 무작위 시간에 무작위로 선택된 다른 샤드에 재할당된다. 악성 노드가 어느 샤드에 할당될지 공격자가 예측하기 어렵게 한다는 개념이다. 이를 통해 샤드의 비잔틴(Byzantine) 점유가 더 어렵게 된다.

 

하이퍼레저 블록체인에서 샤딩 구현은 간단한 일이 아니다. 블록체인은 일반적으로 암호화폐와 달리 ‘주소’를 다루지 않는다. 하이퍼레저 블록체인은 전역 상태를 유지하는 데 초점을 둔다(데이터베이스를 생각하면 됨). 컨센서스 메커니즘은 이 상태에 대한 업데이트를 통제하고, 블록체인은 상태 업데이트를 안전하게 저장한다.

하이퍼레저 네트워크는 이더리움과 마찬가지로 수직으로 샤딩이 가능하지만 주소 공간을 분할하지 않으므로 다른 샤딩 기법도 자유롭게 시도할 수 있다. 거래 확인은 블록 구축보다 훨씬 느리므로 거래 확인 노드의 수가 대폭 증가하게 된다.

두 번째 과제는 SPV(Simplified Payment Verification) 지갑이라고도 하는 “씬(thin)” 클라이언트로, 이러한 노드가 여러 사드로 분할된 블록체인 상태의 전체 그림을 갖도록 보장해야 한다는 것이다. 샤딩과 관련한 시야 문제를 해결하기 위해 씬 클라이언트는 별도의 네트워크를 통해 통신하고 각 샤드의 로컬 상태 복사본을 유지한다.

마지막으로, 각 샤드가 개별적인 블록체인 네트워크로 나타나므로 샤드 간 통신에 어려움이 있다.

커뮤니케이션 문제 해결
이달 초 신생 업체인 데비오(Devvio)가 샤딩, 2계층 프로토콜 및 효율적인 컨센서스 메커니즘을 기반으로 하며 블록체인 네트워크가 직면한 모든 주요 문제를 해결할 수 있는 고효율 분산 원장 프로토콜 만들었다고 발표했다. 데비오는 이 프로토콜이 최대 초당 800만 건의 거래를 실행함으로써 글로벌 금융 비즈니스에 부합하는 수준까지 확장이 가능하다고 주장했다.

 

 

데비오의 “데브(Devv)” 프로토콜에서 각 샤드는 별도의 블록체인 원장을 나타낸다. 데비오는 향후 수천 개의 샤드를 글로벌 공용 블록체인에 추가해서 궁극적으로는 초당 수천만 건의 거래를 처리할 수 있다고 주장한다. 예를 들어 각 샤드는 데브 탈중앙화 원장에서 최대 3,000건의 거래를 처리할 수 있는 독립된 블록체인 노드다. 노드를 하나 추가하면 처리 가능한 거래의 수는 두 배가 된다.

각 샤드(암호화폐 지갑이기도 함)는 데비오에서 T1 네트워크로 칭하는 더 큰 네트워크의 입력이 된다. 개별 샤드는 T2라는 별도의 거래 네트워크를 통해 상호 커뮤니케이션할 수 있다.

샤딩을 사용하거나 사용할 예정인 거의 모든 블록체인 프레임워크가 이 기능을 각기 다르게 수행한다.

 

 

예를 들어 분산 기술 연구 재단(Distributed Technology Research Foundation, DTR)이라는 스위스 비영리 기구의 후원을 받는 7개 대학은 최근 샤딩을 통해 블록체인의 확장성과 성능 문제를 해결하는 디지털 화폐 네트워크를 개발 중이라고 발표했다.

확장성의 부재는 암호화폐 도입을 가로막고 있다. 하지만 유니티(Unit-e) 개발자들이 방대한 탈중앙화 금융 애플리케이션에 혜택이 될 확장 가능한 실체적인 성능을 구현하고 있다.

유니티는 사용자가 많아질수록 보안 타협 없이 효율성이 높아지는 스토리지 및 컴퓨팅 솔루션인 “폴리샤드(PolyShard)”라는 완전히 새로운 샤딩을 사용한다. 핵심은 폴리샤드 프로토콜이 여러 사용자의 데이터와 거래를 정확한 데이터 복구가 가능한 방식으로 혼합한다는 점이다. 서버 및 스토리지 시스템의 가상화와 비슷하다.

한편 샤딩 메커니즘은 여전히 개발 및 테스트 단계, 어떤 의미에서는 이론적인 단계에 머물러 있으며, 확장성뿐만 아니라 보안 문제도 해결하는 표준화된 방법을 구상하고 있다. 샤딩이 하나의 솔루션으로 인정받으려면 먼저 이 부분이 해결되어야 한다.

샤딩은 확장성을 간단히 얻게 해주는 솔루션이 아니다. 고려해야 할 세부 사항이 많고, 안전하다고 주장하기 전에 이론을 뒷받침할 실증적인 실험도 필요하다. 공격자가 보안과 컨센서스 메커니즘을 우회하는 데 사용할 수 있는 결함이 발생하지 않도록 신중한 구현이 필요하다.

 

 

출처

“블록체인 확장성의 해결사” 샤딩의 이해와 해결 과제

728x90
반응형
LIST