币安

以太坊区块链大小已经超过1TB了这是个严重的问题

  不到一年前,以太坊钱包Parity的一位开发者Afri Schoedon写了一篇文章,现在这篇文章是对他的文章的一个间接回应:

  我想要声明的是我对在这个领域中几乎所有的开发者都心怀尊敬,这篇文章并不是要攻击什么人。我写这篇文章的目的是解释目前真正的问题是什么,以及解释为什么Afri Schoedon的文章并没有讨论到这些真正的问题。我很希望有人能够写篇文章来解释这些问题,这样我们就可以把它也应用到比特币上。确实有个别开发者故意通过协议误解来进行误导、混淆、无视,就和2X以及replay保护措施那场闹剧一样,不过大多数开发者并不是那样的人。你不能因为出了这样那样的事就讨厌这些开发者。他们和我们一样都是为了同一个目标而奋斗的,并且我相信Afri是属于第二类开发者,而非前者。

  @ravensorb 本issue已被分类识别,并入子任务,你可以在这个链接里查阅到概况:

  @codewiz Warp-sync本身没毛病,在以太坊之外的任何链上都正常运行。目前以太坊的体积大小是一个很严峻的问题,而且这也不属于Parity的问题。

  如果你之前读过我的文章,那你就会发现这篇文章里有一些片段是从之前的文章中搬过来的。到目前为止,我的文章主要都是以一个“极大主义者”的角度来写关于比特币的问题以及在比特币社区内的一些争论。如果你只从你个人的角度来看的话,这些争论的原因其实都是一样的。我甚至会用权益证明来为我的意见进行辩护,以至于不去批评权益证明这个东西。

  修正:看起来有些人并没有好好阅读我的副标题所以误解我的意思了。这里讨论的不是档案节点,而是完全验证了的节点。不管你是为了赶上进度而漏读了哪些东西我都不在乎。这是关乎同步的问题。轻节点并不能算作节点。

  ·  我的论点:以太坊的失控数据(runaway data)目录只是冰山一角。

  就是这么简单,这就是扩容之争中整个数字货币社区争论的中心,熟悉区块链协议的人一般都不会否认这个事实。以下这段节选我认为很好地解释了各种“第二层”扩容方案(在这些方案中唯一可行的一个已经实施到比特币中了)。

  首先要弄清楚的是,“扩容”并不是一个单独的问题,而是一系列挑战,要克服这些挑战,才能让全球数以百万计的用户用上以太坊。

  讨论最多的一个扩容问题就是交易吞吐量。目前以太坊每秒能够处理大约15笔交易,而Visa的交易处理速度则为45,000/tps。去年一些应用如Cryptokitties或者有时候甚至一些ICO都会因为太受欢迎而拖慢整个网络速度并导致gas费上涨。

  核心限制在于,像以太坊这种公链中,每一笔交易都需要被全网每一个节点处理。在以太坊区块链上进行的每个操作,比如说一笔交易,创建一个Cryptokitty,或者进行一个新的ERC20合同,都需要全网的每个节点同时进行处理。这个机制就是故意这样设计的,以保证公共区块链的权威性。节点不需要其他人来告知现在区块链上发生了什么,它们得自己去弄清楚。

  这就给以太坊的交易吞吐量设置了一个根本性的限制:不能高于我们愿意向一个单一节点索取的量。

  该文章的作者是Josh Stark,他能够弄明白这一点。他的公司甚至宣布进行一个项目,要在以太坊上弄一个和闪电网络一样的东西。(巧的是Elizabeth Stark的公司也在参与建设闪电网络。)

  那么问题是什么呢?先把权益证明的东西放在一边,底层的激励机制完全不对,因为以太坊的区块大小没有限制,就算要设置一个限制也得是一个合理的数字,而且这些去中心化的应用(Dapps)也不可能正常运转,因为现在没有限制的情况下他们也才勉强能够运转。甚至这个限制的数值到底是多少也不必讨论了,因为现在根本就没有限制。

  区块链只是网络的一个工具,并且是只能用在特定网络中的一种特定工具,这个特定工具和特定的网络是相互依存的,其中一个没有了另一个也无法存活。你可以在这个网络的基础之上建设其他东西,但是坦白说如果在这个网络的底层(L1)上添加了使得网络无法正常运作的东西的话,这个网络迟早玩完。

  下面我举个例子,这是一个L1层面上的功能,它并不会影响网络的正常运转,它就是多重签名。

  多重签名确实需要节点多做一点工作,但这点工作算是“微不足道”的。需要注意的是,对于这些设计良好的网络来说,硬件并不是它的瓶颈,网络延迟才是。向一个多重签名地址支付款项,并不比向一个普通地址支付款项所需要的网络费用高,因为对于每笔交易来说是按字节收费的。这项区块链功能并不会妨碍网络的正常运转,因为在网络上进行传输的数据是(1)按字节收费的,并且(2)受到区块大小限制的管理。这里说管理而不是“限制”。区块大小并不限制交易流程,而是管理向所有节点广播的数据量,那么问题就出在这里。

  当我们说“数据目录”大小时,指的是从创世区块起一整条链的大小,但如果只从字面意思理解的话就会有人来抬杠:

  ·  光盘空间很便宜,而且摩尔定律认为当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。

  ·  不需要一直追溯到创世区块,只需要最后X个区块就可以确定目前整个网络的状态了。

  如果愿意的话你可以阅读我写的关于摩尔定律的文章,我在这里只节选其中重要的几点。在Oz那里他们试图辩称“你不需要运行一个节点,只有矿工才有资格决定采用什么代码”。这种说法很荒唐,但在这里我不打算进行反驳,因为权益证明把矿工完全移除,把所有东西都放到节点里了。(其实他们一直都在节点里,只不过这次没有矿工来转移线. 摩尔定律讨论的是集成电路的增长速度,每年大约能够增长60%。这个定律讨论的并不是可用的带宽(而带宽才是更重要的)。

  2. 带宽的增长速度要慢得多。我们来看看尼尔森定律。从1:1比例开始(在硬件和带宽上没有瓶颈),每年增长50%,10年复合增长得到大约~1:2的比例,这就意味着每十年带宽增长速度要慢两倍,每20年就慢四倍,每40年慢八倍,如此反复。(实际的情况要糟糕得多,但是我这里只做简单的假设,因为仅仅是这样就已经相当糟糕了。)

  3. 网络延迟比带宽增长要慢,这就意味着随着网络上节点的平均带宽速度提高,区块和数据传输速度并不以同样的速率提高。

  严格地从以太坊的角度来看,转换成权益证明之后只剩下节点了,那么你肯定想要确保不会发生节点中心化。比特币网络所遇到的瓶颈是它的区块大小(这是理所当然的),因为这保证了网络的需求增长速度永远不会超过外部(有时候不一定)限制(如计算性能网络性能)的增长速度。由于以太坊不断增长的区块大小,它的瓶颈不再受到这些外部因素的控制,网络需求不断超过平均用户的硬件和带宽水平,导致网络愈加缩小和中心化。

  Vitalik: 那个图表具有非常大的误导性。300GB是一个档案全节点的大小,这种节点存储着历史数据,包含目前和过去的所有状态。状态本身仅有~1-2 GB,历史数据大约有~10 GB。修剪了的节点仍然存储着所有的状态和历史,如果你真的需要的话它可以调出任何历史状态,但这个节点只有大约20 GB。如果只需要现时状态的话,这个数字还可以更小。

  ·  如果网络是由10个全节点控制的,只要区块头是有效的,则只需要其中一半即可忽略/准许无效交易通过。

  这就是为什么从网络的角度来看验证交易非常重要,以及为什么需要一个大的去中心化网络。对于我外婆来说这是并不重要,但我们现在讨论的不是我的外婆。

  注意到了没有,解决办法是“寻找一个好一点的节点”或者“升级你的硬件”。不管是节点还是硬件,都不应该成为瓶颈。当你所有的节点都被那群吸血的水蛭给占满了(因为只有好的节点真正在干活),这个网络就会变成一群主人领导一群奴隶,最终变成一个主人剩下的都是奴隶。(

  如果你不同意这个说法的话,请证明为什么将来不会出现这个趋势,因为现在的趋势就是这样,如果不加以限制的话就不会停止。如果你的答案是数据分片的话,我在文章末尾会讲到这个。

  )这就是教科书式的中心化,不受管制区块会将网络变得中心化。大区块(但是有限制)会使情况变得好那么一点点,但是会为不断增大的区块大小开了先例,这就使得情况变得同样糟糕,因为这就开了先例,只要“形势需要”,就可以扩大区块大小,这也就相当于区块大小不受管制了。这就是我们为什么在比特币区块大小问题上坚决不让步的原因。我在推特上谈过几次这个问题,但是效果并不显着,因为我的推特关注者中并没有很多以太坊圈子里的人。

  上面那个图标只是为了解释而画的,并不涉及实际的数据。绿色的曲线代表以太坊网络的各种需求的总和。总有一天要么是你的节点会跟不上同步,要么会设置一个区块大小限制。可能是现在,也可能是十年后或五十年后,但是在这个速度下总有一天你的节点会跟不上同步的速度。但这并不会发生在比特币身上。现在你可以尽情地否认,但总有一天会发生的。当它发生的时候,像CryptoKitties,Shrimp FarmPepe Farm之类的去中心化应用将会停止运行。这就和Ryan Charles的网站结局一样,当时它原本是建在比特币上的。唯一的区别是比特币已经有区块大小的限制了,Ryan要么没弄明白情况所以没预料到会这样,要么就是他认为区块大小会不断增加。Ryan并没有吸取教训,反而在BCash上下了更大的血本,而Yalls.org则将他的创意移植到了比特币的闪电网络上。

  ·  比特币的未来是可预测的,区块链增长和网络需求将永远是线性的。(这是我们想要的。)

  ·  以太坊节点每秒所需要处理的数据量已经非常大了而且还在不断增长。(这不是我们想要的情况。)

  ·  如果以太坊链上需求停在它现在的这个点,区块链增长将继续保持这个线性增长趋势,如图中虚线所示。(这个情况很糟糕。)

  ·  如果以太坊链上需求继续爆炸性增长,那么抱怨他们的节点跟不上同步节奏的人会越来越多,总有一天会爆发。(

  。)上面那张图发生什么了?这个节点的主人不再维护这个节点了。其他物理限制也是个问题,比如说你有限的生命里的时间也是有限的。进行维护的要求应当比较

  ,而不是高得不可理喻。你知道我是如何维护我的比特币/闪电网络节点的吗?只要让笔记本电脑一直开机就行了。如果需要重启,那我就关机然后重新开机就好了。我每天还会用我的笔记本电脑做很多其他的事情,这并不影响我运行节点软件。如果发生了什么改变导致我的节点不再和网络兼容并且无法同步,如果我是受了错误信息引导的话,我会大声痛骂那个让这一切发生的大傻瓜。但幸运的是我并没有受到错误信息引导,我很有预见性地选择了比特币。

  那么问题是什么呢?我认为大多数运行以太坊节点的人并不知道他们掉进了一个怎样的坑里。我认为他们并不了解这其中的基本激励模型,他们也不知道为什么没有区块大小限制这件小事会让他们阴沟翻船。希望这篇文章能让他们明白这些道理。

  那么当那个心理预期的爆发点达到时会发生什么呢?人们会放弃吗?要失去多少个节点才会发生?探索者网站甚至已经不再追踪这些数据了。Etherscan.io已经不再追踪全部或者快速同步目录了,Etherchain.org上则直接出现找不到页面的错误提示。

  现在让我们来看一下比特币网络上的区块和交易延迟。下面有两个图表,第一个是一个区块要传播到整个网络需要多久,第二个是一个交易要传播到全网需要多久。交易由节点来处理(一共有115,000个节点),然后由节点暂时保存,直到矿工创造出一个有效的区块并向全网公布。

  ·  区块传播所需时间大幅度减少,因为软件性能有了很大的提升。交易进来内存池之后会被验证。当得到一个新的区块时,迅速与已经存储的交易进行交叉对比,并且很少会收录还未收到的交易。这就使得你的节点能够以非常快的速度验证区块,并把它发送给其他节点。

  ·  交易时间则缓慢上升,但目前似乎有稳定下来的趋势。由于软件的隐私性能加强,交易时间的增长是被允许的,但权衡之下还是利大于弊,因为平均出块时间至少要10分钟,所以交易时间上涨16秒也是可以接受的。当大多数区块都已经满了的时候,这种上涨的趋势也会停止,因为区块大小限制带来的交易费会自我调节交易进来的速度,如果比特币协议没有什么其他的改变的话。

  比特币就是按照这个理念来设计的。排队等待的交易数量逐渐增加,但是区块是受到管制的,人们逐渐学会使用区块链这个工具,然后交易流会逐渐稳定下来。如果这个工具不受管制,那么就会有一大帮人来抢着用这个工具,添加像CryptoKitties这样随意的功能,让整个网络无法运行,直到所有积累的交易处理完为止。所有以太坊的全节点都要处理每一个这样的合约。你可能不需要处理,他们可能也告诉你说不需要处理,但确实有人需要来处理。那么有多少个这样的人呢?更高的费用怎么办?他们在底层就把像CryptoKitties这种愚蠢的去中心化应用扼杀在摇篮里了。这些应用完全没有存在的必要,而其他的“可行的想法”也会得到同样的下场,并且只会更加糟糕,因为

  。很显然不受管制的区块并不会导致无限的交易,到此处得到的教训是这个网络甚至在物理上就无法处理目前的数量了,确实没有足够的节点能够处理这些信息并及时地进行中继。你知道到底有多少以太坊节点吗?你真的知道吗?比特币网络大约有115,000个节点,其中约有12,000个听节点,几乎所有的节点都是参与工作的,

  。具体什么是听节点在这里并不重要,因为不管是听节点还是非听节点,他们都参与了将区块接收和发送给其他相连接的节点的工作。默认是8,那么客户端就不会让你超过8,除非你手动添加。这个限制是估计设置的,你最好不要添加太多,不然对网络不好:

  如果你是一个商人或者矿工,你可能想和几个你信任的节点建立固定的连接(请查看-addnode 命令行/配置选项),但是有更多的连接并不意味着有更强的验证能力(参考客户端永远验证所有的东西),也不意味着中继更快(因为你需要将新的区块和交易分发给你所有的节点,反而更慢了)。这主要就是为网络提供服务。

  。区块链网络是点对点广播网络。像闪电网络这样的状态通道则是点对点任播网络。这两种网络中信息传递的方式是完全不同的。即使是你家里的冰箱也有足够的硬件来成为一个闪电网络节点。闪电网络 “辐射状通道模式”相关的批评是关于通道平衡容量的。辐射状通道模式和主人与奴隶的问题一样,但有了通道平衡之后数据就不会遇到瓶颈。你只需要把闪电网络客户端标准化,打开X个通道,每个通道含有X资金,然后网络就会按照这个标准形成,完全避开了辐射状通道模式,就像比特币客户端标准化地只允许8个节点。闪电网络是一个很新的东西,所以我们还不知道应该有什么样的标准,因为我们现在可以测量的数据量几乎为零。/结束为闪电网络辩护谈到我们可以测量的数据几乎为零,为什么以太坊节点数量只有这几个图表?历史在哪里?这些节点中有多少个使用了fast/warp同步而且从未完全验证?你不需要全部储存,因为你还可以修剪,但是再问一次,

  那么现在你该怎么办呢?你作为一个独立的人,逐渐意识到了这个问题,你会怎么做呢?如果你完全不知道发生了什么,你会怎么做呢?这个网络中充满了这样的人,他们逐渐地离开了(不一定是离开,而是参与工作的节点逐渐降级为轻量节点),那这个网络会怎么样呢?还剩下多少个参加工作的节点?还有多少个节点拥有创世区块的完整副本?如果只有5个数据中心在为整个奴隶网络(轻量节点)链服务会怎么样呢?如果每个人都只同步区块头的话,谁来验证交易呢?你可以干坐在那里不断告诉自己:“网络只需要最近的状态历史就能保持安全”,但是当你的网络从底层开始全军覆没,大多数节点甚至跟不上最后的1,000个区块时,这个网络又怎么会是安全的?

  1.    以太坊区块大小增长是一件不好的事,这是因为节点处理所需,而不是因为他们要在硬盘上存储的量。

  2.    为了防止网络全盘崩溃,以太坊需要设置一个合理的区块大小限制。

  3.    设置区块大小限制会导致费用上涨,这就使得许多去中心化应用无法运转或者速度大幅减缓。在未来这些去中心化应用将无法使用。

  4.    如果去中心化应用无法使用,那么以太坊整个存在的意义就没有了。

  2.    BCash“还有增长的空间”,因为他这个区块链上的压力还不是很大,而以太坊区块链身上则背负着巨大的压力。

  以太坊正在走向灭亡,而BCash正在走上它的老路,无视各种警告。他们想要更大的区块和ICO,于是他们做到了。这两个区块链都会成为同样的东西:逐步迈向死亡的、被中心化统治的区块链,但是通过逐步的区块大小增加来继续支持具有欺诈性质的实用代币,使其继续苟延残喘,直到整个系统崩溃,没有人能够再运行节点。

  唯一一个运行完全验证的节点的人就是那个支撑起整个以太坊网络的人。整篇文章到此为止我都很努力地不去提Vitalik的名字,这样我才能专注于讨论技术问题但如果这张照片(或者原来那张)无法代表以太坊空间的精髓的话,那我就不知道还有什么能代表了。我为Vitalik指出像Fake Satoshi之类的大骗子而鼓掌,但同时他也错误地代表了以太坊所宣称的功能。

  啊对了,还有那个被称为杀手锏的数据分片?那完全就是骗人的把戏,还是同样的节点中心化问题,只不过往上披了一层面纱而已。这完全就是将我刚才警告过的主人和奴隶网络强塞给你,只不过打着“新的扩容技术”的名号而已。

  忘了Vitalik放出来的图表吧,因为那根本就没意义。现在让我们来将以太坊目前的网络简化一下。下面的图表中将所有的轻量客户端用绿色标出来,而“好的”全节点用红色标出。你的fast/warp同步节点可能现在还是红色的,直到它无法再继续保持,或者你不再继续升级或维护,改为使用轻量客户端,变成了绿色的点。

  随着时间的推移,绿色的点越来越多而红色的越来越少,这个情况是无法避免的,因为所有人都在这么干。你运行的是一个全节点还是一个轻量客户端?甚至你有在运行节点吗?“如果同步失败”,那么很多人都会建议你转而使用轻量客户端,

  。这张图甚至已经把情况轻描淡写了。实际上许多全节点(红色)的网络连接很差,根本没有图上画的连接得这么好:

  限制就是每一个节点都要验证所有数据分片的区块头,而节点对区块头的验证能力受到其计算能力的限制,因此要进行“二次方数据分片”:如果一个节点能够处理C件事情,那么就有C个数据分片的区块头来让该节点处理;或者说,如果一个节点在验证一个单一的区块,那么它就能验证C个交易,所以他的总处理容量就(大约)是C的二次方。

  ,挂在一个全节点上,只同步区块头,不分享任何东西。这些客户端不是网络的一份子,根本就不配被提起,不过为了避免困惑我在这里还是说一下。再强调一次,

  的全节点,完全验证所有的交易/区块。·  试图干活的节点但是由于节点问题而无法同步,所以跳过并使用warp/fast同步,“完全”验证新的交易/区块。

  ,我猜他们也会和其他相似的节点分享区块头,所以我们可以把他们称为“SPV节点”。在比特币里她们并不存在。再说一次,比特币里的SPV客户端并不传递信息,他们不属于节点。你所看到的以太坊节点数量?我敢说那大多数都是轻量节点,根本不进行验证工作(检验区块头不能算是验证)。不同意的话就来证明我是错的吧,拿出数据来。这就相当于运行了一个次级网络,相互分享区块头,但是计算网络节点的时候却被用来滥竽充数。他们对网络完全没有贡献,只是吸血的水蛭而已。

  ·       含有全节点的数据分片网络,能够在该数据分片内干所有的活,并且验证其他数据分片的区块头。

  ·       只同步、验证、传播其他数据分片的区块头的“节点”。(检验区块头不能算是验证,这就相当于还是一个次级网络,假装里面是真正的以太坊节点,当他们统计节点的时候会把这些假的节点也算进去,让人们继续相信这还是一个运营正常的去中心化网络,但实际上它已经不是了。)

  猜猜你会运行哪种节点?大胆猜一下吧。对于完全验证的节点来说什么都没有改变。

  我为了省时间所以画连接线的时候都是复制粘贴的,因为没必要那么精确。蓝色的点是数据分片网络。红色的是以前的以太坊网络,他们需要处理所有的东西。绿色的“节点”则只是将区块头进行同步和传播而已:

  在这种情况下,你究竟如何才能知道有多少完全验证节点?你现在完全无法得知了,因为唯一一个追踪这个数据的网站把轻量客户端也算进去了。假如这些全节点中心化到了10个数据中心里,那你怎么知道呢?

  。更正:有人“纠正”了我关于数据分片的说法,但我很清楚我知道它应该怎样工作。我想让这篇文章简单一点,因为这篇文章不是关于数据分片的。我会另外写一篇文章来讨论这个问题,主要是关于

  (Collater)和执行者(Executor)的,他们只是改头换面的全节点,但你无法运行。在我写出这篇文章之前,你可以先看下面这张新的图表,它更精确地反映了含有数据分片的以太坊网络。

  集中精力让你的服务能够接受支付网络吧,要确保这个支付网络基于一个好的区块链上。

  现在开始投资一个好的区块链吧,要确保这个区块链不会在未来的几年内就走向衰亡。

  购买EOS吧,这是个新玩意,但同样糟糕,理由和我前文所述一样,只不过还没人知道而已。

  1 伟大的开拓者-比特币 1) 比特币产生 2008年,中本聪(Satoshi Nakamoto)发表了一...

  区块链技术的典型应用 1 伟大的开拓者-比特币 1) 比特币产生 2008年,中本聪(Satoshi Na...

  一、快速术语检索 比特币地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...

  “3点钟无眠区块链”六天干货合辑-帅初、蔡文胜、李笑来、点付大头、薛蛮子、易理华、林嘉鹏、周鸿...

  帮大家把连续六天120小时的聊天记录,整理成合集,让各位一次读完。阅读需要大约1小时。请合理安排专门补课时间。欢...

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

上一篇

挖链APP挖矿可以赚钱是真的吗 怎么获得挖力WT赚钱教程

下一篇

区块链技术开发语言整理

相关文章阅读