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

号外:教链内参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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频剪辑助手:轻松实现视频随机分割并提取音频保存

随着社交媒体和视频平台的日益普及,视频制作和分享已成为人们日常生活的一部分。无论是分享个人生活,还是展示才艺,或是推广产品,视频都是一个非常有效的工具。但是,视频制作往往涉及到大量的视频剪辑工作,…

算法导论6:摊还分析,显式与隐式

P258 摊还分析概念 聚合分析,利用它,我们证明对于n,一个n个操作的序列最坏情况下的花费的总时间为T(n),因此,在最坏情况下,每个操作的平均代价(摊还代价)为T(n)/n 举了例子来形容这…

模板初阶 C++

目录 泛型编程 函数模板 概念 格式 原理 函数模板的实例化 类模板 格式 类模板的实例化 泛型编程 当我们要实现一个交换函数,我们可以利用函数重载实现,但是有几个不好的地方 1.函数重载仅仅是类型不同,代码复用率较低,只…

FlinkSQL聚合函数(Aggregate Function)详解

使用场景: 聚合函数即 UDAF,常⽤于进多条数据,出⼀条数据的场景。 上图展示了⼀个 聚合函数的例⼦ 以及 聚合函数包含的重要⽅法。 案例场景: 关于饮料的表,有三个字段,分别是 id、name、price&#xff0…

visual studio 启用DPI识别功能

在开发widow程序时,有时必须将电脑 设置-->显示-->缩放与布局-->更改文本、应用项目的大小-->100%后,程序的画面才能正确运行,居说这是锁定了dpi的原因,需要启dpi识别功能。设置方法如下: 或者

Python开源项目PGDiff——人脸重建(Face Restoration),模糊清晰、划痕修复及黑白上色的实践

python ansconda 等的下载、安装等请参阅: Python开源项目CodeFormer——人脸重建(Face Restoration),模糊清晰、划痕修复及黑白上色的实践https://blog.csdn.net/beijinghorn/article/details/134334021 友情提示: …

Vue23组件自定义事件 和 解绑事件

Vue2&3组件自定义事件 和 解绑事件 Vue2组件自定义事件 功能:父组件绑定数据,子组件触发事件。(父绑子触发) 实现步骤(前三步在父组件实现,第四步在子组件实现): 第一步&#…

ArcGIS进阶:栅格计算器里的Con函数使用方法

本实验操作为水土保持功能重要性评价: 所用到的数据包括:土地利用类型数据(矢量)、植被覆盖度数据(矢量)和地形坡度数据(栅格)。 由于实验数据较少,其思路也较为简单&a…

立体相机标定

相机成像过程中涉及的4个坐标系: 1、世界坐标系:由用户定义的三维世界坐标系,描述物体和相机在真实世界中的位置,原点可以任意选择。 2、相机坐标系:以相机的光心为坐标原点,X轴和Y轴平行于图像坐标系的X轴…

OpenHarmony 社区运营报告(2023 年 10 月)

● 截至 2023 年 10 月,OpenHarmony 社区共有 51 家共建单位,累计超过 6200 名贡献者产生 24.2 万多个 PR,2.3 万多个 Star,6.1 万多个 Fork,59 个 SIG。 ● OpenHarmony 4.0 版本如期而至,开发套件同步升级…

【js逆向实战】某sakura动漫视频逆向

写在前面 再写一个逆向实战,后面写点爬虫程序来实现一下。 网站简介与逆向目标 经典的一个视频网站,大多数视频网站走的是M3U8协议,就是一个分段传输,其实这里就有两个分支。 通过传统的m3u8协议,我们可以直接进行分…

建行广东省江门市分行走进农村地区开展反假货币宣传

人民对美好生活的向往,涉及方方面面,小至“钱袋子”安全。建行广东省江门市分行落实当地监管部门部署,积极扛起维护国家金融安全的重要政治责任,深入农村地区开展反假货币宣传工作,助力构建农村反假货币工作长效机制。…

拓扑排序软件设计——ToplogicalSort_app(含有源码、需求分析、可行性分析、概要设计、用户使用手册)

拓扑排序软件设计 前言1. 需求分析2. 可行性分析2.1 简介2.2 技术可行性分析2.2.1 技术实现方案2.2.2 开发人员技能要求2.2.3 可行性 2.3 操作可行性分析2.4 结论 3. 项目报告3.1 修订历史记录3.2 软硬件环境3.3 需求分析3.4 详细设计3.4.1 类设计3.4.2 核心流程描述3.4.3 核心…

安全通信网络(设备和技术注解)

网络安全等级保护相关标准参考《GB/T 22239-2019 网络安全等级保护基本要求》和《GB/T 28448-2019 网络安全等级保护测评要求》 密码应用安全性相关标准参考《GB/T 39786-2021 信息系统密码应用基本要求》和《GM/T 0115-2021 信息系统密码应用测评要求》 1网络架构 1.1保证网络…

Zephyr-7B论文解析及全量训练、Lora训练

文章目录 一、Zephyr:Direct Distillation of LM Alignment1.1 开发经过1.1.1 Zephyr-7B-alpha1.1.2 Zephyr-7B-beta 1.2 摘要1.3 相关工作1.4 算法1.4.1 蒸馏监督微调(dSFT)1.4.2 基于偏好的AI反馈 (AIF)1.4.3 直接蒸馏偏好优化&…

论文阅读[121]使用CAE+XGBoost从荧光光谱中检测和识别饮用水中的有机污染物

【论文基本信息】 标题:Detection and Identification of Organic Pollutants in Drinking Water from Fluorescence Spectra Based on Deep Learning Using Convolutional Autoencoder 标题译名:基于使用卷积自动编码器的深度学习,从荧光光谱…

Clickhouse学习笔记(8)—— 建表优化

数据类型 时间字段 建表时能用数值型或日期时间类型(DateTime)表示的字段就不要用字符串 因为clickhouse进行分区时一般使用时间字段来进行分区,而将时间字段使用DateTime表示,不需要经过函数转换处理,执行效率高、…

黑窗口连接远程服务

ssh root192.168.x.x 回车输入密码 查看docker docker ps 停止正在运行的服务 docker stop xxxxx 删除服务 docker rm xxxxx 查看镜像 docker images 删除镜像 docker rmi xxxxx 删除镜像 启动并运行整个服务 docker compose up -d jar包名称 idea 使用tcp方式连接docker 配置d…

深度探究深度学习常见数据类型INT8 FP32 FP16的区别即优缺点

定点和浮点都是数值的表示(representation),它们区别在于,将整数(integer)部分和小数(fractional)部分分开的点,点在哪里。定点保留特定位数整数和小数,而浮点…

webpack babel

构建工具 简介 当我们习惯了在node中编写代码的方式后,在回到前端编写html、css、js这些东西会感觉到各种的不便。比如:不能放心的使用模块化规范(浏览器兼容性问题)、即使可以使用模块化规范也会面临模块过多时的加载问题。我们…