原文链接http://www.btcwbo.com/5000.html

以太坊协议设计的主要目标之一是尽量减少复杂性:使协议尽可能简单,但区块链仍然可以做一个有效的区块链网络需要做的事情。以太坊协议在这方面远不完美,特别是因为它的许多部分是在2014-16年设计的,我们对它的理解要少得多,但我们仍在尽可能积极地减少复杂性。然而,这一目标的挑战之一是,复杂性很难定义,有时你必须权衡两种不同类型的复杂性和不同的成本选择。我们如何比较它?
有一个强大的智能工具可以让我们更仔细地思考复杂性,那就是区分所谓的包装复杂性(encapsulatedcomplexity)和系统复杂性。
设计

设计

当系统的子系统内部复杂,但外部有一个简单的接口时,包装就会复杂。当系统的不同部分甚至不能清楚地分离和交互时,系统就会复杂。
以下是几个例子。
BLS签名vs.Schnorrr签名。
BLS签名和Schnor签名是两种常用的椭圆曲线加密签名方案。
BLS签名在数学上看起来很简单:
设计

设计

H是哈希函数,m是新闻,k和k是私钥和公钥。到目前为止,这很简单。然而,真正的复杂性隐藏在e函数的定义中:椭圆曲线匹配(ellipticurvepairings),这是所有密码学中最难理解的数学部分之一。
现在,让我们来看看Schnorr签名。Schnorr签名仅取决于基本椭圆曲线。但是签名和验证的逻

设计

辑有点复杂:
设计
嗯。。哪个签名更简单?这取决于你关心什么!BLS签名具有巨大的技术复杂性,但复杂性隐藏在E函数的定义中。如果你把E函数看作一个黑盒子,BLS签名其实很简单。另一方面,Schnor签名的整体复杂性较低,但更多的部分可以以微妙的方式与外界互动。
例如:
BLS多签(两个密钥k1和k2的组合签名)很简单:只需要1+╯2。但是Schnor多签需要两轮互动,一些棘手的Keycancelation攻击需要处理。
Schnorr签名需要生成随机数,无需BLS签名。
椭圆曲线配对通常是一种强大而复杂的海绵,因为它包含了大量的包装复杂性,但系统复杂性使解决方案更少。这也适用于许多承诺领域:比较KZG承诺的简单性和更复杂的内部逻辑(不匹配)。
加密经济学vs。
密码学(cryptography)和加密经济学(cryptoeconomics)是许多区块链设计的重要设计选择之一。这通常是有效证明(即ZK-SNARKS)和欺诈证明之间的选择。
ZK-SNARKS是一项复杂的技术。虽然ZK-SNARKS工作原理背后的基本想法可以在一篇文章中清楚地解释,但事实上,ZK-SNARK可以验证一些计算比计算本身复杂得多(因此,这就是为什么EVMZK-SNARKS证书仍在开发中,EVM欺诈证书已经处于测试阶段)。ZK-SNARK证书的有效实现涉及许多挑战,如优化特殊目的的电路设计和使用不熟悉的编程语言。另一方面,欺诈证书本身非常简单:如果有人提出挑战,你只需要直接在链上计算。为了提高效率,有时会添加二进制搜索计划,但即便如此,也不会增加太多复杂性。
虽然ZK-SNARKS非常复杂,但它们的复杂性是包装的复杂性。另一方面,欺诈证书的相对较低复杂性是系统的复杂性。以下是欺诈证书引入的一些系统复杂性的例子:

为了避免验证激励项目,以避免验证者的困境。
如果达成共识,他们需要为欺诈证明提供额外的交易类型,并考虑如果许多参与者竞相提交欺诈证明会发生什么。
它们依赖于同步网络。
允许审查攻击(censorshipattacks)也用于盗窃。
RolupsRolups要求流动性提供商支持即时提款。
由于这些原因,即使从复杂性的角度来看,基于ZK-SNARKS的纯加密解决方案也可能是长期安全的:ZK-SNARKS有更复杂的部分,这是一些人在选择ZK-SNARKS时必须考虑的;然而,每个人都必须考虑ZK-SNARKS的悬挂警告。
各种例子
PoW(中本聪共识):包装复杂性低,因为机制简单易懂,但系统复杂性高(如自私挖掘攻击)。
哈希函数:包装复杂性高,但属性易于理解,系统复杂性低。
随机洗牌算法:洗牌算法可以是内部复杂性(如Whisk),但可以保证强大的随机性,易于理解;也可以是内部简单但难以分析的随机属性(如系统复杂性)。
矿工提取价值(MEV):一个足以支持复杂事务的强大协议可以相当简单,但这些复杂事务可能会对协议的激励机制产生复杂的系统影响,因为它们以非常异常的方式推荐块。
Verkle树:Verkle树确实有一些包装复杂性,实际上比普通的Merkle哈希树复杂得多。然而,在系统方面,Verkle树提供了一个相对干净和简单的界面,与键映射完全相同。系统复杂性的主要泄漏是攻击者操纵Verkle树,使特定值具有非常长的分支(branch);但是Verkle树的风险与Merkle树相同。
如何权衡?
一般来说,低包装复杂性的选择也是低系统复杂性的选择,所以显然更简单。但在其他时候,你必须在一个复杂性和另一个复杂性之间做出艰难的选择。在这一点上,应该清楚的是,如果包装复杂,风险将更低。系统复杂性带来的风险不是简单的标准长度函数;10行代码的小片段将比100行代码更复杂,否则将被视为黑盒。
然而,对包装复杂性的偏好有限。软件bugs可能出现在任何代码中。当代码越来越大时,错误的概率接近1。有时,当您需要以意想不到的新方式与子系统互动时,最初的包装复杂性可能会成为系统复杂性。
后者的一个例子是以太坊目前的两级状态树(two-levelstateeeeeeeeeeee),其特点是账户对象树,每个账户对象都有自己的存储树。

设计

设计
这棵树的结构很复杂,但一开始似乎包装得很好:协议的其余部分存储在可读和写作的键/值中,并与树相互作用,因此我们不必担心树是如何建造的。
然而,这种复杂性后来被证明是系统的:账户中任何大型存储树的能力都意味着没有办法可靠地期待特定的状态部分(例如)。所有从0x1234开始的账户都有可预测的大小。这使得将状态划分为多个部分更加困难,同步协议的设计和分布更加复杂。为什么包装的复杂性是系统的?因为interface已经改变了。解决方案是什么?目前,转向verkle树的建议还包括转向平衡的单层树的设计。
最后,在任何给定的情况下,都没有简单的答案,哪种类型的复杂性更受欢迎。我们能做的最好的事情是适度地支持包装的复杂性,但不要在每个具体情况下练习我们的判断。有时,牺牲一点系统的复杂性来大大降低包装的复杂性确实是最好的方法。在其他情况下,你甚至会误判什么是包装,什么不是。每种情况都是不同的。
免责声明:作为区块链信息平台,本网站提供的信息并不代表任何投资暗示,

V神以太坊:协议设计中的“封装复杂性” vs. “系统复杂性”相关推荐

  1. V神以太坊:Casper 权益证明与分片技术最新进展

    V神以太坊:Casper 权益证明与分片技术最新进展 原创: 卢凯 区块链大本营 昨天 2018年6月3日,由全球最大开发者社区CSDN和专注以太坊生态建设的领先企业灵钛科技主办,以太坊爱好者社区.柏 ...

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

    撰文:Vitalik Buterin,以太坊联合创始人 编辑:南风 以太坊协议设计的主要目标之一是最小化复杂性:使协议尽可能简单,同时仍然使区块链能够做好一个有效的区块链网络需要做到的事情.以太坊协议 ...

  3. 区块链100讲:V神·以太坊上的分片

    五月初,以太坊创始人"V神"Vitalik Buterin表示,以太坊的内部扩展解决方案--分片已经接近完成.以太坊分片旨在将以太坊分成几个并发网络,从而使整个网络更加高效地扩展, ...

  4. V神·以太坊上的分片

    译者序 本文是我应以太坊中文社区(Ethfans.org)之邀做的翻译稿,原文取自以太坊社区的Github: [https://github.com/ethereum/sharding/blob/de ...

  5. 直播 | 对话V神 以太坊核心研究者:ETH2.0 蓄势待发,我们应该如何参与?

    关注我们 获取最新活动信息 蓄力数月,"以太坊之夏2020" 线上夏令营终于要正式开幕了!就在本周四(7月9日)晚上九点,首场公开线上活动 -- "乘风破浪ETH2.0& ...

  6. 直播 | 对话V神 以太坊核心开发者:乘风破浪的ETH 2.0将至,我们应该如何参与?

    [以太坊之夏]首场活动正式开始报名!足不出户,和以太坊大佬"云漫谈",掌握最新行业进展 蓄力数月,"以太坊之夏2020" 线上夏令营终于要正式开幕了!就在本周四 ...

  7. 以太坊白皮书(中英对照版)

    Ethereum:A Next-Generation Smart Contract and Decentralized Application Platform 以太坊:下一代智能合约和去中心化应用平 ...

  8. 【转】以太坊 2.0 中的验证者经济模型

    自从 11 月在 DevCon4 上正式宣布 Serenity 以来,我们见证了自我组织的思想者团体聚集在一起讨论,定义与规划以太坊 2.0.尤其对网络膨胀.经济激励措施.罚没机制.取款周期.攻击媒介 ...

  9. 以太坊 2.0 中的验证者经济模型,Part-1

    自从 11 月在 DevCon4 上正式宣布 Serenity 以来,我们见证了自我组织的思想者团体聚集在一起讨论,定义与规划以太坊 2.0.尤其对网络膨胀.经济激励措施.罚没机制.取款周期.攻击媒介 ...

  10. 以太坊智能合约中随机数预测

    一.前言 作为首次币发行(ICO)的平台,以太坊已经获得了极大的普及. 但是,它不仅仅用于 ERC20 通证,轮盘,彩票和纸牌游戏都可以使用以太坊区块链实现. 与任何区块链实施一样,以太坊是不可逆的, ...

最新文章

  1. 1.2.3 OSI参考模型(2)
  2. 来个“云”毕业典礼,这些装扮太硬核了!
  3. 电脑上怎么做pdf文件_图片怎么输出为PDF文件?两种办法教你,手机电脑都能转...
  4. May 18:PHP 输出语句
  5. 12年后,索尼重启机器人业务
  6. Docker实践 -- 安装Docker
  7. 发生冲突未及时离场 绿军大将被NBA罚款3.5万美元
  8. Java配置分离之Spring远程配置
  9. VSTO 学习笔记(六)在 Excel 2010中使用RDLC报表
  10. c++ inline 函数及变量
  11. Cat8 八类网线是什么?与Cat5、Cat6、Cat7网线的区别?
  12. m4s格式转换mp3_音频格式转换器哪个好,推荐几款免费的mp3格式转换器
  13. 电信光纤猫虚拟服务器设置方法,电信光纤猫与无线路由器连接的设置方法
  14. 网络工程师必备技术汇总
  15. ps抠图技巧之图层样式
  16. 浅析 集束搜索(Bean Search) 算法
  17. python与工程造价的联系_工程造价和工程预算是一个概念吗?
  18. Python中的set()函数使用
  19. 如何改变Windows 11 中任务栏位置(最新有效方式)
  20. Java中高级核心知识全面解析(3),美团Java面试算法题

热门文章

  1. 记录下SPADE(GauGan)的学习心得
  2. 【程序员必备】七夕表白攻略:教你用代码轻松打动她的内心!
  3. 滴滴资深分析专家:数据如何驱动业务增长
  4. java颜色识别_Java颜色检测
  5. html5切西瓜游戏,体育游戏切西瓜教案
  6. 非主流图片制作,手机图片制作
  7. Forwarding Address字段
  8. 主流浏览器发展史及其内核初探
  9. php对数据进行归一化处理方法,12种数据量纲化处理方式
  10. ANN to SNN