2019.01.30

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

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

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

ⓒ GettyImagesBank

그래서 등장한 것이 “샤딩(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) 점유가 더 어렵게 된다”고 말했다.



2019.01.30

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

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

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

ⓒ GettyImagesBank

그래서 등장한 것이 “샤딩(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) 점유가 더 어렵게 된다”고 말했다.



X