비트코인 스마트 컨트랙트
비트코인은 특정 지갑에 저장되는 것이 아닌 UTXO에 저장되며, 이 UTXO를 통해 코인의 존재 여부를 확인한다.
- 트랜잭션 버전 ( Transaction Version )
트랜잭션 버전은 네트워크에서 트랜잭션의 유형을 지정하는 버전 번호다.
트랜잭션 버전별로 구조와 규칙이 조금씩 다르다.
- 잠금 시간 ( Lock Time )
마지막 데이터는 잠금시간으로, 트랜잭션을 블록체인에 바로 포함할지, 지정된 시간이 지나면 포함할지 지정한다.
- 입력과 출력 ( Inputs , Outputs )
버전과 잠금시간 사이엔 입력과 출력 목록들이 존재한다.
출력은 잠금 ( Lock ) + 값 ( Value ) 로 구성되어 있다.
( 기본적으로 잠겨 있다. 값은 비트코인의 양을 의미한다. )
입력은 포인터 ( Pointer ) + 해제키 ( Unlocking Key ) 가 들어있다.
( 포인터는 이전 트랜잭션 출력을 가리킨다. 키는 포인터를 가리키고 있는 출력을 해제하는 데 사용된다. )
UTXO란?
트랜잭션에는 다른 곳에 잠겨있는 출력을 해제하는 입력과
입력의 결과로 생긴 새로운 출력이 담기게 된다.
따라서 트랜잭션은 이전 출력을 해제하고 새로운 출력을 만드는 추상적인 액션이다.
입력에 의해 생성된 후, 다른 입력에 의해 해제되지 않는 트랜잭션 출력을 UTXO 라고 한다.
UTXO는 코인을 담고 있는 상자이며, 다양한 양의 코인을 담을 수 있다.
대표적인 예시로 6BTC의 자동차를 구매하는 법으로 설명할 수 있다.
1. 10BTC가 담긴 UTXO를 가진 Alice는 6BTC의 자동차를 구매하기 위해 10BTC의 출력을 해제해야 한다.
2. Bob은 Alice의 10BTC가 담긴 UTXO를 받아 6BTC의 UTXO를 만들고 거슬러줄 4BTC가 담긴 UTXO를 만든다.
3. 지불이 완료되면 6BTC가 담긴 UTXO와 4BTC의 UTXO가 생기며 10BTC의 UTXO는 사용할 수 없게 된다.
특징
UTXO 모델은 트랜잭션 로직이 매우 단순하여 병렬적으로 여러 개의 트랜잭션을 동시에 검증할 수 있다.
'BlockChain > 스마트 컨트랙트' 카테고리의 다른 글
솔리디티 기본 문법 (1) | 2023.03.29 |
---|---|
솔리디티란? ( Solidity ) (2) | 2023.03.28 |
이더리움 스마트 컨트랙트 (0) | 2022.12.22 |
비트코인 스크립트 (2) | 2022.12.21 |
스마트 컨트랙트 (0) | 2022.12.21 |
댓글