이더리움 (Ethereum/ETH)

이더리움 (ethereum)

이더리움 (ethereum)은 2015년 비타릭 부테린(Vitalik Buterin)에 의해 만들어진 블럭체인으로서, 스마트 계약(Smart Contract)을 실행할 수 있고, 분산 응용 프로그램(Distributed Application, DApp)을 구현할 수 있는 플랫폼이다.

이더리움(Ethereum): 스마트 계약을 수행할 수 있는 플랫폼

이더리움은 소스코드가 https://github.com/ethereum 에 공개되어 있으며, 블럭체인에 기반한 분산 프로그램을 구현할 수 있는 플랫폼으로서, 현재 수많은 스마트 계약들이 이 플랫폼 하에서 구현되어 있다.

이더리움에서 스마트 계약(Smart Contract)을 구현하기 위해서 "Solidity" 라는 프로그래밍 언어가 사용된다. 솔리더티(Solidity) 프로그래밍 언어는 (다목적이 아닌) 이더리움의 Smart Contract을 구현하기 위해 만들어진 고수준의 프로그래밍 언어이다. 비트코인의 스크립트(bitcoin script)는 처음에 스크립트의 남용을 막기 위해 의도적으로 Turing Incomplete 스크립트로 만들어 졌는데, 비타릭 부테린은 암호화폐의 전송을 넘어 이더리움에서 다양한 목적의 스마트 계약을 실행할 수 있도록 Turing Complete 스크립트와 플랫폼을 만들게 되었다.

이더리움은 자체 코인으로 이더(Ether, ETH)라는 암호화폐를 (마이닝을 통해) 발행하는데, 암호화폐를 전송할 때나 스마트 계약을 실행할 때 이더를 사용하게 된다. 이더리움은, 비트코인에서의 트랜잭션 Fee와 비슷하게, 트랜잭션이 일어날 때마다 소량의 Ether를 소비하게 되는데 이를 이더리움에서는 흔히 가스(gas)라고 부른다. Turing Complete 을 지원하는 이더리움 플랫폼은 의도적이든 혹은 잘못된 코딩이든 무한루프에 빠지는 것과 같은 잘못된 방향으로 사용될 수 있는데, 이더리움 Gas는 이러한 것을 중간에 차단하는 역활을 하게 된다.

이더리움은 지금까지 비트코인과 마찬가지로 Proof of Work (PoW) 알고리즘을 사용하고 있는데, 앞으로 알고리즘을 Proof of Stake (Pos) 방식으로 변경하는 것을 추진하고 있다. Ethereum 2.0 이 바로 이 Proof of Work (PoW)을 Proof of Stake (Pos) 방식으로 변경하는 프로젝트인데, 이를 통해 이더리움 스마트 계약에서 자주 문제가 되고 있는 높은 트랜잭션 Fee를 낮추게 될 것이다.

비트코인과 달리, 이더리움은 총 발행량이 제한되어 있지 않으며 매년 발행량이 증가하고 있다. 이더리움의 코인인 Ether는 스마트 계약을 실행하기 위한 도구로 사용되기 때문에, 만약 발행량을 고정한다면 스마트 계약을 실행하는 비용이 너무 높아질 수 있다.

Ethereum 2.0

Ethereum 1.0을 2.0 으로 업그레이드하는 과정은 매우 복잡한 과정이다. Proof of Work 방식을 Proof of Stake로 근본적으로 다른 방식으로 변환하는 과정은 블럭체인 역사상 처음으로 진행되는 것이다. Ethereum 2.0 으로 업그레이드 과정은 크게 3단계로 진행되는데, Beacon Chain => Sharding Chain => Docking 단계를 거친다.

비컨 체인 (Beacon Chain, 현재 Active)

Beacon Chain은 Ethereum 1.0 에서 2.0 으로의 업그레이드 과정 중 첫번째 과정으로 Proof of Stake (PoS) 네트워크의 메인 체인이다. Ethereum 업그레이드는 1.0 네트워크와 2.0 네트워크를 공존시키는 방법을 사용하는데, 2.0 네트워크에서 사용하는 토큰을 ETH2 토큰이라 한다. Ethereum 1.0 토큰을 가지고 있는 사용자는 ETH2 토큰으로 1:1로 교환할 수 있는데, 이 교환으로 ETH2 토큰을 갖게 되면, 스마트 계약에 의해 Ethereum 1.0 토큰은 소멸(burn)한다.

Ethereum 2.0 네트워크에서 Validator가 되고 싶은 경우 최소 32 ETH가 있어야 하고, Ethereum 1.0의 Deposit Contract에 이더를 보내고, Validator Key를 얻어야 한다. Ethereum 1.0은 ECDSA 서명 방식을 사용하는데, Ethereum 2.0은 BLS 서명을 사용한다. 이러한 차이로 인해 두 네트워크의 Key는 암호학적으로 다르게 되며 직접적으로 호환되지 못한다. Ethereum 1.0의 Deposit Contract에는 1.0과 2.0 네트워크의 교량 역활을 하는 스마트 계약이 있는데, 이를 통해 현재 이더(ETH)를 가진 사용자가 2.0 네트워크의 Validator를 신청할 수 있게 된다.

샤딩 체인 (Sharding Chain, 2021년 예정)

샤딩(Sharding)이란 데이타베이스를 수평으로 쪼개서 나누어 처리하는 것(Horizental Database Partitioning)을 말하는데, 예를 들어 테이블의 데이타를 여러 Row들로 쪼개서 처리하는 것을 말한다. Ethereum에서의 Sharding은 블럭체인 전체를 가져오는 것이 아니라 그 노드가 처리할 일부 파티션 데이타(Shard)만 가져와서 처리하는 것이다. 샤딩 기능을 사용하면 Ethereum 2.0 클라이언트(ETH2 Client)는 블럭체인 전체를 다운받을 필요가 없으며, 여러 노드들이 부하를 분산하게 처리할 수 있게 된다. 샤딩으로 인해 Ethereum은 네트워크 혼잡도를 줄이고 초당 트랜잭션을 높이는 효과를 갖게 될 것이다.

Docking (2022년 예정)

Beacon Chain과 Sharding Chain은 Ethereum 1.0 메인 네트워크와 병렬로 존재하게 되는데, Docking은 이들을 합치는 과정을 의미한다. 이 과정을 통해 Ethereum 1.0은 Ethereum 2.0 으로 통합되며 Proof of Work을 멈추고 순수하게 Proof of Stake만을 사용하게 된다.

이더리움

공식 웹사이트 ethereum.org
소스코드 github.com/ethereum
블럭체인 탐색기(Explorer) https://etherscan.io/
커뮤너티 forum.ethereum.org
백서 (whitepaper) ethereum.org/en/whitepaper
총발행량 (max supply) 무제한(Unlimited)