工作量证明(Proof-of-Work,PoW)一开始发明的时候是用来防止垃圾邮件的。不一会之后,它就被用在电子现金系统中 [作者注1]。

表象之下,PoW 中的挖矿实际上在做的事情就是将动能(电力)转化为一个账本区块。一台矿机重复地运行哈希计算,直到它解决一个密码学难题。所有的哈希运算都会被丢弃,除了那个能够解决问题的哈希值。

这个渺小的哈希值,计算它只花费了非常少的能量,却是为了产生它而要求付出的大量能量的直接表现,是挖出区块的证明。若要重写区块,后来的一个攻击者同样要运行哈希计算,次数跟原来产生它要求的次数大致相等。

让我们再重复一遍:反写需要花费相同次数的哈希计算,但不是相等数量的能量。因为那个哈希值只是花费能量的一个表现,却并非能量本身。

斗转星移,这个哈希值作为一个代表会变得越来越不精确,因为后来升级的硬件会变得越来越有效率。能量本身不会变化,但它的旧日代表会逐渐“漏损”。

另一种观察这一过程的方式,是将 Pow 挖矿想象成为虚拟的区块附加物理重量。时间流逝,变老的区块会被破坏、变得越来越轻。假定其它区块的重量不变,这同样也会减少整条链的重量。

比特币对抗这种磨损过程的方式是不断创建新的区块,加入新的重量。这保证链的顶端在当时总是很重的,因此保护了整条链的完整性。 重的链 == 安全的链

(有些人说,“最重的链”要比中本聪说的“最长的链”更加准确。“最长的链”这一术语很容易误导人,因为我们使用这个词时意思并不是字面意义上的长度。)

SHA256 是比特币工作量证明挖矿使用的哈希方程。SHA256 保护这个账本不被重写。一个哈希进,一个哈希出;挖出一个哈希,要反写就需要一个哈希。就是这一点,给予了比特币不可篡改的属性 [作者注2]。

仔细想想,你会觉得它真是太神奇了。哈希计算竟完全服从于保护账本的目的!现实世界中,很少有什么东西是 100% 无保留地贡献自己同时又是高效的(举例来说,汽油和内燃机就不是这样)。

现实中,哈希方程可能也不是 100%的,但也是接近于这个值的。因为不可逆转性依赖于哈希结果是完全随机的(就像你摇骰子一样),而算法是无法真实地模拟现实世界的随机性的。

幸运的是,对我们来说,像 SHA256 这样的哈希函数已经被证实是充分随机的,也就是所谓的”伪随机“。我们已经对 SHA256 做了很多年的检验和压力测试,在这背后有一堆研究文献。所以,这里尚不存在什么我们需要太担心的东西。

基本上,我认为,给区块“附加能量”的想法是对的,并且有可能是唯一一种在实际上模拟不可更改性的办法。

使用消耗掉的能源为一个区块背书允许我们客观地评估不可更改性。相反,任何不基于能量的办法最终都会要求某些人对不可更改性的主观诠释 [作者注3]。

通过为一个区块附加能量,我们使它具备”形式“,使它拥有真实的重量,并在物理世界中造成影响。我们同样可以认为工作量证明是一种将一堆 0和1 注入现实生活的魔法。

换句话来说,工作量证明是电子世界与物理世界之间的桥梁

把这一点跟以太猫比比看?它们是由一些人创建的,并由他们在自认合适的时候修正和移除。他们的独特性和存在性既不被保证,也不可信赖。

即便当前工作量证明的变体失败了,我有信心,会有其它为区块附加能量的方式。

我的结论是,工作量证明在区块链中的应用也许会被证明是极其重要和广泛的,更甚于一开始意想中的那样。工作量证明给了我们不可更改性,不可更改性给了我们不受……的货币,而这种货币,可能会潜在地改变这个社会组织自身的方式(要更深入地思考,请看尼克·萨博的绝妙文章《社会可扩展性》)。


作者注1:在电子现金中使用工作量证明的想法也许根植于90年代末戴伟(Wei Dai)的 b-money 和尼克·萨博的比特金提议。哈尔·芬尼(Hal Finney)在2004年创造了工作量证明在电子现金中的第一个实现(RPOW)。

作者注2:不可更改性是一个相对的概念。我们说”不可更改性“时,通常的意思是,它在实践是哦那个是不可更改的,而不是绝对不可更改的(译者注:即在技术上不可更改)。即便黄金,加入足够多的能量也会熔化。

作者注3:其中一种办法是权益证明(Proof-of-Stake,PoS)。请看我评论权益证明的文章,理解其中的陷阱以及为什么它可能不如工作量证明。(编者注:中译本见文末超链接《权益证明与错误的工程思维》)


比特币基本原理系列:

比特币,概率与随机性
密码学如何重新定义私有产权?
比特币的激励机制与理性个体
组成比特币的三驾马车


原文链接: https://bitcointechtalk.com/the-anatomy-of-proof-of-work-98c85b6f6667
作者: Hugo Nguyen

区块链:剖析工作量证明相关推荐

  1. 区块链基础--工作量证明

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 区块链基础(6)–工作量证明1 我认为技术和共识构建了区块链,那么就由几个问题需要去解决,第一:如果由多个打包节点,那会 ...

  2. 动手学区块链学习笔记(二):区块链以及工作量证明算法

    引言 紧接上文,在介绍完区块链中的加密解密以及公钥私钥等算法后,本篇开始正式进入区块链概念与一个简单区块链系统的实现过程介绍. 区块链技术介绍 什么是区块链? 区块链,就是一个又一个区块组成的链条.每 ...

  3. 区块链的工作量证明(Proof of Work)初步解释

    Proof Of Work,顾名思义,直译过来就是工作的证明,也就是证明你,某人做了一定量工作.这就是这种机制的命名来源.如果希望证明某人做了什么工作的话,那显然,最有力的就是目睹,观测他整个工作的过 ...

  4. 区块链技术——工作量证明

    什么是工作量证明 Proof Of Work,简称POW,即对工作量的证明. 为什么要做工作量证明 **挖矿(计算or工作)**的结果会作为数据加入区块链成为一个区块,完成这个**工作**的人也会获得 ...

  5. 区块链:权益证明与错误的工程思维

    近期,许多权益证明(Proof-of-Stake, PoS)项目涌现出来.以太坊 Casper,卡尔达诺(Cardano)的 Ouroboros,等等.对权益证明协议日益高涨的兴趣可能源于无限扩展区块 ...

  6. 当区块链遇到零知识证明 1

    本文由云+社区发表 当区块链遇到零知识证明 什么是零知识证明 零知识证明的官方定义是能够在不向验证者任何有用的信息的情况下,使验证者相信某个论断是正确的.这个定义有点抽象,下面笔者举几个例子,来帮助读 ...

  7. Go学习之编码实现区块链 - 【权益证明PoS】

    在上一篇讲到如何快速实现一个简单的区块链,相信朋友们已经对其有了一个基础的认识.接下来,我们在此基础上进行重构,加入当下热议的一项技术,就是权益证明(Proof of Stake)的代码实现.在实现之 ...

  8. 区块链:权益证明设计哲学

    像以太坊(和比特币.NXT.Bitshares等)这样的系统本质上是新型的加密经济组织(cryptoeconomic organisms ) - 完全建立在网络空间里的去中心化.无管辖的机构,由密码学 ...

  9. 当区块链遇到零知识证明

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 什么是零知识证明 零知识证明的官方定义是能够在不向验证者任何有用的信息的情况下,使验证者相信某个论断是正确的.这个定义有 ...

  10. 区块链版权登记_利用区块链版权证书证明著作权

    目前,我国版权登记的费用比较高,原创作者需要去版权局申请认证.著作权认证过程不仅烦琐,而且费用很高,给原创作者带来了很多不便.利用区块链技术可以对任何文件,无论是文档.图片还是视频,都成生成特殊的符号 ...

最新文章

  1. HDU2196[树形dp+二次扫描]java和c++版本题解
  2. linux系统 wm9713声卡配置 记录
  3. 今日arXiv精选 | 13篇EMNLP 2021最新论文
  4. java值类型和引用类型 == 比较,Java中值类型和引用类型的比较与问题解决
  5. java判断线程是否wait_Java并发编程之线程间通讯(上)wait/notify机制
  6. split用法与图像预处理
  7. 奋战聊天机器人(二)语料和词汇资源
  8. 生信技能树课程记录笔记(七)20220602-20220604
  9. 搜集博科光纤存储交换机的日志
  10. html空格语言,HTML中如何键入空格
  11. IE6-IE11兼容性问题列表及解决办法总结
  12. 【JS】js判断等号、等同(===、==)
  13. 活动(已结束)--我们是冠军,啊呸,我们是CSDN VIP
  14. 玩了这么长时间抖音,这些功能你知道吗?做好这3个轻松月入过万
  15. Python实现电子钢琴及封装
  16. Python爬取王者荣耀全英雄全皮肤图片
  17. Verilog之从BMP图片中读取RGB数据
  18. 收到服务器发来的配置信息同步命令,Microsoft Exchange ActiveSync 和第三方设备的当前问题...
  19. win7安装onenote2016时碰到30094-1011(0)的 问题
  20. 【js】刚玩完《鱿鱼游戏》,我出来了

热门文章

  1. 【算法】两矩形相交的判定
  2. 图片隐写,盲水印,加密logo
  3. html的div背景,html div背景到底是什么颜色呢?
  4. 如何申请软件著作权证书
  5. linux桌面下雪,一个让桌面下雪的ruby 小程序 snow
  6. 程序员如何写简历?程序员写出牛逼简历的5大技巧
  7. 转 最强烈推荐-内有国内最好的java论坛
  8. android连接苹果蓝牙耳机,苹果蓝牙耳机怎么配对 苹果蓝牙耳机怎么配对安卓手机 苹果蓝牙耳机使用说明...
  9. 玉米社:竞价推广对话成本优化办法
  10. Pillow 库简介