当前位置:主页 > 行业新闻 >

网络节点能够自行确认交易的有效性

发布时间:2020-10-13 19:05   浏览次数:次   作者:货币
如果最近的交易已经被纳人了足够多的区块之中,那么就可以丢弃该交易之前的数据,以回收硬盘空间。为了同时确保不损害区块的随机散列值,交易信息被进行随机散列时,构建成一种Merkle树(Merkletree)的形态,使得只有根(root)被纳人了区块的随机散列值。通过将该树(tree)的分支拔除(stubbing)的方法,老区块就能被压缩。而内部的随机散列值是不必保存的。Merkle树如图2.4所示。
不含交易信息的区块头(BlockHeader)大小仅有80字节。如果我们设定区块生成的速奉为每10分钟一个,那么每年产生的数据为4.2MB(80byex6x24x365一4.2MB)。208年,PC系统通常的内存容量为2GB,按照摩尔定律的预言,即使将全部的区块头存储于内存之中都不是问题。
在不运行完整网络节点的情况下,也能够对支付进行检验。一个用户需要保留最长的工作量证明链条的区块头的拷贝,它可以不断向网络发起询问,直到它确信自己拥有最长的链条,并能够通过Merkle的分支通向它被加上时间戳并纳入区块的那次交易。节点想要自行检验该交易的有效性原本是不可能的,但通过追溯到链条的某个位置,它就能看到某个节点曾经接受过它,并且其后追加的区块也进一步证明全网曾经接受了它。
比特币支付确认如图2.5所示。
当此情形,只要诚实的节点控制了网络,检验机制就是可靠的。但是,当被一个计算力占优的攻击者攻击时,全网将变得较为脆弱。因为网络节点能够自行确认交易的有效性,只要攻击者能够持续地保持计算力优势,简化的机制会被攻击者伪造的(fabricated)交易欺骗。一个可行的策略就是,只要他们发现了一个无效的区块,就立刻发出警报,收到警报的用户将立刻开始下载被警告有问题的区块或交易的完整信息,以便对信息的不一致进行判定。对于日常会发生大量收付的商业机构,可能仍会希望运行他们自己的完整节点,以保持较大的独立完全性和检验的快速性。
交易的输人和输出如图2.6所示。
以上内容由智币通自动炒币量化机器人软件提供!
下一篇没有了