EOS 的Merkle证明分享
在验证交易时,如果不需要加工所有的交易会使得链与其他区块链的集成更加简单。毕竟交易的重点是转入和转出。要是区块链可以使用轻量的存款merkle 证明,会比要完全信赖它的区块生产者来得理想。而且区块生产者也希望在和其他区块链同步的时候使用尽可能小的费用。
EOS 的LCV(轻量证明) 的目的是能够生成相对轻量的存在证明,使人可以通过追踪相对来说比较少的数据就可以进行验证。它的目的是证明一个特定的交易是包含在特定的区块里,而且该区块是包含在此特定区块链已经被验证过的历史记录里。
比特币假设所有的节点都可以进入大小为每年4MB 的区块头球的整个历史来支持交易验证.在每秒10 个交易里,一个有效的证明大概需要512 字节。 这方法对每10 分钟出一块的区块链没问题,但对于每3 秒钟出块的区块链就不再是“轻量”了。
EOS.IO 软件对每个在交易后具有不可逆转区块头球启用轻量证明。使用以下所示的哈希链接结构可以用1024 字节来证明交易的存在。如果验证的节点跟得上过去一天所有区块的头球(2MB 的数据),那么要证明这些交易只需要200 字节长的证明。
这样做只需要少量的费用。如果要验证其他链的证明,可以对不同的时间/空间/带宽进行优化。追踪所有区块头球(420MB/年)要保持小的证明大小。仅追踪最新的头球可以平衡最小长期储存和证明大小的关系。另外的方法就是区块链可以使用懒评估方法,也就是仅记录过去证明的中间的哈希。新的证明只需要被包含在已知的稀疏树的链接里。具体要采用哪种方法很大程度上取决于merkle 证明参照的交易里有多少外来区块。
在建立一定程度的互联度后,可以让一条链包含另一条链的整个区块历史,而且除去所有需要的证明来取得高效率。要提高性能,最好就是让链内证明频率最小化。
后续会对merkle哈希树做一些解释。
我上周入手了一波eos。
:) 我也定期在进一些。
Merkle 这个功能还是很强大的。
是呀 。我在学习中。希望多了解一些
你好!cn区点赞机器人 @cnbuddy 这厢有礼了。如果我打扰到你,请回复“取消”。
这期最重要的就是定期入手EOS。