美文网首页
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