본문 바로가기
학교공부/[블록체인]

[블록체인] - Ethereum 프롤로그

by 윈디개 2025. 12. 12.

이전까지는 블록체인을 활용한 암호화폐 비트코인에 대해서 정리해 보았는데, 이번 글부터는 이더리움에 대해서 정리해 보려고 한다. 이더리움이 동작하는 방식 등에 대해서 정리하기 전에 간단히 이더리움이 왜 등장하게 되었는지, 어떤 구조를 가지고 있는지 알아보려고 한다.


1. 이더리움 개요

 이더리움의 개념은 2013년 11월에 Buterin이라는 사람이 처음으로 도입했다. 이더리움의 main idea는 Turing-complete 언어로 작성된 프로그램을 탈중앙화된 앱을 위한 블록체인 위에서 실행할 수 있게 만드는 것이었다.

 

 이더리움과 이전까지 정리했던 비트코인의 공통점부터 알아보자.

  • P2P 네트워크 기반
  • 전자서명과 해시 같은 암호학 기반
  • 디지털 화폐 기반

즉, 이더리움은 비트코인과 동일하게 P2P 네트워크를 기반하여 탈중앙화를 만족시켰고, 전자서명과 해시같은 암호학을 통해 보안을 지켰으며 디지털 화폐를 사용하는 플랫폼이다.

 

 그렇다면, 비트코인과의 차이점은 무엇이 있을까?

  • 이더리움은 비트코인과 다르게 payment 네트워크 형성이 주 목적이 아니다.
  • 이더리움의 디지털 화폐 ether는 네트워크 사용을 위한 수수료를 지불하는 utility currency의 성격을 가진다.
    • 즉, 비트코인의 BTC는 가치 저장 수단에 가까웠다면, ether는 가치 저장 수단 기능을 가지고 있으면서 시스템 내부 동작을 위한 실행 비용을 지불하는 실용적 통화 역할을 동시에 한다.
  • 이더리움의 보편적인 목표는 programmable 블록체인이다.
    • 비트코인의 script language는 turing-complete하지 못하다. 즉 복잡한 코딩을 수행하는 데 제약이 있다.
    • 그렇지만, 이더리움에서는 코드를 스마트 컨트랙트로 작성해 EVN(Ethereum Virtual Machine) 위에서 동작시킬 수 있다. 즉, 이더리움은 general-purpose 컴퓨터 역할을 할 수 있는 블록체인이라고 불릴 수 있다.

 기존에는 블록체인 기반 애플리케이션을 만드릭 위해 개발자가 P2P 네트워크, 블록체인 데이터 구조, 합의 알고리즘 등을 직접 구현해야 했다. 하지만 이더리움은 이러한 기반 기술을 모두 abstration해서 제공해 주기 때문에 개발자는 자신이 작성한 서비스 로직만 EVN에서 실행할 수 있다.


2. 이더리움 - 트랜잭션 기반 State Machine

 비트코인의 블록체인은 비트코인과 그 비트코인의 ownership을 추적하기 때문에, 분산 합의 state machine이라고 불린다. 정확히 말하면, 트랜잭션(코인의 소유권을 변경하는)이 비트코인 전체 state의 변화를 가져오기 때문이다. 

 

 이더리움은 비트코인과 동일하게 분산 state machine이지만, 비트코인과 다르게 currency의 ownership만 추적하는 것이 아니라 일반적인 상태 변화 전체를 추적해야 한다. 그 이유는, 이더리움에서는 스마트 컨트랙트 코드가 실행되고, 코드 실행 결과는 입력 값과 내부 로직에 따라 다양한 데이터의 변경을 일으킬 수 있기 때문이다.

 

 즉, 이더리움에서는 코드 실행이 상태를 바꾸는 하나의 트랜잭션으로 간주되기 때문에, 전체 state 변화를 반영하기 위해 계정 상태와 저장소(storage)의 state transaction을 모두 알고 있어야 한다.

 

 다음 그림 예시를 한 번 살펴보자.

위 그림은 이더리움의 State를 트랜잭션을 발생시킨 결과 변화된 모습을 나타낸 것이다. 위 그림에 대해서 간단히 설명하면 다음과 같다.

  • 왼쪽의 State는 트랜잭션 실행 전 상태이다.
  • 14c5f8ba는 1024 이더리움을 가지고 있고, 트랜잭션을 보면 bb75a980으로 10 eth를 보낸다고 나와있다.
  • 그리고 transaction의 데이터에 2, Charlie값이 들어가 있다.
  • 이는 트랜잭션 실행 전 상태의 bb75a980의 코드가 사용하는 입력값(data field)로, 이 데이터로 인해 bb75a980의 storage 값이 변경되게 된다.
  • 이는 State 변경 후 상태인 오른쪽 bb75a980을 살펴보면 알 수 있다.
  • 트랜잭션 실행 전 상태의 나머지 두 부분은 트랜잭션 실행 결과 바뀌는 값은 없다.

3. 이더리움 - EVM(Ethereum Virtual Machine)

 다음으로 살펴볼 것은 바로 이더리움의 핵심인 EVM이다. Ethereuem은 앞서 정리했듯 Turing Complete한 특징을 만족한다. 이를 만족하기 위해선, 코드를 실행시키기 위한 주체가 존재해야 되는데 이 주체가 바로 EVM이다.

 

 EVM은 smart contract를 실행한다. EVM은 gas 단위로 미리 정해진 모든 명령어를 실행시킨다. 트랜잭션이 smart contract를 실행시키면, 트랜잭션에는 gas의 상한선이 포함되어 있을 것이다. 이 gas가 바로 smart contract를 실행하기 위해 소비되는 값이다. EVM은 gas의 양이 명령어를 실행할 gas보다 적다면 그 즉시 실행을 중지하고, 남은 연산은 더 이상 처리되지 않는다.

 

+) 이더리움은 smart contract가 언제 종료될지 또는 얼마나 길게 실행될지 예측할 수 없다. 이는 곧 DoS 공격에 취약하다는 단점이 존재한다고 할 수 있다. 그렇지만, smart contract를 실행할 때마다 gas가 필요하기 때문에 공격자도 DoS 공격을 지속하려면 gas 비용을 계속 지불해야 한다. 따라서 gas 메커니즘은 과도한 연산을 이용한 DoS 공격을 자연스럽게 억제하는 역할을 한다.


4. Decentralized Applications(DApps)

 이더리움은 앞서 Dapps을 실행시키고, 프로그래밍하기 위한 플랫폼이라고 정리했다. Dapp은 간단하게 smart contract를 핵심 로직으로 사용하는 애플리케이션이라고 할 수 있다. 즉, 웹으로 치면 smart contract가 백엔드 로직에 해당하고, 사용자가 사용하는 웹 인터페이스는 별도로 존재한다.

 

 넓은 의미에서 Dapp은 탈중앙화, P2P 환경에서 제작된 웹 애플리케이션으로 정의할 수 있다. 추가로 많은 Dapp은 다른 탈중앙화 componentes를 포함할 수 있다.

ex) decentralized storage protocol and platform(DB와 같은 기능)

ex) decentralized messaging protocol and platform(메시지나 데이터를 주고받기 위한 components)


5. Ethereum과 Web 3.0

 이더리움의 발전과정은 Web 1.0에서 Web 3.0으로 발전하는 과정이랑 비슷하다고 보면 된다. 이를 차례대로 정리하면 다음과 같다.

  • Web 1.0: Read Only(문서 공유 목적)
  • Web 2.0: Read - Write(유튜브와 같이 영상 시청 등이 주이지만 업로드(write)도 가능한 상태, 그렇지만 해당 콘텐츠의 소유권은 Google과 Youtube같은 중앙 서버에 있다.)
  • Web 3.0: Read-Wrtie-Own(Web 2.0과 다르게 사용자가 본인의 컨텐츠를 직접 소유)

 Web 3.0은 새롭고 더 나은 인터넷과 그 core를 제시하고, 블록체인, 암호화, NFT 등을 사용해 사용자가 자신의 콘텐츠 소유권을 보장하는 방식으로 동작한다. Web 3.0의 핵심 원칙은 다음과 같다.

  1. Decentralized: 콘텐츠의 소유는 그것을 만든 사람에게 있게 보장한다.
  2. Permissionless: 모든 사람이 동등하게 Web3에 참여할 수 있다.
  3. Native Payements: 암호화된 자체 화폐를 사용한다.(e.g. 비트코인, 이더리움 등)
  4. Trustless: 제 3자를 믿기보다는 경제 메커니즘과 보상 제도를 사용해 운영한다.

6. 비트코인과 이더리움

 비트코인과 이더리움을 비교하여 설명하는 방식중에 비트코인은 금에, 이더리움을 원유에 비유하여 차이를 설명하는 경우도 있다. 이 경우는 정확한 비유는 아니지만, 이해를 위해 설명하면 다음과 같다.

  • 비트코인:
    • 금처럼 가치 저장의 역할을 한다.
  • 이더리움:
    • 원유와 같은 오일처럼 다양한 일을 할 수 있는 기반이 된다.

7. Dapp과 App

그럼 우리가 일반적으로 사용하는 App과 DApp에는 어떤 차이가 있는지 한 번 정리해 보려고 한다.

- DApp

  • 가동성: 일부 블록이 다운되어도 다른 블록들이 동일한 정보를 보유하고 있어서 영향을 받지 않고 작동된다.
  • 사용자 비용: 기능을 사용하기 위해서는 토큰이나 코인이 필요하다. 이더리움에서는 gas라는 단위가 필요하다.
  • User-friendly: 지갑, 토큰, 거래 등 현재까지는 사용자가 학습하고 친숙하게 사용하는 데 시간이 필요하다.
  • 거래 속도: 사용하는 블록체인마다 차이가 있지만 보통 느리게 처리된다.
  • 구동 방식: Smart Contract를 사용하여 명령을 실행하고 정보를 가져온다.

- App

  • 가동성: 앱을 동작시키는 서버나 컴퓨터가 다운되면 실행이 멈춘다.
  • 사용자 비용: 앱을 사용하는 것 자체는 대체로 무료이다.
  • User-friendly: 일반적으로 학습할 필요없이 사용 가능할 정도로 편리하다.
  • 거래 속도: 인터넷이나 하드웨어 속도에 따라 차이가 존재하지만, 대체로 DApp보다는 빠르다.
  • 구동 방식: 서버와 앱에 프함된 프로그래밍에 따라 서버와 앱 사이 정보 전송을 통해 동작한다.

이처럼, 아직까지 DApp에는 사람들의 마음을 움직일 Killing Point가 존재하지 않는다. 따라서 아직까지는 App 방식을 더욱 많이 사용하고 있다.