作者 | Carl Beekhuizen

翻译&校对 | 闵敏 & 阿剑

来源 | 以太坊爱好者

免责声明:本文没有贬低任何一个客户端。每个客户端,甚至是规范,可能都存在不足和漏洞。ETH 2.0 是一个复杂的协议,实现这个协议的人也都是肉体凡胎。本文旨在强调如何以及为何要降低风险。

随着 Medalla 测试网上线,官方团队鼓励人们对不同的客户端进行实验。从创世的那一刻起,这么做的重要性便凸显出来:Nimbus 和 Lodestar 节点因无法处理测试网的负载量而卡住 [0] [1]。结果,Medalla 在上线半个小时内无法敲定区块。

在北京时间 8 月 15 日,由于 Prysm 客户端用来作为参照的时钟服务器突然出现偏差,Prysm 节点的时钟提前了 4 小时。因此,这些节点一直在为超前的 slot 创建区块和见证消息。等这些节点的时钟恢复正常后,那些禁用了默认罚没保护机制的验证者发现自己遭到了罚没。

若想了解更详细的情况,我强烈推荐你阅读 Raul Jordan 的《ETH2 Medalla 测试网事故》一文(编者注:见文末超链接)。

时钟故障——情况恶化

出现时钟偏差时,Prysm 节点占全网节点的 62% 左右。这就意味着,网络无法达到敲定区块所需的最低参与率(> 2/3)。更糟糕的是,这些节点找不到它们所预期的区块链顶端(历史记录中有长达 4 小时的 “空白”,而且所有 Prysm 节点的时钟之间都存在细微偏差),因此这些节点都在猜测 “缺失” 数据,创建了很多短的分叉链,造成网络拥堵。

-目前,在 Medalla 测试网的所有节点中,Prysm 节点占比高达 82% ????!(ethernodes.org)-

这时,网络上充斥着成千上万个关于区块链顶端的猜测,而且还在不断增加之中,为了辨别哪个分叉是正确的,所有客户端都开始不堪重负。这就导致节点出现停滞不前、无法同步和内存不足等问题,以至于情况进一步恶化。

塞翁失马,焉知非福。经过这次事故,我们不仅可以修复时钟的根本问题,还能在大规模节点故障和网络负载过重的情况下对客户端进行压力测试。尽管如此,这次事故本来不会造成这么极端的后果,根本原因在于 Prysm 节点占比过大。

去中心化有利于 ETH 2.0

正如我此前所讨论的那样,就异步拜占庭容错算法而言,1/3 是安全阈值。如果超过 1/3 的验证者离线,网络就无法实现终局性。虽然 ETH 2.0 区块链在不断增长,但是验证者却不敢保证哪个区块、哪个状态一定不会被颠覆。

去中心化有利于验证者

从根本上来说,我们希望经济激励机制足以让验证者做对整个网络都好的事,而不用我们相信他们是好人。

如果有超过 1/3 的验证者节点离线,离线节点所遭受的惩罚就会加重。这就是所谓的不作为惩罚(inactivity penalty)。

也就是说,作为一名验证者,你会希望自己在因为某种原因被迫离线的同时,不会有很多其它节点因为同样的原因离线。

罚没也是如此。 虽然你的验证者节点有可能因为规范或软件故障/漏洞而遭到罚没,但是个体罚没只会损失 1 ETH 。

然而,如果有许多验证者和你同时遭到罚没(达到 1/3 的安全阈值),罚金就会高达 32 ETH 。(预知详情,可参见这篇文章。)

上述两种情况分别称为活性反相关机制 (liveness anti-correlation)和安全性反相关机制(safety anti-correlation),是 ETH 2.0 中精心设计的部分。反相关机制将个体惩罚与每个验证者对网络的影响联系在一起,以此激励验证者做出对网络最有利的决策。

一些数据

ETH 2.0 由多个独立团队实现。每个团队都根据 ETH 2.0 研究团队编写的规范开发独立的客户端。这样可以确保有多个信标链节点和验证者客户端实现。在构建 ETH 2.0 客户端时,每个客户端团队在技术、语言、优化和权衡关系方面会做出不同的决定。这样一来,即使 ETH 2.0 系统的任意一层出现漏洞,只会影响运行特定客户端的节点,不会波及全网节点。

以 Medalla 测试网上 Prysm 节点的时钟偏移为例。如果只有 20% 的 ETH 2.0 节点运行 Prysm 客户端,且 85% 的验证者在线,则 Prysm 节点就不会遭受不作为惩罚。开发团队只需熬几个通宵就可以解决这个问题,惩罚力度也能控制在最小范围内。

事实上,由于太多验证者都集中在同一个客户端上(而且很多验证者都禁用了罚没保护机制),短时间内遭到罚没的验证者人数在 3500 至 5000 之间。* 如此高的相关性意味着,这些验证者的损失约为 16 ETH ,就因为他们运行的是热门客户端。

  • 至本文截稿时,罚没金额还在大幅增加,尚未得到最终数据。

不妨来试试其它客户端

现在正是尝试不同客户端的时候。不妨来体验一下小众客户端。(点击此处,查看验证者的分布情况。)目前,Lighthouse、Teku、Nimbus 和 Prysm 都比较稳定,Lodestar 正在迎头赶上。

最重要的是,一定要尝试新的客户端!我们可以在 Medalla 上让不同客户端的验证者分布合理化,以便迎接 ETH 2.0 主网上线。

(完)


原文链接:

https://blog.ethereum.org/2020/08/21/validated-why-client-diversity-matters/

推荐阅读
  • 云交易所已成资金盘、杀猪盘重灾区,曾被寄予厚望,如今罪恶丛生

  • 虚拟货币的“毒”谁来清?枪弹还是代码 ?

  • 七夕恋爱指南:理性算计与不可篡改的爱

  • MIT 更新最大自然灾害图像数据集,囊括 19 种灾害事件

  • 闲鱼的云原生故事:靠什么支撑起万亿的交易规模?

科普 | ETH2 Staking 指南 :客户端多样性为何如此重要相关推荐

  1. 以太坊2.0 POS挖矿(ETH2 Staking)教程(二)Topaz测试网-监控篇

    在上一篇教程中已经介绍了开启Staking的方法: 以太坊2.0 POS挖矿(ETH2 Staking)教程(一)Topaz测试网 由于Staking要求验证着24/7保持在线才能持续获得收益,如果验 ...

  2. 以太坊2.0 POS挖矿(ETH2 Staking)教程(一)Topaz测试网

    引言 由以太坊2.0客户端构建团队之一的Prysmatic Labs发布的以太坊2.0的第一个主网配置的测试网Topaz终于在4.15正式启动了.该测试网针对的是以太坊2.0第0阶段的测试,即实现信标 ...

  3. 史上最全Staking指南,教你把握投资机会!

    "对投资者来说,只要警惕风险,选择好的Staking项目和好的节点服务商,都能获得一定收益." 本文经「 Odaily研究院 」授权转载,作者:小派克.内容旨在传递更多市场信息,不 ...

  4. JavaScript权威指南--客户端存储

    客户端存储web应用允许使用浏览器提供的API实现将数据存储在用户电脑上. 客户端存储遵循"同源策略",因此不同站点的页面是无法读取对于存储的数据.而同一站点的不同的页面之间是可以 ...

  5. 公钥和私钥怎么生成_科普 | Eth2 验证者如何生成和保护取款密钥

    来源 | 以太坊爱好者 作者|Jim McDonald责编|晋兆雨 取款密钥是什么? 取款密钥(withdrawal key)是以太坊 2.0 中的验证者用来提现以太币的密钥 [1].以太坊 2.0 ...

  6. 马云的 ATM 梦实现了

    作者 | 赵磊 来源 | 燃财经(ID:rancaijing) 在过去很长一段时间里,"BAT"即百度.阿里.腾讯代表着中国互联网的三大巨头.但马云并不满足如此,他曾在内部提及过& ...

  7. 中国 IPv6 网民活跃用户达 3.62 亿,但 App 支持与国外差距较大!

    整理 | 夕颜 出品 | CSDN(ID:CSDNnews) 2017 年底,国家开始推行 IPv6 普及,出台多项政策推进 IPv6 规模部署.至今,IPv6 普及已经有了巨大的进步.普通用户可能在 ...

  8. 微信内测“群直播”;小米发布第三代屏下相机技术;马斯克宣布脑机接口重大突破 | 极客头条...

    整理 | 阿司匹林 图片来源:小米官方 出品 | CSDN(ID:CSDNnews) 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们 ...

  9. 物联网的中场和华为鸿蒙的机会

    作者 | 衣公子 来源 | 衣公子的剑(ID:yigongzidejian) 物联网发展历程 80年代,卡耐基梅隆大学的几个学生把宿舍门口的可乐售卖机连上了网.宿舍里一片欢腾,因为从此以后同学们便可以 ...

最新文章

  1. [C#]委托和事件(讲解的非常不错)
  2. PHP命名规范【转】
  3. Windows XP安装Python,最高支持到3.4.4,后续版本不支持
  4. 电脑达人教你怎么解决Win7系统盘渐渐变小的问题
  5. 拼多多“京东化”:自建物流重农卖菜是赚谁的钱?
  6. 第一章 Java快速入门
  7. HDU 5776 sum (BestCoder Round #85 A) 简单前缀判断+水题
  8. 小红书CTO山丘:用户隐私保护是数据应用的第一前提
  9. JAVA中MD5加密实现
  10. 决策树之随机森林和GBDT
  11. HTTP协议详解(经典)
  12. 第八十六章 Caché 函数大全 $ZDATETIMEH 函数
  13. 题目:找出某种珍贵药材的生长区域
  14. 智慧营区解决方案-最新全套文件
  15. 科幻科技对话:机器人实在不能变得像人一样愚蠢
  16. shiro反序列化漏洞学习(工具+原理+复现)
  17. linux 终端命令行的快捷键列表
  18. 2、MySQL数据库-表的修改
  19. 求最大连续区间和的几种方法
  20. vue的生命周期函数

热门文章

  1. 【历史上的今天】2 月 14 日:第一台通用计算机面世;IBM 成立;Julia 公开发布
  2. 【动画教程】真封神南极服务端2.52架设第四集
  3. Springboot整合Socket长连接
  4. 中国太阳能充电控制器行业市场供需与战略研究报告
  5. php高级部署,php部署【设置流程】
  6. Facebook Home效应,KakaoTalk也要推启动器
  7. win10完美复现U^2-Net神经网络人物肖像画生成,街头画师都要失业了
  8. 什么是Windows Virtual PC?
  9. 2009年 佛山中泰拳王争霸赛 2小时全程录像
  10. casio计算机编程报告,卡西欧手表调研报告.docx