# 🇰🇷 EUTXO 핸드북 (통합본)

**URL:** <https://forum.cardano.org/t/eutxo/115363>\
**Category:** Translations\
**Tags:** korean, cardano, translation, eutxo\
**Created:** [9 March 2023 02:47 UTC](https://forum.cardano.org/t/eutxo/115363 "2023-03-09T02:47:02Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![CryptoVeri](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.cardano.org/cryptoveri/32/91508_2.png) [@CryptoVeri](https://forum.cardano.org/u/CryptoVeri)\
**Post date:** [9 March 2023 02:47 UTC](https://forum.cardano.org/t/eutxo/115363/1 "2023-03-09T02:47:02Z")

</div>

# EUTXO 핸드북

- 소개
- 블록체인 회계 모델이란 무엇인가?
- UTXO 모델 vs 계정/잔고 모델: 간략한 개요
  - UTXO
    - UTXO 모델의 ‘거스름돈’ 개념

  - UTXO 모델의 장점
  - 계정/잔고 모델

- EUTXO 모델
  - 트랜잭션에 대해 해야할 이야기: 출력과 입력
    - 트랜잭션 출력
    - 트랜잭션 입력
    - UTXO의 작동 방식

  - EUTXO: 카르다노의 선택 배경
  - 플루투스 코어
  - EUTXO 모델은 UTXO를 어떻게 확장하는가?
    - EUTXO는 2022년에 Cardano를 확장하기 위한 발판

- 비영구적 손실에 대해 항상 알고 싶었지만 묻기 두려웠던 모든 것
  - 비영구적 손실: 정의
  - AMM vs 오더북
    - AMM
    - 오더북

  - 비영구적 손실의 예측 (불)가능성
  - UTXO 기반 체인 vs 계정/잔고 체인의 비영구적 손실
  - 비영구적 손실에 대한 보루로서의 EUTXO 및 오더북 DEX 설계
  - 글로벌 상태가 EUTXO 기반 체인에서 문제가 되지 않는 이유
    - 추가 개선 사항

- 결론: EUTXO 모델이 혁신적이고 적절한 이유는 무엇인가?
- 추가 자료

# 소개

블록체인 네트워크는 복잡한 데이터 구조이다. 거래는 지속적으로 체인을 가로지르며, 기본 원장의 무결성과 신뢰성을 유지하기 위해 신중한 추적과 관리가 필요한 디지털 발자국을 남긴다.

블록체인 세계에는 UTXO 기반 블록체인(예: 비트코인)과 계정/잔고 체인(이더리움 등)의 두 가지 주요 회계 원장이 존재한다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/4/2/42e6d33fe0b1f419709f21b32796a07ebfebf229.png)

Cardano는 EUTXO(Extended Unspent Transaction Output) 회계 모델을 사용하여 스마트 컨트랙트를 처리할 수 있는 기능을 비트코인의 UTXO 모델과 결합한다. EUTXO를 채택하면 Cardano 체인에 스마트 컨트랙트를 쉽게 구현할 수 있다.

EUTXO 모델은 다른 회계 모델에 비해 고유한 이점을 제공한다. 예를 들어 트랜잭션 유효성 검증의 성공 또는 실패는 블록체인 상의 다른 요소가 아닌 트랜잭션 자체와 해당 입력만을 기반으로 한다. 결과적으로, 트랜잭션이 블록체인으로 전송되기 전에 오프체인에서 트랜잭션의 유효성을 확인할 수 있다. 트랜잭션이 필요로 하는 입력을 다른 트랜잭션이 동시에 사용해버리면 트랜잭션이 ​​실패할 수 있지만, 모든 입력이 여전히 존재한다면 트랜잭션은 반드시 성공할 것이다. 이는 트랜잭션이 실행 중간에 실패할 수 있는 이더리움과 극명한 대조를 이룬다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/f/2/f20b4b1471a587d31d8ab4075ad9b491fbfe0cc6.png)

EUTXO를 이해하려면 블록체인 회계 모델이 무엇인지, 왜 필요한지, 기능 및 특성을 이해해야 한다.

![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/0/b/0b2a14de8095bf6906e09b11b141dd9bb108c25d.png)

# 블록체인 회계 모델이란 무엇인가?

모든 회사, 기업 또는 상업 단체는 이익과 손실, 현금 흐름 및 기타 매개변수에 대한 정확한 기록을 유지하기 위해 대차대조표를 필요로 한다. 이 모든 데이터에 대한 신중한 회계를 유지함으로써 회사는 특정 시점의 재무 상태를 한 눈에 파악할 수 있다. 회사의 회계 장부는 또 다른 이점을 제공한다. 자금의 출처와 소유권을 추적할 수 있는 기능이다.

블록체인 네트워크는 또한 누가 어떤 코인을 소유하고 있는지(그리고 얼마나 많은 코인을 소유하고 있는지), 해당 코인이 어디로 가는지, 어떤 코인이 사용되었는지, 어떤 코인이 사용 가능한 상태로 남아 있는지 추적하기 위한 회계 모델이 필요하다.

# UTXO 모델 vs 계정/잔고 모델: 간략한 개요

수십 년 전에는 회계사들이 자금의 이동에 관한 기록을 유지하기 위해 손으로 쓴 실물 장부를 사용했다. 요즘 회사는 이와 같은 전자 버전을 사용한다. 블록체인은 장부의 항목과 꽤 흡사한 트랜잭션을 기록으로 사용하여 출처와 소유권을 추적한다. 이러한 트랜잭션에는 많은 정보(코인의 출처, 코인의 목적지 및 이러한 거래에서 남은 잔액 등)가 포함되어 있다.

다음은 UTXO 및 계정/잔고 모델에 대한 간략한 개요이다.

## UTXO

UTXO 모델에서 자산의 이동은 노드가 트랜잭션이고 에지가 트랜잭션 출력인 유향 비순환 그래프(Directed Acyclic Graph)의 형태로 기록되며, 각 추가 트랜잭션은 UTXO의 일부를 소비하고 새로운 것을 추가한다. 사용자의 지갑은 사용자가 소유한 모든 주소와 관련된 미사용 출력 목록을 추적하고 사용자의 잔고를 계산한다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/d/e/def4d7928c3fe20edc1481e2eb9654fdd2529751.png)

UTXO는 여러 면에서 현금과 유사하다. 다음은 좋은 비유가 될 수 있다.

지갑에 50달러가 있다. 이 금액은 여러 조합으로 구성될 수 있다. 20달러 지폐 2장과 10달러 지폐 1장, 10달러 지폐 4장과 5달러 지폐 2장, 기타 여러 가지 조합. 그러나 순열에 관계없이, 금액($50)은 동일하게 유지된다. UTXO도 같은 방식으로 작동한다. 블록체인 지갑에 있는 잔고(예: 150 코인)는 이전 거래를 기반으로 다양한 UTXO 조합으로 구성될 수 있지만 잔고는 동일하게 유지된다. 즉, 주어진 지갑 주소에 보관된 잔고는 이전 거래에서 사용되지 않은 모든 UTXO의 합계이다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/0/9/0913f1992f611443871b28064c60ea635e4a1d4a.png)

### UTXO 모델의 ‘거스름돈’ 개념

모든 상점의 현금 거래와 마찬가지로 UTXO는 '잔액’을 도입한다. 예를 들어, 지갑에서 50달러짜리 지폐를 꺼낼 때, 15달러짜리 물건을 지불하기 위해 그 지폐를 더 작은 조각으로 찢을 수는 없다. 50달러 지폐 전체를 건네주고 계산원에게서 거스름돈을 받아야 한다. UTXO도 동일한 방식으로 작동한다. UTXO를 더 작은 비트로 '분할’할 수 없다. UTXO는 통째로 사용되며, 거스름돈(잔액)은 더 작은 UTXO 형태로 지갑 주소로 돌려준다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/2/c/2cb19ff0ee597d7eff16954744c0d7c312bd5c1f.png)

### UTXO 모델의 장점

전송되는 UTXO의 크기, 나이 및 양을 확인하고 추적함으로써 블록체인의 사용 및 체인의 재무 활동에 대한 정확한 지표를 추출할 수 있다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/3/d/3d38137e867f8197d8ebcfc0db176df41547dc78.png)

UTXO 모델은 다른 이점도 제공한다. 예를 들어 스마트 컨트랙트 병렬화 및 개인 정보 보호 덕분에 확장성이 향상되었다. 또한 각 UTXO는 통째로 한 번만 사용될 수 있으므로 트랜잭션 로직이 단순화되어 트랜잭션 검증이 훨씬 간단해진다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/6/b/6b542cce91771c2bc2379ce4831705194a7c84c9.png)

UTXO를 요약하면 다음과 같다.

- UTXO는 미래에 사용할 수 있는 이전 트랜잭션의 출력이다.
- UTXO 체인에는 계정이 없다. 대신 코인은 UTXO 목록으로 저장되며, 트랜잭션은 기존 UTXO를 소비하고 그 자리에서 새로운 UTXO를 생성함으로써 만들어진다.
- 잔고는 지정된 주소로 제어되는 UTXO의 합계이다.
- UTXO는 '잔액’을 사용한다는 점에서 현금과 유사하며, 분할될 수 없다(UTXO는 통째로 사용됨).

## 계정/잔고 모델

이름에서 알 수 있듯이 계정/잔고 계정 모델을 사용하는 블록체인은 코인 잔고를 유지하기 위해 계정(개인 키 또는 스마트 컨트랙트로 제어)을 사용한다. 이 모델에서, 자산은 사용자 계정 내의 잔고로 표시되며, 잔고는 계정의 글로벌 상태(global state)로 저장되고, 각 노드에 보관되며, 모든 트랜잭션에 따라 업데이트된다.

많은 면에서, 계정/잔고 체인(예: Ethereum)은 기존 은행 계좌와 유사한 방식으로 작동한다. 지갑의 잔고는 코인이 입금되면 증가하고 코인이 다른 곳으로 전송되면 감소한다. 여기서 중요한 차이점은 UTXO와 달리 잔고을 부분적으로 사용할 수 있다는 것이다. 예를 들어 계정에 100 ETH가 있는 경우 그 중 일부(예: 30 ETH)를 다른 사람에게 보낼 수 있다. 그 결과, 잔고는 70 ETH가 된다. 이제 계좌에 남은 잔액은 70 ETH이며, 코인을 받은 주소에는 30 ETH가 증가한다. UTXO 모델과 같은 잔액 개념은 계정/잔고 회계 모델에서는 적용되지 않는다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/c/1/c1a0ef541a7656fb57a8337d7f9890f69412201c.png)

계정/잔고 모델을 요약하면 다음과 같다.

- 이 회계 모델은 은행 운영 방식과 유사하다.
- 사용자는 코인 잔고를 보유한 계정을 가지고 있다.
- 잔고를 나누어 사용할 수 있다.
- 잔액 개념은 적용되지 않는다.

![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/0/b/0b2a14de8095bf6906e09b11b141dd9bb108c25d.png)

# EUTXO 모델

EUTXO를 이해하려면 Cardano에서 트랜잭션이 어떻게 작동하는지 이해하는 것이 중요하다. 특히 트랜잭션의 출력과 입력의 역할에 대해서.

## 트랜잭션에 대해 해야할 이야기: 출력과 입력

거래(transaction, 트랜잭션)라는 용어는 보통 금융적인 의미를 떠올리게 한다. 비트코인의 경우, 비트코인 블록체인을 사용하여 자금을 개인 간에 이동하는 데 사용하기 때문에 이러한 의미가 적용된다. 하지만 카르다노를 비롯한 많은 다른 블록체인에서는 이 용어가 더 다양한 의미로 사용된다. 이러한 경우에 "트랜잭션"이라는 용어는 더 세분화된 의미를 갖는다. 트랜잭션을 가치의 이전으로 생각할 수 있다.

블록체인 환경에서 각 트랜잭션은 하나 이상의 입력과 하나 이상의 출력을 가질 수 있다. 트랜잭션이 어떻게 작동하고 어떻게 UTXO와 관련되는지 이해하려면 입력과 출력의 개념을 이해해야 한다. 추상적인 용어로 트랜잭션을 이전 출력의 잠금을 해제하고 새 출력을 생성하는 작업으로 생각해 볼 수 있다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/c/5/c53debf8ea21a0717c92cc1ec5e4f1826cf561cd.png)

### 트랜잭션 출력

트랜잭션 출력에는 주소(자물쇠로 생각할 수 있음)와 값이 포함된다. 이 비유에 따라, 해당 주소에 속한 서명은 출력 잠금을 해제하는 열쇠이다. 한 번 잠금이 해제된 출력을 입력으로 사용될 수 있다.

새 트랜잭션은 이전 트랜잭션의 출력을 사용하고, 향후 트랜잭션에서 사용할 수 있는 새로운 출력을 생성한다. 각 UTXO는 통째로 한 번만 사용할 수 있다. 각 출력은 정확히 하나의 입력, 오직 하나의 입력으로만 소비될 수 있다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/2/6/2693471e2acf911169e189c6806af95a817e4fa5.png)

### 트랜잭션 입력

트랜잭션 입력은 이전 트랜잭션의 출력이다. 트랜잭션 입력에는 포인터와 잠금 해제 키 역할을 하는 암호화 서명이 포함된다. 포인터는 이전 트랜잭션 출력을 참조하며, 해제 키는 해당 출력을 잠금 해제한다. 출력이 입력에 의해 잠금 해제되면 블록체인은 잠금 해제된 출력을 “소비된” 것으로 표시한다. 주어진 트랜잭션에 의해 생성된 새로운 출력은 새로운 입력이 가리키게 되며, 이러한 체인 구조가 계속 이어진다. 이러한 새로운 출력(아직 잠금 해제되지 않은 즉, 소비되지 않은)을 UTXO라고 부른다. 소비되지 않은 출력은 간단히 아직 사용되지 않은 출력이라고 이해하면 된다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/e/f/eff7915e0250dc10aba2e235531bbdf4c319b04c.png)

### UTXO의 작동 방식

UTXO 회계 모델에서는, 트랜잭션은 이전 트랜잭션에서 사용되지 않은 출력을 소비하고, 새로운 출력을 생성하여 이를 다시 다음 트랜잭션의 입력으로 사용한다.

사용자의 지갑은 이러한 UTXO를 관리하고, 사용자가 소유한 UTXO를 사용하여 트랜잭션을 시작한다. 모든 블록체인 노드는 항상 모든 UTXO의 하위 집합에 대한 기록을 유지한다. 이것을 UTXO 집합이라고 한다. 기술적 용어로 이것은 체인상태이며, 모든 노드의 데이터 디렉토리에 저장된다. 새 블록이 체인에 추가되면 그에 따라 체인상태가 업데이트된다. 이 새로운 블록에는 최신 트랜잭션 목록이 포함된다(물론 소비된 UTXO 및 체인상태가 마지막으로 업데이트된 이후에 생성된 새 UTXO의 기록도 포함). 모든 노드는 체인상태의 정확한 사본을 유지한다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/1/f/1f6a481139544384d02f76e69b7b320d3023644a.png)

EUTXO는 다음을 결합한 트랜잭션 메커니즘이다.

- 스마트 컨트랙트: 락업된 UTXO, ADA, 네이티브 자산 및 NFT.
- 리디머(Redeemers): 잠긴 자산을 잠금 해제하고 소비하기 위해 제공된 사용자 제공 데이터.
- 데이텀(Datum): 앱에 관련된 최고 점수, 사용자 정보 또는 기타 정보와 같은 데이터
- 컨텍스트: 검증 중인 트랜잭션에 대한 메타데이터와 같은 정보.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/9/d/9dbe1bffbbdfa4cd2640356a22bca2923baab897.jpeg)

EUTXO 구성 요소

- 컨트랙트(Contract)  
스마트 컨트랙트는 미리 정해진 조건이 충족되면 실행되는 블록체인에 저장된 프로그램이다. 이것은 카르다노 블록체인에서 UTXO, ada를 보유하는 잠금장치로 생각할 수 있다.

- 리디머(Redeemer)  
스마트 컨트랙트에 사용자로부터 전달된 데이터이다. 간단한 UTXO에서 리디머는 UTXO의 소유권과 내용에 대한 액세스를 증명하는 서명이 될 수 있다.

- 데이텀(Datum)  
UTXO와 연관된 정보 조각이다. 소유자 또는 UTXO를 사용할 수 있는 시간 등 타이밍 세부 정보와 같은 스크립트 상태 정보를 전달하는 데 사용된다.

- 컨텍스트(Context)  
컨텍스트는 본질적으로 보류 중인 트랜잭션에 대한 요약 정보이며, 트랜잭션 입력 및 출력에 대한 접근을 허용할 때 증인(witnesses), 인증서에 대한 정보는 물론 값이 흐르는 방식에 대한 정보를 포함한다.

## EUTXO: 카르다노의 선택 배경

카르다노는 결제 처리 이상의 역할을 수행하기 위해 설계되었기 때문에 비트코인의 “일반” UTXO 회계 모델은 적합하지 않다. 특히, 스마트 컨트랙트 기능에 대한 더 많은 프로그래밍 표현성이 필요했기 때문에 혁신적인 (‘확장된’) 솔루션이 필요했다.

‘기본’ UTXO 모델은 프로그램밍 표현성에 한계가 있다. 이 문제를 해결하기 위해 이더리움의 계정/잔고 회계 모델은 계정/잔고 원장과 관련된 컨트랙트 계정을 적용함으로써 해결했다. 하지만, 그 결과 컨트랙트 코드의 의미 체계가 훨씬 더 복잡해졌고, 컨트랙트 작성자는 코드에 잠재적으로 매우 많은 비용이 드는 취약점을 방지하기 위해 의미 체계의 미묘한 차이를 완전히 이해해야 하는 원치 않는 효과를 초래했다.

‘확장된’ UTXO 솔루션에는 기존 UTXO 모델이 제공하지 못하는 두 가지 추가 기능이 필요하다.

1. – 컨트랙트 상태를 유지할 수 있을 것
2. – 전체 컨트랙트 순서에서 동일한 컨트랙트 코드가 사용되도록 강제할 수 있을 것. 이것을 연속성이라고 한다.

EUTXO 모델의 강력한 기능 중 하나는 유효한 트랜잭션에 필요한 수수료를 게시하기 전에 정확히 예측할 수 있다는 것이다. 이 기능은 계정/잔고 모델에서 찾을 수 없는 독특한 기능이다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/b/8/b8d0c9f763486ca00abe281cfc25052dae057836.png)

## 플루투스 코어

EUTXO의 구현에는 계정/잔고 모델과 구별되는 두 가지 핵심 요소인 스크립트와 데이터가 포함된다. 스크립트는 명확하고 명시적인 스크립팅 언어가 필요하며, 출력에 첨부되고 리디머(Redeemer)로 사용되는 데이터 유형을 정의하는 것도 중요하다. 리디머 데이터는 하스켈(Haskell)에서 쉽게 정의할 수 있는 간단한 (대수적) 데이터 유형이다.

플루투스 코어(Plutus Core)는 이러한 두 요소를 제공하는 Cardano의 스크립팅 언어이다. 하스켈과 유사한 간단하고 기능적인 언어이다. 사실, 하스켈의 많은 하위 집합을 사용하여 플루투스 코어 스크립트를 작성할 수 있다. 개발자는 플루투스 코어 코드를 직접 작성하지 않는다. 하스켈 컴파일러 플러그인이 모든 플루투스 코어 스크립트를 생성한다.

노드는 체인에서 트랜잭션 검증 ‘활성화’ 중에 이러한 스크립트를 실행한다. 이 스크립트는 검증자 스크립트 또는 네이티브 토큰의 발행 및 소각을 제어하는 발행 정책으로 UTXO를 잠글 수 있다.

적절한 하스켈 라이브러리는 검증 중에 트랜잭션을 검사하기 위한 핵심 데이터 유형을 제공하고, 많은 헬퍼 함수와 고수준 추상화를 제공하여 이러한 검증 로직을 간소화한다. 이를 통해 컨트랙트 작성자는 비즈니스 로직에 집중할 수 있으며, 너무 많은 저수준 세부 사항을 걱정할 필요가 없다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/5/5/558f7090f61d008f62c66ad9302bc8c6799035b9.png)

## EUTXO 모델은 UTXO를 어떻게 확장하는가?

EUTXO는 ‘기본’ UTXO 모델을 두 가지 방향으로 확장한다.

1. 자물쇠와 열쇠 비유를 사용하여 '주소’의 개념을 일반화한다. EUTXO 모델에서의 주소는, 자물쇠를 공개 키로, 열쇠를 서명으로 제한하는 대신, 스크립트 형태로 임의적인 로직을 포함할 수 있다. 예를 들어, 노드가 트랜잭션을 검증할 때 노드는 트랜잭션이 특정 출력을 입력으로 사용할 수 있는지 여부를 결정한다. 트랜잭션은 출력 주소에서 제공하는 스크립트를 조회하여 트랜잭션이 출력을 입력으로 사용할 수 있는 경우 스크립트를 실행한다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/e/d/edc02350f7c6d44e9128e47aef28eef7f5aef1fe.png)

1. UTXO와 EUTXO의 두 번째 차이점은 출력이 주소와 값 외에 (거의) 임의의 데이터를 가질 수 있다는 것이다. 이를 통해 스크립트가 상태를 가질 수 있으므로 스크립트를 훨씬 더 강력하게 만든다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/f/3/f3ffac3e01039baa28d075dc24189f39cab83e41.png)

여기서 우리는 EUTXO를 독특하게 만드는 이유와 이 회계 모델이 ‘일반’ UTXO보다 우수한 이유를 제시한다.

| EUTXO 기능 | 왜 중요한가 |
| --- | --- |
| 각 UTXO는 주소, 값 및 데이텀(datum)으로 구성되어 있으며, 데이텀은 컨트랙트에 특화된 데이터 조각이다. 데이텀은 데이텀 객체라고도 한다. | |

데이텀은 검증 중에 추가 인수(argument)로 전달된다.|이는 컨트랙트의 코드를 변경하지 않으면서 컨트랙트가 상태(데이텀)를 유지할 수 있도록 해준다.|  
|검증자(validator)는 현재 검증 중인 트랜잭션에 대한 정보를 담은 컨텍스트(Context)를 전달받는다.

이 정보는 Context 타입의 추가 인수로 전달된다.|컨텍스트는 검증에 있어서 매우 중요한 정보를 제공하며, 이를 통해 ‘순수한’ UTXO 모델에서는 불가능했던 강력한 조건을 검증자가 부여할 수 있게 된다. 특히, 현재 트랜잭션의 출력을 검사할 수 있다는 점은 컨트랙트의 연속성을 보장하는 데 필수이다.|  
|EUTXO는 트랜잭션에 유효 기간(validity interval)을 추가함으로써 어느 정도 시간에 대한 접근성을 제공한다.

이는 트랜잭션이 처리될 수 있는 기간으로, 원장 시스템에서 단조로이 증가하는 진행 단위로 정의된 "틱(tick)"의 간격이다. 일반적으로 블록 번호나 블록 높이에 해당한다.|이 간격은 검증 중에 실행되는 어떤 스크립트도 현재 tick이 그 간격 내에 있다고 가정할 수 있도록 한다. 그러나 스크립트는 현재 tick의 정확한 값을 알지는 못한다.|  
|EUTXO가 UTXO보다 우수한 이유는 무엇인가?

- 카르다노는 비트코인에 비해 탈중앙성과 보안성이 향상되었다. 카르다노는 또한 계정/잔고 체인보다 우수한 스마트 컨트랙트 기능을 제공한다.
- 다중 자산(Multi-asset) 및 스마트 컨트랙트 지원.
- 높은 유연성, 보안성, 안정성 및 확장성.
- PoW 블록체인 보다 훨씬 적은 에너지를 사용하는 PoS 시스템으로 더 많은 트랜잭션 동시 처리.
- IOG는 UTXO 얼라이언스의 일원으로 7개의 다른 UTXO 기반 블록체인과 협력하여 혁신과 상호 운용성을 추구하며 함께 개선한다.|

### EUTXO는 2022년에 Cardano를 확장하기 위한 발판

EUTXO는 새로운 패러다임과 사고 방식을 제시하지만, 스마트 컨트랙트 개발자에게 애플리케이션을 구성하고 배포할 수 있는 강력하고 다재다능한 플랫폼을 제공한다.

올해(2022년), IOG(Input Output Global Inc.)는 EUTXO의 장점을 활용하여 Cardano에 구축된 스마트 컨트랙트를 최적화하는데 다음과 같은 세 가지 방법을 사용할 것이다.

- 참조 입력 (CIP-0031) - Plutus 스크립트는 입력을 소비할 필요 없이 해당 값을 검사할 수 있다. 따라서 입력에 저장된 정보를 검사하기 위해 UTXO를 생성할 필요가 없다.

- Plutus Datums (CIP-0032) - 데이텀이 데이텀 해시 대신에 직접 출력에 첨부될 수 있다. 이는 데이텀를 사용하는 방법을 간소화시키며, 사용자는 주어진 해시와 일치하는 데이텀을 제공하지 않아도 실제 데이텀을 확인할 수 있다.

- 스크립트 공유 (CIP-0033) - Plutus 스크립트 참조는 트랜잭션 출력에 연결될 수 있으므로, 이전에 사용한 스크립트를 재사용할 수 있다. 이를 통해 개발자들이 매번 스크립트의 사본을 제공할 필요가 없어지고, 여러 트랜잭션에서 스크립트를 재사용하면 트랜잭션 크기가 감소하여 처리량이 향상되고, 스크립트 실행 비용도 감소한다.

![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/0/b/0b2a14de8095bf6906e09b11b141dd9bb108c25d.png)

# 비영구적 손실에 대해 항상 알고 싶었지만 묻기 두려웠던 모든 것

탈중앙화 금융(DeFi)은 블록체인 위에 구축된 탈중앙화 애플리케이션(DApp), 서비스, 프로토콜 및 금융 상품을 가리키는 포괄적인 용어이다. 이는 분산 원장 기술로 가능해진 비교적 새로운 산업 분야이며, 시스템을 중앙 집중식으로 통제할 수 있는 단일 권한이 없다는 것을 의미한다. 그리고 DeFi 환경에 익숙한 사람이라면 비영구적 손실(impermanent loss)에 대해 알고 있을 것이다. 그것은 오해의 소지가 있는 이름을 가진 간단한 개념이다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/1/0/1088fa7bfe205f8b9e8c04998c3d7ddb91cee3ac.png)

Cardano는 3세대 블록체인으로 광범위한 DeFi 생태계 기능을 갖추고 있으며 다른 많은 DApp 중에서도 탈중앙화 거래소(DEX)가 있다.

DEX는 피어가 서로 암호화폐를 거래할 수 있도록 하는 암호 교환 프로토콜이다. DEX는 AMM(Automated Market Maker) 및 오더북(Order Book) 두 가지 주요 디자인 아키텍처를 사용한다. AMM의 구현은 상대적으로 간단하며, 이더리움을 포함한 계정/잔고 체인에서 사실상의 선택(de facto choice)이 되었다. 그러나 이 디자인은 일부 결점을 가지고 있다. 예를 들어 비영구적 손실을 발생시키는 경향이 있다.

Cardano는 자산의 이동을 추적하기 위해 EUTXO 회계 모델을 사용한다. EUTXO는 결정론적이며, 이는 비영구적 손실에 대한 예측 가능성을 향상시킨다.

이렇게 상관없어 보이는 두 개념이 블록체인에서 매우 흥미로운 상호작용을 하고 있다. 이 글에서는 DEX 디자인을 고려하고, EUTXO가 계정/잔고 모델보다 비영구적 손실에 대해 더 나은 예측 가능성을 향상시키는 이유를 설명한다.

## 비영구적 손실: 정의

유동성으로 제공된 자산의 총 가치가 해당 자산을 그대로 보유했을 때 얻을 수 있었던 가치보다 낮을 때 발생한다.

이것은 유동성 공급자들에게 공포를 일으키는 개념인 비영구적 손실에 대한 가장 간단한 정의이다.

비영구적 손실은 자산을 유동성 풀에 예치한 시점과 비교하여 자산 가격이 변동(상승 또는 하락)할 때 발생한다. 즉, 유동성 풀에서 자산을 인출할 때의 가치가 예치할 때의 가치와 다르다는 의미이다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/0/f/0f5e9c2706f884cbe5537900c03a48a3347a281f.png)

비영구적이라는 이름은 약간 오해의 소지가 있다. 토큰 가격의 하락은 일시적일 수 있고 시장 또는 거래 조건 등에 따라 가격이 다시 상승할 수 있기 때문이다. 이 경우 손실은 일시적(즉, 비영구적)이며, 가격이 다시 올라가면 손실이 보상된다. 토큰을 예치할 때보다 인출할 때의 달러 가격이 감소한 경우에만 손실이 영구적인 것이 된다.

비영구적 손실이란 유동성 풀에서 암호화폐 쌍을 거래해서 얻는 수수료를 대가로 취하기 위해 거래소에서 유동성 공급자가 감수해야 할 위험으로 볼 수 있다. 손실이 얻은 수수료보다 큰 경우, 유동성 공급자는 토큰을 보유했다면 발생하지 않았을 손실을 입게 된다. 흥미로운 점은 실제로 돈을 잃지 않을 수도 있지만, 보유한 토큰을 그대로 보유한 경우에 비해 이익이 덜할 수 있다는 것이다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/a/8/a8057e285bf3d75f00c2d2c670d35d3a22c0168c.png)

## AMM vs 오더북

비영구적 손실을 이해하려면 DEX가 어떻게 작동하는지 기본적인 이해가 필요하다. 현재 DEX는 AMM과 오더북 두 가지 디자인 모델을 사용한다. 각각은 비영구적 손실에 대해 장단점을 가지고 있으며, 아래에서 자세히 알아본다.

### AMM

AMM(Automated Market Maker) DEX 모드는 스마트 컨트랙트를 사용하여 암호화폐 쌍의 자동 거래를 가능하게 한다. 이러한 쌍은 일반적으로(항상 그런 것은 아님) 이더리움 기반 토큰과 스테이블코인이다.

AMM은 유동성 풀에 의존하는데, 이는 사용자들이 자신들의 자산을 스마트 컨트랙트에 공유(pool)할 수 있는 메커니즘이다. 풀에 유동성이 많을수록 풀과 연결된 DEX에서 거래하기가 더 쉬워지고 유동성 공급자가 얻는 수수료와 보상이 높아진다. 유동성 풀은 거래 쌍의 양쪽에 투자자들에 의해 제공된는 유동성을 모은다. 이 풀은 현재 유동성을 고려하여 당시 해당 쌍의 시장 가격을 계산하는 알고리즘을 사용한다. 다른 말로 하면, 알고리즘은 해당 자산이 풀에서 얼마나 이용 가능한지를 고려하여 가격을 결정한다.

AMM은 풀의 크기를 확장하고 자산이 공정한 가격으로 거래되도록 유동성을 제공하기 위해 거의 전적으로 유동성 공급자에 의존한다. 이러한 디자인 특성은 실제로 유동성 공급자가 시장 메이커임을 의미한다.

물론 유동성 공급자는 투자할 인센티브가 필요하다. 이는 디지털 자산 대출 또는 스테이킹을 통해 얻은 토큰 보상인 이자 농사(yield farming)의 형태로 제공된다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/6/d/6d19dede8806579254620b24fb88e46849dfd8f4.png)

### 오더북

오더북 디자인 이면의 메커니즘은 오랫동안 경제학 분야에서 사용되어 왔다. 매우 직관적인 모델이다. 오더북은 단순히 모든 매수/매도(이 문맥에서는 매도/입찰) 주문을 나열하므로, 거래자가 주문을 입력하면, 오더북이 자산 가격에 따라 주문을 정렬한다. 수요와 공급이 있으면 자산을 거래할 수 있다.

Cardano와 같은 UTXO 기반 원장은 오더북 아키텍처에 훨씬 더 적합하다. 이 디자인은 Cardano의 EUTXO 기능과 함께 비영구적 손실의 영향을 완화하기 때문이다.

## 비영구적 손실의 예측 (불)가능성

유동성 공급자는 금융 수익을 위해 풀에 유동성을 제공한다. 그러나 이것은 위험을 수반한다. 풀의 토큰 수와 이에 기여하는 유동성 공급자의 수는 비영구적 손실이 발생할 가능성에 큰 영향을 미치는 주요 요인들이며, 이러한 고려는 잠재적 유동성 공급자에게 중요하다. 빈번한 비영구적 손실로 인해 풀이 고갈되고 유동성 공급자가 다른 곳을 찾게 될 수 있다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/c/6/c698d70bf729424c99ee559c8a02e7182ab9dac7.png)

비영구적 손실에 대한 위험은 이런 위험의 발생 가능성 및 그 정도를 예측하는 것이 매우 어렵다는 것이다.

## UTXO 기반 체인 vs 계정/잔고 체인의 비영구적 손실

간략한 소개:

- UTXO 기반 체인: 잔고를 보유하는 계정이 없다. 대신 사용자의 지갑은 사용자가 소유한 모든 주소와 관련된 미사용 출력 목록을 추적하고 사용자의 잔고를 계산한다. UTXO는 여러 면에서 현금 거래와 유사하다. Cardano의 EUTXO 모델은 컨트랙트에 대한 데이터인 데이텀을 추가한다. 이는 다중 자산 및 스마트 컨트랙트를 지원할 수 있는 기능을 Cardano에 부여하는 중요한 요소이다.

- 계정/잔고 모델: 이 계정 모델은 코인 잔고를 유지하기 위해 계정(개인 키 또는 스마트 컨트랙트로 제어할 수 있음)을 사용한다. 이 모델에서 자산은 사용자 계정 내의 잔고로 표시되며 잔고는 계정에 대한 글로벌 상태(global state)로 저장된다. 상태는 각 노드에 의해 유지되며 모든 트랜잭션마다 업데이트된다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/d/f/df6d3dbbb220298fb6a2b763ebdfc5f729700869.png)

이 두 모델 사이에는 몇 가지 근본적인 차이점이 있지만, AMM 및 비영구적 손실과 관련하여 한 가지 주요한 차이가 있다. 계정/잔고 체인(예: Ethereum)에서 운영되는 AMM은 일반적으로 AMM에서 더 자주 사용되는 알고리즘 중 하나인 CFMM(Constant Formula Market Maker) 가격 책정 공식을 사용한다. 이 공식에는 내재된 비효율성이 포함되어 있다. 예를 들어, TVL(Total Value Locked)은 보상, 이자 등을 받는 스테이킹된 모든 암호화폐 자산의 합로 정의된다. TVL은 자산의 가격이 $1일 수도 있고 $10,000일 수도 있는 전체 가격 범위에 걸쳐 분포될 수 있음을 의미한다. 이 가정에 따라, CFMM 가격은 비현실적이며 실제 시장 상황을 반영하지 않을 수 있다. 또한, 거래량이 적은 토큰의 거래는 주문의 예상 가격과 주문이 실제로 실행될 때의 가격 차이(슬리피지)가 높아지는 경향이 있다. CFMM은 AMM에서 인기 있는 선택이지만, 이러한 비효율성은 유동성 공급자의 수익을 희석시키는 결과를 초래할 수 있다. 더 중요한 것은, 이런 유동성은 비영구적인 손실의 대상이 된다는 것이다.

## 비영구적 손실에 대한 보루로서의 EUTXO 및 오더북 DEX 설계

보안, 결정론성, 병렬성 및 확장성의 내재적 이점으로 인해 EUTXO 아키텍처는 오더북 디자인을 사용하는 DEX에 대한 이상적인 환경을 제공하여 비영구적 손실에 대한 더 강력한 내구성을 제공한다. 이 디자인의 한 가지 중요한 장점은 집중된 유동성(사용자가 지정한 가격 범위 내에서 할당된 유동성)이다. 이 기능은 유동성의 효율성을 극대화하고 비영구적 손실을 최소화한다.

## 글로벌 상태가 EUTXO 기반 체인에서 문제가 되지 않는 이유

모든 단일 트랜잭션 결과가 글로벌 상태(global state)를 변경하는 계정/잔고 블록체인과 달리, UTXO 기반 블록체인에서는 트랜잭션의 유효성이 트랜잭션 수준에서 평가되며, 잔고는 남은 UTXO의 합계이다. 즉, 로컬 상태에서 계산된다.

이것은 계정/잔고 체인에 대해 즉각적인 문제를 제기한다. 다수의 스마트 컨트랙트 및 다른 주체들이 지속적으로 글로벌 상태와 상호 작용하고 영향을 미치므로 자산과 자원이 소비되고 가스 가격이 항상 오르락 내리락한다. 이에 따른 부작용 중 하나는 거래 수수료가 변동될 수 있다(실제로 그렇다)는 것이다. 실질적으로 이것은 트랜잭션이 제출되고 검증되는 사이에 트랜잭션의 가스 수수료가 크게 증가할 수 있음을 의미한다. 따라서 이러한 거래는 체인에서 수락되지 않을 수 있지만, 가스 수수료는 이미 취해져서 사용자의 재정적 손실을 초래할 수 있다. 이것은 이더리움 체인의 주요 설계 결함 중 하나이다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/4/4/449cde189b8fc46c67b9ebab112949db12d79000.png)

트랜잭션이 로컬 상태에서 처리되고 검증되기 때문에 Cardano의 EUTXO 모델에서는 수수료 낭비가 발생하지 않는다. 이것은 트랜잭션에 부가 데이터인 데이텀을 추가하여 달성된다. 데이텀에는 컨트랙트별 정보가 포함되어 있으며 트랜잭션의 유효성 검사 로직에 전달되어 EUTXO의 결정론적 컨텍스트를 유지한다. 이로 인해 트랜잭션 수수료가 미리 알려져 있고 변경되지 않는다는 것을 의미한다. EUTXO와 결정론의 환영 받는 부가 작용은 악의적 행위자에 의해 트랜잭션이 재배열될 수 없다는 것이다. 이것은 계정/잔고 모델에서는 또다른 위험이다.

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/6/7/678f85403cec1d7d630e16527fc36555339629ee.png)

트랜잭션 검증의 지역성(locality)은 또 다른 중요한 이점을 제공한다. 노드는 동시에 검증 작업을 병렬로 처리할 수 있다. 다만, 트랜잭션이 동일한 입력을 사용하려는 경우 병렬 처리가 불가능하다. 이와 달리, 계정/잔고 체인에서는 트랜잭션이 설계 상 순차적으로 처리되어야 하므로, 병렬 처리가 불가능하다.

### 추가 개선 사항

Plutus 플랫폼은 Cardano 블록체인을 위한 네이티브 스마트 컨트랙트 언어를 제공한다.

향후 Cardano 개선 제안(CIP)으로 Plutus에 다음과 같은 내용이 포함된다.

- CIP-31: 참조 입력 (Reference Inputs)

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/2/9/29b4b0f2a3a463bd3a7989b260c4adcc3a3e9276.png)

- CIP-32: 인라인 데이텀 (Inline Datums)

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/8/e/8e2f8fa24d79f044b2dc64b5953ac1a5b5a148ef.png)

- CIP-33: 참조 스크립트 (Reference Scripts)

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/5/6/5634547779a03db600296e9175aa9b1e20a84f6d.png)

- CIP-40: 담보 출력 (Collateral Outputs)

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/5/5/55a88cf9b83272fac024e6202944cc2610dca636.png)

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/4/3/43d1c1371422b66b38a1f2b5fccaefaebbd9a5c4.png)

![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/0/b/0b2a14de8095bf6906e09b11b141dd9bb108c25d.png)

# 결론: EUTXO 모델이 혁신적이고 적절한 이유는 무엇인가?

카르다노의 원장 모델은 UTXO 모델의 핵심 이점을 손상시키지 않으면서 다중 자산 및 스마트 컨트랙트를 지원하도록 UTXO 모델을 확장한다. 우리의 혁신적인 연구는 다른 UTXO 원장에서 지원되는 것 이상의 기능을 가능하게 하며, 이를 통해 카르다노는 차세대 블록체인 공간에서 독특한 경쟁자가 된다.

# 추가 자료

다음 소스를 통해 카르다노의 EUTXO 모델에 대해 더 알아보십시오.

[EUTXO 백서](https://api.zotero.org/groups/478201/items/T24L95MI/file/view?key=Qcjdk4erSuUZ8jvAah59Asef)

[Cardano의 확장된 UTXO 회계 모델 – 다중 자산 및 스마트 컨트랙트를 지원하기 위한 디자인](https://iohk.io/en/blog/posts/2021/03/11/cardanos-extended-utxo-accounting-model/)

* * *

\* 원문: [The EUTXO Handbook](https://ucarecdn.com/3da33f2f-73ac-4c9b-844b-f215dcce0628/EUTXOhandbook_for_EC.pdf)  
\* 번역: Ilhun@CryptoVeri [:twitter:](https://twitter.com/CryptoVeri_) [enics\_sky@naver.com](mailto:enics_sky@naver.com)
