blockchain - 区块链共识 51% vs 50%
问题描述
区块链共识算法的所有解释都将 51% 作为确认节点的最小百分比。为什么较小的百分比不起作用,只要它严格大于 50%?这是为了避免共识动态中的亚稳态问题,这些问题可能是由于百分比太接近 50% 导致其决定性降低?如果是这样,为什么不将其设为 52%?在某些权衡中是否有什么特别之处可以使 51% 变得特别?
解决方案
51% is just a notation for (n/2 + 1) where n: the total number of nodes participating in the consensus algorithm. I agree that it is a bad notation, more precisely it should be something like 50% + ε.
In academic papers you might find relations with the number of Byzantine nodes f in the system. So for PoW consensus, n > 2f + 1 (which is equivalent to the statement that at more that half of the nodes should be "honest"). For PBFT consensus in permissioned blockchains, it will be n > 3f + 1 (which translates to honest nodes should be more than double of the Byzantine nodes, or using the "bad" notation, 66.6666% + ε).
推荐阅读
- reactjs - 同一个域上的多个 React 应用程序
- python - 从字典列表中提取多个键的值
- vb.net - Visual Basic:程序运行时出错,但不是在调试模式下
- node.js - 从 nodejs 到 elasticsearch 的请求抛出错误:“msearch 请求必须由换行符 [\n] 终止”
- php - MYSQLI/PHP 如何定义我的查询/语句以输出在特定聊天室中发送的每条消息?
- laravel - Laravel 8 模板布局插槽与 Laravel 旧部分、产量和扩展?
- node.js - 如何查询特定频道中的所有消息?获取流.io
- scala - 我可以控制在 Scala 3 中编译宏的顺序吗?
- docker - 检查 Docker 镜像和 Docker 文件
- ethereum - 以太坊监听所有交易