欢迎光临
我们一直在努力

BTC源码分析 区块(一)

概念

在《比特币:一种点对点的电子现金系统》中,比特币被设计成完全不依赖任何受信任的第三方金融机构。为了在不需要第三方支持的情况下解决电子货币双重支付问题,中本聪交易记录工作量证明(PoW, proof-of-work)结合在一起,以链表的形式表达,链表结点则是区块(Block)。

BTC源码分析 区块(一)
区块中包含着众多的交易,同时也包含了时间戳等其他信息。由于交易的哈希值会影响区块的哈希值,前一区块的哈希值会影响后一区块的哈希值,因此形成了一条环环相扣的链。而维系着链强度的,则是工作量证明

数据结构

在bitcoin-0.1.5中,与区块相关的数据结构主要集中在main.h文件中,类图如下:

CBlock int nVersion uint256 hashPrevBlock uint256 hashMerkleRoot uint nTime uint nBits uint nNonce vector<CTransaction> vtx; vector<uint256> vMerkleTree; CTransaction int nVersion vector<CTxIn> vin; vector<CTxOut> vout; int nLockTime

nVersion:区块版本
hashPrevBlock:前一区块的哈希值
hashMerkleRoot:交易的梅克尔树根哈希值
nTime:区块时间戳
nBits:工作量证明的难度
nNonce:被用于寻找符合条件的工作量证明
vtx:区块包含的交易
vMerkleTree:交易哈希值的梅克尔树,本树不会被包含在区块头中

区块哈希:仅计算区块头部的哈希值,即从nVersion字段到nNonce字段

区块生成

BTC源码分析 区块(一)

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《BTC源码分析 区块(一)》
文章链接:https://www.456zj.com/19853.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址