이더리움(Ethereum)

adc0612·2022년 10월 7일
0

블록체인

목록 보기
5/11

이더리움(Ethereum)

이더리움은 블록체인 시스템을 기반으로 전 세계 수많은 노드에 의해 운영이 되는 블록체인 플랫폼이다.
이더리움은 다른 암호화폐처럼 블록체인을 기반으로 작동하며, 이더(ETH)라는 화폐를 사용한다.
또한 비트코인처럼 이 이더(ETH)를 구매하거나 판매할 수 있다.
이더리움의 가장 큰 차이점은 사용자들이 블록체인 위에서 실행되는 애플리케이션을 구축하고 사용할 수 있다.

디앱(dApp, Distributed Application)

계약에 대해 중개자를 거치지 않고 당사자 간 직접 계약을 체결할 수 있게 해주는 전자계약 시스템을 스마트 컨트랙트(Smart Contract)라고 한다.
이더리움은 일종의 스마트 컨트랙트 플랫폼으로, 블록에 코드를 담아 블록체인에 올리고, 이더리움 가상머신(EVM, Ethereum Virtual Machine)을 통해 블록에 있는 코드를 실행시킬 수 있다.
이렇게 블록체인 위에서 실행되는 앱을 디앱이라고 한다.

이더리움의 가치

  • 이더리움은 분산화된 시스템 전반에 걸쳐 코드를 실행한다는 특징으로 인해 이더리움 플랫폼 위에서 돌아가는 프로그램은 외부 당사자에 의해 변조될 수 없다.

  • 모든 종류의 프로그램은 이더리움 블록체인에 추가되고, 프로그래밍 될 수 있으며, 따라서 해당 코드를 변경할 수 없다. 블록체인 상 데이터는 모두에게 공개되어 있으므로, 사용자는 이를 투명하게 살펴볼 수 있다. 누구나, 어디에서든 오프라인으로 전환될 수 없는 애플리케이션을 출시할 수 있음을 의미한다.

  • 이더리움의 자체적인 화폐인 이더(ETH)에 가치를 저장할 수 있다. 이를 통해 각 애플리케이션에 토큰 이코노미를 설계할 수 있다.

이더리움 VS 비트코인

이더리움비트코인
플랫폼이더리움 블록체인은 다양한 애플리케이션이 이더리움 위에서 서비스되는 것을 지원하는 범용 플랫폼
스마트 컨트랙트(Smart Contract)와 이더리움 가상머신(EVM, Ethereum Virtual Machine)를 포함
비트코인은 블록체인에 기반한 디지털 화폐 시스템
알고리즘비트코인과 같이 PoW(Proof of Work) 합의 알고리즘을 사용하다가 이더리움 2.0부터 PoS(Proof of Stake) 합의 알고리즘으로 전환함PoW(Proof of Work) 합의 알고리즘을 사용
계정 기반 설계계정(Account) 기반으로 설계되었기에, 사용자의 계정과 관련된 정보 또한 블록체인에 저장된다.비트코인은 계정 기반으로 설계되지 않기에, 사용자는 자신의 비트코인 주소만 가지고 있을 뿐, 사용자에 대한 그 어떤 정보도 블록체인 상에 저장되지 않는다.
UTXO(Unspent Transaction Outputs)라는 것을 활용하여 사용자의 잔고를 파악한다.

PoW(Proof of Work)
네트워크 참여자가 블록 생성(Mining)을 위해 컴퓨팅 연산 기반의 경쟁에 돌입하고, 가장 많은 해시파워를 제공한 노드가 블록을 생성할 수 있게 하는 방식이다.
많은 에너지와 전력이 소모되는 단점이 있다.

블록체인 거래

현재 블록에는 n-1번째 블록의 정보가 있지만, 이전 블록의 정보는 Hash화 되어 있으므로 과거의 내역을 ‘검증'할 수 있지만 과거의 내역들을 확인할 수는 없다.
그러므로 특정한 방법으로 잔액 조회를 구현한다.

이더리움 - Account

이더리움은 다양한 상태 정보를 관리하기 위해 내부적으로 어카운트(Account)라는 오브젝트를 사용하고 있으며, 이는 EOA와 CA로 나누어진다.

EOA(Externally Owned Account. 외부 소유 어카운트)

EOA는 사용자 계정으로 개인키(Private Key) 정보를 가지고 있다.
지갑(Wallet) 애플리케이션을 통해 개인 키를 생성하고, 생성된 개인 키를 통해 공개 키를 만들고, 공개 주소(Address)를 생성해 계정을 생성한다.
EOA는 자체적으로 트랜잭션을 생성하고,다른 계정과 이더(ETH)를 송수신하고, 스마트 컨트랙트에 트랜잭션을 보낼 수 있다

CA

CA(Contract Accounts)는 컨트랙트 계정으로 컨트랙트 코드에 의해 통제되는 계정 정보다.
CA는 EOA와 다르게 개인키가 존재하지 않고, 스마트 컨트랙트를 블록체인에 배포할 때 생성된다.
EOA나 다른 컨트랙트의 호출을 받아서 트랜잭션을 발생시키며, 자체적으로 새로운 트랜잭션을 생성할 수 없다.
스마트 컨트랙트에 접근하기 위한 주소가 곧 컨트랙트 계정을 의미한다.

트랜잭션을 생성하기 위해서 디지털 서명(digital signature) 정보가 필요하며, 디지털 서명을 하기 위해서는 반드시 개인 키 정보가 필요하다.

비트코인 - UTXO(Unspent Transaction Output)

비트코인은 이더리움의 어카운트(Account) 모델과 달리 계정이나 잔고가 없고, 블록체인에 기록된 소비되지 않은 출력 값을 통해 거래의 유효성을 검사하여 코인의 존재 여부를 확인한다.
코인이 지갑(Wallet)에 저장되는 것이 아니라, UTXO(Unspent Transaction Outputs)에 저장된다.

UTXO는 아직 쓰지않은 잔액의 의미를 가진다. 비트코인 네트워크에서 잔액은 존재하지 않고, 트랜잭션에 의한 결과물들의 합을 잔액이라는 개념으로 사용하는데 이를 UTXO데이터로 대체한다. 각 지갑의 UTXO들은 해당 지갑 소유주에 대해 공개키 암호로 잡겨있다.

UTXO 거래 예시

A, B가 F에게 각 1BTC, 2BTC를 송금해주고 C, D, E가 G에게 3BTC, 4BTC, 10BTC를 송금을 하면 F와 G는 각 UTXO가 2개, 3개가 되어 총 UTXO가 5개 생성된다.

실제로 만원짜리를 찢어서 2천원, 4천원과 같이 사용할 수 없는 것 처럼 UTXO 또한 찢어 사용할 수 없고 비트코인 지갑이 사용할 수 있는 UTXO를 찾아 데이터를 전송하는 역할을 해준다.

Account VS UTXO

Account

Account는 은행 계좌 혹은 체크카드와 유사

장점:

  • 단순성(Simplicity)
    이더리움은 복잡한 스마트 컨트랙트 개발자, 특히 국가 정보가 필요하거나 여러 당사자가 참여하는 개발자의 이익을 위해 보다 직관적인 모델을 선택했다. UTXO의 상태 비저장 모델이 트랜잭션에 상태 정보를 포함하도록 강제하므로 컨트랙트의 설계가 불필요하게 복잡해지는 것과 대비를 보인다.

  • 효율성(Efficiency)
    단순성과 더불어 전송 계정이 거래 비용을 지불하기에 충분한 잔액을 가지고 있는지 확인하기만 하면 되므로 더욱 효율적이다.

단점:

  • 이중 지불
    이중 지불 공격에 노출될 수 있다. 공격에 대응하기 위해 점증적인 nonce를 구현한다. 이더리움에서, 모든 계정은 공개적으로 볼 수 있는 nonce를 가지고 있고, 거래가 이루어질 때마다 nonce는 하나씩 증가하게 되므로 동일한 트랜잭션이 두 번 이상 제출되는 것을 방지할 수 있다.

UTXO

UTXO는 실물경제에 화폐와 유사

장점:

  • 이중 지불 방지
    트랜잭션을 발생시키면 해당 UTXO는 검증을 받은 후 TX Pool에 들어간다. 그러므로 이중지불이 발생하면 채굴자들은 Pool에서 UTXO 검사 후 사용 기록이 있다면 해당 거래를 무효화 할 수 있다. 이와 같은 이유로 하이퍼레저 패브릭(Hyperledger Fabric)에서도 UTXO를 사용한다.

  • 잔고의 증명
    UTXO는 거래에 대한 유효성을 검증하기가 매우 쉽습니다. 일반적으로 이더리움 같은 경우는 트랜잭션들을 모두 검증 및 확인하여 최종적으로 잔고를 유추하지만 UTXO는 해당 사용자의 UTXO만 확인하면 되기 때문에 그럴 필요가 없다.

단점:

  • UTXO의 과도한 생성
    이더리움은 결과적으로 잔고 하나만 점검하면 끝이지만, UTXO 방식을 채용하는 코인들은 흩어져 있는 UTXO를 모두 모아야 되며 소액 결제를 엄청 자주 하거나, 채굴로 이자를 받게 되면 과도한 UTXO로 인해서 불필요한 수수료를 내야할 수 있다.

이더리움 2.0

이더리움 2.0은 이더리움 네트워크의 확장성을 개선하며, 탈중앙성, 보안성 모두를 헤치지 않고 트릴레마를 해결하고자 하는 거대한 업데이트다.

PoS 합의 알고리즘

이더리움 블록체인은 기존의 PoW(작업 증명) 합의 알고리즘에서, 더 빠르고 에너지 효율적인 PoS(지분 증명) 방식으로 전환했다.
PoW는 채굴자들의 컴퓨팅 파워(CPU, GPU, 채굴기 등)를 기반으로 경쟁해야 하는 것과 달리, PoS는 참여자가 보유한 총 이더(ETH)량와 이더가 적립된 시간에 비례하여 검증자를 랜덤으로 선택한다.

이더리움 네트워크 상에 최소 32이더를 스테이킹 한 참여자에 한해 블록을 생성하거나 검증할 수 있다.

PoW와는 달리 블록을 채굴하는 것이 아니라, 랜덤으로 선택된 때에는 블록을 만들고, 그렇지 않을 때는 다른 블록을 검증하게 된다.
일련의 과정 이후 네트워크에 블록이 추가되면 각 검증자의 지분에 비례해서 보상이 이루어진다.

반면, 최소 조건을 만족하는 누구나 블록을 제안할 수 있기 때문에 더 큰 패널티를 도입했다.
검증에 실패하거나 악의적인 트랜잭션을 증명하는 경우 보유한 ETH의 일부를 잃을 수도 있다.

샤드 체인

블록체인 네트워크의 전체 원장을 보관하기 위해 이더리움 노드는 이더리움 전체의 트랜잭션을 동기화하고, 연산, 저장, 처리 작업을 수행한다.
이로인해 이더리움 네트워크의 속도가 느려져서 샤드라는 개념을 도입했다.

샤드(Shard)는 분산 데이터베이스의 대표적인 기술로써 하나의 데이터베이스 테이블을 여러 개의 조각으로 나누어 분산 저장 및 관리하는 기술

이더리움은 샤드를 블록체인에 도입하여, 하나의 블록체인에서 전체 트랜잭션을 처리하는 방식이 아닌 여러 개의 조각에 해당하는 소규모 샤드 체인들이 트랜잭션을 병렬적으로 처리하게 하는 것을 목표로 한다. 이를 통해, 1초당 트랜잭션 처리량, 즉 TPS를 개선하고자 한다.

샤드 체인을 이용할 경우 트랜잭션 속도 뿐 아닌 각 노드의 역할이 샤드별로 분산됨에 따라 접근성 및 보안성도 향상될 수 있다.
예를 들어, 메인 체인이 해커의 공격을 당하더라도 검증은 각 샤드의 지역별로 이루어지기 때문에 더 안전하다고 할 수 있다.

비콘 체인

비콘 체인은 이더리움 블록체인의 합의 알고리즘을 PoW에서 PoS로 전환하기 위해 2020년 12월 1일에 도입된 체인이다.
각 샤드 체인들이 병렬적으로 작동하면서도 동기화를 유지할수 있도록 돕는 거래 검증 시스템입니다.

이더리움 2.0에서 비콘 체인은 PoS의 검증인들을 관리하고, 제안된 블록을 투표에 부쳐 검증인에게 전달하며, 참여한 검증인에게 보상과 패널티를 진행하는 등의 역할을 한다.

비콘 체인은 추후 데이터 가용성 계층(data layer)에 해당하는 샤드 체인들의 원활한 합의가 가능하게 한다.

0개의 댓글