일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 불안정 정렬
- ES6 모듈
- 2티어 아키텍처
- CLI
- 명시도
- solidity
- 3티어 아키텍처
- Relational Database
- skip ci
- CSS Specificity
- #유니티
- npm
- 블록체인
- caverjs
- 안정 정렬
- Hybrid Blockchain
- javascript
- #1인게임개발
- NoSQL
- Private Blockchain
- UTXO
- http 모듈
- SQL
- 텍스트 가운데 정렬
- CSS
- Factory 함수
- short-circuiting
- Factory Functions
- react
- IP
- Today
- Total
짹뚜 스튜디오
[암호화폐] UTXO 본문
거래에서 가장 중요한 것이 이중 지불이 되지 않아야 한다. A가 백만 원을 가지고 있는데 B와 C 동시에 백만 원을 입금할 수 없어야 한다. 중앙에서 관리를 하면 순차적으로 진행해서 B에게 백만 원을 입금하고 나서 C에게 백만 원을 입금할 때 잔액부족으로 이중 지불을 쉽게 방지할 수 있지만 비트코인과 같은 탈중앙화 시스템에서는 이것을 관리해주는 중앙이 없다. 그래서 비트코인은 이중 지불을 막기 위해서 UTXO를 사용한다.
UTXO
UTXO는 Unspent Transaction Outputs의 줄임말로 거래 내역 중 아직 소비하지 않은 거래 정보를 얘기한다. 비트코인은 이더리움과는 다르게 계정이나 잔고가 없고 UTXO의 합으로 비트코인을 얼마나 소유하고 있는지를 알 수 있다. UTXO는 각각의 코인들이 저장되어있는 공간으로 그 공간의 소유권을 가짐으로써 비트코인을 소유하게 되는 것이다. 비트코인의 Transaction은 해당 비트코인의 소유권을 이전하는 것이라고 할 수 있다.
UTXO란 단순히 얘기해서 지폐나 동전과 같다. 만약 1 BTC를 받으면 1 BTC를 담고 있는 UTXO가 자기 자신의 지갑에 생성이 된다. 이렇듯 비트코인을 받을 때마다 해당 비트코인을 담고 있는 UTXO가 생성이 된다.
UTXO가 사라지는 경우는 소비가 될 때이다. 즉, 비트코인을 다른 사람에게 전송할 때 UTXO는 소멸된다. 예를 들어 3 BTC와 6 BTC의 UTXO를 가지고 있다고 가정해보자. 만약 B라는 사람에게 2 BTC를 전송한다고 하면 일단은 3 BTC가 있는 UTXO를 선택해서 2 BTC와 1 BTC가 들어있는 UTXO를 각각 생성한다. 이 과정에서 3 BTC가 있던 UTXO는 소멸된다. 그다음에 2 BTC가 들어있는 UTXO를 B에게 보내주고 1 BTC가 들어있는 UTXO를 나에게 보낸다. 이렇듯 3 BTC가 있는 UTXO에서 단순히 2를 빼는 것이 아닌 새로운 UTXO를 생성한다. (5만 원을 건네주고 2만 원을 거스름돈으로 받을 때 5만 원 지폐를 찢어서 주는 것이 아닌 2만 원을 주는 것과 비슷한 개념이다.)
따라서 한번 사용된 UTXO는 바로 소멸되기 때문에 이중 지불 문제를 해결할 수 있다.
'개발 공부 > 블록체인' 카테고리의 다른 글
ICO 스마트 컨트랙트 구현하기 (0) | 2022.04.07 |
---|---|
caver-js-ext-kas 를 활용한 클레이튼 API 구현 (0) | 2022.04.06 |
[암호화폐] 채굴 (0) | 2022.03.07 |
[블록체인] Public vs Private vs Hybrid (0) | 2022.03.03 |
[블록체인] 블록체인이란? (0) | 2022.03.02 |