Saved by bc
입력과 출력
76 a9 14 ab68025513c3dbd2f7b92a94e0581f5d50f654e7 88 ac : scriptPubKey이다. 스크립트 명령어는 향후 다룰 예정이다. 지금은 직렬화된 데이터를 해석하는데 촛점을 맞추자. 76 : 스크립트 명령어중 OP_DUP를 의미한다.
a9 : 스크립트 명령어 중 OP_HASH160을 의미한다.
14 : 다음 20 바이트(16진수로 14)는 데이터임을 의미한다.
ab68025513c3dbd2f7b92a94e0581f5d50f654e7 : 스크립트에 사용하는 데이터 영역이다.
88 : 스크립트 명령어 중 OP_EQUALVERIFY을 의미한다.
ac : 스크립트 명령어 중
... See more포대 • 입력과 출력
76이 OP_DUP 이런 식으로 되어 있는건 이미 약속된 것임. 아래 링크에서 확인. https://en.bitcoin.it/wiki/Script
✅피터 토드의 퀴즈와 상금 2013년 피터 토드는 자신의 2.48BTC 비트코인을 잠그고, 다음 문제를 냈다.
“해시 충돌을 찾아라.” 2017년 구글이 이 문제를 풀어서 가져갔다.
그 기록이 남아있다.
피터 토드가 낸 문제 : https://blockstream.info/tx/8d31992805518fd62daa3bdd2a5c4fd2cd3054c9b3dca1d78055e9528cff6adc 구글이 푼 정답 : https://blockstream.info/tx/7f890d5b983d947477c79b79bc4c6842eef81a54a1f6358020576d41339e26a
포대 • 입력과 출력
위 그림을 실제 데이터로 보면 다음과 같다. { "version": 1, "locktime": 0, "vin": [ { "txid": "7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18", "vout": 0, "scriptSig" : "3045022100884d142d86652a3f47ba4746ec719bbfbd040a570b1deccbb6498c75c4ae24cb0 2204b9f039ff08df09cbe9f6addac960298cad530a863ea8f53982c09db8f6e3813[ALL] 0484ecc0d46f1918b3
... See more포대 • 입력과 출력
크게 보면 비트코인 트랜잭션 구조는 보통 이렇게 나눠져:
version
vin (inputs 목록)
vout (outputs 목록)
locktime
vin 안에 여러 개의 input이 들어 있고, 각 input이 “어느 이전 UTXO를 쓴다”를 txid + vout(번호)로 가리키는 구조야.
vout 안에는 “이번 트랜잭션으로 새로 생기는 UTXO들”이 들어 있고, 각각 금액 + 스크립트(pubkey/scriptPubKey)로 되어 있어.