宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > 火必 > 正文

Vitalik:协议设计中的“封装复杂性” vs. “系统复杂性”

作者:

时间:1900/1/1 0:00:00

以太坊协议设计的主要目标之一是最小化复杂性:使协议尽可能简单,同时仍然使区块链能够做好一个有效的区块链网络需要做到的事情。以太坊协议在这方面还远远不够完美,特别是因为它的很多部分都是在2014-16年设计的,当时我们对它的理解要少得多,但我们仍然在尽可能地积极努力降低复杂性。

然而,这个目标的挑战之一是复杂性很难定义,且有时,你必须在两个引入不同种类复杂性和具有不同代价的选择之间进行权衡。我们如何比较?

有一个强大的智能工具可以让我们对复杂性进行更细致的思考,那就是区分我们所谓的封装复杂性?(encapsulatedcomplexity)和系统复杂性?(systemiccomplexity)。

当一个系统的子系统内部复杂,但向外部呈现一个简单的“接口”(interface)时,就是出现了「封装复杂性」。当系统的不同部分甚至不能被清晰地分开,并且相互之间有复杂的交互时,「系统复杂性」就出现了。

Vitalik:以太坊需要改进的不仅是协议的功能,需要对应用程序和钱包进行深度改变:金色财经报道,以太坊创始人Vitalik Buterin发布《The Three Transitions》文章。Vitalik称,当以太坊从一个年轻的实验性技术过渡到一个成熟的技术栈,能够真正为普通用户带来开放、全球和无需许可的体验,堆栈需要大致同时经历三个主要的技术过渡:向L2扩展过渡,每个人都转向Rollup;向钱包安全过渡,每个人都使用智能合约钱包;向隐私过渡,确保保护隐私的资金转移可行。

由于上述原因,这三个转变至关重要。但它们也具有挑战性,因为要妥善解决这些问题需要密切协调。需要改进的不仅是协议的功能;在某些情况下,我们与以太坊交互的方式需要从根本上改变,需要对应用程序和钱包进行深度的改变。[2023/6/9 21:27:01]

以下是几个例子。

BLS签名vs.Schnorr?签名

BLS签名和Schnorr签名是两种常用的可由椭圆曲线构成的加密签名方案。

BLS签名在数学上看起来非常简单:

Vitalik Buterin:开发人员还不知道“Merge + surge + verge + purge + splurge”的执行顺序:金色财经报道,以太坊联合创始人“V神” Vitalik Buterin 今日在社交媒体上发文称“Merge + surge + verge + purge + splurge”不是5个阶段,而是会并行发生。在回应加密社区质疑“合并后不会立即发生所有事情”的问题时,Vitalik Buterin 进一步解释说,这一切都是同时发生,实际的部署会在单独的硬分叉进行,但是不同的团队正在并行完成工作,在某些情况下,开发人员甚至还不知道事情的执行顺序。[2022/7/26 2:38:57]

H是一个哈希函数,m是消息,k和K是私钥和公钥。到目前为止,很简单。然而,真正的复杂性隐藏在e函数的定义中:椭圆曲线配对(ellipticcurvepairings),这是所有密码学中最难以理解的数学部分之一。

现在,我们来看看Schnorr签名。Schnorr签名只依赖于基本的椭圆曲线。但是签名和验证逻辑有点复杂:

加密交易所Gravity被迫暂停BSV交易:金色财经报道,以BSV为中心的加密货币交易所Gravity在推特上发布公告称,流动性提供商刚刚通知该交易所,由于几家大型交易所禁止BSV存款和取款,他们也暂停了对BSV流动性的访问,直至另行通知。这意味着用户目前无法在Gravity上交易BSV。据Gravity称,用户的资金不会受到流动性问题的影响。[2021/7/14 0:49:49]

所以…哪种类型的签名“更简单”?这取决于你在乎什么!BLS签名具有巨大的技术复杂性,但复杂性都隐藏在e函数的定义中。如果你把e函数看作一个黑盒,BLS签名实际上是非常简单的。另一方面,Schnorr签名的总体复杂性较低,但有更多的部分,能以一种微妙的方式与外部世界互动。

例如:

进行BLS多签(两个密钥k1和k2的组合签名)很简单:只需σ1+σ2。但是Schnorr多签名需要两轮交互,并且需要处理一些棘手的KeyCancellation攻击。

Schnorr签名需要生成随机数,BLS签名不需要。

椭圆曲线配对通常是一个强大的“复杂性海绵”,因为它们包含大量封装复杂性,但使解决方案具有更少的系统复杂性。这也适用于多项式承诺领域:将KZG承诺(需要配对)的简单性与更复杂的内积证明(innerproductarguments,不需要配对)的内部逻辑进行比较。

现场 | Vitalik:公链的价值来自于不同应用的链接:金色财经现场报道,10月27日,第六届区块链全球峰会于上海开幕,峰会的圆桌讨论环节,以太坊创始人Vitalik Buterin分享表示,我们的加密技术生态系统重要的是整个生态系统的发展,我们的价值来自于不同应用的链接,以及不同区块链间的交互。

针对链的升级,我认为解决方式在于在协议上,此外我们要优化不同层的性能,通过技术融合我们做一些改变,针对隐私保护,零知识证明是一个重要的技术方式,但对于隐私保护来说,有些信息需要公开,有些需要保护,需要具体场景具体考虑。

此外,如果想把传统的金融服务迁移到公链上,是很多公链无法做到,从安全角度来看,系统也需要检验,这是需要时间的。[2020/10/27]

密码学vs.加密经济学

在许多区块链设计中出现的一个重要设计选择是密码学(cryptography)与加密经济学(cryptoeconomics)的比较。这(比如在Rollups中)常常是在有效性证明(即ZK-SNARKs)和欺诈证明之间做出选择。

ZK-SNARKs是复杂的技术。虽然ZK-SNARKs工作原理背后的基本思路可以在一篇文章中解释清楚,但实际上实现一个ZK-SNARK来验证一些计算涉及到比计算本身多很多倍的复杂性(因此,这就是为什么用于EVM的ZK-SNARKs证明仍在开发中,而用于EVM的欺诈证明已经在测试阶段)。有效地实现一个ZK-SNARK证明涉及到了对特殊目的进行优化的电路设计、使用不熟悉的编程语言以及许多其他挑战。另一方面,欺诈证明本身就很简单:如果有人提出挑战,你只需直接在链上运行计算。为了提高效率,有时会添加一个二进制搜索方案,但即使这样也不会增加太多的复杂性。

现场 | Vitalik Buterin:区块链可以被视作是一种促进各种经济协调的工具:金色财经现场报道,今日,由金色财经提供战略媒体支持的以太坊产业发展峰会在香港举办,会上以太坊创始人Vitalik Buterin及其团队接受了包括金色财经在内的中外媒体采访。在回答“区块链究竟能给我们这个社会带来些什么”这一问题时,Vitalik Buterin表示:“我认为你可以把区块链看作是一种促进各种经济协调的工具,就像其他不同种类的经济机制一样,人们可以在互联网上合作制作内容,然后再各自获得报酬,这样就会鼓励人们更具有责任心,他们在制作新闻的时候也会更负责,不会出现虚假新闻。现阶段,人们正在提出各种不同的工具、或是不同的经济机制,鼓励大家以更广泛的受益形式来工作。传统支付方式很难满足这种协作工作模式,因此区块链能够创建全新的经济机制。我写论文的时候,也得到了开发者们的支持。”[2018/9/8]

虽然ZK-SNARKs很复杂,但它们的复杂性是封装复杂性。另一方面,欺诈证明的相对较低的复杂性,是系统复杂性。以下是欺诈证明引入的一些系统复杂性的例子:

它们需要谨慎的激励工程来避免验证者的困境。

如果在达成共识的情况下完成,它们需要为欺诈证明提供额外的交易类型,同时还要考虑到如果许多参与者同时竞相提交欺诈证明会发生什么。

它们依赖于一个同步网络。

它们允许审查攻击(censorshipattacks)也被用来进行盗窃。

基于欺诈证明的Rollups要求流动性提供者支持即时提款。

由于这些原因,即使从复杂性的角度来看,基于ZK-SNARKs的纯加密解决方案也可能是长期安全的:ZK-SNARKs有着更复杂的部分,这是一些人在选择ZK-SNARKs时必须考虑到的;但ZK-SNARKs有着更少的悬空警告,这是每个人都必须考虑到的。

各种例子

PoW(中本聪共识):较低的封装复杂性,因为该机制非常简单和容易理解,但有着更高的系统复杂性(如自私挖矿攻击)。

哈希函数:较高的封装复杂性,但有着非常容易理解的属性,因此系统复杂性很低。

随机洗牌算法:洗牌算法既可以是内部复杂(比如Whisk),但却能够确保强大的随机性,且易于理解;也可以是内部简单,但却能够产生较弱且难以分析的随机性属性(比如系统复杂性)。

矿工提取价值(MEV):一个强大到足以支持复杂事务(complextransactions)的协议在内部可能相当简单,但那些复杂的事务可能会对协议的激励机制产生复杂的系统影响,因为它们会以非常不正常的方式提议区块。

Verkle树:Verkle树确实有一些封装复杂性,实际上比普通的Merkle哈希树要复杂得多。然而,从系统上讲,Verkle树提供了与键值(key-value)映射完全相同的相对干净和简单的界面。主要的系统复杂性“泄漏”(leak)是攻击者操纵Verkle树使一个特定值有一个非常长的分支(branch)的可能性;但Verkle树和Merkle树的风险是相同的。

我们如何权衡呢?

通常,封装复杂性较低的选择也是系统复杂性较低的选择,因此有一个选择显然更简单。但在其他时候,你必须在一种复杂性和另一种复杂性之间做出艰难的选择。在这一点上应该清楚的是,如果是封装复杂性,那么其危险性就会更低。一个系统复杂性带来的风险不是一个简单的规范长度的函数;规范中一个10行代码的小片段与其他部分相互作用会比100行代码的函数更复杂,否则就会被视为一个黑盒。

然而,这种偏好封装复杂性的方法存在局限性。任何一段代码中都可能出现软件bugs,当代码越来越大时,出现错误的概率接近1。有时,当你需要以意想不到的新方式与子系统交互时,最初的封装复杂性可能会变成系统复杂性。

后者的一个例子是以太坊当前的两级状态树(two-levelstatetree),其特征是帐户对象树,其中每个帐户对象依次有自己的存储树。

这个树结构是复杂的,但在一开始,这种复杂性似乎被很好地封装:协议的其余部分作为可读写的键/值存储与树交互,所以我们不必担心树是如何构造的。

然而,后来,这种复杂性被证明具有系统性影响:帐户拥有任意大的存储树的能力意味着没有办法可靠地期望某个特定的状态部分(例如。“所有以0x1234开头的帐户”)具有可预测的大小。这使得将状态分割成多个部分变得更加困难,使同步协议的设计和分布存储进程的尝试变得更加复杂。为什么封装复杂性会变成系统性的?因为interface改变了。解决方法是什么?目前转向Verkle树的提议还包括转向一个均衡的单层树设计。

最终,在任何给定的情况下,哪种类型的复杂性更受欢迎是一个没有简单答案的问题。我们所能做的最好的事情是适度地支持封装复杂性,但不要太多,并在每个具体的情况下演练我们的判断。有时候,牺牲一点系统复杂性来极大地降低封装复杂性确实是最好的做法。其他时候,你甚至会误判什么是封装的,什么不是。每种情况都是不同的。

撰文:VitalikButerin,以太坊联合创始人

编辑:南风

标签:VITVITATALI以太坊VITES币Vita InuTALI币以太坊官网下载app

火必热门资讯
2022年全国两会:有关元宇宙的科普、立法与监管声音

中华人民共和国第十三届全国人民代表大会第五次会议于2022年3月5日在北京召开。中国人民协商会议第十三届全国委员会第五次会议建议于2022年3月4日在北京召开.

1900/1/1 0:00:00
龙泉驿区发改局提醒:虚拟货币“挖矿”已触及法律红线

3月9日消息,成都市龙泉驿区发展和改革局发布重要提醒:根据国家有关规定,虚拟货币“挖矿”属于国家淘汰类产业,相关业务活动属于非法金融活动,面临断贷、断电、断网以及信用风险并承担法律责任,有关人员将一并追究党纪政纪责任.

1900/1/1 0:00:00
浅谈DeFi游戏的半衰期:协议如何完成自我救赎?

从对的狂热崇拜到,从高峰期的40亿市值到现在只有5亿的市值,从150个分叉项目到整个分叉群体的死亡,OlympusDAO的诞生引发了人们对DeFi2.0的想象和谈论,而它的“死亡”让大家怀疑这是否就是DeFi的现状.

1900/1/1 0:00:00
观点:俄罗斯不能也不会使用加密货币来逃避制裁

3月2日消息,美国非盈利组织区块链协会政策主管JakeChervinsky表示,俄罗斯不能也不会使用加密货币来逃避制裁,对加密货币用于逃避制裁的担忧是完全没有根据的.

1900/1/1 0:00:00
俄乌冲突中 Crypto 未“加密”

2月24日,俄乌冲突爆发。就像世界上任何其他金融市场一样,加密市场也陷入了困境。比特币、以太坊、BNB、XRP等所有主要加密货币均大幅下跌.

1900/1/1 0:00:00
数字人民币App再更新:第三批试点城市将揭晓

1、改善无障碍服务,密码支持“旁白”朗读;2、优化找回登录密码流程,安全又便捷;3、改进人脸识别功能,持续提升准确度;广东省多家酒店接受数字人民币支付:4月11日消息,近日.

1900/1/1 0:00:00