Title: 区块大小安全隐患增加 比特币脚本存在新的二次延迟 Post by: 007eminem on April 20, 2017, 06:11:07 AM 金色财经讯Rootstock首席工程师塞尔吉奥.德米安.勒纳(Sergio Demian Lerner)在博客中透露,他在比特币脚本中发现了新的二次延迟,同时还正在对SegWit协议进行研究。
Lerner详述了他上周开始着手研究SegWit扩容以及学习代码,特别是EvalScript函数。在这个过程中,Lerner在Bitcoin Core协议中发现了两个二次复杂性循环。 不过,Lerner表示,各位无需担心这个测试结果,他认为比特币区块大小验证中还有更加糟糕的问题。然而,他又继续详述了一种来自恶意矿工的潜在攻击场景。 Lerner解释说:恶意的矿工大概可以创建一个验证时间大约为10秒的SegWit区块。而博客中展示的交易例子耗费了不到10秒。 德米安.勒纳不认为自己的发现是漏洞。不过,如果未来要增加区块大小,那么在此之前就需要解决这些问题。这里所给出的脚本例子的堆栈值并非为空的,虽然比特币协议并不需要它,比特币只需要顶部值为真来接受这个脚本。 比特币脚本需要优化,以防在未来的比特币扩容过程中出现惊喜 Lerner进一步描述了一个被他称为未被满足的质问者:OP_IF滥用的问题,还有一个存在于OP_ROLL操作码中的被称为摇滚(Rock-and-Roll)的问题。他还详细介绍了在优化区块大小方面做的大量工作。 他说一些旧的代码仍旧需要进行优化以此来防止在未来的扩容道路中出现任何的惊喜。 此外,比特币安全专家Kristov Atlas对Lerner及其发现结果进行了补充。他表示又一个很好的有关DoS攻击向量的报道。感谢Lerner的研究和公布。 平行验证 Lerner的这篇博客还引出了另一种想法,一位评论者问道: 你对BUIP033有什么看法吗? BUIP033是由比特币开发者Peter Tschipper于2016年10月份提出的一种概念,BUIP033提出为区块大小验证创建了一个单独的线程。本质上,这个想法与目前通过主处理线程来验证每一个区块的方法相反。 Lerner对此回复说:我认为单独线程对比特币的扩展性是必不可少的。这可以减少所有区块大小问题所造成的影响。 Lerner加入扩容争论 这位Rootstock首席工程师已经对目前的扩容争论发出了自己的声音。他最近还编写了一种区块大小提案,涉及到了SegWit和2MB区块大小增加。上个月,这个SegWit 2mb+软分叉/硬分叉结合的扩容计划得到了来自比特币开发者的各种各样的反应和评论。Lerner同时还是ASICBOOST技术的发明人,比特币社区在前一段时间对ASICBOOST进行了剧烈争论。 |