총 4개의 답변이 있습니다.
'샤딩'이라는 용어는 기존에 데이터베이스에서 사용하는 단어입니다.
하나의 데이터베이스를 여러개로 쪼개어 사용하는걸 '샤딩'이라고 하죠..
그런데 블록체인에 와서는 조금 개념이 조금 달라지고 확장됩니다.
현재 이더리움으로 설명드리면
이더리움이 포크(확장,업그레이드)할 수 있는 이유는 이 '샤딩'때문입니다.
기존에 이더리움 메인넷에서 할 수 있는 합의증명방식을
샤딩을 통해서 확장해서 합의증명을 할 수 있게 되는거죠
이말은 기존에 POW(Proof of Work,작업증명방식)에서 POS(Proof of Stake, 지분증명방식)으로 합의증명방식을 바꿀 수 있게 됩니다.
이 합의 증명방식을 바꿀 수 있는 근거가 위의 샤딩입니다.
그래서 아마 이더리움 관련기사에서 샤딩을 많이 보셨을것 같네요~
샤딩이란?
샤딩은 데이터 베이스에서 가져온 용어입니다. 데이터베이스에서 샤딩이 의미하는지 확인할 필요가 있습니다.
웹사이트에 빅데이터가 있다고 한다면 아주 큰 빅데이터는 데이터 검색 속도도 느려질뿐더러 확장성도 저하됩니다. 그래서 데이터를 수평 파티션을 수행하여 더 작은 테이블로 변환하여 서로 다른 데이터 베이스에 저장합니다.
블록체인에 샤딩이 활성화 된다면?
* 모든 State(상태)는 Shards(파편화)로 나뉘어집니다.
* 각 unique account(고유 계정)은 하나의 샤드에 존재합니다.
* 각 계정은 동일한 샤드의 다른 계정과 거래 할수 있습니다.
샤딩이란 전체 네트워크를 파편(=Shard)으로 분할해 여러 개의 네트워크가 알고리즘을 나눠서 푸는 방식을 뜻합니다..
먼저 샤딩을 사용한 솔라나(Solana)는 샤딩은 네트워크가 과부하 되는 문제가 있으며 노드가 많아지면 개별 노드에 대한 해킹 가능성이 증가하기 때문에 보안에 관해서 샤딩은 끊임없이 지적받아왔습니다. 하지만 그 뒤에 나온 질리카는 이부분을 보완하고 보안성을 가졌다고합니다.
이부분에 대해서 질리카는 PBFT(Practical Byzantine Fault Tolerance)기술을 사용하고있는데요 그는 아래와 같다고합니다.
1. 트랜잭션이 생성되고 트랜잭션을 검증할 샤드에 전송된다
2. 트랜잭션이 샤딩을 통해 마이크로블록, Microblock 형태로 분할되며 각 마이크로블록은 여러 노드로 전송된다
3. 각 샤드는 받은 마이크로블록을 검증해 검증이 완료된 블록을 DS 위원회, DS Committee로 최종 검증을 위해 보낸다.
4. DS 위원회는 마이크로블록을 종합해 하나의 블록으로 합쳐지며 마지막으로 블록의 최종 검증을 한다