⽐特币中的数据结构
1. 哈希指针十月份放假安排和调休
普通的指针存储的是某个结构体在内存中的地址,哈希指针除了要存地址还要保存结构体的哈希值。
手袋制作2. 区块链川g是四川哪里车牌号
区块链就是⼀个⼀个的区块组成的链表,区块链和普通的链表的区别在于区块链使⽤哈希指针。⽐特币中⼀个区块主要包含两部分,⼀个是block header 这⾥主要包含上⼀个区块的哈希值、时间戳、挖矿难度、⼯作量证明随机数、该区块链交易Merkle Tree的根哈希值。下⾯是⼀张区块链⽰意图。
周年庆典主持词快递投诉最狠的方式取哈希的时候是将整个区块的header内容放在⼀起取哈希,每⼀个区块哈希的取得是将前⼀个区块head
er⾥⾯的全部内容拼接在⼀起取哈希得到的,如区块3的哈希是将区块2 header⾥⾯的值拼接在⼀起取哈希得到的。这种数据结构有⼀个很重要的性质是我们只要保存最后的哈希值就可以检测出对区块链中任何部位的修改。有了这个性质⽐特币节点中有些节点就不必保存整条区块链的内容。⽐如⼀个节点只保存最近的⼏个节点,如果要⽤到以前的节点可以从系统中的其它节点来要这个区块。
3. Merkle Tree
⽐特币系统中的节点分为两类,⼀类是全节点⼀类是轻节点,全节点保存整个块,轻节点只保存block header。这样就带来了⼀个问题,如何证明⼀个交易被写在了区块⾥。
交行信用卡取现手续费
上⾯是⼀个Merkle Tree⽰意图。现在假设某⼀个轻节点要证明黄⾊的交易存在。轻节点会像某⼀个全节点发送⼀个Merkle Proof请求,全节点收到请求后只要把这三个红⾊的哈希值发送给这个轻节点就可以了。有了这些哈希值轻节点可以计算出图中绿⾊的哈希值。⽐如我们对黄⾊的交易取哈希后让它在与旁边的哈希值合并取哈希,依此类推,这样最后我们就能计算出⼀个根哈希值,将此哈希值与block header⾥保存的根哈希值⽐较⼀下就可以确定黄⾊的交易是否存在这颗Merkle Tree⾥。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论