内容简介:比特币和以太坊一样,也是一个账本。不过比特币和以太坊的记账方式差别还是很大的。以太坊的记账方式是比特币的记账方式为
比特币记账方式
比特币和以太坊一样,也是一个账本。不过比特币和以太坊的记账方式差别还是很大的。
以太坊的记账方式是 余额
,余额以地址一一对应。
比特币的记账方式为 UTXO(Unspent Transaction Output)
,翻译出来大概是 未消费交易输出
。而地址的余额就是该地址所剩余的所有的 UTXO
金额的总和。
比特币的交易信息我们可以从区块链浏览器 blockchair [1] 上查看。
例如,我们查看地址 1ANjYHibCQ6FzagLfeXubC8SQYDfUS5wAJ
的余额为 23,969.00001200 BTC
。
然后我们查看这个地址的 UXTO
有4个
我们把这4个 UXTO
的金额 0.00000600+0.00000600+23,968.00000000+1.00000000
加起来便是 23,969.00001200 BTC
。
所以比特币没有余额只有 UXTO
比特币转账方式
我们再看一眼比特币的交易信息
我们看到,交易分为输入和输出。输入可以有多个,输出也可以有多个。
输入的金额总和-输出的金额总和=手续费。
所以我们需要注意一种情况,比如我们有一个地址1A的UXTO金额为0.5BTC,我们想给地址1B打0.1个BTC。那么在不考虑手续费的情况下,我们则需要构造这样一个交易, 注意,程序是不会自动帮我们创建找零输出的
转账详细数据
{
"txid": "766ea01f70f4259597fb6d07af42b9408dfe8147e1fecd6dfd16663054c4b1d6",
"hash": "766ea01f70f4259597fb6d07af42b9408dfe8147e1fecd6dfd16663054c4b1d6",
"version": 1,
"size": 225,
"vsize": 225,
"weight": 900,
"locktime": 0,
"vin": [
{
"txid": "5c2e50b7cb317a36a8fa52d32846727340925cf40868ad47f66ecf9cb2350509",
"vout": 1,
"scriptSig": {
"asm": "30440220344879b01bc208a5e3203505ce3be289fa3ec34e313d35219fee7bb0f4e41f9202204901ce1cf45706695f049df0da70652e98c21814f1f229bbecf6c00b32f4fccf[ALL] 02d62848a4d57a7fb4ff324202084d6ce1b0507d01a30646a96db1d9bdb8b5bb62",
"hex": "4730440220344879b01bc208a5e3203505ce3be289fa3ec34e313d35219fee7bb0f4e41f9202204901ce1cf45706695f049df0da70652e98c21814f1f229bbecf6c00b32f4fccf012102d62848a4d57a7fb4ff324202084d6ce1b0507d01a30646a96db1d9bdb8b5bb62"
},
"sequence": 4294967295
}
],
"vout": [
{
"value": 23968,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 66d5609d270a82f82fa15e74fce4f27fd178eb1d OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a91466d5609d270a82f82fa15e74fce4f27fd178eb1d88ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"1ANjYHibCQ6FzagLfeXubC8SQYDfUS5wAJ"
]
}
},
{
"value": 61977.12686354,
"n": 1,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 4d4bbd82d5a2350a4d48922483068f56d43f00dc OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a9144d4bbd82d5a2350a4d48922483068f56d43f00dc88ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"183hmJGRuTEi2YDCWy5iozY8rZtFwVgahM"
]
}
}
]
}
vin[].txid
为输入的 UXTO
的交易id, vin[].vout
为交易的输出索引。这两个数据便标示了唯一一个输出。所以这里需要注意,创建交易的输入数据是以之前的交易数据为基础的,而不是以地址为基础的。
vout
里主要包含地址和金额两个数据。需要注意的是,这里的地址是一个数组格式,因为这里涉及到多重签名。
这样我们就了解了比特币和以太坊交易的数据结构的区别,而在链的概念上他们基本是相同的。
参考资料
blockchair: https://blockchair.com/bitcoin
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 交易所安全测试:信息收集
- 交易所安全测试:安全审计指南
- POSCMS交易所系统多个高危漏洞详解
- 漏洞再藏交易所,黑客盯上行情区
- 资源就是生产力,使用BiClub交易所资源可免交易手续费
- 因为它,中心化交易所要慌(黄)了吗?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python源码剖析
陈儒 / 电子工业出版社 / 2008-6 / 69.80元
作为主流的动态语言,Python不仅简单易学、移植性好,而且拥有强大丰富的库的支持。此外,Python强大的可扩展性,让开发人员既可以非常容易地利用C/C++编写Python的扩展模块,还能将Python嵌入到C/C++程序中,为自己的系统添加动态扩展和动态编程的能力。. 为了更好地利用Python语言,无论是使用Python语言本身,还是将Python与C/C++交互使用,深刻理解Pyth......一起来看看 《Python源码剖析》 这本书的介绍吧!