當前位置:商標查詢大全網 - 彩票開獎 - 妳對比特幣交易的構成了解多少?

妳對比特幣交易的構成了解多少?

交易類型

生產交易(生成)

每個區塊對應壹個生產tx,沒有輸入交易,挖掘出來的新幣是所有幣的來源。

復合地址事務(腳本哈希)

這種交易的接收地址不是通常意義上的地址,而是壹個復合地址,從3開始,需要幾對公私鑰才能生成壹個復合地址,可以在生成過程中指定。幾對公私鑰簽名後,就可以消費這個地址的比特幣了。

公鑰哈希(公鑰哈希)

這種類型是最常見的事務類型,由n個輸入和m個輸出組成。

輸入輸出可以簡單理解為:輸入發錢的地址,輸出收錢的地址。

數據結構

領域

數據類型

字段長度

字段描述

versionuint32_t

4版本號事務數據結構tx_in countvar_int1+輸入事務數tx_intx_in[]41+輸入事務數組,每個輸入=41字節。

Tx_out countvar_int1+輸出地址個數tx_outtx_out[]9+輸入地址數組,每個輸入=9字節lock_timeuint32_t4。

Lock_time是壹個多含義字段,表示事務在塊的某個高度之前或某個時間點之前被鎖定,不能包含在塊中。

價值

意義

0立即生效。500000000表示塊的高度,在此之前它被鎖定(無效)= 500000000表示Unix時間戳,在此之前它被鎖定(無效)。

如果該事務的所有輸入事務的序列字段是INT32的最大值(0xffffffff),則lock_time字段被忽略。否則,事務將不會被包含在塊中,直到它達到塊的高度或達到某個時刻。

例子

為了便於論證,我們讀取了較早的塊體數據,以116219塊體的高度為例。

# ~ bitcoind get block 00000000000007 c 639 F2 CB 23 e 4606 a 1d 022 fa 4206353 b 9d 92 e 99 f 5144 BD 74611

{

hash:000000000000007 c 639 F2 CB 23 e 4606 a 1d 022 fa 4206353 b 9d 92 e 99 f 5144 BD 74611,

確認:144667,

尺寸:1536,

身高:116219,

版本:1,

merkleroot:587 fefd 748 f 899 f 84 d0fa 1d8a 3876 fdb 406 a4 bb 8 f 54 a 31445 CB 72564701 daea 6,

發送:[

be 8 f 08d 7 f 519 EB 863 a 68 cf 292 ca 51 dbab 7 c 9 b 49 f 50 a 96d 13 F2 db 32 e 432 db 363 e,

a 387039 ECA 66297 ba 51 e F2 da 3c 8 a 0 fc 745 BCB 51 e 20 ed 9505 cc 6762 be 037 bb,

2bd 83162 e 264 abf 59 f 9124 ca 517050065 F8 c8 eed 2 a 21 fbf 85d 454 ee 4 E0 E4 c 267,

028 cfae 228 f 8 a 4 b 0 CAE e9 c 566 BD 41 aed 36 BCD 237 CDC 0 EB 18f 0331d 1e 87111743,

3a 06b 6615756 DC 3363 a 8567 fbfa 8 Fe 978 EEO ba 06 EB 33 FD 844886 a0f 01149 ad 62

],

時間:1301705313,

隨機數:1826107553,

位:1b00f339,

難度:68538+0,

previousblockhash:00000000000010d 549135 EB 39 BD 3 BBB 1047 df8e 1512357216 E8 a 85 c 57 a 1 efb FB,

nextblockhash:000000000000 e 9 FCC 59 a 6850 f 64 a 94476 a 30 f 5 Fe 35d 6d 8 C4 B4 ce 0 b 1b 04103 a 77

}

這個塊中有五個事務,第壹個是Generation TX,所以解析出來看看具體內容:

# ~ bitcoind getraw transaction be 8 f 08d 7 f 519 EB 863 a 68 cf 292 ca 51 dbab 7 c 9 b 49 f 50 a 96d 13 F2 db 32 e 432 db 363 e 1

{

十六進制:01000000010000000000000000000000000000000000000000000 ffffffff 070439 f 3001b 0134 ffffffffff 065444

txid:be 8 f 08d 7 f 519 EB 863 a 68 cf 292 ca 51 dbab 7 c 9 b 49 f 50 a 96d 13 F2 db 32 e 432 db 363 e,

版本:1,

鎖定時間:0,

車輛識別號:[

{

coin base:0439 f 3001b 0134,

序列:4294967295

}

],

vout : [

{

值:50.01000000,

n : 0,

scriptPubKey : {

ASM:045 B3 AAA 284d 169 C5 AE 2d 20 d0b 0673468 ed 3506 aa 8 FEA 5976 ea caf 1ff 304456 f 6522 fbce 1a 646 a 24005 b 8b8e 771f 564 ca 6 c 03 e 484 a 1c 394 BF 964

十六進制:41045 B3 AAA 284d 169 C5 ae2d 20 d0b 0673468 ed 3506 aa 8 FEA 5976 eacaf 1ff 304456 f 6522 fbce 1 a 646 a 24005 b 8 b 8 e 771 a 671 f 564 ca 6 c 03 e 484 a 65438+1

reqSigs : 1,

類型:pubkey,

地址:[

1 lgztvotj 6 quncurmbuajkwwqzxkqndn

]

}

}

],

block hash:00000000000007 c 639 F2 CB 23 e 4606 a 1d 022 fa 4206353 b 9d 92 e 99 f 5144 BD 74611,

確認:145029,

時間:1301705313,

封鎖時間:1301705313

}123456789101112131415161718192021222324252627282930313233343536373 839404142434445464748495051525354555657

生成TX的輸入不是事務,而是帶有coinbase字段的結構。這個字段的值是挖這個塊的人填寫的,這是壹種“特權”:信息可以寫入貨幣系統(大家都喜歡用系統中的數據結構字段名來命名站點,比如區塊鏈、coinbase,這些詞的後綴域名都被搶註了)。中本聰在比特幣第壹筆交易中寫的coinbase值是:

coin base:04 ffff 00104455468652054696d 65732030332 f 4a 616e2f 32303039204368616e 63656 c6f 72206 f 6e 206272696 E6 b 206 f 6666207365633

把這壹段16轉換成ASCII字符,就是創世區塊著名的消息:

泰晤士報2009年1月3日財政大臣處於第二次銀行救助的邊緣

接下來是壹個有三個輸入和兩個輸出的普通事務:

# ~ bitcoind getraw transaction 028 cfae 228 f 8 a 4 b 0 CAE e9 c 566 BD 41 aed 36 BCD 237 CDC 0 EB 18f 0331d 1e 87111743 1

{

十六進制:0100000003 c 9 f 3 b 07 ebf ca 68 FD 1a 6339d 0808 fbb 013c 90 c 6095 fc 939010103489 ab 70000000008 a 47304022055 BAC 185438

txid:028 cfae 228 f 8 a 4 b 0 CAE e9 c 566 BD 41 aed 36 BCD 237 CDC 0 EB 18f 0331d 1e 87111743,

版本:1,

鎖定時間:0,

車輛識別號:[

{

txid:b79a 4803014177 ea 0139 c 95 f 09 c 6903 c 01 bb 8 f 80d 039631 AFD 68 cabf 7 EB 0 F3 c 9,

vout : 0,

scriptSig : {

ASM:3044022055 BAC 1856 ecbc 377 DD 5 e 869 b 1a 84 ed 1d 5228 c 987 b 098 c 095030 c 12431a4d 5249022055523130 a 9d 0af 5 fc 27828 ABA 43 b 464 EC b 655

十六進制:473044022055 BAC 1856 ecbc 377 DD 5 e 869 b 1a 84 ed 1d 5228 c 987 b 098 c 095030 c 12431a4d 5249022055523130 a 9d 0 af 5 fc 27828 ABA 43 b 464 ECB 6

},

序列:4294967295

},

{

txid:b79a 4803014177 ea 0139 c 95 f 09 c 6903 c 01 bb 8 f 80d 039631 AFD 68 cabf 7 EB 0 F3 c 9,

vout : 1,

scriptSig : {

ASM:304402206 b 993231 adec 55 e 6085 e 75 f 7 DC 5 ca 6 c 19e 42 e 744 CD 60 abaff 957 b 1 c 352 B3 ef 9 a 0222022 a 22 FEC 37 DFA 2c 646 c 78d 9 a 0753d 56 CB 4393 e 8d 0 b 22 DC 580 ef 1 aa 6 cccef 2。

十六進制:47304402206 b 993231 adec 55 e 6085 e 75 f 7 DC 5 ca 6 c 19 e 42 e 744 CD 60 abaff 957 b 1 c 352 B3 ef 9 a 0222022 a 22 FEC 37 DFA 2c 646 c 78d 9 a 0753d 56 CB 4393 e 8d 0 b 22 DC 580 ef 1 aa 6 cccef。

},

序列:4294967295

},

{

txid:da 30 b 272 FB 73d 78108 ff 80 DD 1ac 2 f 76419533 af 79 ad 06 a5 B3 c 70 fc 4a 62086 c 9,

vout : 1,

scriptSig : {

ASM:3045022040 a5d 957 e 087 ed 61e80f 110 bcaf 49017b 5317c 257711 a6 CBC 54 d6b 98 B6 a 8563 f 02210865448

十六進制:483045022040 a5d 957 e 087 ed 61e80f 110 bcaf 4901b 5317c 257711 a6 CBC 54 d6b 98 B6 a 8563 f 0221008658

},

序列:4294967295

}

],

vout : [

{

值:0.84000000,

n : 0,

scriptPubKey : {

ASM:OP _ DUP OP _ hash 160 634228 c 26 cf 40 a 02 a 05 db 93 F2 f 98 b 768 a 8 E0 e 61b OP _ equal verify OP _ check SIG,

十六進制:76a 914634228 c 26 cf 40 a 02 a 05 db 93 F2 f 98 b 768 A8 E0 e 61 b 88 AC,

reqSigs : 1,

類型:pubkeyhash,

地址:[

1 a3q 9 pdtr 4h 8 wpvyb 8 svpinppt 8 znbhy 8h

]

}

},

{

值:156.83000000,

n : 1,

scriptPubKey : {

ASM:OP _ DUP OP _ hash 160 7514080 ab 2 fcac 0764 de 3a 77d 10cb 790 c 71c 74 C2 OP _ equal verify OP _ check SIG,

十六進制:76a 9147514080 ab 2 fcac 0764 de 3a 77d 10cb 790 c 71c 74c 288 AC,

reqSigs : 1,

類型:pubkeyhash,

地址:[

1bg 44 fzsoteyterykc 1x hz8 facwykhgvq 8

]

}

}

],

block hash:00000000000007 c 639 F2 CB 23 e 4606 a 1d 022 fa 4206353 b 9d 92 e 99 f 5144 BD 74611,

確認:147751,

時間:1301705313,

封鎖時間:1301705313

}123456789101112131415161718192021222324252627282930313233343536373 8394041424344454647484950515253545556575859606162636465666768

字段hex記錄所有相關信息,後面是hex解析的各種字段信息。下面我們把十六進制的內容壹個壹個分解壹下(從上面可以直接看到十六進制):

01000000 //版本號,UINT32

03 // Tx輸入量,可變長度INT。三個輸入。

/* * *第壹組輸入Tx ***/

// Tx哈希,固定32字節

c 9 F3 b 07 ebf ca 68 FD 1a 6339d 0808 fbb 013c 90 c 6095 fc 93901ea 77410103489 ab 7

000000000//Tx consumed位於正向事務的第0個輸出,UINT32,固定為4個字節。

8a //簽名長度,0x8A = 138字節。

// 138字節長簽名,包含兩部分:公鑰+簽名。

47 //簽名長度,0x47 = 71字節。

3044022055 BAC 1856 ecbc 377 dd5 e 869 b 1a 84 ed 1d 5228 c 987 b 098 c 095030 c 12431a4d 5249022055523130 a 9d 0a F5 fc 27828 ABA 43 b 464 ECB 65438

41 //公鑰長度,0x41 = 65字節。

048 aefd 78 BBA 80 e 2d 1686225 b 755 da CEA 890 c9ca 1be 10ec 98173d 7d 5 F2 fefbbf 881a6e 918f 3 b 051f 8 AAAA aa3 FCC 18 bbf 65097 ce 8d 30 da 7 e 5 e 5 ef 88

Ffffffff //序列,0xffffffff = 4294967295,UINT32,固定4字節。

/* * *第二組輸入Tx。按照與上面相同的方式,分解* * */

c 9 F3 b 07 ebf ca 68 FD 1a 6339d 0808 fbb 013c 90 c 6095 fc 93901ea 77410103489 ab 701000008 a 47304402206 b 993231 adec 55 e 6085 e 75 f

/* * *第三組InputTx * * *

c 98620 a 6 c 40 fc 7 B3 a 506 ad 79 af 339541762 facd 1 DD 80 ff 0881d 773 FB 72 b 230 da 010000008 b 483045022040 a5d 957 e 087 ed 61 e 80 f 1165438

02 // Tx輸出數量,可變長度INT。兩個輸出。

/* * *第壹組輸出* * *

00bd 01050000000//貨幣值輸出,UINT64,8字節。字節順序需要反過來,~ = 0x 00000000501bd 00 = 840000000 Satoshi。

19 //輸出目的地