이더리움 1.x, 무상태 고객 통해 체인 블로팅 억제

이더리움이 샤딩(sharding) 기능을 지원하는 이더리움 2.0으로 다음 단계의 진화를 계속해나가고 있지만, 한편에서는 전환 기간 동안에도 작동성이 유지되도록 기존의 체인에 초점을 맞추고 있는 개발자 그룹이 있다.

이더리움 1.x로 명명된 이 프로젝트의 목표는 세레니티(Serenity: 이더리움 2.0)의 업그레이드 작업이 진행되는 동안 이더리움(ETH)의 사용성을 유지하는 것이다.

극복할 수 없는 단일 문제는 없지만, 블록체인의 지속적인 성장으로 인해 성능이 다소 저하되고 있다고 개발자들은 지적한다. 풀 노드의 경우, 현재로선 200기가바이트가 넘어가는 이더리움의 전체 기록을 다운로드하여 처리해야 한다. 이 수치는 매달 10~15GB씩 증가하므로 노드 작동 문제와 네트워크 지연을 초래한다.

"상태 블로팅(state bloat)"이라는 다소 별개의 문제도 블록 검증을 더욱 어렵게 만든다. 상태(State)는 이더리움의 핵심적 기술개념 중 하나로서, 모든 스마트 컨트랙트와 현재의 모든 지갑 잔고에 대한 집합적인 메모리를 나타낸다. 거래가 이루어질 때마다 중요 상태가 수정되며, 이는 시간이 경과함에 따라 부풀게(bloat) 된다.

이더리움 1.x , '무상태 고객'으로 문제 해결

이러한 문제 중 일부를 완화하기 위해 여러 가지 해결책이 제시되고 있는데, 이더리움 1.x는 "무상태 고객(stateless clients)"이라는 개념을 도입하고 있다.

이 방법에서 고객들은 상태 전체를 저장하는 것이 아니라 단지 이전 블록으로부터 변경된 부분만을 계산하면 된다. 즉, "블록 목격자(block witnesses)"를 이용해 그 유효성을 보장하는 것이다. 일부 노드에서는 여전히 상태 전체를 유지해야 하지만, 이 방법이 갖는 이점은 상당히 커 보인다.

1.x, 세레니티와는 한 지붕 두 가족

이더리움 1.x는 이더리움 재단(EF)의 전폭적인 후원 하에 개발되었다. 이렇게 이더리움 1.x와 이더리움 2.0은 둘 다 같은 재단 산하에 속해 있지만, 1.x의 코드 베이스는 2.0과는 별개로 유지된다.

상태가 2.0 체인으로 이동하는 즉시 2.0은 이더리움의 기본 버전이 될 것이다. 하지만 그 구체적인 일정은 아직 잡혀있지 않다.