insight_page.researchinsight_page.xangle_digest

Apr 11, 2022

블록체인 기록 보관 방식의 차이점: 비트코인(UTXO) vs. 이더리움(계좌/잔고)

pick

[Xangle Digest]

작성자: Crypto_Gang

요약

  • 블록체인 상에서 거래는 1) UTXO 모델 또는 2) 계좌/잔고 모델을 사용하여 기록 보관됨
  • 비트코인은 거래의 검증을 위해 UTXO 모델을 사용하며, 이는 실물경제에서 현금과 유사
  • 반면, 이더리움은 계좌/잔고 모델을 사용하는데 해당 모델은 은행 계좌 혹은 체크카드와 유사

현재 블록체인에는 크게 분류하면 두 개의 기록보관 모델이 존재한다. 바로 비트코인의 UTXO 모델과 이더리움의 계좌/잔고(Account/Balance) 모델이다. 두 모델 차이는 블록체인이 지향하는 바에 기인한다. ‘Electronic Cash’를 지향했던 비트코인과 ‘Smart contract platform’을 지향했던 이더리움은 왜 각기 다른 기록 보관 모델을 택했을까?

비트코인의 UTXO 모델

UTXO란 Unspent transaction Output의 약자로 소비되지 않은 거래 출력값을 의미한다. 비트코인의 UTXO 모델은 거래 후 산출되는 출력값(output)을 비순환 그래프(DAG, Directed Acyclic Graph)에 저장하여 원장에 기록한다.

예를 들어, A의 지갑에 있는 10 BTC가 하나의 UTXO에 기록되어 있다고 하자. (이해의 편의를 위해 거래 수수료는 제외하였다.) A가 B에게 1.5 BTC를 보낼 때, 10 BTC가 하나의 UTXO에 입력(input)된다. 그리고 이 10 BTC는 트랜잭션에서 1.5 BTC와 8.5 BTC, 두 개의 출력값(output)으로 분리된다. 그리고 8.5 BTC UTXO는 다시 A의 지갑으로, 1.5 BTC UTXO는 B의 지갑으로 전송된다. 이 때 B에게 전송된 1.5 BTC는 B 지갑에 이미 존재하고 있는 UTXO와 함께 보관되며, 사용자 B가 잔액을 확인할 때는 모든 UTXO의 총합으로 확인이 가능하다. (아래 그림 참조)

이 모델은 현금 거래와 유사하다. 우리가 5만원을 가지고 있다면, 그 5만원을 오만원권 한 장, 혹은 만원권 네 장과 오천원권 두 장으로 가지고 있을 수 있다. 만약 오만원권 한 장이 있는데 1만 5천원을 결제한다면, 우리는 오만원권 한 장을 지급하고 거스름돈으로 만원권 세 장과 오천원권 한 장을 받는다. 이러한 현금권 한 장, 한 장이 실물경제의 UTXO인 것이다. 다만 현금은 천원권, 만원권 등 약속된 단위가 있지만 비트코인의 UTXO는 임의의 값(ex. 2.35 BTC)을 가질 수 있다는 점이 차이점이다.

그렇다면 이러한 비트코인은 왜 UTXO 모델을 사용하는 것일까? UTXO 모델은 Bitcoin 노드가 블록체인의 모든 트랜잭션을 효율적으로 검증할 수 있다는 장점이 있다. 또한 노드가 멤풀(mempool) 또는 블록의 일부로 트랜잭션을 수신하면 사용 중인 UTXO가 유효하고 지출되지 않았는지 확인할 수 있어서 디지털 통화의 핵심 공격지점인 이중 지불 문제를 해결할 수 있다. 그리고 데이터가 분할되어 있기 때문에 샤딩이나 레이어 2 솔루션과 같은 기술을 배치하는 데 더 적합한 모델을 가지고 있으며 데이터 병렬 처리가 가능하다.

그러나 UTXO 모델도 한계가 존재한다. UTXO 모델은 복잡한 연산을 최소화했기 때문에 프로그래밍 활용 가능성이 낮다. 그렇기 때문에 UTXO 모델에서는 스마트 컨트랙트를 활용하기 어렵다. ‘Smart Contract Platform’을 지향한 이더리움이 UTXO 모델을 채택할 수 없었던 이유다. 다음에 나올 이더리움 계좌/잔고 모델은 이러한 UTXO 모델의 단점을 극복하기 위해 만들어졌다.

이더리움의 계좌/잔고(Account/Balance) 모델

비트코인의 UTXO 모델이 현금과 유사하다면, 이더리움의 계좌/잔고 모델은 은행 계좌 혹은 체크카드의 사용과 유사하다. 사용자의 지갑은 은행 계좌와 같이 보유 금액이 연산되어 표기된다. 예를 들어, A가 10 ETH를 가지고 있으며 B에게 1.5 ETH를 보내고자 한다면, 1.5 ETH가 연산을 거쳐 전송되어 트랜잭션 후 A의 지갑은 8.5 ETH, B의 지갑에는 1.5 ETH가 더해진다. (아래 그림 참조)

계좌/잔고 모델의 지갑은 두 종류가 있다. 개인의 지갑 주소와 스마트 컨트랙트 자체 지갑 두 종류이다. 즉, 스마트 컨트랙트가 배포되면 스마트 컨트랙트 제어 지갑이 생성되어 스마트 컨트랙트 스스로가 자금을 보유할 수 있다.

계좌/잔고 모델은 스마트 컨트랙트를 더 손쉽게 도입할 수 있다는 장점을 갖는다. 또한 트랜잭션의 크기가 UTXO 모델에 비해 작기 때문에 스토리지 측면에서도 이점이 있다. 현재 이 계좌/잔고 모델은 이더리움뿐만 아니라 솔라나, 테라, 아발란체 등 대부분의 스마트 컨트랙트 플랫폼에서 사용하고 있다.

그러나 이더리움의 계좌/잔고 모델도 단점이 존재한다. 계좌/잔고 모델은 코드의 의미론(Semantics)이 너무 복잡해져서 컨트랙트 작성자의 비용이 많이 소모된다. 또한 따로 스마트 컨트랙트 계정을 생성하거나 사용하기 때문에 그에 대한 수수료를 지불해야 되기 때문에 트랜잭션에 비용이 많이 든다는 단점이 있다. 또 다른 문제점으로는, 스마트 컨트랙트 자체의 보안 이슈가 있다. 계좌/잔고 모델은 UTXO 모델과 달리 연산을 거치기 때문에 스마트 컨트랙트 코드에서 취약점이 발견된다면 연산에 오류가 생겨 문제가 생길 수 있다. 따라서 계좌/잔고 모델은 UTXO 모델에 비해 보안이 취약하다는 문제가 있다.

<주의사항>

본 글에 기재된 내용들은 작성자 본인의 의견을 정확하게 반영하고 있으며 외부의 부당한 압력이나 간섭 없이 작성되었음을 확인합니다. 작성된 내용은 작성자 본인의 견해이며, (주)크로스앵글의 공식 입장이나 의견을 대변하지 않습니다. 본 웹사이트를 통해 제공되는 정보는 투자 자문이나 권유에 해당하지 않습니다. 별도로 명시되지 않은 경우, 투자 및 투자전략, 또는 기타 상품이나 서비스 사용에 대한 결정 및 책임은 사용자에게 있으며 투자 목적, 개인적 상황, 재정적 상황을 고려하여 투자 결정은 사용자 본인이 직접 해야 합니다. 보다 자세한 내용은 금융관련 전문가를 통해 확인하십시오. 과거 수익률이나 전망이 반드시 미래의 수익률을 보장하지 않습니다.