POW的重力之美
定律一:每一个UTXO都保持其状不变,直到有外力迫使它改变这种状态为止--艾萨克•牛顿,原理2.0
在过去的几年里,关于比特币的工作量证明(PoW)所造成的“巨大的能源浪费”已经被很多文章讨论。在接下来的四篇文章中,我们将质疑这种普遍的观点,质疑用来支持“比特币的POW效率日益低下”的主要标准。
在第一部分中,我们将首先讨论PoW在比特币协议中的主要用途。然后,在重温了比特币PoW的两个重要特性之后,我们将定义这个实用程序Bitcoin.Days Secured的数学形式。我们将借用它来定义两个新指标(单位成本和平均成本)。最后,我们来看看这些指标能告诉我们多少关于比特币的POW效率的演变。
开场白:币圈末日要来啦
几个月前,所有媒体都在报道这条新闻。加密币末日即将来临。比特币的工作证明(PoW)是如此糟糕,它将在2020年摧毁世界……
读得再深入一点,你可能已经注意到,这些文章中的大多数都是基于Alex De Vries提供的分析结果。Alex De Vries是普华永道荷兰分部的“金融经济学家和区块链专家”,也是网站Digiconomist的作者。
我必须承认我对这项研究的感觉比较复杂。我对De Vries的分析工作的疑惑之处不是估计的用电量(这部分已经受到批评者的“公正评判”),而是反复使用一个特定的指标:每笔交易的用电量。别误会我。就交流讨论而言,这个指标纯粹是天才的发明,尤其是对于那些急于反对比特币POW的人来说。这一数字似乎甚为极端,以至于阻止了进一步讨论。问题是,这个指标从根本上是错误的,有下面几个原因。
首先,它会将交易数量与支付数量搞错。但公平地说,这并没有从根本上改变实际数字。让我们先忽略这个。
第二个问题是,公布的数据通常没有说明用电量与交易量之间不存在相关性;换句话说,几乎从来没有人承认用电量是交易数量的固定成本(而不是可变成本)。有了支付渠道或闪电网络这样的技术解决方案,很明显我们可以从根本上降低这个指标的价值。这凸显了两点:这些指标很容易被“滥用”,它也没有告诉我们比特币的POW的未来表现。
这个指标的最后一个问题是,它促进了人们对比特币的POW效用的错误理解。在“区块链,而不是比特币”的狂热时期,比特币获得了巨大的吸引力,这并不奇怪,但我们应该尽最大努力促进理性思维,而不是基于情感反应的无休止争吵。
所以。到了这一步,我们面临着一个显而易见的问题……
比特币的POW的效用是什么?
“黄金开采”理论
第一种理论认为,PoW算法的主要用途是发行新硬币。Paul Sztorc就这个问题写了一篇很好的文章。这一理论之所以具有诱惑力,是因为它似乎与解释这种机制的广泛隐喻——金矿开采——相一致。
我赞同这个理论,我认为它抓住了协议的一个重要方面。但是即使受教于对于这一系列的文章,我也不倾向认为发行新硬币是PoW算法的主要功能。为了支持我的观点,我将引用一个观察结果:虽然新硬币的发行预计会在2140年左右停止,但比特币开采不会在同一天停止。这表明PoW在比特币中扮演着另一个重要角色。
第四部分理论
第二个理论是,我们问题的答案是10年前比特币的创造者给出的。在第四部分的白皮书中要更加具体。
我将用下面这句话来总结这个理论
比特币的POW的主要用途是保障经济历史。(1)
这句话很好,但从目前的形式来看,这个断言并不是很实用。数学模型会好得多。这引发了一个新问题:如何将“经济史的安全性”表述为一个数学方程?
数字重力
根据前面的定义,我们可以声明我们的模型应该能够表达:
由系统担保的经济价值(理想情况下,它应该能够本原地或总体地做到这一点),
为这些经济价值(或者至少是一个好的代理指标)提供的安全性。
由于比特币协议中不存在“硬币”,我们的模型将使用未花费的交易输出(UTXO)的概念作为基本的价值对象。然后,通过添加给定时存在的所有UTXO集的经济值,我们可以轻松地定义系统保护的总经济值。好了,我们已经知道如何在模型中表达经济价值。
现在我们需要表达安全。显然,POW将在这里扮演重要角色。因此,回顾它的两个特性似乎很重要
工作量证明是全球性的和可累积的
在某种意义上,PoW类似于重力(更具体地说,类似于均匀引力场),它同时对其场中的所有物体产生影响,并对它们各自的速度产生累积效应。
就比特币而言:
第一,当一个新的块被挖掘时,它的PoW提供的安全性将同时并且平等地应用于所有现有的UTXOs,
第二,UTXO“积累”了与自创建以来挖掘的所有区块相关的POW。在其他条件相同的情况下,哈希值越多,UTXO的安全性就越高。
这两个特性是研究比特币的POW经济学的基础。遗憾的是,在De Vries使用的度量中,它们完全被忽略了。
让我们做一些假设
在进一步深入之前,让我们做一些假设:
A1:在过去的9年里,比特币一直是PoW系统中最安全的公共区块链。
A2:在任何给定的时间点上,比特币挖掘出的所有现有可用的且重要的计算能力都被用于挖掘比特币。
A3:比特币开采的边际成本和收益相等。
A4:与区块奖励相比,付给矿商的费用可以忽略不计。
虽然这些假设在现实世界中或多或少是不准确的,但它们对于这次初步调查来说已经足够了。
好的。现在,让我们试着将“经济史安全”的概念转化为数学模型。
一个UTXO的模型表述为 “比特币的安全哈希量”(“Bitcoin.Hashes Secured”)。
我们的第一个尝试将是直接的。基本上,我们要用UTXO的值乘以它在创建和给定块之间“累积”的哈希数。
虽然这个定义很简单,但它抓住了这样一种直觉:当UTXO“积累”了更多哈希或着其值更高时,系统提供了更多的实用程序。
尽管如此,这个模型并不是很令人满意,因为累积的哈希数并不能很好地衡量UTXO的安全性。主要原因是,多年来,致力于比特币挖掘的计算能力大幅增加。因此,在2009年,保护一个旧区块的POW的计算可能需要10分钟,但在使用现代asic时,它的计算时间仅为这个时间的一小部分。
显然,考虑到这一事实,我们需要一个更好的模型。
另一个UTXO的模型表述为 “比特币的安全存续期”(“Bitcoin. Days Secured”)
首先,我们将向假设列表中添加一个新项
A5:在足够大的时间段内,用于比特币挖掘的平均计算能力单调增加。
再一次,我们不能断言这个假设总是正确的或者将永远是正确的。不管怎样,在过去这几乎总是正确的,让我们继续这个假设。
现在,我们可以将给定块B上的UTXO的安全性定义为重写UTXO创建以来的历史所需的天数,其计算能力100%用于挖掘块B。
对于一个UTXO个体它给出了下面的方程
下面是UTXO集的方程
您可能想知道为什么选择“100%的计算能力用于挖掘B块”。这很简单。在我们目前的假设下,我们可以把这个定义看作是一种最坏的情况(“如果所有可用的计算能力都被用来重写历史,那么这个UTXO的安全性能维持多久?”)。此外,虽然另一种方案(50%、200%、N%)会改变我们结果的绝对值,但它不会随着时间的推移改变度量的整体演变。
比特币的POW效率
好吧。现在,我们已经有了一个由比特币的PoW提供的实用工具的模型,让我们看看我们能从它的效率中了解到什么。为此,我们将定义两个指标。
1、由一个给定区块添加一个“Bitcoin. Days Secured”所需的单位成本。
在这个指标中,我们将把与区块相关的奖励(关于采矿的利润成本和收入的参考假设A3)除以现有的UTXOs 增加的“Bitcoin. Days Secured”数量。
它给出了下面的方程
根据定义,所有现有UTXOs的值之和是现有比特币的数量,也等于所有过去的奖励之和:
因此我们的方程可以改写为
最后简化为
这里有一些观察结果:
首先,单位成本默认以bitcoins/bitcoin.day secured表示,但如果我们用USD/USD.day secured表示,我们会得到同样的结果。们等式的分子和分母同时表示比特币的价值)。
更重要的,值得注意的是,单位成本不依赖于市场价格或计算的哈希数等外部因素。
单位成本只取决于受控货币供应的规则,而这一点是它是由货币设计来定义的。
让我们检查与此指标相关的图表
我想很多人会对这个图表感到惊讶,但我们可以清楚地看到单位成本随着时间的推移是单调递减的。这一结果可以解释为比特币通缩模式(奖励减半)和新货币创造造成的暂时性通胀的共同影响。当所有的比特币都被创造出来后,情况应该会改变。在这一点上,外部因素将在单位成本的演变中发挥作用,但很难(如果不是不可能的话)预测事物将如何演变。让我们注意到,如果费用成为采矿奖励的一个重要部分,这种情况也可能在这一天前改变。
对于一个给定的区块而言,每个Bitcoins.Days Secured平均成本累加起来即是
对于第二个指标,我们将把开采第一个区块到得到报酬所花费的所有成本加起来。然后,我们要把总成本除以所有Bitcoins.Days Secured的总和。
请注意,我们将以美元表示所有成本和UTXO数量,因为我们需要在不同的时间段处理UTXOs的值。
这就得到了下面的方程
可以重写为
最后简化为
这就是这张图
就像单位成本一样,平均成本表明,随着时间的推移,比特币的使用效率确实在提高。这个结果可能与直觉相反,因为比特币的POW的绝对成本明显上升,但当我们意识到这个成本的上升被系统所担保的总价值上升所抵消时,就开始有了意义。
结论
在第一部分中,我们讨论了为什么每次交易的平均成本不能作为衡量比特币的POW效率的适当指标,以及为什么这种效率应该用经济历史的安全性来定义。
基于这一观察结果以及比特币的两个重要特性(它的全球和累积效应),我们定义了bitcoin.days secured模型来形式化表达了比特币POW的效率。
最后,我们得到了两个指标,这两个指标都表明,与普遍观点相反,比特币的PoW实际上正在变得越来越高效。
在本系列文章的下一部分中,我们将讨论一个新的度量标准,强调系统的效率是如何在挖掘和捆绑行为的影响下发展起来的。
致谢:
感谢[ @SamouraiWallet and TDevD ]和http:// TDevD(http://@SamouraiWallet " @SamouraiWallet and TDevD ")的宝贵反馈和耐心。:)
笔记(1)参见Kocherlakota的“货币[存在]等同于记忆的原始形式”理论(R. Kocherlakota,Money is memory,1996年,明尼阿波利斯联邦储备银行)和Luther & Olson的论文《比特币是记忆》 Bitcoin is memory (2014)
原文网址:http://https://medium.com/@laurentmt/gravity-10e1a25d2ab2
翻译:花未容 【虫洞签约作者】
相关阅读推荐:
P2P网络架构
区块链光谱
【易错概念】以实例形式深入浅出讲透BANCOR算法
添加微信(cdong1024),加入区块链开发者技术交流群
虫洞社区:https://www.uzanapp.com?fr=bokeyuan ——中美区块链开发学习社区
POW的重力之美的更多相关文章
- LeetCode:Climbing Stairs(编程之美2.9-斐波那契数列)
题目链接 You are climbing a stair case. It takes n steps to reach to the top. Each time you can either c ...
- 24点C++程序实现 编程之美1.16
解法1,对于任意输入的四个数字,给出一个24点的解法,若无解,则没有输出. 原理参照下图(编程之美原书) 代码如下,仅供参考 // 1.16.cpp : Defines the entry point ...
- 美图DPOS以太坊教程(Docker版)
一.前言 最近,需要接触区块链项目的主链开发,在EOS.BTC.ethereum.超级账本这几种区块链技术当中,相互对比后,最终还是以go-ethereum为解决方案. 以ethereum为基准去找解 ...
- 正确看待POW与POS,总结与区分
POW:Proof of Work,工作证明. 比特币在Block的生成过程中使用了POW机制,一个符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值.要得到合理的Block ...
- 百度MUX:APP动效之美需内外兼修
移动互联网时代已经到来.APP已如天空的繁星.数也数不清.随着手机硬件的不断升级,实现炫酷且流畅的动效不再是遥远的梦想.假设你是APP达人,喜欢试用各种APP,你肯定会发现越来越多的APP開始动效化. ...
- 【探索】无形验证码 —— PoW 算力验证
先来思考一个问题:如何写一个能消耗对方时间的程序? 消耗时间还不简单,休眠一下就可以了: Sleep(1000) 这确实消耗了时间,但并没有消耗 CPU.如果对方开了变速齿轮,这瞬间就能完成. 不过要 ...
- iOS开发系列--打造自己的“美图秀秀”
--绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...
- ADO.NET编程之美----数据访问方式(面向连接与面向无连接)
最近,在学习ADO.NET时,其中提到了数据访问方式:面向连接与面向无连接.于是,百度了一下,发现并没有很好的资料,然而,在学校图书馆中发现一本好书(<ASP.NET MVC5 网站开发之美&g ...
- UOJ #221 【NOI2016】 循环之美
题目链接:循环之美 这道题感觉非常优美--能有一个这么优美的题面和较高的思维难度真的不容易-- 为了表示方便,让我先讲一下两个符号.\([a]\)表示如果\(a\)为真,那么返回\(1\),否则返回\ ...
随机推荐
- windows10下安装source insight 4.0(破解版)
1.从官网下载source insight4.0版本(不用下载,在后面已经把所有需要的文件都准备好了); 2.安装source insightt4.0; 3.使用下载好的sourceinsight4. ...
- Java Collection集合方法
一.简单方法 package cn.itcast.day15; import java.util.ArrayList; import java.util.Arrays; import java.uti ...
- 某某D的手伸的实在太长了,路由器也未能幸免,致被阉割的TP-Link
前段时间整了个服务器架上l2tp.server, TP-Link路由连上去后,全网走l2tp通道,而且不能配置相关的路由表 然后研究啊 找啊 查啊,确定是路由没有这功能 找客服问了一下,他一听就懂了, ...
- WINDOWS SOCKET编程中accept出来的新连接是阻塞还是非阻塞
实践证明 SOCKET hNewSock=accept(hListenSock) 当hListenSock为阻塞模型时,hNewSock则为阻塞模型 否则 当hListenSock为非阻塞模型时,hN ...
- css多种方法实现已知宽度和未知宽度的元素水平垂直居中
// html <div class="box-wrapper"> <div class="box"> 内部box <p>更 ...
- vue组件-子组件向父组件传递数据-自定义事件
自定义事件 我们知道,父组件是使用 props 传递数据给子组件,但如果子组件要把数据传递回去,应该怎样做?那就是自定义事件!
- php api接口安全设计 sign理论
一. url请求的参数包括:timestamp,token, username,sign 1. timestamp: 时间戮 2. token: 登陆验证时,验证成功后,生成唯一的token(可以为u ...
- JS 仿腾讯发表微博的效果
JS 仿腾讯发表微博的效果 最近2天研究了下 腾讯发表微博的效果 特此来分享下,效果如下: 在此分享前 来谈谈本人编写代码的习惯,很多人会问我既然用的是jquery框架 为什么写的组件不用Jquery ...
- PAT B1040 有几个PAT (25 分)
字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T):第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位(T). 现 ...
- odoo明细表汇总数据
一.在主表中#改动地方 总结算金额 求和:def _get_subtotal2(self, cr, uid, ids, field_name, arg, context=None): # 初始化 re ...