토이프로젝트-블록체인 코어 개발 4단계
비트코인 개발 참고자료 #1 : https://jeiwan.net/posts/building-blockchain-in-go-part-3/
비트코인 개발 참고자료 #2 : https://mingrammer.com/building-blockchain-in-go-part-3/
- [ ] 필요 스킬 : Database(BoltDB), Golang, JSON, Cryptography
Transaction 개요
-
블럭체인은 여러 블럭들을 체인으로 연결한 데이타 구조이며, 각 블럭에는 실제 그 응용 프로그램에서 사용하는데 필요한 데이터들이 포함되어 있음, 이를 트랜잭션이라 부름
- ex) 비트코인에서 “누가 어떤 사람에게 얼마만큼의 코인을 지불했다”라는 내용
-
블록은 블록 해더와 바디로 구성되며 트랜잭션은 블록바디에 포함됨
-
이러한 트랜잭션들은 순차적으로 블록에 쌓이게됨
-
트랜잭션 과정
- 코인을 보내기 위해서는 아직 사용되지 않은(unspent) 코인을 가지고 있어야 함
- 사용되지 않은 코인들은 사용되지 않은 출력, 즉 "Unspent Transaction Output (UTXO)"이라 부름
- 어떤 사람이 UTXO를 가지고 있는 경우, 그 사람은 다른 사람에게 코인을 보낼 수 있음
- 코인을 보내기 위해서는 UTXO 출력에 매핑되는 트랜잭션 입력을 생성하고, 자신의 ECDSA 개인키로 서명, 누구에게 보낼지 트랜잭션 출력에 저장하여, 하나의 트랜잭션을 만들어냄
Transaction 구성

Transaction Input과 Transaction Output의 구성
- 트랜잭션은 트랜잭션 입력(Transaction Input)과 트랜잭션 출력(Transaction Output)으로 구성
- 트랜잭션 출력 :
- 어떤 사람이 얼마만큼의 비트코인을 받는지를 표현