導航:首頁 > 比特幣區 > 3c比特幣正在改變世界3e

3c比特幣正在改變世界3e

發布時間:2024-10-03 18:30:43

A. 比特幣交易構成 你知道多少


交易類型
產量交易(Generation)
每個Block都對應一個產量交易(Generation TX),該類交易是沒有輸入交易的,挖出的新幣是所有幣的源頭。
合成地址交易(Script Hash)
該類交易的接收地址不是通常意義的地址,而是一個合成地址,以3開頭,需要幾對公私鑰一起生成合成地址,在生成過程中可以指定,幾對公私鑰中的幾個簽名以後,就可以消費該地址的比特幣。
通用地址交易(Pubkey Hash)
該類是最常見的交易類型,由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是一個多意欄位,表示在某個高度的Block之前或某個時間點之前該交易處於鎖消慎定態,無法收錄進Block。


含義
0立即生效 500000000含義為Block高度,處於該Block之前為鎖定(不生效)= 500000000含義為Unix時間戳,處於該時刻之前為鎖定(不生效)
若該筆交易的所有輸入交易的sequence欄位,均為INT32最大值(0xffffffff),則忽略lock_time欄位。否則,該交易在未達到Block高度或達到某個時刻之前,是不會被收錄進Block中的。
示例
為了演示方便,我們讀取稍早期的塊數據,以高度116219 Block為例。
# ~ bitcoind getblock
{
hash : ,
confirmations : 144667,
size : 1536,
height : 116219,
version : 1,
merkleroot : ,
tx : [
,
,
,
,

],
time : 1301705313,
nonce : 1826107553,
bits : 1b00f339,
difficulty : 68977.78463021,
previousblockhash : ,
nextblockhash :
}
該Block裡面有5筆交易,第一筆為Generation TX,解析出來看一下具體內容:
# ~ bitcoind getrawtransaction 1
{
hex : ,
txid : ,
version : 1,
locktime : 0,
vin : [
{
coinbase : 0439f3001b0134,
sequence : 4294967295
}
],
vout : [
{
value : 50.01000000,
n : 0,
scriptPubKey : {
asm : OP_CHECKSIG,
hex : 41ac,
reqSigs : 1,
type : pubkey,
addresses : [

]
}
}
],
blockhash : ,
confirmations : 145029,
time : 1301705313,
blocktime : 1301705313
}
Generation TX的輸入不是一個交易,而帶有coinbase欄位的結構。該欄位的值由挖出此Block的人填寫,這是一種「特權」:可以把信息寫入貨幣系統(大家很喜歡用系統中的數據結構欄位名來命名站點,例如blockchain、coinbase等,這些詞的各種後綴域名都被搶注一空)。中本聰在比特幣的第一個交易中的寫入的coinbase值是:
coinbase:722062616e6b731
將該段16進制轉換為ASCII字元,就是那段著名的創世塊留言:
The Times 03/Jan/2009 Chancellor on brink of second lout for banks1
接下來展示的是一個三個輸入、兩個輸出的普通交易:
# ~ bitcoind getrawtransaction 1
{
hex : ,
txid : ,
version : 1,
locktime : 0,
vin : [
{
txid : ,
vout : 0,
scriptSig : {
asm : 01 ,
hex :
},
sequence : 4294967295
},
{
txid : ,
vout : 1,
scriptSig : {
asm : 01 ,
hex :
},
sequence : 4294967295
},
{
txid : ,
vout : 1,
scriptSig : {
asm : 1d01 ,
hex :
},
sequence : 4294967295
}
],
vout : [
{
value : 0.84000000,
n : 0,
scriptPubKey : {
asm : OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG,
hex : 76a91488ac,
reqSigs : 1,
type : pubkeyhash,
addresses : [

]
}
},
{
value : 156.83000000,
n : 1,
scriptPubKey : {
asm : OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG,
hex : 76a91488ac,
reqSigs : 1,
type : pubkeyhash,
addresses : [

]
}
}
],
blockhash : ,
confirmations : 147751,
time : 1301705313,
blocktime : 1301705313
}5859606162636465666768
欄位hex記錄了所有相關信息,後面顯示的是hex解析出來的各類欄位信息。下面把逐個分解hex內容(hex可以從上面的直接看到):
01000000 // 版本號,UINT32
03 // Tx輸入數量,變長INT。3個輸入。
/*** 第一組Input Tx ***/
// Tx Hash,固定32位元組

00000000 // 消費的Tx位於前向交易輸出的第0個,UINT32,固定4位元組
8a // 簽名的長度, 0x8A = 138位元組
// 138位元組長度的簽名,含有兩個部分:公鑰+簽名
47 // 簽名長度,0x47 = 71位元組
01
41 // 公鑰長度,0x41 = 65位元組

ffffffff // sequence,0xffffffff = 4294967295, UINT32, 固定4位元組
/*** 第二組Input Tx。與上同理,省略分解 ***/
ffff
/*** 第三組Input Tx ***/
2fffffffff
02 // Tx輸出數量,變長INT。兩個輸出。
/*** 第一組輸出 ***/
00bd010500000000 // 輸出的幣值,UINT64,8個位元組。位元組序需翻轉,~= 0x000000000501bd00 = 84000000 satoshi
19 // 輸出目

閱讀全文

與3c比特幣正在改變世界3e相關的資料

熱點內容
中國發行數字貨幣是怎麼回事 瀏覽:985
幣比特幣騙局 瀏覽:428
怎麼看以太坊錢包usdt 瀏覽:957
以太坊幾個確認安全 瀏覽:515
btc石油管道 瀏覽:806
比特幣騙局何時破滅 瀏覽:333
比特幣交易視頻大全 瀏覽:387
比特幣地址是大約多少位 瀏覽:62
ok可以用btc抵押借usdt嗎 瀏覽:293
中國鼓勵設立區塊鏈地區 瀏覽:956
區塊鏈2019潛力幣怎麼開戶 瀏覽:570
虛擬貨幣需要牌照嗎 瀏覽:660
btc今天為啥 瀏覽:780
硬碟挖礦算力 瀏覽:488
礦工怎樣加入礦池 瀏覽:888
以太坊用什麼機制計費 瀏覽:205
centos以太坊節點重新初始化 瀏覽:453
超級mmm比特幣提現 瀏覽:514
以太坊黑洞帳戶 瀏覽:295
比特幣交易數據介面 瀏覽:461