时间:2023-07-03|浏览:178
用戶喜愛的交易所
已有账号登陆后会弹出下载
南风
以太坊协议设计的主要目标之一是最小化复杂性:使协议尽可能简单,区块链仍然可以做一个有效的区块链网络需要做的事情。以太坊协议在这方面远不完美,特别是因为它的许多部分都在2014年-16年设计的,当时我们对它的理解要少得多,但我们仍然在尽可能地积极努力降低复杂性。然而,这个目标的挑战之一是复杂性很难定义,且有时,你必须在两个引入不同种类复杂性和具有不同代价的选择之间进行权衡。我们如何比较?
有一个强大的智能工具可以让我们更仔细地思考复杂性,即区分所谓的包装复杂性(encapsulated complexity)和系统复杂性(systemic complexity)。
当系统的子系统内部复杂时,向外部呈现一个简单的接口(interface)出现的时候「封装复杂性」。当系统的不同部分甚至不能清楚地分开,并且相互交互复杂时,「系统复杂性」就出现了。
H是哈希函数,m是消息,k和K是私钥和公钥。到目前为止,这很简单。然而,真正的复杂性隐藏在隐藏之中e函数定义:椭圆曲线配对(elliptic curve pairings),这是所有密码学中最难理解的数学部分之一。
现在,让我们来看看Schnorr签名。Schnorr签名仅依赖于基本的椭圆曲线。但签名和验证逻辑有点复杂:
所以…哪种签名更简单?这取决于你在乎什么!BLS签名具有巨大的技术复杂性,但复杂性隐藏在其中e在函数的定义中。假如你把e函数被视为黑盒,BLS签名其实很简单。另一方面,Schnorr签名的整体复杂性较低,但更多的部分可以以微妙的方式与外部世界互动。
例如:进行BLS多签(两个密钥k1和k2组合签名)很简单:只要σ1σ2。但是Schnorr多签名需要两轮交互,需要处理一些困难Key Cancellation攻击。Schnorr签名需要生成随机数,BLS不需要签名。
椭圆曲线配对通常是一种强大的复杂海绵,因为它包含大量的包装复杂性,但使解决方案具有较少的系统复杂性。这也适用于多项承诺领域:将KZG承诺(需要配对)的简单性和更复杂的内积证明(inner product arguments,不需要配对)比较内部逻辑。
密码学vs.加密经济学
密码学是许多区块链设计中的一个重要设计选择(cryptography)加密经济学(cryptoeconomics)比较。这个(比如在Rollups中)常在有效性证明(即ZK-SNARKs)和欺诈证明之间做出选择。
ZK-SNARKs是一项复杂的技术。尽管ZK-SNARKs工作原理背后的基本思路可以在一篇文章中解释清楚,但实际上实现了ZK-SNARK来验证一些计算涉及比计算本身多很多倍的复杂性(因此,这就是为什么用于EVM的ZK-SNARKs证明仍在开发中,用于EVM欺诈证书已处于测试阶段