工作量证明是解决拜占庭将军问题的唯一办法

号外:教链内参11.10《以太坊反攻》

文 | Oleg Andreev. 2014.5.23. 原标题:Proof That Proof-of-Work is the Only Solution to the Byzantine Generals' Problem

(本文是)回复@Vlad_Roberto的话:“不,(我)不是程序员。我只是知道有更好的方法来做任何事情,而无需大量的能源消耗和银行。”

想象一下你正坐在一个掩体里。你不知道外面的人是什么以及他们的意图是什么。你只会收到一些来自陌生人的传入消息,其中可能包含任何内容。它们可能只是随机的垃圾或故意制作的消息来迷惑你或对你撒谎。你永远不会知道。你不能相信任何人。

“金钱”或任何其他“社会契约”的问题在于,每个人都应该能够知道大多数人同意什么,而不必信任某些中间人(否则他们很容易滥用自己的特殊地位)。如果每个人都投票给“X”,那么坐在地堡里的你必须以某种方式独立地弄清楚所有其他人确实投票给“X”而不是“Y”或“Z”。但请记住:你不能相信任何人的消息,消息是你从外界获得的唯一信息。

当两个提案“X”和“Y”进入你的地堡时,我们没有可靠的参考点来确定哪一个得到了大多数其他人的支持。我们只有“数据本身”来判断应该选择哪一个作为主要数据。为了让事情变得更简单,我们并不是试图对任何一个命题应用主观判断,而只是试图让每个人都同意一个选项。就比特币而言,这是一个合理的假设:每个人都是自己货币的所有者,因此只要尊重自己的余额,没有人真正关心选择哪个历史版本。

那么,X 应该如何与 Y 区分开来,以便我们确信没有人会意外地选择 Y、Z 或 W?第一个属性:该数据应该是“最近的”。因此,我们知道,我们并没有固守某些旧共识,而其他人都已经转进到其他方面了。第二个属性:任何“最近”的替代品都应该不可能产生。因为如果可以产生,那么总是有机会让一些人看到它并接受这种替代方案。而且你无法估计存在多少这样的替代方案以及有多少人接受它(因为你坐在一个掩体中,你无法信任传入的消息或知道你错过了多少消息)。

我们如何定义“不可能”?它意味着两件事之一:要么逻辑上不可能,要么实际上(经济上)不可能。如果逻辑上不可能,那么我们只需使用归纳法就可以提前知道所有未来的共识(例如一串确定性的数字)。但这是不行的,因为我们首先必须就起点达成一些一致。所以我们最终(只好)要求实际上不可能。换句话说,我们需要以下内容:

消息 X 应该被证明是最近的,并且实际上不可能产生替代品。

实际的不可能性可以用“机会成本”来重新定义:物理资源是有限的,这些资源应该主要分配给X而不是Y,所以我们可以看到X从任何替代品中吞噬了所有资源。因为如果没有,那么剩余资源是否用于替代品 Y 或者它们不干扰投票过程就有了巨大的不确定性。是否有可能 X 没有吸收大量资源,而替代品仍然不可能?那么这意味着 X 在逻辑上遵循系统之前的任何状态,并且不需要投票过程。

因此:消息 X 应该是可证明是最近的,并且应该使用了可证明的大量资源,足够大,以至于没有足够的资源可供任何替代品 Y 在相当短的时间范围内产生。此外,消息 X 应该始终是“最近的”并且始终胜过任何替代品。因为我们无法可靠地比较“旧”消息:Y 是刚刚交付的“旧”消息,还是在 X 上花费的资源释放后刚刚生成的?

这从逻辑上引导我们得出以下结论:我们应该只接受带有最大工作量证明的消息,并且工作量证明应该是有史以来最大的,因此不存在任何替代品在短时间内产生的可能性。而且工作量证明必须不断得到加强,否则随着替代品(出现)机会的增加,先前共识的价值就会开始迅速消失。

昂贵、高度专业化的计算机群是达成共识的最可靠方式。如果我们要使用非专业资源,就很难判断它们中的大多数是否确实用于工作量证明计算。通过观察大量工作发生在经济中一个非常具体、易于观察的部分,我们可以估计产生另一种同样困难的信息的成本有多大。就比特币矿场而言,这种替代方案将需要非常昂贵且复杂的生产链,需要要么超越其他使用芯片代工厂的公司,要么在地球上最具成本效益的地点(使用最便宜的电力)建造一次性数据中心 、最冷的天气、低延迟连接等)

结论

如果在实践中以非信任方式达成共识是可能的,那么只有通过工作量证明方案和高度专业化的昂贵产业链才有可能实现。此外,共识只在短时间内有价值,因此必须不断强化。

b994433840d0dc14b8241b213a7966d3.png

号外:教链内参11.10《以太坊反攻》

655a449d88f4f6aeb43de43483f0eeba.png

(公众号:刘教链。知识星球:公众号回复“星球”)

(免责声明:本文内容均不构成任何投资建议。加密货币为极高风险品种,有随时归零的风险,请谨慎参与,自我负责。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/134816.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【SoC基础】DMA的工作原理

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

PTA_乙级_1086

#include <iostream> #include<string> #include<algorithm> using namespace std;int reverseNum(int n){//将数字n转为字符串string nStrto_string(n);//翻转字符串reverse(nStr.begin(),nStr.end());//转为数字int resstoi(nStr);return res; }int main()…

Python 潮流周刊#26:requests3 的现状

△点击上方“Python猫”关注 &#xff0c;回复“1”领取电子书 你好&#xff0c;我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容&#xff0c;大部分为英文。本周刊开源&#xff0c;欢迎投稿[1]。另有电报频道[2]作为副刊&#xff0c;补充发布更加丰富的资讯。 &#…

【LeetCode刷题-二分查找】--69.x的平方根

69.x的平方根 class Solution {public int mySqrt(int x) {int l 0,r x ,ans -1;while(l < r){int mid (r - l)/2 l;if((long)mid * mid <x){ans mid;l mid 1;}else{r mid - 1;}}return ans;} }

云原生微服务架构及实现技术

云原生是一种技术理念和架构方法&#xff0c;它充分利用云计算的优势&#xff0c;将应用程序和基础设施进行优化&#xff0c;以适应云环境的特性。云原生的设计原则主要包括弹性、韧性、安全性、可观测性、灰度等&#xff0c;旨在让企业在云环境中实现轻量、敏捷、高度自动化的…

webpack提升构建速度

目录 配置优化减少 resolve 的解析把 loader 应用的文件范围缩小减少 plugin 的消耗选择合适的 devtool 使用工具thread-loaderDLLPlugin 流程优化拆分构建步骤拆分项目代码 版本更新总结 前端项目随着时间推移和业务发展&#xff0c;页面可能会越来越多&#xff0c;或者功能和…

简单描述下微信小程序的相关文件类型以及微信小程序和uniapp的区别?

前言 微信小程序是一种基于微信平台的轻量级应用&#xff0c;其文件类型涵盖了不同用途的文件。了解这些文件类型能帮助开发者更好地构建小程序。 微信小程序是微信平台上的一种轻量级应用程序&#xff0c;为用户提供了一种便捷的方式来在微信生态系统内进行各种操作和获取服务…

MYSQL索引+常见的锁

一)联合索引: 1)定义:是给一张表上面的多个列增加索引&#xff0c;也就是说给表上面的多个列增加索引&#xff0c;供快速查询使用&#xff0c;当两个列的组合是唯一值时&#xff0c;联合索引是个不错的选择 联合索引和单个索引对比来讲&#xff0c;联合索引的所有索引项都会出现…

【左程云算法全讲7】二叉树基础

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于左程云算法课程进行的&#xff0c;每个知识点的修正和深入主要参考…

LeetCode(7)买卖股票的最佳时机【数组/字符串】【简单】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 121. 买卖股票的最佳时机 1.题目 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票…

Shell编程入门--概念、特性、bash配置文件

目录 一、Shell概念1.定义2.分类和使用场景2.1.分类和切换2.2.使用场景 3.特性3.1.文件描述符与输出重定向3.2.历史命令---history3.3.别名 --alias3.4.命令排序执行3.5.部分快捷键3.6.通配符置换 4.脚本规范5.脚本运行方式5.1.bash脚本执行5.2.bash脚本测试 二、bash配置文件1…

抢占全球30%碳化硅市场份额!英飞凌押注低碳化和数字化“新时代”

“未来十年将是低碳化和数字化‘双轮驱动’发展的时代。” 英飞凌科技全球高级副总裁及大中华区总裁、英飞凌科技大中华区电源与传感系统事业部负责人潘大伟在英飞凌2023年大中华区生态创新峰会上表示。 当前&#xff0c;“数字化低碳化”新趋势正在席卷和重塑着未来世界的千行…

【MySQL】初识数据库

目录 1.概念2.基本使用显示当前的数据库列表创建数据库使用数据库创建表向表中插入数据查看创建的表中的数据 3.SQL的分类4.存储引擎 1.概念 MySQL本质是基于C(mysql)S(mysqld)模式的一种网络服务。 mysqld&#xff1a;它是数据库的服务器端&#xff08;这是一个守护进程&…

SpringBoot代码生成器mapper model

Spring Boot 是一个由 Pivotal 团队提供的全新框架&#xff0c;设计目的是简化新 Spring 应用的初始搭建和开发过程。它采用特定的配置方式&#xff0c;使开发人员能够快速上手并构建基于 Spring 的应用程序。Spring Boot 提供了一套默认配置&#xff0c;包括 Spring、Spring M…

Mathtype公式自动转Word自带公式

Mathtype公式自动转Word自带公式 前言/word技巧探索过程参考资料&#xff08;有效与无效&#xff09;全自动方案/代码/教程 前言/word技巧 word公式 用ALT号可以输入简单latex显示公式&#xff1b;复杂度&#xff0c;需要引入latex包的不行&#xff1b;显示不出来的话按一下en…

C++ PCL点云配准源码实例

程序示例精选 C PCL点云配准源码实例 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《C PCL点云配准源码实例》编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习与应用…

MATLAB中plot函数用法

目录 语法 说明 向量和矩阵数据 表数据 其他选项 示例 创建线图 绘制多个线条 根据矩阵创建线图 指定线型 指定线型、颜色和标记 在特定的数据点显示标记 指定线宽、标记大小和标记颜色 添加标题和轴标签 绘制持续时间并指定刻度格式 基于表绘制坐标 在一个轴…

vue,react虚拟dom

Virtual DOM 前言 在传统的Web开发中&#xff0c;直接操作真实的DOM通常是一个昂贵且低效的操作。为了解决这个问题&#xff0c;Virtual DOM&#xff08;虚拟DOM&#xff09;被引入为一个中间层&#xff0c;允许开发者在内存中进行操作&#xff0c;从而避免频繁且不必要的真实D…

MATLAB中Arrow 属性说明

目录 颜色和样式 位置 Arrow 属性是箭头的外观和行为。 Arrow 属性控制 Arrow 对象的外观和行为。通过更改属性值&#xff0c;可以修改箭头的特定方面。使用圆点表示法查询和设置属性。 ar annotation("arrow"); c ar.Color; ar.Color "red"; 颜色和…

下一批就是外包机器视觉公司兄弟们,机器视觉兄弟们可能还不知道,日结,灵活就业的兄弟们正在连夜找工作!

下一批就是外包机器视觉公司兄弟们&#xff0c;机器视觉兄弟们可能还不知道&#xff0c;日结&#xff0c;灵活就业的兄弟们正在连夜找工作&#xff01; 怀念十多年前打工的时候&#xff0c;那个人人脸上都有笑容&#xff0c;充满活力&#xff0c;充满希望的年代。 日结的机器视…