其实比特币交易结构的问题并不复杂,但是又很多的朋友都不太了解比特币交易结构图,因此呢,今天小编就来为大家分享比特币交易结构的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
本文目录
比特币交易构成 你知道多少比特币如何算出来的什么是比特币分叉比特币数据结构是怎样的呢比特币交易构成 你知道多少交易类型
产量交易(Generation)
每个Block都对应一个产量交易(GenerationTX),该类交易是没有输入交易的,挖出的新币是所有币的源头。
合成地址交易(ScriptHash)
该类交易的接收地址不是通常意义的地址,而是一个合成地址,以3开头,需要几对公私钥一起生成合成地址,在生成过程中可以指定,几对公私钥中的几个签名以后,就可以消费该地址的比特币。
通用地址交易(PubkeyHash)
该类是最常见的交易类型,由N个输入、M个输出构成。
输入和输出可以简单的理解成,发出币的地址就是输入,收到币的地址就是输出。
数据结构
字段
数据类型
字段大小
字段描述
versionuint32_t
4交易数据结构的版本号tx_incountvar_int1+输入交易的数量tx_intx_in[]41+输入交易的数组,每个输入=41字节
tx_outcountvar_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中的。
示例
为了演示方便,我们读取稍早期的块数据,以高度116219Block为例。
#~bitcoindgetblock0000000000007c639f2cbb23e4606a1d022fa4206353b9d92e99f5144bd74611
{
hash:0000000000007c639f2cbb23e4606a1d022fa4206353b9d92e99f5144bd74611,
confirmations:144667,
size:1536,
height:116219,
version:1,
merkleroot:587fefd748f899f84d0fa1d8a3876fdb406a4bb8f54a31445cb72564701daea6,
tx:[
be8f08d7f519eb863a68cf292ca51dbab7c9b49f50a96d13f2db32e432db363e,
a387039eca66297ba51ef2da3dcc8a0fc745bcb511e20ed9505cc6762be037bb,
2bd83162e264abf59f9124ca517050065f8c8eed2a21fbf85d454ee4e0e4c267,
028cfae228f8a4b0caee9c566bd41aed36bcd237cdc0eb18f0331d1e87111743,
3a06b6615756dc3363a8567fbfa8fe978ee0ba06eb33fd844886a0f01149ad62
],
time:1301705313,
nonce:1826107553,
bits:1b00f339,
difficulty:68977.78463021,
previousblockhash:0000000
0000010d549135eb39bd3bbb1047df8e1512357216e8a85c57a1efbfb,nextblockhash:000000000000e9fcc59a6850f64a94476a30f5fe35d6d8c4b4ce0b1b04103a77
}
该Block里面有5笔交易,第一笔为GenerationTX,解析出来看一下具体内容:
#~bitcoindgetrawtransactionbe8f08d7f519eb863a68cf292ca51dbab7c9b49f50a96d13f2db32e432db363e1
{
hex:01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff070439f3001b0134ffffffff014034152a010000004341045b3aaa284d169c5ae2d20d0b0673468ed3506aa8fea5976eacaf1ff304456f6522fbce1a646a24005b8b8e771a671f564ca6c03e484a1c394bf96e2a4ad01dceac00000000,
txid:be8f08d7f519eb863a68cf292ca51dbab7c9b49f50a96d13f2db32e432db363e,
version:1,
locktime:0,
vin:[
{
coinbase:0439f3001b0134,
sequence:4294967295
}
],
vout:[
{
value:50.01000000,
n:0,
scriptPubKey:{
asm:045b3aaa284d169c5ae2d20d0b0673468ed3506aa8fea5976eacaf1ff304456f6522fbce1a646a24005b8b8e771a671f564ca6c03e484a1c394bf96e2a4ad01dceOP_CHECKSIG,
hex:41045b3aaa284d169c5ae2d20d0b0673468ed3506aa8fea5976eacaf1ff304456f6522fbce1a646a24005b8b8e771a671f564ca6c03e484a1c394bf96e2a4ad01dceac,
reqSigs:1,
type:pubkey,
addresses:[
1LgZTvoTJ6quJNCURmBUaJJkWWQZXkQnDn
]
}
}
],
blockhash:0000000000007c639f2cbb23e4606a1d022fa4206353b9d92e99f5144bd74611,
confirmations:145029,
time:1301705313,
blocktime:1301705313
}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
GenerationTX的输入不是一个交易,而带有coinbase字段的结构。该字段的值由挖出此Block的人填写,这是一种“特权”:可以把信息写入货币系统(大家很喜欢用系统中的数据结构字段名来命名站点,例如blockchain、coinbase等,这些词的各种后缀域名都被抢注一空)。中本聪在比特币的第一个交易中的写入的coinbase值是:
coinbase:04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b731
将该段16进制转换为ASCII字符,就是那段著名的创世块留言:
TheTimes03/Jan/2009Chancelloronbrinkofsecondbailoutforbanks1
接下来展示的是一个三个输入、两个输出的普通交易:
#~bitcoindgetra
wtransaction028cfae228f8a4b0caee9c566bd41aed36bcd237cdc0eb18f0331d1e871117431{
hex:0100000003c9f3b07ebfca68fd1a6339d0808fbb013c90c6095fc93901ea77410103489ab7000000008a473044022055bac1856ecbc377dd5e869b1a84ed1d5228c987b098c095030c12431a4d5249022055523130a9d0af5fc27828aba43b464ecb1991172ba2a509b5fbd6cac97ff3af0141048aefd78bba80e2d1686225b755dacea890c9ca1be10ec98173d7d5f2fefbbf881a6e918f3b051f8aaaa3fcc18bbf65097ce8d30d5a7e5ef8d1005eaafd4b3fbeffffffffc9f3b07ebfca68fd1a6339d0808fbb013c90c6095fc93901ea77410103489ab7010000008a47304402206b993231adec55e6085e75f7dc5ca6c19e42e744cd60abaff957b1c352b3ef9a022022a22fec37dfa2c646c78d9a0753d56cb4393e8d0b22dc580ef1aa6cccef208d0141042ff65bd6b3ef04253225405ccc3ab2dd926ff2ee48aac210819698440f35d785ec3cec92a51330eb0c76cf49e9e474fb9159ab41653a9c1725c031449d31026affffffffc98620a6c40fc7b3a506ad79af339541762facd1dd80ff0881d773fb72b230da010000008b483045
022040a5d957e087ed61e80f1110bcaf4901b5317c257711a6cbc54d6b98b6a8563f02210081e3697031fe82774b8f44dd3660901e61ac5a99bff2d0efc83ad261da5b4f1d014104a7d1a57e650613d3414ebd59e3192229dc09d3613e547bdd1f83435cc4ca0a11c679d96456cae75b1f5563728ec7da1c1f42606db15bf554dbe8a829f3a8fe2fffffffff0200bd0105000000001976a914634228c26cf40a02a05db93f2f98b768a8e0e61b88acc096c7a6030000001976a9147514080ab2fcac0764de3a77d10cb790c71c74c288ac00000000,txid:028cfae228f8a4b0caee9c566bd41aed36bcd237cdc0eb18f0331d1e87111743,
version:1,
locktime:0,
vin:[
{
txid:b79a4803014177ea0139c95f09c6903c01bb8f80d039631afd68cabf7eb0f3c9,
vout:0,
scriptSig:{
asm:3044022055bac1856ecbc377dd5e869b1a84ed1d5228c987b098c095030c12431a4d5249022055523130a9d0af5fc27828aba43b464ecb1991172ba2a509b5fbd6cac97ff3af01048aefd78bba80e2d1686225b755dacea890c9ca1be10ec98173d7d5f2fefbbf881a6e918f3b051f8aaaa3fcc18bbf65097ce8d30d5a7e5ef8d1005eaafd4b3fbe,
hex:473044022055bac1856ecbc377dd5e869b1a84ed1d5228c987b098c095030c12431a4d5249022055523130a9d0af5fc27828aba43b464ecb1991172ba2a509b5fbd6cac97ff3af0141048aefd78bba80e2d1686225b755dacea890c9ca1be10ec98173d7d5f2fefbbf881a6e918f3b051f8aaaa3fcc18bbf65097ce8d30d5a7e5ef8d1005eaafd4b3fbe
},
sequence:4294967295
},
{
txid:b79a4803014177ea0139c95f09c6903c01bb8f80d039631afd68cabf7eb0f3c9,
vout:1,
scriptSig:{
asm:304402206b993231adec55e6085e75f7dc5ca6c19e42e744cd60abaff957b1c352b3ef9a022022a22fec37dfa2c646c78d9a0753d56cb4393e8d0b22dc580ef1aa6cccef208d01042ff65bd6b3ef04253225405ccc3ab2dd926ff2ee48aac210819698440f35d785ec3cec92a51330eb0c76cf49e9e474fb9159ab41653a9c1725c031449d31026a,
hex:47304402206b993231adec55e6085e75f7dc5ca6c19e42e744cd60abaff957b1c352b3ef9a022022a22fec37dfa2c646c78d9a0753d56cb4393e8d0b22dc580ef1aa6cccef208d0141042ff65bd6b3ef04253225405ccc3ab2dd926ff2ee48aac210819698440f35d785ec3cec92a51330eb0c76cf49e9e474fb9159ab41653a9c1725c031449d31026a
},
sequence:4294967295
},
{
txid:da30b272fb73d78108ff80ddd1ac2f76419533af79ad06a5b3c70fc4a62086c9,
vout:1,
scriptSig:{
asm:3045022040a5d957e087ed61e80f1
110bcaf4901b5317c257711a6cbc54d6b98b6a8563f02210081e3697031fe82774b8f44dd3660901e61ac5a99bff2d0efc83ad261da5b4f1d0104a7d1a57e650613d3414ebd59e3192229dc09d3613e547bdd1f83435cc4ca0a11c679d96456cae75b1f5563728ec7da1c1f42606db15bf554dbe8a829f3a8fe2f,hex:483045022040a5d957e087ed61e80f1110bcaf4901b5317c257711a6cbc54d6b98b6a8563f02210081e3697031fe82774b8f44dd3660901e61ac5a99bff2d0efc83ad261da5b4f1d014104a7d1a57e650613d3414ebd59e3192229dc09d3613e547bdd1f83435cc4ca0a11c679d96456cae75b1f5563728ec7da1c1f42606db15bf554dbe8a829f3a8fe2f
},
sequence:4294967295
}
],
vout:[
{
value:0.84000000,
n:0,
scriptPubKey:{
asm:OP_DUPOP_HASH160634228c26cf40a02a05db93f2f98b768a8e0e61bOP_EQUALVERIFYOP_CHECKSIG,
hex:76a914634228c26cf40a02a05db93f2f98b768a8e0e61b88ac,
reqSigs:1,
type:pubkeyhash,
addresses:[
1A3q9pDtR4h8wpvyb8SVpiNPpT8ZNbHY8h
]
}
},
{
value:156.83000000,
n:1,
scriptPubKey:{
asm:OP_DUPOP_HASH1607514080ab2fcac0764de3a77d10cb790c71c74c2OP_EQUALVERIFYOP_CHECKSIG,
hex:76a9147514080ab2fcac0764de3a77d10cb790c71c74c288ac,
reqSigs:1,
type:pubkeyhash,
addresses:[
1Bg44FZsoTeYteRykC1XHz8facWYKhGvQ8
]
}
}
],
blockhash:0000000000007c639f2cbb23e4606a1d022fa4206353b9d92e99f5144bd74611,
confirmations:147751,
time:1301705313,
blocktime:1301705313
}1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
字段hex记录了所有相关信息,后面显示的是hex解析出来的各类字段信息。下面把逐个分解hex内容(hex可以从上面的直接看到):
01000000//版本号,UINT32
03//Tx输入数量,变长INT。3个输入。
/***第一组InputTx***/
//TxHash,固定32字节
c9f3b07ebfca68fd1a6339d0808fbb013c90c6095fc93901ea77410103489ab7
00000000//消费的Tx位于前向交易输出的第0个,UINT32,固定4字节
8a//签名的长度,0x8A=138字节
//138字节长度的签名,含有两个部分:公钥+签名
47//签名长度,0x47=71字节
3044022055bac1856ecbc377dd5e869b1a84ed1d5228c987b098c095030c12431a4d5249022055523130a9d0af5fc27828aba43b464ecb1991172ba2a509b5fbd6cac97ff3af01
41//公钥长度,0x41=65字节
048aefd78bba80e2d1686225b755dacea890c9ca1be10ec98173d7d5f2fefbbf881a6e918f3b051f8aaaa3fcc18bbf65097ce8d30d5a7e5ef8d1005eaafd4b3fbe
ffffffff//sequence,0xffffffff=4294967295,UINT32,固定4字节
/***第二组InputTx。与上同理,省略分解***/
c9f3b07ebfca68fd1a6339d0808fbb013c90c6095fc93901ea77410103489ab7010000008a47304402206b993231adec55e6085e75f7dc5ca6c19e42e744cd60abaff957b1c352b3ef9a022022a22fec37dfa2c646c78d9a0753d56cb4393e8d0b22dc580ef1aa6cccef208d0141042ff65bd6b3ef04253225405ccc3ab2dd926ff2ee48aac210819698440f35d785ec3cec92a51330eb0c76cf49e9e474fb9159ab41653a9c1725c031449d31026affffffff
/***第三组InputTx***/
c98620a6c40fc7b3a506ad79af339541762facd1dd80ff0881d773fb72b230da010000008b483045022040a5d957e087ed61e80f1110bcaf4901b5317c257711a6cbc54d6b98b6a8563f02210081e3697031fe82774b8f44dd3660901e61ac5a99bff2d0efc83ad261da5b4f1d014104a7d1a57e650613d3414ebd59e3192229dc09d3613e547bdd1f83435cc4ca0a11c679d96456cae75b1f5563728ec7da1c1f42606db15bf554dbe8a829f3a8fe2fffffffff
02//Tx输出数量,变长INT。两个输出。
/***第一组输出***/
00bd010500000000//输出的币值,UINT64,8个字节。字节序需翻转,~=0x000000000501bd00=84000000satoshi
19//输出目
比特币如何算出来的从比特币的本质说起,比特币的本质其实就是一堆复杂算法所生成的特解。特解是指方程组所能得到有限个解中的一组。而每一个特解都能解开方程并且是唯一的。
以钞票来比喻的话,比特币就是钞票的冠字号码,知道了某张钞票上的冠字号码,就拥有了这张钞票。而挖矿的过程就是通过庞大的计算量不断的去寻求这个方程组的特解,这个方程组被设计成了只有2100万个特解,所以比特币的上限就是2100万个。
要挖掘比特币可以下载专用的比特币运算工具,然后注册各种合作网站,把注册来的用户名和密码填入计算程序中,再点击运算就正式开始。完成Bitcoin客户端安装后,可以直接获得一个Bitcoin地址,当别人付钱的时候,只需要自己把地址贴给别人,就能通过同样的客户端进行付款。
在安装好比特币客户端后,它将会分配一个私钥和一个公钥。需要备份你包含私钥的钱包数据,才能保证财产不丢失。如果不幸完全格式化硬盘,个人的比特币将会完全丢失。
钱包
比特币钱包使用户可以检查、存储、花费其持有的比特币,其形式多种多样,功能可繁可简,它可以是遵守比特币协议运行的各种工具,如电脑客户端、手机客户端、网站服务、专用设备;
也可以只是存储著比特币私密密钥的介质,如一张纸、一段暗号、一个快闪U盘、一个文本文档,因为只要掌握比特币的私密密钥,就可以处置其对应地址中包含的比特币。比特币无法存入一般的银行账户,交易只能在比特币网络上进行,使用前需下载客户端或接入线上网络。
以上内容参考百度百科-比特币
什么是比特币分叉比特币中一个区块的容量就是1M(兆字节)吧。而一笔交易是250到500字节之间。
按照这种算法,那么一个区块大约包含的4194.3(笔)交易。
比特币中一个区块确认的时间是10分钟,那么一个区块每秒能处理的7个交易,可能有时候连7笔都达不到。
这样会造成一什么后果呢?
这就像一条不够宽的街道,忽然来了很多辆车。车太多,而街道的宽度有限,那么势必就会造成堵车。
在比特币区块上面的交易也是如此,前面一笔交易还没处理好,后面却有一堆排着队等待确认的交易。
如果排队等待确认的交易太多,势必就会撑爆区块。
就像一个只能承载12人的电梯,你装20个人是启动不了的。如果硬要塞两百个人进去,估计电梯要瘫痪了。
区块只有那么大,那现在怎么办呢。
去找中本聪升级区块,扩大区块容量,不就可以了。
但中本聪失踪啦,这办法根本行不通。
从2014年开始,比特币的社群把扩容这件事提上了议事日程。
我们知道比特币网络是一个去中心化的网络。在这个世界里,没有一个中心化的机构来运转,凡事是要靠社区去协商才能才能达成一致的。
比特币扩容方案很多,在历史上也经历了很多迭代。
每一个团队都提出了自己不同的扩容方案。
但是,因没有第二个中本聪能统一这些扩容方案,所以比特币者不得不分叉了。
比特币的分叉分为硬分叉和软分叉。
硬分叉是:指比特币的区块格式或交易格式发生改变时,未升级的节点拒绝验证已经升级的节点生产出的区块。
已经升级的节点可以验证未升级节点生产出的区块,大家各自延续自己认为正确的链,所以分成两条链。
什么是软分叉呢?
软分叉是指比特币交易的数据结构发生改变时,
未升级的节点可以验证已经升级的节点生产出的区块,
而且已经升级的节点也可以验证未升级的节点生产出的区块。
比特币数据结构是怎样的呢你好,你问的这个问题相当有水准。
P2P即点对点
问题①比特币的交易信息和连接块存储在哪?
通俗点说交易信息等确认都是通过特殊算法计算后随机交由旷工验证的。不存在在哪里的问题
问题②有专门的存储服务器吗?
没有。这就是去中心化。没有类似央行的发行管理机构但它设计之初就有一套约束机制,确保人很难作弊
问题三和传统的电子现金没有什么区别了呢
没有发行机构方便便捷跨国际流通低成本比特币可以说是一种革命性的创新。电子现金显然不具备可比性。
下面括号这段引用百度百科:
(比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。比特币与其他虚拟货币最大的不同。)
个人观点:比特币确实是一种革命性创新加密技术电子货币有不少优点。
但是投资有风险币市水更深。它的价格目前存在较大泡沫,含有炒作投机成分。
比特币交易结构的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于比特币交易结构图、比特币交易结构的信息别忘了在本站进行查找哦。