zoukankan      html  css  js  c++  java
  • 轻节点如何验证交易的存在

    一、 轻节点和全节点

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

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

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

    二、 如何进行交易验证

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

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

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

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

    三、 如何验证交易不存在

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

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

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

  • 相关阅读:
    经典布局 ---- 双飞翼
    细嚼浏览器兼容----条件注释判断浏览器版本
    webqq的注册登记和聊天页面--运用jsonp跨域
    Bootstrap框架的要点--栅格系统
    html5橡皮檫特效
    PHP正确获取客户端IP地址
    常用排序算法及Java实现
    Math类中的floor、ceil和round方法
    Java中的动态反射机制和动态代理
    测试
  • 原文地址:https://www.cnblogs.com/siyuan-Jin/p/12388403.html
Copyright © 2011-2022 走看看