앞선 글에서, 블록체인에서의 트랜잭션의 간단한 설명과 트랜잭션 유형중 하나인 "코인 베이스 트랜잭션" 에 대해서 살펴보았습니다.
이번 글에서는 실제 사용자간의 트랜잭션이 일어날 경우 어떻게 동작이 이루어지는지를 확인해보겠습니다.
[블록체인] 블록체인에서 말하는 트랜잭션 이란 무엇인가? -(1) 코인 베이스 트랜잭션
우리는 블록체인에 대해서 비트코인을 통해 가깝게 접하고 있습니다. 이런 비트코인에 대한 이야기를 들어보면 비트코인은 블록체인이라 거래를 불변의 데이터(블록)로 저장한다고 하고, 또 이
hayz.tistory.com
상대방에게 내 돈 전달하기
만약 블록체인 환경에서, 내가 가진 돈으로 부터 상대방에게 특정 금액을 보내주려고 한다면, 과연 블록체인 내부에서 어떤 일이 일어날까요? 블록체인에서 내가 누군가에게 돈을 보낸다는 것은 실제로 그 돈의 위치가 움직이는 것은 아닙니다. 다만, 그 돈의 "소유주" 가 바뀔 뿐입니다. 즉, 실제 현금 거래 처럼 내 지갑에서 상대방 지갑으로 바뀌는 것이 아닌, 돈에 소유주 이름을 적어두고 소유주가 바뀔 때마다 기록해 두는 것이죠.
하나의 예를 들어서 상대방에게 돈을 전달하는 과정을 확인해보겠습니다.
만약 "hayz" 라는 이름의 소유주가 "satoshi" 라고 하는 익명의 누군가에게 돈을 보내주고 자 한다면, 다음 작업들이 이뤄집니다.
1. "hayz" 이름의 트랜잭션 output 들을 보고, "hayz"의 잔액 확인
2. "hayz"의 트랜잭션 output 을 확인한 후, 보낼 수 있다면 "satoshi" 에게 보내는 트랜잭션 input 생성
3. 이때, "hayz" 에게 잔돈이 들어가야 하는 경우, "hayz" 에게 잔돈을 보내주는 트랜잭션 input 생성
위 과정을 하나씩 살펴보겠습니다.
우선 "hayz" 는 코인 채굴자로 코인베이스 트랜잭션을 통해 50 개의 코인을 가지고 있습니다.
아래 그림을 보면, 트랜잭션 이력 들에서 input이 COINBASE 이고 output 이 hayz 로 되어있고 50개의 코인이 두번씩 보내진 것을 확인할 수 있습니다. 즉 현재 "hayz" 의 잔고에는 100 이 있는 상황입니다.
그 후에, "hayz" 는 "satoshi" 에게 70 개의 코인을 보내는 요청을 날립니다. 그러면, 트랜잭션의 input 과 output 은 어떻게 설정될까요? "hayz" 의 잔고가 100 이니까 input에 "hayz", 70, output 에 "satoshi" 70 과 같이 생성될까요?
결과는 아래와 같습니다. 트랜잭션의 input 에는 "hayz" 가 가지고 있는 잔액들이 나오게 되는데, 합산 된것이 아닌 이번 거래에 필요한 트랜잭션 output 들로 이루어진 것을 확인할 수 있습니다. 그리고 이 값들을 이용해서 "satoshi" 에게 필요한 만큼만 보내주고, 나머지는 돌려받는 것을 알 수 있습니다.
이제, "hayz" 가 가지고 있던 [50, 50] 개의 코인들은 "satoshi" 에게 [70] 을 주게 되면서 "hayz" 는 [30] 을 가지게 되었습니다. 중요한 것은 이때 돈에 대한 위치가 변하지 않았다는 것입니다. 실제로 저장된 데이터가 이동이 되었거나 변경되었다 하는 작업은 존재하지 않으며, 단순히 트랜잭션의 결과를 통해 그 트랜잭션의 또 다른 결과를 만들어내며, 거래를 만들어갑니다.
이 생성된 거래 내역들은 바로 블록에 포함되지 않으며, mempool 이라고 하는 중간 메모리 공간에 저장되고, 실제로 블록 채굴자들이 블록을 찾아냄과 동시에 블록에 포함되며 거래가 온전히 등록됩니다. (참고: 2022.12.31 - [IT] - [블록체인] 간단하게 보는 mempool 이란?)
'블록체인' 카테고리의 다른 글
[블록체인] 합의 알고리즘 이란? (0) | 2023.02.12 |
---|---|
[블록체인] 비트코인은 왜 암호화폐로 불릴까? (0) | 2023.02.05 |
[블록체인] 블록체인에서 말하는 트랜잭션 이란 무엇인가? - (3) UTXO (0) | 2023.01.24 |
[블록체인] 간단하게 보는 mempool 이란? (2) | 2022.12.31 |
[블록체인] 블록체인에서 말하는 트랜잭션 이란 무엇인가? -(1) 코인 베이스 트랜잭션 (3) | 2022.12.30 |
댓글