• 轻节点如何验证交易的存在


    一、 轻节点和全节点

    每一个区块包括区块头和区块体,区块体内包含着这个区块中囊括的交易,而区块头只需要维护所有交易经过merkle tree计算而得的root hash值就可以了。

    轻节点就像我们的手机,只需要维护区块链中区块头的信息。

    而全节点需要维护所有区块中的信息,大多数全节点是矿机。

    二、 如何进行交易验证

    当轻节点想要确定这个交易是否在区块中时,它首先收到交易对手发给它的数据区块以及路径节点。

    轻节点首先需要验证,数据区块中是否存在发生的交易;

    其次,轻节点将顺着数据区块,经过路径节点步步计算得到区块头的hash值。注意这里的hash值很难伪造,这保证了这个方法的可行性。

    轻节点收到计算得到的区块头中的root hash值与自己维护的区块头信息进行匹配,则完成了验证。

    三、 如何验证交易不存在

    通过上面的方法,虽然可以验证交易存在是否合法,但是如果我们想主动验证某个交易是否存在,该怎么办呢?

    一个方法就是穷举数据块,可以想象这个过程将消耗很大的计算量。

    proof of non-membership提出,在数据区块构成merkle tree的时候,数据区块将根据每一个区块的hash值进行排列,这样当我们想验证某个交易是否存在时,我们对这个交易的数据求hash,然后按照大小进行寻找。当得到这个hash值相邻的两个区块时,我们对其进行merkle proof向上求解,当得到root hash时,证明这个交易确实不存在。

  • 相关阅读:
    贾鹏芳 二胡演奏家
    php 关于下载中文文件实现
    Android 线程。。
    Hadoop命令行接口运行自己编写的类
    ubuntu下jdk环境变量的设置
    navicat导入sql语句文件失败原因-----datetime
    sql server获取当前时间到秒级和毫秒级的语句
    sql关于group by的问题
    java的equal和==的区别
    win8.1 占用80端口问题
  • 原文地址:https://www.cnblogs.com/siyuan-Jin/p/12388403.html
Copyright © 2020-2023  润新知