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时,证明这个交易确实不存在。

  • 相关阅读:
    对silverlight布局进行控制,使其居中显示,适用于不同的分辨率
    图(邻接表链表和边表)
    LINUX下GCC编译sqrt函数问题
    图(邻接矩阵)
    表达式树
    赫夫曼树
    N的阶乘中末尾有几个0
    走迷宫
    HDU1863畅通工程(最小生成树 Kruskal)
    KMP算法
  • 原文地址:https://www.cnblogs.com/siyuan-Jin/p/12388403.html
Copyright © 2011-2022 走看看