Blockchain Transaction(요청)
<목차>
1. Transaction
2. UTXO(미사용 잔액)
3. Transaction pool
1. Transaction
Transaction이란?
트렌젝션이란 블록체인에 남기는 의미 있는 요청 으로서 자신이 이 요청을 했다라는 인증이가능한 서명값과 함께 계약을 하는것입니다.
블록체인은 중앙화된 관리자가 없기 때문에 트렌젝션 이 발생하면 이 요청을 한 주체가 누구인지 악용을 했는지 를 검증하기 위해서 지갑을 만들때 생성된 Signatuer(서명)를 항상 넣어줘야 합니다. 블록체인은 이를 확인하고 검증 후 트렌잭션을 성사시키고 Transaction pool 에 임시로 넣게 됩니다. 이후 이 트렌잭션 풀에 있는 거래내용이 채택되고 블록에 포함 이후 채굴자가 difficulty를 풀고 채굴하여 블록이 생성이되면 체인에 등록되고 해당 Transaction 은 블록체인에 최종 기록되어 성사가 됩니다.
2. UTXO(미사용 잔액)
블록체인에서의 거래는 UTXO 라는 조각으로 거래를 합니다.
UTXO는 미사용 잔액으로서 {조각을 가지고 있는 주소 , 코인의 개수} 가 들어있습니다. 그런데 이 조각이 하나만 있는것이 아니라 여러개의 UTXO를 가지게 됩니다.
ex) bob의 UTXO [ { account: "Bob", amount: 5 }, { account: "Bob", amount: 3 }, { account: "Bob", amount: 2 } ] bob의 총 amount 값 = 10
이런식으로 UTXO 를 저장하게됩니다. 이러한 구조를 사용하는 이유는 블록체인의 철학적 개념이 들어가는데
1. 이것을 가지고 있었다 (TxIn)
2. 이것을 누구에게 전달하겠다 (TxOut)
3. 가지고 있는 주소변경 (결과)
TxIn 과 TxOut
TxIn
TxIn 은 내가 이 UTXO를 가지고 있었다 라는 기록으로서 잔액을 가지고 있는게 아닌 이 트랜잭션에서 사용할 자금의 출처(UTXO)를 참조” 그전 트랜잭션의 ID 와 그 트랜잭션 안에서 몇번째 출력이였는지를 참조하여 내가 이 기록을 사용할 수 있음을 인증하게됩니다.
TxOut
TxOut 은 이러한 TxIn 으로 조회한 UTXO를 통하여 이것을 상대방에게 전달하겠다. 를 의미합니다. 한 트랜잭션에서는 여러개의 Txout 가 존재할 수 있으며
블록체인은 이러한 거래 철학을 가지고 있기 떄문에 UTXO는 조각처럼 나뉘어서 관리되게 됩니다.
3. Transaction pool
txin 과 txout 을 이용하여 잔액을 조회하고 트렌젝션을 일으켰습니다. 그렇지만 이 트렌젝션이 일어났다고 바로 거래의 내용이 적용이 되는것이 아닙니다.(아직 블록에서 채굴되지 않음 실제 거래는 적용이 안됨!) 그래서 이 트렌젝션이 일어났음을 임시저장할 공간이 필요하게 되었습니다. 그게바로 transaction pool 입니다.
트렌젝션의 구조
정리
아직 블록에 포함되지 않은 트랜잭션들을 보관 이 풀에 있는 트랜잭션들이 검증되고 정리된 후 블록에 포함됨 그 후 트랜잭션 상태를 실시간으로 분리