当前位置:首页 » 《随便一记》 » 正文

BTC源码分析 区块(一)_u013434801的博客

17 人参与  2021年11月08日 15:43  分类 : 《随便一记》  评论

点击全文阅读


概念

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

在这里插入图片描述
区块中包含着众多的交易,同时也包含了时间戳等其他信息。由于交易的哈希值会影响区块的哈希值,前一区块的哈希值会影响后一区块的哈希值,因此形成了一条环环相扣的链。而维系着链强度的,则是工作量证明

数据结构

在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字段

区块生成

在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/30657.html

区块  克尔  工作量  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1