devops

Cardano의 회계 모델, Extended-UTXO(EUTXO) 본문

Cardano

Cardano의 회계 모델, Extended-UTXO(EUTXO)

vata500 2024. 1. 10. 21:14
반응형

카르다노의 회계 모델인 EUTXO는 카르다노 네트워크의 대표적인 장점 중 하나다. 현재 다양한 레이어들이 저마다 생태계를 만들고 있지만, UTXO 방식을 사용하는 레이어는 수많은 프로젝트들 중에 비트코인과 카르다노뿐 인것으로 알고 있다.

카르다노는 UTXO의 확장 모델인 Extended-UTXO를 개발하여 체인의 보안과 병렬 처리를 통한 확장성을 높였다. UTXO, EUTXO가 이더리움의 Account 모델과 비교해 어떤 특징과 장점이 있는지 정리해보려 한다.

UTXO(Unspent Transaction Output)와 Account 모델

https://www.horizen.io/academy/utxo-vs-account-model/

UTXO는 미사용 거래 출력(Unspent Transaction Output)의 약자로, 거래가 실행된 후 남아있는 통화의 양을 나타낸다. Account 모델은 유저의 잔액을 추적한다. 둘은 쉽게 말해서 장부를 처리하는 방식의 차이다.

여기서 말하는 장부는 state를 기록하고 하나의 state가 다른 state로 전환한다.

Account Model

대부분의 블록체인 네트워크가 사용하는 모델이다. 은행 계좌와 유사하다. 주소의 현재 잔액만 유지되기 때문에 일일이 한 주소에서 자산을 빼고 더하고를 통해 글로벌 상태를 업데이트한다.

https://cardanians.io/en/understanding-cardano-extended-utxo-200

Account 모델에서 글로벌 상태는 모든 계정의 데이터베이스와 다양한 자산의 현재 잔액으로 볼 수 있다. Account 모델은 거래 내역을 기반으로 계산된다.

UTXO

처리된 트랜잭션 후에 남아있는 디지털 자산의 수를 UTXO라고 말하며, UTXO는 자산의 이동이 주소 간 DAG(방향성 비순환 그래프)로 기록된다. DAG는 거래 출력은 한 번만 등장하지만 순환 구조가 허용되지 않는 것을 말한다.

https://cardanians.io/en/understanding-cardano-extended-utxo-200

여기서 유저 계정의 잔액은 주소에 연결된 미사용 UTXO를 합산하여 계산된다. 그래서, 각 거래의 출력을 독립적인 단위로 처리하며, 유저의 잔액은 출력들의 집합으로부터 도출된다.

위 그림을 보면 알겠지만, 사용되지 않은 파란색 UTXO를 합산하여 계정의 잔액이 계산된다. 파란색의 UTXO는 다른 말로, 사용가능한 거래 출력이라고도 볼 수 있다.

그래서 State N + 5의 상태가 현재라고 간주한다면, 파란색의 UTXO를 기준으로 전체 네트워크의 글로벌 상태가 구성된다고 보면 된다.

Extended-UTXO

카르다노는 다중자산과 스마트 컨트랙트 지원을 위해 UTXO의 한 단계 발전된 EUTXO를 개발하여 사용한다. 이는 Alonzo 업그레이드에 도입되었다. 

UTXO 모델을 두 가지 방식으로 확장했다.

1) 스크립트 지원

잠금을 공개 키로, 키를 서명으로 제한하여 EUTXO 모델의 address에 스크립트가 포함된다. 노드가 트랜잭션 검증할 때, 노드는 트랜잭션이 특정 출력을 입력으로 사용할 수 있는지 여부를 결정한다. 사용가능하다면 스크립트를 실행한다.

2) 임의의 데이터 전달

출력에 주소와 값 외에 임의의 데이터를 전달할 수 있도록 하여 state 정보를 활용할 수 있게 되었다. 이는 스크립트를 훨씬 더 유용하게 만들어 준다.

결국, 출력 주소에 복잡한 논리를 포함할 수 있게 되어 잠금 해제가 가능한 트랜잭션을 결정하고 모든 출력에 유저 정의 데이터를 추가하여 UTXO의 기능을 확장했다.

결국, Account 모델 기반의 Dapp에서 작동하는 디자인 패턴은 Cardano에선 구현이 불가능하다. 데이터의 기본 표현이 달라, 새로운 디자인 패턴이 요구된다. 하지만 여러 UTXO를 사용하여 더 많은 병렬 처리가 가능하며, 확장 측면에서 장점이 있다.

EUTXO의 장점

1) 거래 유효성 검증

트랜잭션 검증의 성공과 실패 여부는 트랜잭션 자체와 입력에만 달려있다. 결국, 거래가 이루어지기 전에 거래의 유효성을 오프체인에서 확인이 가능하다. (Account 모델에서는 스크립트 실행에서 트랜잭션 실패 확률이 있음)

2) 높은 수준의 병렬화

검증이 오프체인, Local에서 가능하기 때문에 높은 수준의 병렬 처리가 가능하다. 노드는 트랜잭션을 병렬로 검증할 수 있으며, 효율성과 추론 측면에서 훌륭한 퍼포먼스를 보여줄 수 있다. 

3) 수수료 예측

EUTXO는 결정적 트랜잭션의 특성과 함께 오프체인에서 검증이 가능하기 때문에 거래에 필요한 수수료를 거래 전에 정확하게 예측이 가능하다.  


참고
https://docs.cardano.org/learn/eutxo-explainer/

https://iohk.io/en/blog/posts/2021/03/11/cardanos-extended-utxo-accounting-model/

반응형
Comments