시작하며...
오늘은 UTXO(Unspend Transaction Output)에 대해서 설명해보겠습니다. UTXO는 대표적으로 비트코인이 쓰고 있는 기법으로, 거래 처리 및 검증하는 기법으로 이해를 하시면 됩니다. 블록체인을 라이트하게 이해하고 싶으신 분들은 UTXO를 굳이 알아야 하나? 라고 생각하실 수 있습니다.
하지만 퀀텀(QTUM)과 같은 코인은 비트코인의 UTXO와 이더리움의 Account 개념을 이어주어 두 코인간의 장점을 흡수했다라는 식의 어필을 하기도 하며, 레이븐코인(Ravencoin) 같은 경우도 UTXO의 기술을 사용했다라는 말을 하는데 기술을 모르고 코인을 투자하는 것만큼 무모한 것은 없습니다. 이 기회에 UTXO에 대해서 이해를 하시면 추후 코인을 판별할 때 매우 유리할 수 있습니다.
일반적인 잔고의 개념(금전 거래)
우선 A라는 사람이 B라는 사람에게 1만원을 줬다고 해보겠습니다. 그런데 여기서 알아야 될 것은 오프라인에서 직접 주는 것과 온라인에서 인터넷 뱅킹등을 통해서 주는 것은 많이 다를 것입니다. 직접 주게 되면, 받는 사람이 다시 ATM기기나 은행에 가서 통장에 넣거나 소비하지 않는 이상 만원은 받는 사람한테서 사라지지 않을 돈입니다.
현물이 직접 오가는 모습
그럼 똑같이 A라는 사람이 B라는 사람에게 1만원을 줬는데 온라인 뱅킹으로 줬을 경우 어떨까요? 온라인 뱅킹에도 똑같이 10,000만원이라는 지폐가 "전송"이 될까요? 온라인뱅킹은 바로 위에서 직접 주는 방식과 다르게 장부를 수정하는 방식을 이용합니다.
계좌를 수정하여 잔고를 맞추는 모습
바로 A의 계좌에 10,000원을 깎고, B의 계좌에 10,000원을 더하여, 서로간의 계좌의 밸런스를 맞추게 되는 방식을 취합니다.
비트코인과 이더리움 방식 비교
위에서 설명한 첫번째 방식인 지폐를 직접 주는 모습은 UTXO와 매우 유사한 개념을 갖고 있습니다. 그러나 일반적으로 첫번째 방식은 뭔가 미개한 모습처럼 보일 수 있습니다. 여기서 알아야 둬야 할 것은 방식만 유사할 뿐 실제 현물을 줄리가 없습니다. 어차피 비트코인도 현물이 존재하지 않는 해시값들의 잔치이니까요.
위의 예시는 비트코인과 이더리움의 차이를 좀 쉽게 알려주기 위한 예시일 뿐이며 본격적으로 UTXO의 방식이 어떤 것인지 UTXO의 원리를 좀 더 파보겠습니다.
UTXO의 원리
이번에는 한예슬이 고길동에게 돈을 보내는 모습입니다. 한예슬은 2000원의 객체와 10,000원의 객체를 가지고 있는데 고길동에게 11,000원을 보낸다고 합니다. UTXO의 로직은 일단 딱 맞는 금액을 찾으며 없을 경우 보낼 금액보다 큰 UTXO를 찾게 됩니다.
11,000원과 같거나 큰 UTXO를 한예슬이 보유하고 있지 않기 때문에 2,000원과 10,000원을 합해서 1,000원과 11,000원을 만들어 내며, 11,000원은 고길동에게 보내고 1,000원은 본인이 다시 소유하게 됩니다. 즉 2개의 UTXO 객체를 합치고 나눠서 새로운 UTXO 객체를 만들어내는 것입니다.
UTXO의 장단점
마치며...
연관자료
'암호화폐 및 블록체인 > 블록체인 강의' 카테고리의 다른 글
크립토좀비 솔리디티 #8 - Private / Public 함수 (0) | 2019.02.28 |
---|---|
크립토좀비 솔리디티 #7 - 구조체와 배열 활용 (0) | 2019.02.25 |
탈중앙화를 위한 마지막 단계, 아토믹 스왑(Atomic Swap) (0) | 2019.01.27 |
라이트닝 네트워크 쉽게 이해하기 (0) | 2019.01.19 |
크립토좀비 솔리디티 #6 - 함수(Function) 편 (0) | 2019.01.08 |