纯干货|深度解析以太坊(5):挖矿与工作量证明

挖矿:工作量证明

“ 区块 ”部分简要介绍了块困难的概念。赋予难度意义的算法被称为工作量证明(PoW)。

以太坊的工作证明算法被称为“ Ethash ”(以前称为Dagger-Hashimoto)。

该算法被正式定义为:

其中m是mixHash,n是hash,Hn是新块的头(不包括nonce和mixHash分量),Hn是块头的hash,d是DAG,它是大数据集。

在“ 区块 ”部分,我们讨论了块头中存在的各种项目。其中两个组件被称为mixHash和nonce。你可能会记得:

  • mixHash是 一个hash,当与nonce相结合时,证明这个块已经执行了足够的计算;

  • nonce是一个hash,当与mixHash结合使用时,证明这个块已经执行了足够的计算;

  • PoW功能用于评估这两个项目。

    如何使用PoW函数计算mixHash和nonce是相当复杂的,它是大概这样工作的:

    会为每个区块计算一个”种子”。每个“时期”的种子都不一样,每个时期是30,000个区块长度。对于第一时期,种子就是32位0的hash值。对于后续的每个时期,种子就是前一个种子hash值的hash值。使用这个种子,节点可以计算一个伪随机“缓存”。

    这个缓存是非常有用的,因为它可以使“轻节点”的概念变成现实,轻节点概念在这篇文章的前面讨论过。轻节点的目的就是让某个节点有能力高效的校验交易而用不着存储整个区块链的数据集。一个轻节点可以仅基于缓存来校验一个交易的有效性,因为缓存可以重新生成需要校验的特定块。

    使用缓存,节点可以生成DAG“数据集”,其中数据集中的每个项目都依赖于缓存中的少量伪随机选择的项目。为了成为矿工,你必须生成这个完整的数据集; 所有完整的客户和矿工都存储这个数据集,数据集随时间线性增长。

    然后,矿工们可以对数据集进行随机切片,并通过一个数学函数将它们组合成一个“ mixHash”。“一个矿工将重复产生一个混合hash,直到输出低于期望的目标hash。当输出满足这个要求时,这个hash被认为是有效的,并且该数据块可以被添加到链中。


    挖矿:安全机制

    总体而言,PoW的目的是以密码安全的方式证明已经花费了特定数量的计算来产生一些输出(即nonce)。这是因为除了列举所有可能性之外没有更好的方法来找到低于所需阈值的nonce。重复应用hash函数的输出具有均匀的分布,所以我们可以确定,平均来说,找到这样一个hash所需的时间取决于难度阈值。难度越高,解决现时的时间就越长。这样,PoW算法赋予难度概念的意义,用于强化区块链安全。

    区块链安全意味着什么?很简单:我们要创建一个每个人信任的区块链。如果存在不止一个链,用户就会失去信任,因为他们无法合理地确定哪个链是“有效的”链。为了让一组用户接受存储在区块链中的基础状态,我们需要一群人相信的单个规范区块链。

    这正是PoW算法的作用:它确保特定的区块链将在未来保持规范,使得攻击者难以创建覆盖历史的某个部分的新块(例如通过擦除交易或创建假交易)或保持一个分叉。为了首先验证自己的区块,攻击者需要始终如一地解决nonce问题,比网络中的其他任何人都快,以至于网络认为他们的链是最重的链(基于我们之前提到的GHOST协议的原理)。除非攻击者拥有超过一半的网络挖矿能力,这种情况被称为大多数51%的攻击,这是不可能的。

    挖矿:财富分配机制

    除了提供安全的区块链之外,PoW也是一种将财富分配给那些为了提供这种安全而花费自己算力的人的方式。回想一下,矿工获得挖矿块的奖励,包括:

  • “获胜”区块的5枚以上的静态区块奖励(即将变成3个ether)

  • 区块内的交易消耗的Gas成本

  • 包括ommers作为区块的一部分的额外奖励

  • 为确保长期使用PoW共识的安全和财富分配机制,Ethereum努力灌输这两个属性:

  • 让尽可能多的人访问。换句话说,人们不需要专门的或不常用的硬件来运行算法。这样做的目的是使财富分配模型尽可能开放,以便任何人都可以提供任何数量的计算能力来换取以太网。

  • 减少任何单个节点(或小集合)造成不成比例的利润的可能性。任何可能产生不成比例的利润的节点意味着该节点对于确定规范区块链具有很大的影响。这很麻烦,因为它降低了网络的安全性。

  • 在区块链网络中,与上述两个属性相关的一个问题是PoW算法是SHA256hash函数。这种类型的功能的弱点是可以使用专用硬件(也称为ASICs)更有效地解决这个问题。

    为了缓解这个问题,以太坊选择让PoW算法(Ethhash) 提高内存级别难度。这意味着算法的设计使得计算nonce需要大量的内存和带宽。

    较大的内存需求使得计算机难以同时使用内存来同时发现多个临时数据,高带宽需求使得即使是一台超高速计算机也难以同时发现多个临时数据。这降低了集中化的风险,并为正在进行验证的节点创造了更加公平的竞争环境。


    有一点需要注意的是,以太坊正在从一个PoW共识机制转变为一种被称为“证明权益”的东西。

    布尼区块链

    拥抱区块链未来

    打造最有价值的区块链学习&交流社群

    ©著作权归作者所有,转载或内容合作请联系作者
    • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
      沈念sama阅读 202,980评论 5 476
    • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
      沈念sama阅读 85,178评论 2 380
    • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
      开封第一讲书人阅读 149,868评论 0 336
    • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
      开封第一讲书人阅读 54,498评论 1 273
    • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
      茶点故事阅读 63,492评论 5 364
    • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
      开封第一讲书人阅读 48,521评论 1 281
    • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
      沈念sama阅读 37,910评论 3 395
    • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
      开封第一讲书人阅读 36,569评论 0 256
    • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
      沈念sama阅读 40,793评论 1 296
    • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
      茶点故事阅读 35,559评论 2 319
    • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
      茶点故事阅读 37,639评论 1 329
    • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
      沈念sama阅读 33,342评论 4 318
    • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
      茶点故事阅读 38,931评论 3 307
    • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
      开封第一讲书人阅读 29,904评论 0 19
    • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
      开封第一讲书人阅读 31,144评论 1 259
    • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
      沈念sama阅读 42,833评论 2 349
    • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
      茶点故事阅读 42,350评论 2 342

    推荐阅读更多精彩内容