MODULE 2 (B) - CRYPTOCURRENCY TRANSACTIONS INTUITION
03. HOW WALLETS WORK
지갑의 원리를 살펴보자.
먼저 블록체인을 가정해 볼 것이다.
이해를 위해 위 블록체인의 블록에서는 나 자신이 받은 트랜잭션과 자전거와 과일을 사기 위해 지불한 트랜잭션만이 있다고 가정할 것이다.
여기서 살펴볼 것은 지갑이 잔고 값을 산출하는 방법이다. 왜냐하면 블록체인에는 잔고라는 것이 없기 때문이다.
블록체인에는 트랜잭션의 리스트만 각 블록에 있을 뿐이다.
하지만 암호화폐 지갑에 로그인하면 얼마나 많은 비트코인 있는지 혹은 이더리움이나 Litecoin이 얼마나 있는지 확인할 수 있는데, 이러한 잔고는 어디서 왔을까?
잔고는 지갑에 저장되어 있거나 중앙화 시스템으로 관리되는 것이 아니라 지갑은 사용 가능한 총 UTXO를 계산하고 그것을 잔고라고 부르는 것이다.
따라서 지갑이 잔고를 확인하기 위해서는 전체 트랜잭션 즉, 블록체인을 거쳐서 남은 UTXO를 얻어야 한다.
위의 블록체인 예시에서 사용한 UTXO를 검정 네모로 표기하면 다음과 같은데, 지갑은 이제 블록체인을 확인하면서 제일 먼저 본인에게 출력값이 도출되는 모든 트랜잭션을 확인한다.
즉, 위에서 빨간색 밑줄로 표시한 트랜잭션을 확인한다.
그리고 여기서 지갑은 어떤 트랜잭션이 미사용 트랜잭션 출력값인 UTXO가 있는지 확인한다.
여기에서 우리는 검정 네모로 사용한 UTXO로 표기했기 때문에 진정한 UTXO는 다음과 같을 것이다.
이제 모든 지갑이 할 일은 3개의 금액을 더하는 것이다.
즉, 모두 더해 잔고가 총 0.26 BTC가 존재하는 것이다.
이것이 로그인하면 볼 수 있는 것이지만 실제로는 이 돈을 저장하는 곳은 없다.
실제로는 암호화폐에는 코인이 없기 때문이다.
은행에서는 은행 계좌에 300달러가 있다면 전자 원장이나 은행 계좌에 300달러가 있다는 의미이다.
그러나 블록체인에서의 지갑은 편의를 위한 것이며, 실제로 존재하지 않는다.
이 돈은 블록체인에 숫자로 표시되며, 사용자가 사용할 수 있는 UTXO의 조합으로 존재하게 된다.
이것이 지갑의 원리이다.