最近,人们对稀疏梅克尔树(SMTs)感兴趣。我知道Ethereum使用Patricia (PT),但是这个线程似乎表明使用SMT会产生类似的性能,如果构造正确的话会更好。
我理解SMT的一般工作方式(生成所有可能输入的哈希,而树是稀疏的,因为实际上没有存储所有的空键和槽),但是它如何在Ethereum和切分的上下文中工作呢?
发布于 2018-09-05 16:12:37
一个生成所有可能的输入的散列。
不完全是(也许你只是表达得不太好)。要创建SMT,需要生成将使用的散列函数的所有可能输出,然后每个输出都成为SMT的一页。因此,如果我们使用256位哈希函数(例如SHA-256),我们的SMT将包含2^256片片。
所有这些以及更多的内容都可以在这里找到:https://github.com/pylls/gosmt (底部还有一个指向原始论文的链接)。
SMT几乎可以在我们使用(或计划使用)尝试过的任何地方使用。Ethereum的MPTs理解、实现和使用非常复杂,SMT简单得多,效率相近。国际海事组织,它将主要用于州树和等离子体链。
希望这能帮上忙。:)
https://ethereum.stackexchange.com/questions/57761
复制相似问题