比特币区块链上的新的验证区块方式将会使数字货币更加效率。在比特币的最初版本中,当节点收到区块中的交易数据时,他们会确认每一笔交易。而通常情况下这些交易在以前就被网络确认过了。
然而以前被确认过的交易并不能被用在区块确认中,这就在比特币交易中造成了低效情况,并限制了区块传播信息的速度。在这里有很多开发者都在尝试使用新方式让区块验证更加效率,其中就包括即将到来的“Cuckoo Cache(布谷鸟缓存)”方式。
Cuckoo缓存比特币
在2012年5月,比特币开发者Gavin Andresen 向比特币中添加了代码,缓存了签名验证的结果。“节点将会核实缓存并查看是否是正确的确认签名”,比特币代码贡献者Jeremy Rubin解释,他鼓励各方开发者能够踊跃和他交流。“这可以节省节点功夫,让其不在重复他们在之前便做过的ECDSA(椭圆曲线数字签名算法)签名确认”。
然而当核实比特币数据库的时候,Rubin指出比特币区块处理是低效的,归根结底这是签名缓存的设计问题。于是他开始思考设计一种新的方式来处理这个问题。
Rubin用了一个比喻来描述比特币的最初验证过程:
“想象一下你每次需要一些东西的时候,你必须回家才能获得他们。而这很难完成,尤其还要考虑到吃午饭时间。这就是为什么我们有时会带背包的原因了。如果我们知道不久后会用到午饭,钢笔,书,我们完全可以把它们随身携带着。如果我们需要的东西我们并没有带着,我们仍旧需要回家去取,但是这种事就不会频繁发生了。”
在编程上,‘缓存’就像一个背包。“比特币的原始签名缓存就像试图使用一个内部有洞的开口小塑料袋当作背包,其中装了半满的石头。由于石头,这个背包会很沉。因为洞的问题,东西一直在往外漏。因为它是一个塑料包,里边的东西是混乱的,你要寻找东西就需要花费一些时间。因为袋子的口小,你每次只能伸一只手进去,你不能看到包里有什么,或者是你拿到了什么东西。但是在一天结束的时候,你会觉得有这么个包会比频繁回家要强。”
Rubin类比Cuckoo Cache就像一个背包,它具有口袋,同时整整齐齐有条理,这就可以帮助比特币节点快速正确寻找需要验证交易的区块。
“uckoo Cache背包的开口足够大,当你需要拿东西时可以看到里边有什么。它也不在装沉重的石头。虽然你有时会把一些东西落在家里,不时也会丢一些东西,但是这种情况不会再像使用具有漏洞的塑料包时那样频繁。”
Rubin认为通过更新(像Cuckoo Cache)调整比特币的代码,将其整合进即将到来的0.14 Bitcoin Core版本中,可以在改善网络效率方面走的更远。他还提议改善缓存结构可以改善比特币数据库的其他方面。
使比特币更有效率
“在比特币数据库中有很多地方都用到了标准C++数据结构,因为标准库提供了很多原型的最简单方式,它能在一开始时候胜任承载的工作量。但是至于比特币扩容,如果我们重新考虑存储和操作比特币数据的方式,或许我们会有更多的收获。”
根据Rubin的意思,从最优化这些数据结构开始,对于Bitcoin Core来说是一个好的切入点。
“数据结构最优化是致力于比特币发展的一个很好切入点,因为这个问题非常独立。你不需要把所有有关比特币的事情都了解通透之后在开始,它很容易衡量和交流你的结果。通过从事这些问题,你会开始获得一个比特币在低层如何工作的更深理解。”
翻译:輕雨@比特头条 http://www.bitett.com 如何关注我们?
微信公众号→添加朋友→搜bitett
比特头条——人人皆可持股的比特币区块链社区!