Study/Blockchain

[Ethereum] #01_Ethereum Intro 이더리움

xielle 2024. 7. 19. 15:47

[Blockchain] 시리즈는 블록체인 기술과 스마트컨트랙트의 컨셉에 대해 이해하는 것을 목표로 이론을 공부하고 간단한 실습을 진행해보았다. Blockchain 시리즈에서 다룬 이론내용은 특정 네트워크에 specific하지 않다. 특히 블록체인 구조와 같은 경우, 비트코인과 이더리움의 구조는 상당히 다르다. 합의 알고리즘도 네트워크마다 다르고, 같은 알고리즘 기반이라고 하더라도 알고리즘에 따라 합의가 이루어지고 거래가 'finalized' 상태가 되는 과정은 네트워크마다 조금씩 다르다. 즉, network-specific하지 않은 내용을 다루었던 지난 시리즈만으로는 Dapp을 개발하기에 부족하다.

 

[Ethereum]시리즈에서는, 이더리움의 블록과 합의알고리즘 등 이더리움 네트워크에 대해 공부하고 스마트컨트랙트를 배포해볼 예정이다.

이더리움에 대한 내용은 모두 Ethereum Yellow Paper를 기반으로 한다.

https://ethereum.github.io/yellowpaper/paper.pdf

 

 


 

Ethereum 이더리움

WHAT IS ETHEREUM?
"Ethereum is a blockchain with a computer embedded in it. It is the foundation for building apps and organizations in a decentralized, permissionless, censorship-resistant way."

_Intro to ethereum, ethereum docs

 

이더리움 공식문서에서는 이더리움을 위와 같이 설명한다. 번역하면 '컴퓨터가 내장된 형태의 블록체인'이다.

'컴퓨터'라니, 무슨 말일까?

 

Ethereum Virtual Machine, EVM

Ethereum Virtual Machine

이더리움의 세계에는 하나의 표준컴퓨터가 존재하는데, 이를 이더리움 가상 머신(Ethereum Virtual Machine, EVM)이라고 한다. EVM은 물리적인 컴퓨터가 아니라, 이더리움 네트워크에서 실행되는 소프트웨어 기반의 가상 컴퓨터이다.

그러니까 EVM은 이더리움 네트워크의 참여자 노드들처럼 물리적으로 존재하며 상호작용하는 어떤 중앙 컴퓨터가 아니라, 모든 이더리움 노드에서 코드가 일관되게 그리고 안전하게 실행되는 탈중앙화된 가상 환경이다. 모든 노드는 EVM을 통해 스마트 계약을 처리한다.

 

이더리움 네트워크에 참여하는 모든 노드는 EVM의 상태를 복사해 저장하고, 어떤 노드도 이 컴퓨터가 임의의 계산을 수행하도록 요청을 broadcast할 수 있다. 요청이 broadcast되면 네트워크의 다른 참여자들이 이를 검증하고, 유효성을 확인하고, 계산을 수행한다. 이 실행은 EVM의 상태를 변화시키고 이 변화는 전체 네트워크에 전파된다.

계산 요청은 transaction requests(거래 요청)라고 하며, 모든 거래 기록과 EVM의 현재 상태는 블록체인에 저장된다. 이 블록체인은 모든 노드에 의해 저장되고 동의된다.

 

EVM은 VM(Virtual Machine, 가상머신)이고, 또 Turing Completeness(튜링-완전)하다. 튜링-완전한 머신이라는 것은 어떤 복잡한 계산도 수행할 수 있는 머신이라는 것이다. 이 점이 바로 이더리움을 비트코인과 구별짓는 가장 큰 요소이다. 비트코인은 튜링 불완전(Turing incomplete)하여 기능이 제한되지만, 이더리움은 튜링 완전(Turing complete)하여 훨씬 더 다양한 기능을 지원한다. 

 


ETH 이더

이더(ETH)는 이더리움의 암호화폐 단위이다. 

거래 요청을 하는 모든 참가자는 네트워크에 일정량의 ETH를 보상으로 제공해야 한다. 네트워크는 이 보상의 일부를 소각하고 나머지를 거래를 검증하고 실행하며 블록체인에 기록하고 네트워크에 broadcast하는 작업을 수행하는 자에게 보상으로 지급한다. 이 때 지불되는 보상을 gas라고 하는데, gas는 계산에 필요한 자원에 따라 결정된다.

이런 보상 시스템은 노드가 계산에 필요한 자원에 대해 비용을 지불하도록 함으로써 악의적인 참가자가 무한 계산이나 자원 집약적인 스크립트 실행을 요청해 네트워크를 혼잡하게 만드는 것을 방지한다. 

ETH는 네트워크에 암호 경제적 보안을 제공하는 세 가지 주요 방법으로 사용된다.

  • Vlidator Rewards
    블록을 검증하거나 다른 검증자들의 부정행위를 지적한 검증자에게 보상으로 지급된다
  • Staking
    검증자들이 부정행위에 대비해 담보로 스테이킹된다. 검증자가 부정행위를 시도하면 그들의 ETH가 소각될 수 있다
  • Voting
    새로 제안된 블록에 대해 '투표'해야할 일이 있을 때, 가중치로서 작동하며 합의 알고리즘의 포크 선택 부분에 기여한다

 

PoS(Proof of Stake)

지분 증명(Proof-of-Stake, PoS) 방식은 블록의 등록에 있어 주어진 문제를 푸는 '작업'을 하도록 하는 대신에, 네트워크에 일정량의 '지분'을 가지도록 하는 증명방식이다.

 

어려운 문제를 풀게 해 특정 노드가 마음대로 블록을 등록하지 못 하게 함으로써 네트워크를 혼란시키는 것을 방지하는 PoW의 작동방식과 달리, 노드들로 하여금 네트워크에 가치 있는 어떤 자산을 넣어놓게 함으로써 네트워크가 파괴되면 그들의 자산 또한 파괴될 수 있다는 점을 이용하여 노드의 부정직한 행동을 방지하는 것이다. 쉽게 말하자면, 일종의 보증금이라고 생각하면 된다.

 

이더리움의 지분 증명에서는 검증자들이 ETH를 이더리움의 스마트 계약 형태로 명시적으로 stake(스테이킹)한다.

검증자는 네트워크를 통해 전파된 새 블록이 유효한지 확인하고, 때때로 새로운 블록을 생성하고 전파하는 책임을 진다. 만약 그들이 네트워크를 속이려 하면(예를 들어, 하나의 블록만 보내야 하는 상황에서 여러 블록을 제안하거나, 상충하는 증명을 보내는 등), 일부 또는 전체 스테이킹된 ETH가 파괴될 수 있다.


 

이렇게 EVM, ETH, PoS 등 이더리움을 다른 네트워크와 구분짓는 주요 특징에 대해 알아보았다.

다음 장에서부터는, 이더리움 네트워크를 이루는 각 특징에 대해 자세히 다룬다.