美文网首页
02-比特币原理

02-比特币原理

作者: 6a91e15c5cde | 来源:发表于2018-06-10 19:10 被阅读7次

如何验证账本

账号 收入 支出 余额
张三 100 190
李四 100 30
王五 120 90 170

假设有上图这个账本,问题如下:

  • 如何知道上图账本中的每笔记录是正确的?
  • 如何知道上图的账本没有被篡改过?

方法:
当张三,李四,王五每个人手里都有一个这样的账本的时候,如果三个人中至少有两个人的账本数据是一致的,那么说明第三个人手里的账本可能是被篡改过的。这种少数服从多数的验证方法就是共识算法
问题:
这个方法可以校验账本的数据是否正确,但是放在一个更大规模的场景中会产生问题。比如在一个数亿万人的范围内,这种比较方法显然效率很低,需要和除自己以外的所有人进行比较。
解决方法:
使用Hash算法,Hash算法的特点:

  • 同样的原始信息,使用同一个哈希算法,总能得到相同的摘要信息
  • 原始信息任何一点变化,都会得到完全不同的摘要信息
  • 从摘要信息无法逆向推算出原始算法

使用Hash函数,输入账本的所有信息(账本序号,账本创建时间,张三的信息,王五的信息等),输出一个摘要信息,这个摘要信息类似下图。

---------------
| 序号          
| 时间戳        
| Hash值      
---------------
| 交易记录       
|               
---------------

假设生成时间:2018-06-10-11:10
假设生成hash值: AAAEEE1122

上图就是一个区块。
假设上图是生成的第一个账本,生成时间是2018-06-10-11:10, 十分钟后又生成了一个类似上图的账本,生成时间是2018-06-10-11:20. 此时计算摘要信息,会拿上一次生成的哈希值AAAEEE1122,和当前的账本信息作为原始值,输入到hash函数中,得到一个新的摘要信息,生成·一个新的区块。(hash值BBBCCC333444)
那么以此类推会生成类似下图的区块链

区块0  <--- 区块1 <---- 区块3 <-----区块4 <----  .........

那么每次核对账本的时候,只需要核对上一个块,如果上一个块是正确的,那么整个账本就是正确的。

账户所有权

相关文章

网友评论

      本文标题:02-比特币原理

      本文链接:https://www.haomeiwen.com/subject/mucqeftx.html