区块链中的安全审计是什么

到 2015 年初,尤塔·斯坦纳 (Jutta Steiner) 和其他人组织了发布前的安全审计,包括软件代码审计和学术审计。软件代码审计主要是在分别由加文和杰夫瑞主导的 C++和 Go 语言实现上。尽管我的 Pyethereum 实现也进行了一次简单的审计。在这两次学术审计中,一次由尤塔·埃雅尔 (Ittay Eyal) (因提出「自私挖矿」而成名) 负责进行的,另一次由安德鲁·米勒和 Least Authority 的其他成员进行。

 

埃雅尔的审计导致了一个轻微的协议变更,即链的总难度值不会包含叔区块。由 Least Authority 负责的审计更侧重于智能合约、燃料经济学以及帕特里夏树。这次审计也导致了几处的协议变更。其中,比较小的一处变更是使用 sha3(addr) 和 sha3(key) 作为树的键值,而不是直接使用地址和键值。这将使得攻击者更难对树发起最坏攻击。

 

我们讨论的另一个重要的问题是燃料限制投票机制。那时候,我们已经对关于比特币区块大小的争论缺乏进展感到担忧,并希望在以太坊中拥有一个灵活的设计:该设计能够根据需要随时间调整。但面临的挑战是,最佳的限制是什么?我最初的想法是制定一个动态的限制,该限制是实际燃料使用量的长期指数移动平均值的 1.5 倍。

 

因此,从长远来看,平均区块都会被占用 2/3 的容量。然而,安德鲁证明了这种限制在某些方面是可以被利用的——具体来说就是,想要提高限制的矿工仅需要把消耗大量燃料却只花费很少处理时间的交易都包含在他们自己的区块中,从而创建出满载区块且不会亏损成本。因此,至少从最终的结果来看,这个机制的安全模型相当于只是让矿工对燃料限制进行投票。

猜你喜欢

转载自blog.csdn.net/Ld13001625780/article/details/107745203