宇宙链 宇宙链
Ctrl+D收藏宇宙链

更容易理解的工作量证明:本质上是一个去中心化时钟

作者:

时间:1900/1/1 0:00:00

这篇文章将解释“工作量证明”在比特币区块链上的关键作用。我们将只关注工作量证明机制最关键的一个特征、并证明其它特征只是附带结果,虽然有用,但并不是最本质特征。

本文的解释基于例证一些工作量证明在区块链上运用中的有趣属性。它们往往不是那么直观,有时候甚至与我们的直觉相悖。比如说,通过工作量证明,一群人不用互相交流就能共同解决一个问题。

在了解了这些有趣的属性之后,你们大概会得出一个结论:工作量证明主要是一个实现“分布式且去中心化的时序系统”的机制。

请注意,这篇文章讨论的并不是工作量证明的原理,而是区块链是如何利用工作量证明的。如果你还不了解工作量证明是什么,可以从这篇文章看起。

去中心化账本中的时间顺序问题

在研究解决办法之前,让我们先来仔细分析一下问题。很多介绍工作量证明的文章读起来都很晦涩,原因就在于它们试图跳过问题直接解释答案。

任何账本都显然需要有顺序。正如一个人不应该能花一笔没到账的钱一样,他也不应该能使用一笔已经转给别人的钱。区块链上的交易必须在不依靠第三方机构的情况下,清晰地排列出交易的顺序。

即便区块链不做账本,只做某种日志,也需要为发生的事情排列出顺序。排序不同,结果显然也不同;排序不同,那就变成另一条区块链了。

但是如果交易都是由世界各地的匿名用户生成,并且没有一个中心机构来负责整理,那么我们怎么给交易排定顺序呢?举例来说,交易含有时间戳,但什么条件下,这些时间戳才是信得过的呢?

时间不过是一个人造的概念。包括原子钟在内,所有的报时来源,其实都是一个“被信任的第三方”。但最重要的是,这些第三方大多数情况下都不是完全正确的。因为网络延迟或者相对论的影响都会使它们的结果产生出入。坐在飞机上的人跟地上走的人之间会产生一个“时间膨胀”现象,这种误差会随逐渐累积起来,最终使排序失真。于是,依靠时间戳来决定时间的顺序在一个去中心化且地理上分散的系统中是不可能的。

Zcash创始人:在基础层构建端到端加密或更容易且有效确保隐私和抗审查性:8月24日消息,加密隐私货币Zcash创始人Zooko Wilcox发推文称,“我认为信息论和密码学的某些后果是共识机制和博弈论无法克服的。我正在考虑隐私和抗审查性,但我不认为可以在明文架构之上这些,即缺乏端到端加密的架构。虽然我不确定在明文之上构建隐私和抗审查性是不是完全不可能的,但我确信在基础层构建端到端加密是一种更容易且更有效的方法,在ECC,我们正在为Zcash社区制定一个关于如何将Zcash转移到权益证明(PoS)的提案,所以我们正在密切研究这些想法。”

据悉,Zcash开发公司ECC曾于去年8月份发文表示,考虑将Zcash从工作量证明(PoW)转向权益证明(PoS)机制。[2022/8/24 12:45:08]

我们这里说的其实并不是传统意义上的“时间”概念,不是说的“年月日”这种。我们需要的是一个能让我们验证一个事件是否先于另一件事发生的机制。

首先,为了使用“之前”和“之后”这样的描述,我们先得建立“时间点”这样一个概念。在时间线上确立一个具体的点乍看起来似乎不可能,因为目前还没有技术能够精确到测量出一个Planck。但你之后会发现,比特币就是这样运作的——它通过创建自己的时间概念来让确定时间线上的具体点变得可能。

这个问题在LeslieLamport于1978年发表的?“Time,Clocks,andtheOrderingofEventsinaDistributedSystem”?一文中有很详细的说明。不过实际上,除了“正确同步的物理时钟”之外,这篇文章并没有提出什么彻底的解决办法。在1982年,Lamport还提出了?“ByzantineGeneralsProblem”?。中本聪在他早期的邮件中解释了工作量证明如何能解决该问题。不过,他在比特币白皮书中写道:“想要在点对点的基础上使用一个分散式的时间戳服务器,我们需要使用工作量证明系统”。这句话表明工作量证明主要还是用来解决时间戳排序这一问题的。

Adam Back:DeFi使抵押贷款和执行智能合约变得更容易:7月24日,Blockstream首席执行官Adam Back与推特网友讨论DeFi相关话题,针对网友所说,为什么DeFi是帮助资本所有者与资本使用者直接联系的重要一步?Adam Back表示,DeFi使得抵押贷款和直接执行智能合约,或者贷方对证券进行保管,变得更加容易。否则,在难以取得留置权或无担保的情况下借贷是混乱的,风险和回收、坏账转售已经演变成应对现实世界的权衡。[2020/7/24]

时间排序是最根本的问题

这里必须要强调一下,在中本聪提出解决办法之前,无法在分散式系统中确定事件与时间点的关联?这个难题使得去中心化账本一直无法实现。区块链中也有很多其它的技术细节值得玩味,不过时序还是最基础也是最重要的一点。我们甚至可以认为,无法完成时间排序,就不可能有区块链。

简要回顾“工作量证明”

简单来说,比特币上的工作量证明就是找到一个值,这个值经过SHA-2这个哈希函数运算后能满足特定的条件。而这个要求的数值越小,可能满足条件的输入值就越少,从而找到这样一个输入值的难度就越高。

这种机制之所以叫作“工作量证明”就是因为满足条件的数值太少了。找到这样一个数需要进行大量的尝试。需要花费的工作量反过来暗示了需要花费的?时间。

通过改变要求,我们可以调整难度以及找到这样一个值的可能性。比特币难度的动态调整使得整个网络平均每十分钟找到一个这样的值。

区块之间无事发生

一条链的状态是执行链上区块中交易的结果。因此每个新区块都会生成一个新状态。因为区块链的状态随着每一个新区块的生成而不断变化,我们把生成一个区块所用的平均时间看作是区块链时间的最小计量单位。

动态 | Block.One新游戏将使编码过程更容易理解:据cryptodaily消息,Block.One透露了一款新的视频游戏,旨在增加积极参与网络工作的EOS开发人员的数量,该游戏被称为元素战斗,使EOS.IO编码过程更容易理解。游戏教程有不同的阶段,供开发人员学习在EOS.IO上构建分散式应用程序所需的每个步骤。这包括如何编写EOS智能合约,游戏逻辑验证和编程人工智能代码的一般指南。Block.One表示,它是新想法的一部分,以增加网络上的编程社区。[2018/10/26]

SHA函数是无记忆性、无过程性的

一个安全哈希算法在统计学中被认为是无记忆性的。这一特性明显与人类的直觉相反。有关无记忆性最好的例子就是扔硬币。如果一枚硬币已经连续十次正面朝上了,这是否代表下一次更可能是反面朝上呢?直觉告诉我们,“是的”。但是实际上,不管之前的记录是什么样的,正面或是反面朝上的概率仍然是对半开的。

这种无记忆性是工作量证明的?无过程性?的前提。无过程性指的是当矿工挖矿时反复尝试不同的nonce时,每一次尝试都是独立的事件。不论他们已经付出了多少努力,之后的每一次尝试找到正确结果的概率都是一样的。换句话说,每一次不成功的尝试不会让矿工们“更接近”正确的结果。一个已经尝试挖了一年矿的矿工并不会比一个刚开始挖矿的矿工更容易挖到下一个区块。

因此,在一个给定难度下,在给定时间内找到结果的概率?只取决于所有矿工遍历可能哈希值的速度?,跟过往的历史无关,跟区块数据也无关,只跟哈希率有关。

Hashrate实际上就是一个矿工人数和挖矿设备计算哈希值速度的函数。

SHA函数的输入值是不重要的

金色财经现场报道 德鼎创新基金合伙人王岳华:接地气可落地的区块链项目更容易存活:金色财经现场报道,在GMIC全球区块链峰会圆桌论坛,德鼎创新基金合伙人王岳华表示,区块链应用在很多场景是必然,但市场上有很多项目是不实在的,一窝蜂涌会导致不健康不成熟的东西,我们VC在区块链领域也有很多投资,我们认为能够生存下来的,是接地气可落地的区块链项目。但也有一些项目虽然不是那么靠谱,但拿到了投资,说不定也能发展起来了,这与传统烧钱的商业模式是类似的。[2018/4/27]

比特币区块链中,工作量证明算法的输入值就是一个区块的区块头。不过就算我们只是随机地输入一些数据,找到合乎要求的哈希值的概率还是一样的。不论输入的是有效的区块头还是一些随机的字节,我们找到一个正确结果的时间还是平均十分钟。当然,如果你真的是把随机内容作为输入值,就算你找到了结果,你的区块也不会被打包到区块链上。虽然这种情况也算是工作量证明,但是是无用的。

难度是全宇宙统一的

你知道吗,难度是?普世的?。意思就是说整个宇宙中,不论在哪,难度都是一样的。于是,我们可以请火星上的矿工来帮忙挖矿。他们不需要认识地球上的矿工,甚至都不用进行沟通联络,整个网络还是每10分钟挖出一个区块。

显然,远程参与的矿工们彼此之前并没有什么沟通,因为他们只是在共同尝试解决同一个数学统计问题。他们其实都不知道彼此的存在。

这个“统一性”属性看似神乎其神,实际上是很好理解的。我之所以说是“统一性”,是因为这个词很好理解。不过准确来说,它指的是“每个矿工都知道”。

SHA-256哈希函数的输入值可以是0到2^256之间的任意一个整数。尽管这是一个特别大的数,但大家起码都知道范围,并可以从中挑选数值。

莱特币创始人发推感叹“当年选币更容易”:莱特币创始人发推特称,与2013年4月28日的历史价格比较,比特币涨幅8050%,莱特币涨幅4587%,PPC涨幅700%,NMC涨幅188%,TRC涨幅27%,DVC涨幅7%,NVC涨幅121%。“当时选择投资哪种货币要比现在容易得多。”[2018/3/7]

如果输入值的范围、所用的函数、还有难度要求是大家都知道的,那么找到一个解的概率对所有人来说都是统一的、公平的。

要做矿工也简单,算下SHA就行

如果问题是让你找到一个合适的哈希值,那么你需要做的只是尝试运行一次哈希函数,然后“叮”,你就影响了全局的哈希速率。因为这次尝试,你也能被看作是一名矿工,并且帮助了别人一起解决这个问题。你不需要和别人说你做了什么,其他人也不需要知道。不过不管怎么样,你的尝试都影响了全局结果。一点儿也不夸张。

如果你还有点将信将疑,没关系,想想这样一个类比吧——寻找最大的质数。这个问题很难,而且一旦找到了一个更大的质数,那这个数就会被认定为“已找到”、“已知”。在数字世界中,有无限个质数。不过因为我们用的数字系统都是一样的,不论是谁试图解决这个问题,我们面对的都是同样的问题。你不需要告诉别人你决定寻找最大的质数,你只需要等你真的找到解的时候再告诉大家。如果没有人想研究这个问题,那么这个问题的解就永远不会被找到。因此,只要最终结果会被宣布,参与度就会影响结果,即便参与的过程是完全秘密的。这么看,中本聪发明的这套机制真的太绝妙了——利用了上述的逻辑,使得秘密的参与过程和没有取得成功的尝试都能影响最终的结果。

值得注意的是,因为SHA函数是无过程性的,每一次的尝试都可以看作是参与者付出了努力后就立刻离开了网络。因此,我们可以认为矿工们每秒钟都会无数次地进出网络。

参与度会在统计结果中揭露出来

神奇的秘密参与属性反过来也成立。全局的哈希率之所以能被大家所知道,并不是因为矿工们在一个什么“矿工注册所”注册登记了,然后上报各自的哈希速率,根本不是这么回事。

哈希率能被大家知道的原因其实也很简单。想要每十分钟左右找到一个特定难度的解,这得有这么多次的尝试由某人在某地完成。

我们并不知道这些参与者到底是谁,他们也不需要告诉别人他们在工作。此外他们可以存在于宇宙中的任何地方。不过可以肯定的是,这些参与者一定存在。因为网络在持续出块,即持续地在找出符合要求的解。

工作量即时钟

综上即可得知工作量证明的核心:挖矿的难度要求就是一部时钟。你愿意的话,可以管它叫“宇宙时钟”,它不需要去跟别人同步,而且所有人都能“看到”它。

这个时钟不精确也没关系。重要的是,每个人的时钟都相同,并且链的状态可以明确地与此时钟的滴答声联系在一起。

这台时钟是由数目未知的参与者集体的哈希率总和来推动运行的;这些参与者散布在这颗星球上,彼此之间毫无关联。

最后一块拼图

工作量证明问题的解必须是一个区块的哈希值。就像我们之前说的,输入值并不重要。不过如果是一个真的区块,那么这个解找出来的时候,也就是这个时钟的“滴答”一刻。不是在那之前,也不是之后,就是在那一刻。我们这么确信,就是因为区块是这个机制的一部分。

换个说法,如果SHA256函数的输入值不是区块,我们还是会有一个时钟,但是却没法把区块和时钟的滴答声联系在一起。而使用区块作为输入值就能很好地解决这个问题。

值得注意的是,我们的工作量证明时钟只能给我们提供滴答声。但我们没法从滴答声中听出顺序。而前后相接的哈希链条就是用来解决这个问题的。

这关分布式共识什么事?

共识意味着一致同意。所有参与者都必须遵循的一条规则就是,时钟会有滴答声。其外,所有人都能听到滴答声,并且知道与每个滴答声相关联的数据。而这,正如中本聪在一封邮件中提过的,实际上解决了拜占庭将军问题。

还有另外一个共识是专门用来处理一种特殊情况的——两声连续的滴答声与互相冲突的区块相关联。这种冲突只有等待下一声滴答的出现才能解决。当下一个与滴答声相关联的区块出现时,它会接在前面冲突的两个区块中的一个后面。而这就会使得另一个区块变成“孤块”。一条链到底会如何发展,是一个概率问题,但或多或少也能跟工作量证明时钟有关。

大概就是这么回事了

以上就是工作量证明对区块链的作用。矿工们并不是通过买什么“彩票”来赢取打包一个区块的权利,也不是什么把电能转换成一种有价值的东西,这些说法都走远了。

彩票这一说法无非是用来吸引更多的矿工来参与到挖矿中,它本身并不是区块链运行的机制。有人也许会说区块的哈希值形成了链条,不过这也跟工作量证明没什么关系,它只是用密码学来强化对区块顺序的记录而已。哈希链条还确保之前的滴答声越来越不可改变,变得越来越安全。

工作量证明机制也增强了区块的不可改变性。这也顺带使得隔离见证变得可行,不过其实通过保留签名也可以实现。所以这一作用只是次要的。

总结

比特币区块链的工作量证明实际上就是一个分布式的、去中心化的时钟。

如果你理解了这个解释,那么你应该对工作量证明和权益证明间的区别有了更清楚的认知。显然,两者本质上是不同的:权益证明是权力,而工作量证明是一个时钟。

在讨论区块链时,我们说“工作量证明”其实不太贴切。这个词是从Hashcash项目中传下来的;在该项目中,它是用来证明工作量的。而在区块链上它则主要用于获得可校验的时间顺序。当一个人看到一个哈希值满足难度条件,他/她知道产生这个哈希值一定花去了一些时间。而这段时间就是由“工作量”造成的。不过这个哈希值之所以有意义,就是因为它证明了它的产生是经过了一段时间的。

工作量证明主要跟时间有关,而不是跟工作量有关;这个事实也指出了,可能还有其他的统计问题会更消耗时间但只需要更少的能量。这一事实也意味着比特币的hashrate实际上是过多的。我们前面提到的比特币时钟其实只需要一部分的hashrate也能运行自如。不过奖励机制的存在刺激了能量的消耗。

找出一个只需更少工作量又能享受更快滴答频率的方法十分困难,如果你找到了,请一定告知我!

此外,我想特别感谢UChicagoStatistics的SashaTrubetskoy对本文的修订和建议。

原文链接:

https://grisha.org/blog/2018/01/23/explaining-proof-of-work/

作者:?GregoryTrubetskoy

翻译&校对?:PRIMAX?&阿剑

标签:区块链ASH比特币SHA区块链是什么意思ecash币阿毛里比特币最新价格行情走势图ESHARE

POL币最新价格热门资讯
币圈启明灯:比特币震荡整理 以太坊韧性十足再次上攻

美联储布拉德表示,预计第三季度经济将出现大幅反弹。他还表示,将通胀预期保持在2%至关重要,并预计利率在未来很长一段时间内都将保持低位。8月4日消息,俄罗斯联邦已禁止匿名存款到在线钱包中,此举将影响全国1000万用户.

1900/1/1 0:00:00
2020下半年最值得关注的平台币:绝对通缩HT

黄金和比特币这类总量有限,并且资源稀缺的资产具有有很好的投资价值。从长期投资的价值判断来说,总量通缩并且有强价值支撑的资产,或者总量恒定但具有强价值注入的资产,其长期价值都值得看好.

1900/1/1 0:00:00
研报:2020上半年数字资产交易所合规性研究报告

概要 2020?年以来,在全球新冠肺炎疫情的影响下,全球经济开启了数字化转型的步伐。互联网科技巨头Facebook牵头发起的Libra项目试图做新一代的全球数字货币,而全球各国央行则纷纷推出国家层面的数字货币项目,包括,中国人民银行发.

1900/1/1 0:00:00
解密复杂的OK高层双边架构 职业经理人管理趋于稳定

OKCoin是中国最早的加密货币交易所之一,也与币安、火币统称为三大。OK在中文区的曝光量也相对更高,但由于严密的对外保密制度、复杂的组织体系、以及高管频繁的变动,OK的高层组织架构最难以归纳.

1900/1/1 0:00:00
谈币今生:BTC断崖下跌后 震荡区间横盘后市是崩盘还是卷土重来

让需求简单一点,心灵就会更轻松一点;让外表简单一点,本色就会更接近一点;让沟通简单一点,情感就会更融洽一点,让过程简单一点,内涵就会更丰富一点;让效率更高一点,成果就会更丰硕一点.

1900/1/1 0:00:00
SJC(垒三金)全球首发上线Hetbi交易所

尊敬的Hetbi交易所用户:新加坡时间2020年8月7日15:00,SJC将正式首发上线Hetbi交易所USDP分区,同步开通交易对,并于8月8日下午15:00开启币对撮合交易.

1900/1/1 0:00:00