기금넷 공식사이트 - 복권 조회 - 비트코인 거래의 구성에 대해 얼마나 알고 있습니까?

비트코인 거래의 구성에 대해 얼마나 알고 있습니까?

거래 유형

생산 거래 (생성)

각 블록은 생산 tx 에 해당하며 거래를 입력하지 않았습니다. 발굴된 새 통화는 모든 통화의 출처입니다.

복합 주소 트랜잭션 (스크립트 해시)

이런 거래의 수신 주소는 통상적인 주소가 아니라 복합주소로, 3 부터 시작하여 몇 쌍의 공용 키가 있어야 복합주소를 생성할 수 있으며 생성 과정에서 지정할 수 있다. 몇 쌍의 공용 키에 서명하면 이 주소의 비트코인을 소비할 수 있다.

공개 키 해시 (공개 키 해시)

이 유형은 가장 일반적인 트랜잭션 유형이며 n 개의 입력과 m 개의 출력으로 구성됩니다.

입력 출력은 돈을 보내는 주소를 입력하고 돈을 받는 주소를 출력하는 것으로 간단히 해석할 수 있다.

데이터 구조

분야

데이터 형식

필드 길이

필드 설명

Versionuint32_t

버전 4 트랜잭션 데이터 구조 tx_in countvar_int 1+ 입력 트랜잭션 수 tx_intx_in[]4 1+ 입력 트랜잭션 배열, 각 입력 =;

Tx_out countvar_int 1+ 출력 주소 수 tx_outtx_out[]9+ 입력 주소 배열, 각 입력 =9 바이트 lock_timeuint32_t4

Lock_time 은 트랜잭션이 블록의 특정 높이 앞이나 특정 시점 이전에 잠겨 블록에 포함될 수 없음을 나타내는 다중 의미 필드입니다.

가치

의미

0 즉시 효력이 발생하다. 500000000 은 잠금 (부적합) = 5000000000 이 Unix 타임스탬프를 나타내고 그 전에는 잠금 (부적합) 된 블록 높이를 나타냅니다.

이 트랜잭션에 대한 모든 입력 트랜잭션의 시퀀스 필드가 INT32 의 최대 (0xffffffff) 인 경우 lock_time 필드는 무시됩니다. 그렇지 않으면 블록 높이에 도달하거나 특정 시점에 도달할 때까지 트랜잭션이 블록에 포함되지 않습니다.

논증을 용이하게 하기 위해 1 162 19 블록의 높이를 예로 들어 이전 블록 데이터를 읽었습니다.

# ~ bitcoind getblock 000000000007c639f2cb23e4606a1d022fa4206353b9d92e99f5144bd746/

{

해시: 0000000000007c639f2cb23e4606a1d022fa4206353b 9d92e99f5144bd746/kloc-0

확인: 144667,

사이즈: 1536,

키: 1 162 19,

버전: 1,

Merkle root: 587 fefd 748f 899f 84d0fa1d8a 3876 fdb 406 a4bb8f54a31445cb7256470/kloc-0

보내기: [

Be8f08d7f519eb863a68cf292ca51dbab7c9b49f50a96d13f2db32e432db363e,

A387039 ECA 66297ba51ef2 da 3c8a0fc745bcb51e20 ed9505 cc6762be037bb,

2bd 83162e264abf 59f9124ca517050065f8 c8 eed 2a21fbf 85d

028 cfae 228f8 a4b0 CAE e9 c566bd41aed 36 BCD 237 CDC 0eb18f0331d/kloc-0

3a06b6615756 dc3363a 8567fbfa8 fe978 eeoba 06 eb33fd 844886 a0f01149 ad62

],

시간:1301705313,

난수: 1826 107553,

비트: 1b00f339,

어려움: 68538+0,

Previousblockhash: 0000000000010d549135eb39bd3bbb1047df8e/kloc

Nextblockhash: 00000000000e 9 FCC 59a 6850f 64a 94476a 30f5 Fe 35d 6d 8 c4b4 ce 0b1b04103a77

}

이 블록에는 다섯 가지 트랜잭션이 있습니다. 첫 번째는 Generation TX 입니다. 그래서 구체적인 내용을 알아보겠습니다.

# ~ bitcoind getraw transaction be 8f08d7f519eb863a68cf292ca51dbab7c9b49f50a96d/kloc/

{

16 진수: 010000000001000000000000000000000000000000000000000000000000000000fffff070439f300/kloc

Txid: be8f08d7f519eb863a68 cf292ca51dbab7c9b49f50a96d13f2db32e432db

버전: 1,

잠금 시간: 0,

차량 식별 번호: [

{

코인 베이스: 0439f3001B0134,

시퀀스: 4294967295

}

],

Vout: [

{

값: 50.0 1000000,

N: 0,

ScriptPubKey: {

Asm: 045b3aaa284d169c5ae2d20d0b0673468ed3506aa8fea5976eacaf1ff304456f6522fbce/kloc Kloc-0/f564 ca 6 c03e484a1c394bf964

16 진수: 41045b3aaa284d169 C5 ae2d 20 d0b0673468 ed 3506 aa 8 FEA 5976 ea caf1ff300 A646a24005b8b8e771a671f564ca6c03e484a65438+1

ReqSigs: 1,

유형: pubkey,

주소: [

1lgztvotj6 quncurmbuajkwqzxkqndn

] 을 참조하십시오

}

}

],

Block hash: 0000000000007c639f2cb23e4606a1d022fa4206353b9d92e99f5144bd746/kloc--

확인: 145029,

시간:1301705313,

일시 중단 시간:1301705313

}12345678910111121 222324252627282930313233343536373 839404142434454647484950515253545555

TX 를 생성하는 입력은 트랜잭션이 아니라 coinbase 필드가 있는 구조입니다. 이 필드의 값은 이 블록을 파낸 사람이 작성하는데, 이는 일종의' 권한' 이다. 정보는 통화 시스템에 쓸 수 있다. (모두 시스템의 데이터 구조 필드 이름으로 사이트 이름을 지정하기를 좋아한다. 예를 들면 블록 체인, coinbase, 이들 단어의 접미사 도메인 이름이 모두 주목된다.) 중본총이 비트코인의 첫 거래에서 쓴 coinbase 값은 다음과 같습니다.

코인 베이스: 04fff00104455468652054696 d 65732030332f4a616e2f323030392043686/kloc-

이 단락 16 을 ASCII 문자로 변환하는 것은 창조 블록의 유명한 소식입니다.

타임스는 2009 년 1 월 3 일 재정대신이 2 차 은행 구조 직전에 있다고 보도했다.

다음은 세 개의 입력과 두 개의 출력이 있는 일반 트랜잭션입니다.

# ~ bitcoind getraw transaction 028cfae228f8a4b0caee9c566bd41aed36bcd237cdc0eb18f033/;

{

16 진수: 010000003c9f3b07ebfca68fd1a6339d0808fbb013c90c6095fc9390/

Txid: 028 cfae228f8a4b0 caee9c566bd41aed36 bcd237 cdc0eb18f0331d/kr

버전: 1,

잠금 시간: 0,

차량 식별 번호: [

{

Txid: b79a4803014177ea0139c95f09c6903c01bb8f80d

Vout: 0,

ScriptSig: {

Asm: 3044022055 BAC1856 ecbc 377dd5e869b1a84ed1d5228c987b098c095030c Kloc-0/30a 9d 0af 5 fc 27828 ABA 43b 464 EC b655

16 진수: 473044022055 BAC1856 ecbc 377dd5e869b1a84ed1d5228c987b098c095030 A4d 524902205523130a 9d 0 af 5 fc 27828 ABA 43b 464 ECB 6

},

시퀀스: 4294967295

},

{

Txid: b79a4803014177ea0139c95f09c6903c01bb8f80d

Vout: 1,

ScriptSig: {

Asm: 304402206b993231adec 55e6085e75f7dc5ca6c19e42e744cd 60 ABA ff957b1 C352b3ef9a022022a22fec37dfa2c646c78d9a0753d56cb4393e8d0b22dc580ef1aa6 CCC ef2.

16 진수: 47304402206b993231adec 55e6085e75f7dc5ca6c19e42e744cd60 ABA ff957b/kloc-0 C352b3ef9a022022a22fec37dfa2c646c78d9a0753d56cb4393e8d0b22dc580ef1aa6 cccef.

},

시퀀스: 4294967295

},

{

Txid: da30b272fb73d78108f80dd1ac2f76419533af79ad06a5b3c70fc4a62080

Vout: 1,

ScriptSig: {

Asm: 3045022040 a5d957e087ed61e80f110bcaf49017b53

16 진수: 483045022040 a5d 957e087ed61e80f110 bcaf 4901b53

},

시퀀스: 4294967295

}

],

Vout: [

{

값: 0.84000000,

N: 0,

ScriptPubKey: {

Asm: op _ dupop _ hash160 634228 c 26 cf 40 A02 a05 db 93 F2 f 98 b 768 A8 e0e61b op _ equal vs

16 진수: 76a914634228c26 cf 40a02a05db93f2f98b768a8e0e61b88ac ,

ReqSigs: 1,

유형: pubkeyhash,

주소: [

1a3q9 pdtr4h8wpvyb8 svpinppt8 Zn bhy 8h

] 을 참조하십시오

}

},

{

값: 156.83000000,

N: 1,

ScriptPubKey: {

Asm: op _ dupop _ hash160 7514080ab2 fcac0764de 3a77d10cb790c7

16 진수: 76a9147514080ab2 fcac0764de 3a77d10cb790c71c

ReqSigs: 1,

유형: pubkeyhash,

주소: [

1bg44fzsoteyterykc1xhz8 facwykhgvq8

] 을 참조하십시오

}

}

],

Block hash: 0000000000007c639f2cb23e4606a1d022fa4206353b9d92e99f5144bd746/kloc--

확인: 14775 1

시간:1301705313,

일시 중단 시간:1301705313

}12345678910111121 222324252627282930313233343536373 839404142434454647484950515253545555

필드 hex 는 모든 관련 정보를 기록하고 그 뒤에 hex 가 구문 분석하는 다양한 필드 정보를 기록합니다. 16 진수의 내용을 하나씩 분해해 보겠습니다 (위에서 직접 16 진수를 볼 수 있음).

0 1000000 // 버전 번호 UINT32

03 // Tx 입력량, 가변 길이 INT. 세 가지 입력.

/* * * 첫 번째 입력 세트 Tx ***/

// Tx 해시, 고정 32 바이트

C9f3b07ebfca68fd1a6339d0808fbb013c90c6095fc93901ea774/kloc-0

000000000//Tx consumed 는 정방향 트랜잭션의 0 번째 출력인 UINT32 에 있으며 4 바이트로 고정되어 있습니다.

8a // 서명 길이, 0x8A = 138 바이트.

// 138 바이트 길이 서명으로 공개 키+서명이라는 두 부분으로 구성됩니다.

47 // 서명 길이, 0x47 = 7 1 바이트.

3044022055 BAC1856 ecbc 377dd5 e869b1a84ed1d5228c987b098c095030c/kloc

4 1 // 공개 키 길이 0x4 1 = 65 바이트입니다.

048 aefd 78 BBA 80e2d1686225 b755 da CEA 890 c9ca1be10ec981; 8f3b051F8 AAAA aa3 FCC18bbf65097 ce 8d30 da7e5e5ef88

Fffffff//시퀀스, 0xffffffff = 4294967295, UINT32, 고정 4 바이트.

/* * * 두 번째 그룹 입력 Tx. 위와 같은 방식으로 분해 * * * */

C9f3b07ebfca68fd1a6339d0808fbb013c90c6095fc93901ea774/kloc-0

/* * * 세 번째 그룹 InputTx * * *

C98620a6 c40fc7b3a506 ad79af339541762facd1dd80ff0881d773fb72b230da0/ 000008b483045022040 a5d 957e087ed61e80f1165438

02 // Tx 출력 수량, 가변 길이 INT. 두 개의 출력.

/* * * 첫 번째 출력 세트 * * *

00bd 0 1050000000// 통화 값 출력, UINT64, 8 바이트. 바이트 순서는 반전해야 하며 ~ = 0x000000000501bd00 = 8400000000 Satoshi 입니다.

19 // 출력 대상