샤딩이 무엇인가요?해결된건가요?
국제 금융 거래부터 공급망 관리에 이르기까지 온갖 분야에서 블록체인 파일럿 프로그램이 증가하고 있지만 한 가지 문제는 여전히 남아 있다. 바로 확장성의 부족이다.
피어 투 피어 네트워크에 참여하는 컴퓨터가 많아질수록 전체 시스템의 효율성은 일반적으로 떨어지게 된다. 확장성은 이미 비트코인, 이더리움의 이더와 같은 암호화폐에서 문제점으로 드러났다. 분산 원장이 금융 기술(핀테크) 기업에 도입되고 수백 배 더 빠른 결제 네트워크와 경쟁하려면 확장성과 처리량을 늘리고 지연 문제를 해결할 방법을 반드시 찾아야 한다.
그래서 등장한 것이 “샤딩(sharding)”이다.
샤딩은 거래 처리량을 늘리기 위해 많은 개발자들이 연구하고 있는 여러 방편 중 하나다. 간단히 설명하면 샤딩은 연산 및 저장 부하를 피어 투 피어(P2P) 네트워크 전반으로 분산해서 각 노드가 전체 네트워크의 거래 부하를 처리하는 일이 없도록 하는 일종의 파티션 방법이다. 각 노드는 해당 파티션(샤드)과 관련된 정보만 보관한다.
샤드에 포함된 정보는 여전히 다른 노드 간에 공유가 가능하고, 따라서 원장은 탈중앙화된 상태와 보안을 유지한다. 모든 사람이 모든 정보를 처리하고 저장하지만 않을 뿐 모든 원장 항목을 볼 수 있기 때문이다.
확장성부족으로 샤딩이나온것인데 해결된건가요? 아니면 아직 기술부족인건가요? 조금쉽게 설명좀부탁드립니다.
샤딩은 전체 네트워크를 분할한 뒤 트랜잭션을 영역별로 저장하고 이를 병렬적으로 처리하여 블록체인에 확장성을 부여하는 On-Chain 솔루션입니다. 쉽게 설명하면 데이터를 샤드라는 단위로 나눠서 저장 및 처리하는 것이죠. 샤딩 개념의 근원은 데이터베이스 샤딩에 있습니다. 데이터베이스 샤딩이란 대용량의 데이터를 처리하기 위해 테이블을 수평 분할하여 데이터를 분산 저장하고 처리하는 것입니다.
이더리움에서의 샤딩은 메인 체인을 k개의 샤드로 분할합니다. 각 샤드는 네트워크 상의 전체 트랜잭션을 나눠서 병렬적으로 처리게 됩니다. 이는 기존에 하나의 메인 체인이 모든 트랜잭션을 순차적으로 처리하던 것과 대비되죠. 결과적으로 네트워크의 전체 처리량은 샤드의 배수만큼 향상됩니다. 예를 들어, 100개의 트랜잭션이 있을 때, 10개의 샤드 체인이 있다면 각각의 샤드 체인이 평균적으로 10개씩의 트랜잭션을 동시에 처리하게 되죠.
샤딩은 phase 1부터 6까지 단계별로 로드맵이 제안되어 있으며 현재까지도 개발이 진행되며, 발전을 거듭하고 있습니다.