[코린이 상식백과] 이더리움 확장성 문제 해결사 '샤딩'이 곧 온다?!
[코린이 상식백과] 이더리움 확장성 문제 해결사 '샤딩'이 곧 온다?!
  • 김승현 기자
  • 승인 2019.06.22 10:39
  • 댓글 0
이 기사를 공유합니다

이더리움 2.0이 머지 않았습니다. 이더리움(ETH) 네트워크는 처리해야하는 거래량이 많아지면서 거래 처리 속도가 늦어지는 병목 현상이 심각해졌는데요. 이를 해결하기 위해 이더리움 개발자들은 라이트닝 네트워크, 캐스퍼 등 다양한 대안을 제시했죠. 

오늘은 이더리움 확장성 문제를 해결하기 위한 다양한 방안 중 블록체인 구조 자체를 바꾸는 온체인(On-Chain) 솔루션 '샤딩(Sharding)'에 대해서 알아보겠습니다.

◆ 샤딩(Sharding)이란

사전적 의미로 '데이터를 쪼개서 저장하는 방식을 의미합니다. 흔히 데이터베이스(DB)나 웹 검색에서 막대한 양의 데이터를 분할 처리하는 것을 뜻하죠. 

블록체인에서의 샤딩은 전체 네트워크에서 발생하는 트랜잭션을 일정한 덩어리로 나눠 병렬로 처리하는 방식을 말합니다. 

기존 블록체인은 모든 노드들이 거래 내역을 검증하는 과정을 거쳐야합니다. 그러나 샤딩은 이러한 과정을 병렬로 배치해 여러 노드들이 트랜잭션을 동시에 처리할 수 있도록 했습니다. 초당 처리할 수 있는 트랜잭션 수(TPS)를 높이기 위함이죠. 

아직 감이 잘 안 온다면 블록체인을 하나의 거래 장부라고 생각해볼까요? 장부에 기입해야 하는 거래 내역이 일렬로 쭉 늘어져 있다면, 순서대로 처리하는데 많은 시간이 걸리겠죠. 그러나 이를 하루 단위 또는 1개월 단위로 두 개의 장부에 나눠서 동시에 정리하면 처리 속도가 2배로 빨라질 수 있죠. 이렇게 각 노드를 여러 개로 분산시켜 각자 할당된 전송 내역만을 검증하는 방식이 바로 샤딩입니다.

 

지난해 4월 30일(현지시간) 비탈릭 부테린은 트위터를 통해 이더리움 체인에 샤딩을 도입하겠다고 밝혔다. [출처=비탈릭 부테린 트위터]
지난해 4월 30일(현지시간) 비탈릭 부테린은 트위터를 통해 이더리움 체인에 샤딩을 도입하겠다고 밝혔다. [출처=비탈릭 부테린 트위터]

이더리움 창시자 비탈릭 부테린(Vitalik Buterin)은 지난해 4월 "샤딩이 오고 있다"는 트윗을 올렸습니다. 이는 이더리움 확장성 문제 해결을 위해 샤딩이 본격적으로 도입될 것이라고 알린 건데요. 부테린은 이더리움 블록체인을 12개 샤드로 쪼개서 시범 운영하고 있는 사진 한 장을 함께 올려 업계 주목을 받기도 했죠. 이더리움 개발자들은 샤딩이 도입된다면 이더리움이 거래 처리 속도가 훨씬 빨라질 것이라고 예상하고 있습니다.

이와 함께 부테린은 샤딩을 각각의 독립된 섬(Island)에 비유했습니다. 그는 "이더리움이 수천개의 섬으로 분할돼 있다고 생각해보면, 각 섬마다 고유한 일을 할 수 있다"며 "각 섬에는 고유한 기능이 있고, 그 섬에 속한 사람들은 서로 상호작용할 수 있으며 모든 기능을 자유롭게 누릴 수 있다"고 설명했죠.

◆ 운영 구조는?

 

이더리움 메인 체인과 샤드 체인간의 관계 [출처=샤우웨이 웡(Hsiao-wei Wang) 이더리움 개발자 미디움 블로그]

우선 이더리움의 메인 체인을 n개의 '샤드(Shard)'로 분할합니다. 샤드는 트랜잭션을 쪼개 놓은 단위입니다. 각 샤드는 하나의 독립적인 샤드 체인이 됩니다. 이 안에서 기존 메인체인에서 일어났던 것과 같이 개별 노드들이 거래 내역을 검증해 블록에 담는 작업을 수행하죠. 

샤드 체인은 거래 내역을 검증해주는 수집가(Collator)와 트랜잭션을 모아 수집자에게 전달해주는 제안자(Proposer)가 존재합니다. 수집가는 제안자에게 트랜잭션을 전달받아 샤드 체인의 블록인 컬렉션(Collaticon)에 저장하죠. 이렇게 검증된 컬렉션 모음은 실행자(Executor)를 통해 메인 체인에 전달됩니다.  

이더리움 재단이 지난해 제시한 샤딩 운영 구조 [출처=샤우웨이 웡(Hsiao-wei Wang) 이더리움 개발자 미디움 블로그]

n개의 샤드 체인과 이더리움 메인 체인은 검증자 관리 계약(Validator Manager Contract·VMC)이라는 스마트 컨트랙트와 연결돼 있습니다. VMC는 스마트 컨트랙트를 통해 샤드 체인에서 일어나는 모든 일을 검증하고 총괄하죠. 

만약 10개의 샤드 체인이 있다면, 동시에 10개의 트랜잭션 덩어리를 동시에 처리할 수 있기 때문에 TPS는 10배로 증가합니다. 

◆ 개발 상황

현재 샤딩은 이론적 기반은 모두 갖춘 상태입니다. 오픈 소스 공유 플랫폼 깃허브(GitHub)에 이를 바탕으로 한 새 개념증명(PoC) 코드도 올라와 있는 상황이죠. 그러나 샤딩이 이더리움 체인 위에서 작동하기 위해서는 기존의 작업증명(PoW)에서 지분증명(PoS)으로 전환되는 캐스퍼(Casper)가 이루어져야 합니다. 이는 참여자들이 모든 거래 내역을 처리하는 것이 아닌, 일부 노드들이 동시에 서로 다른 거래를 처리할 수 있도록 해야 하기 때문이죠. 

이에 올해 초 PoW에서 PoS로 진입하기 위한 이더리움 콘스탄티노플 하드포크가 진행됐습니다.

지금 이 시간에도 샤딩을 구현하기 위해 노력은 진행 중입니다. 과연 샤딩은 이더리움 확장성 문제를 해결해 줄 수 있을까요?

 


관련기사

댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.