이더리움과 샤딩 (Ethereum And Sharding)

현재 이더리움의 네트워크 이슈가 원래 생각한 것보다 빠르게 발생하였습니다.

이더리움 재단에서도 이렇게 빨리 네트워크 이슈가 발생 할지는 생각도 못하였겠죠.

그만큼 인기가 많아졌다는 것으로 저는 생각하고 있습니다 ^^

그로 인해서 나왔던 것이 샤딩(Sharding), 라이덴(Raiden), POS(Casper, Proof Of Stake) 입니다.

그 중에서 샤딩에 대해서 적어볼까합니다.

Shard Wiki 를 보면 A database shard is a horizontal partition of data in a database or search engine. 이라고 나옵니다.

샤딩이라는 것은 원래 현재도 데이터베이스(디비)에서도 널리 사용되고 있는 것입니다.

데이터베이스의 한계 중 하나는 바로 용량입니다.

데이터베이스는 데이터가 쌓일수록 점점 커지게 됩니다.

블럭체인에서는 블록타임이 될 때마다 1 Block 씩 추가가 됩니다.

그러면 현재는?

3941526 Block 입니다.

그러면 1년 후에는??

엄청난 수의 블록이 쌓이게 될겁니다.

많은 사람들이 이렇게 물어봅니다.

Mist 가 좋아요? MEW(MyEtherWallet)이 좋아요?
-> 둘 다 똑같습니다.

답변은 둘 다 같은 겁니다.

하지만 하나의 차이점은 풀노드이냐 아니냐일 겁니다.

현재 저는 Mist를 사용하고 있고, 제하드의 50% 이상은 체인 정보입니다.(100기가 하드에서 50기가면…)

현재의 이더네트워크는 다음과 같습니다. (5000000 블럭이라고 간주를 해보겠습니다)

누구나 5000000 블록에 대한 정보를 다 가지고 있습니다.

현재의 약 1.5배 정도이니 약 70기가정도의 크기를 가질겁니다.

점점 블록 정보의 용량의 커져갈 것입니다.

그래서 나온 것이 샤딩 기술

누군가에게는 1000000번 블럭까지의 정보만, 그리고 또 다른 사람에게는 2000000번 블럭까지의 정보만 가진다면 어떻게 될까요?

각 노드들은 매우 가벼워 질겁니다.

단지 샤딩 적용시에는 하나의 작업이 추가되어야 하긴 합니다.

중간에 Merge라고 적혀있는 하나의 작업입니다.

이것이 이더재단에서 말하는 plane-and-hotel problem 입니다.

A 라는 사람이 여행을 가기 위해서 비행기 티켓과 호텔의 예약을 했습니다.

티켓에 대한 정보는 999999 블럭에, 호텔에 대한 정보는 1000002 블럭에 있다면

샤딩 이전이라면 모든 노드에서는 같은 정보를 가지고 있기 때문에 어느 노드를 접속하더라도 괜찮습니다.

하지만 샤딩 이후에는 1000000번까지 있는 노드와 2000000번까지 있는 노드의 값을 합쳐주는 하나의 과정이 필요하게 된거죠.

이것은 샤딩을 하게 되면 무조건적으로 가질 수 밖에 없는 구조입니다.

데이터 자체가 쪼개어 지는 것이 샤딩의 목표이니까요.

샤딩을 적용하는 것도 매우 많은 기일이 소요가 될수도 있습니다.

한번 꼬여버리면 걷잡을 수 없는 일이 벌어지게 될테니 말이죠.

샤딩에 대해서 정말 간단하게 설명을 드린 것이라서 비탈릭은 조금 다른 개념을 넣을수도 있을 거 같긴합니다.

이더 위키 를 읽어보시는 것이 제일 정확하긴 합니다 ^^;;

Donation

기부는 사랑입니다.

  • Ƀ BTC : 16MdVNJgvGYbVuaC6KrjGNy2RCrNsaPaZz
  • Ξ ETH : 0x5debb97a6Cc1Fdf686a3C6aA804a623a21deD73c

개발자에게 Starize 도 사랑입니다.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.