为什么我们不在公共区块链中使用伊斯坦布尔拜占庭容错(IBFT)?

赵宝

正如我在标题中悲伤的那样,为什么 IBFT 不被用作公共区块链中的共识协议?毕竟,它是拜占庭容错的,可以防止分叉,这比比特币中的工作量证明更能做到……

疯狂的豺狼

IBFT 共识(以及 BFT 组的任何共识)的使用涉及分配一个特殊的验证器池,不超过几十个,通过收集彼此的明确确认,确定块的有效性(或单独的交易)及其包含在链中的可能性(例如,这就是 Ripple 的工作方式)。对于公共以太坊来说,首先,这违反了网络中节点平等的概念,其次,当试图将验证者池扩展到参与公共以太坊的节点数量相当时,这将不可避免地导致共识过程的崩溃。

因此,在公共以太坊中,使用的是 PoW,这并不意味着存在“特殊”节点和任何明确的确认——共识是基于遵循一般规则的事实:找到一个“幸运”哈希并添加一个新的块到最长的分叉,节点获得块创建奖励的概率最高。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我们在区块链中需要 TLSNotary?

为什么我们在硒的窗口句柄中使用set而不在列表中使用?

酶和摩卡咖啡让我在伊斯坦布尔覆盖率测试中出错,为什么?

为什么我们不在NodeJS应用程序中使用“ express.use”?

为什么我们不在用户空间中使用障碍

为什么我们不在JavaScript中使用数据类型作为函数参数?

为什么伊斯坦布尔显示承诺链中的所有内容,而不管是否有测试?

为什么我们不能在C#中使用公共字段进行数据绑定?

Python:为什么我们在函数中使用布尔值来返回主程序中的打印语句?

为什么我们不在光流中使用来自视频的运动矢量数据?

为什么我们在休眠中使用@Embeddable

为什么我们在 python 类中使用 super()?

为什么我们在Java中使用clone()方法?

为什么我们在jQuery中使用“({})”?

为什么我们在 Optaplanner 中使用 XStream 注释

为什么我们在AngularJS中使用$ rootScope。$ broadcast?

为什么我们在nodejs中使用导出?

为什么我们在Android中使用JSON?

区块链中的经过时间证明共识机制是拜占庭容错的吗?

茉莉花报业-伊斯坦布尔报告中为什么没有这样的if陈述

为什么我们不能对公共方法使用断言?

为什么我们分别使用公共变量和私有变量

使用 ES6+ 在 Karma 中使用伊斯坦布尔设置 Browserify

为什么我们不在Java类的末尾使用分号?

为什么我们不在 Dockerfile 上使用 CMD apt update 而不是 RUN apt update?

为什么我们使用@staticmethod?

为什么我们使用抽象

我们为什么使用@Autowire

为什么我们使用TaskStackBuilder?