以太坊仅剩一个完整存档节点?官方回应:并无大碍

BlockCypher宣布了一个令人吃惊的消息,声称他们可能是唯一保留“完整以太坊交易历史记录“的公司。显然,这是一个比较严重的问题,特别是当以太坊区块链受到攻击的时候。

碳链价值编译组出品

编译:氪12

以太坊最近的硬分叉终于顺利完成了,但同时又带来了一个意想不到的后果:加密货币社区发现以太坊有一个非常大且“可怕”的特殊节点,它会是什么呢?

最近,区块链基础设施提供商BlockCypher公布了上个月君士坦丁堡升级前后的交易追踪情况,他们透露之前曾要求以太坊重新启动一个特殊的专用机器(存档节点),用于记录以太坊ETH历史的所有“状态”(设置),结果发现了一些问题。

在较高级别上,存档节点会存储以太坊快照,其中不仅会包括所有已处理交易的记录,还包括每次添加区块时的全部区块链的完整映射。事实上,存档节点与全节点不同,后者只关注交易,而不是区块链状态。

根据BlockCypher官方博客披露的信息显示,由于重新启动存档节点并不是一件容易的事情,结果导致没有人想要费心费力去运行这个节点,因此BlockCypher认为这可能会引发一定程度的安全风险,他们在博客上写道:

“我们用能够想到的的每一种方式检查了添加到以太坊的Trie树状态,之后向以太坊联合创始人Vitalik Buterin寻求帮助。他给我们的第一反应是:哦,你们是少数几个运行这种可怕的大节点的人之一。我们又询问他是否知道还有谁在运行这个巨大的、可怕的节点,以便我们看看能否和他们保持同步,结果Vitalik Buterin回复说他不知道,而且他还说可能连以太坊基金会都没有完整的以太坊区块链存档。因此,我们不得不又回到了原点:再次开始进行全同步,但这次包含了Trie树状态。”

之后,BlockCypher宣布了一个令人吃惊的消息,声称他们可能是唯一保留“完整以太坊交易历史记录“的公司。显然,这是一个比较严重的问题,特别是当以太坊区块链受到攻击的时候。

根据一些以太坊内部人士透露,BlockCypher的担忧也许并不一定能代表整个以太坊网络社区的想法,因为存档节点对区块链的整体安全性其实不会产生什么影响。

存档节点对以太坊安全性和信任模型不会产生影响

以太坊生态系统依赖于Infura,他们是一家获得了ConsenSys支持的区块链基础设施公司,通过创建的基础架构让去中心化应用程序在以太坊网络上处理信息,而无需运行完整节点。事实上,包括以太坊钱包MetaMask、去中心化交易所协议0x、以及以太坊钱包MyCrypto都使用Infura向以太坊主网广播交易数据和智能合约。参与者会给Infura付费,然后让Infura代表他们运行资源密集型流程,继而更高效地在以太坊区块链上部署应用程序。

Infura公司联合创始人E.G. Galano认为,存档节点仅在某些情况下是必需的,比如在检查某个给定区块高度的以太坊账户状态的时候。但是除了这些具体的用途之外,他觉得以太坊没有必要保留这种节点,并进一步解释说:

“举个例子,如果你想知道4,000,000区块的以太坊账户余额,那么就需要运行存档节点,然后查询这个数字。这个节点依赖于一些专门的用例,但是对区块链的安全性和信任模型来说其实并没有影响。”

在此需要特别说明的是:以太坊的存档节点并不等同于全节点。全节点主要存储交易历史激励,而存档节点存储该节点、以及与以太坊状态相关的其他数据。

E.G. Galano表示,全节点在以太坊中广播的信息和存档节点完全相同,在这种情况下,”存档标签(archive label)”仅表示代表它计算、并存储额外区块链派生的数据,以便帮助人民更有效地查询信息。

以太坊基金会安全团队负责人Martin Holst Swende透露,如果从一个网络角度来看的话,相比于全节点,存档节点并不有助于让整个以太坊网络变得更巩固。他说道:“全节点才是维护和同步以太坊区块链的关键,其中包括了所有交易和状态转换。全节点是执行快速同步(fast-sync)、以及全同步(full-sync)的节点。如果一个节点为每个区块的每个状态都额外存储一个快照,那么它通常会被称为存档节点。”

Martin Holst Swende认为,以太坊有三种类型的节点,分别是快速同步节点、全同步节点、以及存档节点,这些节点都保留了重放(或恢复)所有区块链交易所需的必要数据,而不仅仅是存档节点。

而存档节点(注意,不是其他节点)存储的唯一数据就是以太坊状态的完整历史记录,但这个数据其实并不是只能在存档节点里获得,它也可以通过使用存储在其他节点中的数据导出来。

那么问题来了,谁在运行以太坊存档节点吗?或者,到底有没有人在运行这个节点?

以太坊基础设施初创公司Parity Technologies简单介绍了以太坊存档节点是如何存在的,与Infura和以太坊基金会一样,Parity Technologies公司技术负责人Fredrik Harrysson也觉得BlockCypher有点扩大存档节点的安全威胁了。

Fredrik Harrysson表示:“当然,不可能只有一个节点在保存完整的以太坊交易历史记录,我们通常会在Parity内部运行一个存档节点,尽管其实我们并不需要这个存档节点。”

Infura公司联合创始人E.G. Galano支持Fredrik Harrysson的看法,他补充说道:“BlockCypher不是唯一运行以太坊存档节点的人,与其他应用程序接口(API)和基础设施提供商一样,我们也运行了很低存档节点。我不知道以太坊基金会运行的存档节点数量有多少,但他们至少可以运行一些可供他们自己使用的存档节点。”

实际上,以太坊基金会也透露他们也在维护多个存档节点,尽管他们认为这么做其实并不是那么必要。以太坊基金会安全团队负责人Martin Holst Swende表示:“目前,我们正在运行三对(六台机器)节点设备,两台用于快速同步节点、两台用于全同步节点、另外两台用于存档节点。”

如果你想谈谈安全性,全节点显然比存档节点更重要

BlockCypher之所以突然提出了存档节点问题,其实是因为他们花了两周多时间才重新启动了自己的存档节点中存储的以太坊版本。此外,BlockCypher还强调说他们的以太坊状态与其他区块链有很大不同,因为无法使用任何传统备份方法进行恢复。

E.G. Galano表示,BlockCypher之所以会出现这样的问题可能是因为缺乏可靠的备份及恢复程序造成的。他详细解释道,如果使用正确的备份和副本创建流程,那么恢复状态的时间并不会太久,同时他也坚持认为应该保留完整的原始“备份”。

E.G. Galano说道:“每个人都会犯错误,我们在Infura公司成立初期也遇到过类似的问题。但是运行存档节点的确是会耗费不少资源,真是如此。”

对于以太坊而言,最重要的其实是全节点,而不是存档节点,根据最新数据显示,以太坊网络目前大约有12,000个全节点组成。

Fredrik Harrysson总结说道:“一个合理的、有限的节点数量其实很有争议的——基本上,如果一个可信方拥有、并服务与所有交易,那么根本不存在什么问题。但是如果依赖一个中心化的服务方,一旦它消失了,就会出现问题,幸好以太坊情况并非如此。”

存档节点应该不会对以太坊安全运行造成影响,至少事实证明,它们并没有那么危险,只是缺乏实用性罢了。

原文链接:https://thenextweb.com/hardfork/2019/03/13/ethereum-insiders-fire-back-nodes/

扫一扫,分享到微信

微信公众号

微信公众号