미리 알면 좋은 내용들
비트코인 트랜잭션(Transaction) 기초
블록체인에서 블록은 거래인 트랜잭션들을 담고 있습니다. 단순하게 표현하면 다음과 같이 표현할 수 있습니다.
그리고 각각의 트랜잭션은 아래와 같이 표현할 수 있습니다.
블록 내의 각각의 트랜잭션들은 이전 트랜잭션 그리고 다음 트랜잭션과 연결되어 있습니다. 트랜잭션을 연결하는 과정에서 디지털 서명 기법인 ECDSA가 사용됩니다.
위 그림들은 비트코인의 블록과 트랜잭션의 구조를 매우 단순화시킨 것으로 실제와는 다릅니다. 다음 사이트를 통해 비트코인 거래를 조회하면 더욱 복잡한 정보들을 볼 수 있습니다. 해당 거래는 비트코인이 처음으로 현물 거래에 사용되어 유명해진 일명 피자 거래의 다음 트랜잭션입니다.
주요 정보들을 정리해보면 다음과 같습니다.
- Hash: 트랜잭션 해시(트랜잭션의 아이디)
- Status: 거래의 성공 여부(블록체인에 포함되었는지 여부)
- Received Time: 거래가 네트워크로 전송된 시간
- Size: 트랜잭션의 크기(용량)
- Included in Block: 트랜잭션이 포함된 블록의 번호
- Total Input: 거래에 사용된 총 비트코인의 양
- Total Output: 수신자들이 받은 총 비트코인의 양
- Fee: 수수료, (Total Input - Total Output)으로 계산
- Address: 입금과 출금 주소
- Pkscript: 잠금 스크립트
- Sigscript: 해제 스크립트, 잠금 스크립트를 풀기 위한 스크립트, 잠금과 해제 과정에서 디지털 서명을 사용
이러한 정보들은 각종 서비스를 통해 사람이 읽기 쉽도록 변형하여 보여준 것입니다. 실제 비트코인에서 전송되는 내용은 다음과 같습니다.
01000000018dd4f5fbd5e980fc02f35c6ce145935b11e284605bf599a13c6d415db55d07a1000000008b4830450221009908144ca6539e09512b9295c8a27050d478fbb96f8addbc3d075544dc41328702201aa528be2b907d316d2da068dd9eb1e23243d97e444d59290d2fddf25269ee0e0141042e930f39ba62c6534ee98ed20ca98959d34aa9e057cda01cfd422c6bab3667b76426529382c23f42b9b08d7832d4fee1d6b437a8526e59667ce9c4e9dcebcabbffffffff0200719a81860000001976a914df1bd49a6c9e34dfa8631f2c54cf39986027501b88ac009f0a5362000000434104cd5e9726e6afeae357b1806be25a4c3d3811775835d235417ea746b7db9eeab33cf01674b944c64561ce3388fa1abd0fa88b06c44ce81e2234aa70fe578d455dac00000000
위와 같은 트랜잭션들은 특정한 규칙에 의해 생성되며, 이 규칙을 알면 트랜잭션을 해석할 수 있습니다.
이번 글에서는 트랜잭션의 기초적인 내용을 다뤘습니다. 이후 글들에서는 트랜잭션의 구성 형태와 규칙에 대해 알아보면서 위의 트랜잭션을 해석해보겠습니다. 감사합니다.
이어지는 글들
'비트코인 > 비트코인 구조' 카테고리의 다른 글
[비트코인 구조] DER 형식 서명(Signature) 생성 (0) | 2022.08.26 |
---|---|
[비트코인 구조] 개인키(Private key), 공개키(Public key), 주소(Address) 생성 (0) | 2022.08.23 |
[비트코인 구조] 인코딩(Encoding) - Base58Check, Bech32 (2) | 2022.08.22 |
[비트코인 구조] 비트코인 해시 함수(sha-256, hash256, hash160) (0) | 2022.08.20 |
[비트코인 구조] 빅 엔디안(Big endian)과 리틀 엔디안(Little endian) (0) | 2022.08.19 |