热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

(张翰)PoW浴火重生,初链抗ASIC的挖矿原理

2018-09-07火星公开课第167期|初链张翰:PoW浴火重生?从根本上抗ASIC做起|文章来源:火星财经(微信:hxcj24h)PoW真的应该被历史淘汰了么?要点速览:在不同

2018-09-07 火星公开课 第167期 | 初链张翰:PoW浴火重生?从根本上抗ASIC做起 | 文章来源:火星财经(微信:hxcj24h)

PoW真的应该被历史淘汰了么?

要点速览:

  1. 在不同的一代币中出现了诸多PoW算法,其中一个核心考量就是如何抗ASIC。
  2. 目前抗ASIC的方式一般都是给ASIC增加内存压力或传输压力,并没有从根本上对它压制。
  3. 在第三代公链中,除了初链之外,几乎没有其它项目仍然采用PoW。
  4. 从根本上对抗ASIC的方法其实很简单,就是想办法把矿工拉回冯诺依曼瓶颈之内。
  5. 根本上抗ASIC的算法需满足三点:令S为一个算法集合,欲实现S中的所有算法,必须经过冯诺依曼瓶颈;每T个区块切换一次算法,切换方式必须满足可验证且不可预测;算法切换没有人为干预。

9月7日20:00,TrueChain初链基金会理事张翰做客「火星财经创始学习群」,从POW的困局、ASIC的前世今生、根本上抗ASIC的理论基础三个方面,分享了“PoW 的救赎:根本上抗ASIC的挖矿原理”。

他表示,ASIC的出现使得算力空前集中在少数矿池手里,降低了网络去中心化的程度,但目前抗ASIC的方式只是增加了设计ASIC的难度,并没从根本上抗ASIC。

如何才能从根本上抗ASIC呢?他认为需要想办法把矿工拉回冯诺依曼瓶颈之内,将改算法的机制设计在挖矿算法之内,让所设计的算法足够丰富,使得运算通用性再次变的重要。

以下为张翰分享原文,由火星财经(微信:hxcj24h)整理:

一、PoW的困局

2008年,中本聪创造了比特币,宗旨是创造任何人都能参与的去中心化金融体系

由于ASIC的出现,使得算力空前集中在少数矿池手里,从而降低了网络去中心化的程度。此后,在不同的一代币中,出现了诸多PoW 算法,其中一个核心考量就是如何抗ASIC。不过这些抗ASIC的方式,通常只是增加了设计ASIC的难度,并没有实现从根本上抗ASIC。因此,这些算法在足够经济利益出现后,被ASIC厂商一一击溃。

我这里列了个清单:

《(张翰)PoW浴火重生,初链抗ASIC的挖矿原理》 抗ASIC清单

因此,项目方与ASIC厂商的这轮对抗,战术上以完败的结果而告终。

但是战略上却出现了新的变化。以 Casper、EOS、ADA、NEO为首的币种,抛弃PoW转而使用PoS或DPoS。这个变化对PoW来说是灭顶之灾,因为在第三代公链里面,除了初链之外,几乎没有其它项目仍然采用PoW。

那么PoW就真的应该被历史淘汰了么?

显然不是的,但PoW必须先解决一系列自身的问题,才有可能浴火重生。这里,我们重点介绍关于挖矿算法层面上的突破,以及给出一套根本上抗ASIC的算法基础

二、ASIC的前世今生

下面我们讲一下ASIC为什么那么强大。

其实想理解这个问题,我们应该问CPU为什么那么弱?

这个道理其实很简单,CPU的设计为了通用计算的需求,采取了冯诺依曼架构。

冯诺依曼架构分三个部分:内存、计算单元与控制单元

《(张翰)PoW浴火重生,初链抗ASIC的挖矿原理》 冯诺依曼瓶颈

数据和程序通常存在内存中,执行计算是需要传送到计算单元。这个有限的传输带宽被称之为冯诺依曼瓶颈

那么问题来了,如果我们只需要做单一计算呢?

比如说,比特币挖矿的 Sha-256d。它的inner loop结构很简单,简单到可以直接用硬件方法,把它刻到计算单元里去。因为是直接刻的,所以这个芯片除了算Sha-256,什么也干不了,这就是我们的 ASIC(Application specific integrated circuit)

《(张翰)PoW浴火重生,初链抗ASIC的挖矿原理》 ASIC的内部架构

如上图所示,ASIC的内部大概这样。

目前抗ASIC的方式,一般都是给ASIC增加内存压力或传输压力,例如,Ethash需要矿工读大表,Equihash也类似。但这只是给ASIC增加难度而已,并没有从根本上对它压制。

例如,最近比特大陆出的Antminer E3,它的芯片大概如下图:

《(张翰)PoW浴火重生,初链抗ASIC的挖矿原理》 比特大陆出的Antminer E3

在计算单元周围布一圈ddr颗粒,主要的计算部分还是在计算单元内部完成的。

三、根本上抗ASIC的理论基础

最后讲一下如何设计出从根本上对抗ASIC的挖矿算法。

在第二部分,我讲了ASIC挖比特币快,是因为比特币挖矿算法单一,ASIC 可以拜托冯诺依曼架构,从而跳过冯诺依曼瓶颈。那么,从根本上对抗ASIC的方法其实很简单,就是我们要想办法把矿工拉回冯诺依曼瓶颈之内。

怎么拉呢?

大致上说,我们所设计的算法需要有足够丰富,使得运算通用性再次变的重要。

我们可以借鉴门罗的经验——周期性改算法。但门罗自己也是有问题的,社区投票hard fork太没技术含量,但更大的问题是没有任何人知道项目方(目前基本上可以左右投票结果)是否事先准备了新算法的ASIC

因此,我们必须将改算法的机制设计在挖矿算法之内。

根本上抗ASIC的算法,需要满足以下几点:

  1. 令S为一个算法集合,欲实现S中的所有算法,必须经过冯诺依曼瓶颈。
  2. 每T个区块切换一次算法,切换方式必须满足可验证且不可预测。
  3. 算法切换没有人为干预。

大致分析一下,我们需要矿工使用通用计算,意味着他必须掌握一个大集合的算法,但因为每次只能用一个算法,所以必须加入切换算法的机制,才能保证通用性得到奖励。

切换算法时,我们又必须保证没有人可以事先准备下一周期的 ASIC,因此我们需要可验证且不可预测性。有没有实现的可能?

Truehash的实现方式是基于对置换群的表示论,以及RSK correspondence。置换群非常大,数学界以前研究的也比较透,比较容易产生大量的不同算法。

令G为一个群,对每个群元素g,令rho_V(G)为G在向量空间V上的表示。

在普通挖矿算法中,将 blockheader、nonce等信息经过padding等运算之后,会形成一个向量v(nonce)。通过穷举不同nonce值,来寻找 hash(v(nonce))小于难度系数的结果。

Truehash的改动部分是,将hash(v(nonce))改为hash(rho(g)*v(nonce))。

只要G足够复杂,这个算法集合就不可能全部写死在计算单元内**。由于算法会随机切换,冯诺依曼瓶颈将不可避免。

Truehash的算法切换原理是,每12000个PoW区块换一次群元素,12000 个PoW区块大概需要83天的时间生成。

新的群元素信息由上个周期的第1–8192个区块所组成,组成方式通过分析第11001-11256个区块的哈希值所产生。由于区块的哈希值不可提前预知,在第11256个区块出现之前,任何人都不可能知道关于新算法的任何信息。

从上周期的第11257个区块到该算法作废,总共只有88天的时间,这么短的时间内生产ASIC没有任何意义。

问答环节

Q1: True坚持使用POW,而且优化为fPOW,背后的思考是?fPOW如何优化POW?

A1: 回到PoW 自身的问题上,fPoW 是为了解决挖矿的公平性。大致上说,算力矿池除了自身算力强悍之外,还可能用 ASIC Boost、Selfish mining、Eclipse attack等种种手段,使得 “出块率>算力占例” 。经济上增加了他们的垄断能力,网络安全上他们并不需要 51%的算力,就可以实施51%攻击

这里面有个很好的案例是 XVG,大家可以查下资料,看看 XVG 是怎么被掌握10%的算力矿池实施51%攻击的

Q2:冯诺依曼瓶颈的确是制衡ASIC的好方式,但速度、效率是否不可避免的下降?这套制衡策略是否让采取POW的公链回到旧有的问题上去?**

A2: 全网算力1Th/s还是1Ph/s对网络本身安全影响不大,所以拼算力这个问题,更多是节点与节点之间的竞赛。如果全网hash rate降了1000 倍,但每个节点也都等比下降1000倍,且任意节点很难恢复原来算力,这个不会有任何影响。

Q3:解决了PoW的公平性,那么怎么看待PoW的效率,如何看待PoW与PoS?

A3: PoW的效率其实不比PoS 低,这里面可能有个误区:大家认为PoW 要经过很复杂的计算才能出块,PoS不用,所以 PoS会更快。事实上区块链的真正瓶颈是网速

Q4: 能耗环境效率呢?

A4: 如果PoW圈资源,圈来的全是哈希计算器,那这确实是极大的浪费。因为1Ph/s和1Th/s对网络本身根本没有任何区别。所以混合共识的一个好处是,PoW将只是节点的一个入口,节点通过PoW来竞争当选PBFT 委员

PBFT的算力是真实用来处理交易的,所以说只要PBFT部分占比越来越高(例如,通过 Sharding 来实现多委员会),那么能源效率也会越来越高。

Q5: ASIC的出现未必是坏事?抗ASIC的过程中公链在不断迭代自己的算法变换方式,ASIC芯片自身也不断迭代、优化,降低能耗,便携,进入电脑甚至手机,逐渐靠近真正实现算力去中心化?张老师怎么看?

A5: ASIC和公链项目方之间的对抗,确实使得项目方搞出了很多很复杂的哈希算法,同时ASIC厂商也见招拆招,搞出了很多很牛的矿机芯片。但这跟PoW圈哈希计算器那个问题一样,似乎项目方和厂商圈来的资源都没什么实际意义。同时还把 PoW真真地伤到了,项目方现在都搞 PoS了,ASIC 厂商再牛又有什么用

关于挖矿进入电脑、手机这个问题,我的观点是真不推荐。别的不说,CPU占用直接到100%,电脑、手机立刻卡死、变热、变慢,至少用台式机挖矿吧。

嘉宾简介

嘉宾简介——张翰 / TrueChain初链基金会理事

初链研究负责人,澳大利亚新南威尔士大学数学系博士,曾任麦格理银行量化分析师,澳大利亚奥林匹克数学国家队教练,中国科学院高性能计算研究团队研究员。曾部分证明 Gangolli 猜想,获得过两项美国先行专利。

对话发起人——岳汉超 / DoraHacks合伙人

全球最大Hacker组织DoraHacks合伙人,对外合作负责人;作为发起人举办过数十场大型黑客马拉松,对接全球数百个顶尖前沿科技组织+社区;清华大学经济学学士。

文章声明:本文根据「火星财经创始学习群」嘉宾分享内容整理,不代表火星财经立场,转载须在文章标题后注明“文章来源:火星财经(微信:hxcj24h)”。


推荐阅读
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • phpcomposer 那个中文镜像是不是凉了 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • 模块化区块链生态系统的优势概述及其应用案例
    本文介绍了相较于单体区块链,模块化区块链生态系统的优势,并以Celestia、Dymension和Fuel等模块化区块链项目为例,探讨了它们解决可扩展性和部署问题的方案。模块化区块链架构提高了区块链的可扩展性和吞吐量,并提供了跨链互操作性和主权可扩展性。开发人员可以根据需要选择执行环境,并获得奖学金支持。该文对模块化区块链的应用案例进行了介绍,展示了其在区块链领域的潜力和前景。 ... [详细]
  • 本文整理了Java中java.lang.NoSuchMethodError.getMessage()方法的一些代码示例,展示了NoSuchMethodErr ... [详细]
  • 初探PLC 的ST 语言转换成C++ 的方法
    自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • 安卓及谷歌官网不容易上,在此整理好下载地址,这样就可以直接用迅雷下载了。Eclipse最新Mars版Eclipse(暂时还没被墙)Mac版:http:www.eclipse.org ... [详细]
  • 与.Net大师Jeffrey Richter面对面交流——TUP对话大师系列活动回顾(多图配详细文字)...
    与.Net大师JeffreyRichter面对面交流——TUP对话大师系列活动回顾(多图配文字)上周末很有幸参加了CSDN举行的TUP活动, ... [详细]
  • 刚开始crousera上学习<algorithmspart1>但对JAVA实在是不熟。******************************************** ... [详细]
  • 前面刚有AWS开战MongoDB,双方“隔空互呛”,这厢又曝出2亿+简历信息泄露——MongoDB的这场开年似乎“充实”得过分了些。长期以来,作为“最受欢迎的NoSQL数据库”,M ... [详细]
  • 出现_史上最大漏洞出现,你的安卓iPhone电脑都不安全了!
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了史上最大漏洞出现,你的安卓iPhone电脑都不安全了!相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
让自己更加成熟一点
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有