为什么ASIC让大家又爱又恨,这要从比特币挖矿设备的几次革新和区块链的初衷谈起,记账设备的发展经历了三代,CPU、GPU、FPGA和ASIC。在介绍CryptoHello算法之前,我们先简要熟悉一下各代装备的一些基本情况,便于大家对整个挖矿生态圈发展演变有一个更加清晰地认识。
挖矿装备发展简介
第一代装备,CPU,2009年中本聪发布的比特币系统采用普通台式机的CPU进行记账。中本聪设计比特币挖矿的初衷是人人都可以参与记账,把记账门槛设得极低,算力去中心化的设想也是由那时开始的,我们对比一下比特币的去中心化思想与记账的实施过程是完全统一的。但是,随着比特币的影响力不断提升,价格不断上涨,市场开始思考如何能在这场竞争记账的过程中得到更多的利益,于是记账装备在悄然升级。
第二代装备GPU, GPU对很多人来说并不陌生,就是电脑必备的显卡,在巨大需求的牵引下,2011开始出现并取代CPU进行挖矿。与CPU相比,GPU速度提高很多。发展到GPU挖矿阶段,比特币已经慢慢显现出不对等的迹象,随着GPU需求的不断增加,GPU的价格也水涨船高,与CPU时代的公平性相比,门槛已经提高了太多。
第三代装备FPGA和ASIC,FPGA即现场可编程门阵列,它的优势在于可编程性,为降低设计成本提供了可行方案。相比电脑CPU、GPU,FPGA挖矿的时代特别短暂,仅存大概半年时间。因为它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,它可以看成ASIC芯片测试方案。与同一时期的GPU相比,FPGA的性能价格差不多,但功耗比较低是它的一个优点。
在2012年,FPGA流行了半年左右,下半年基于FPGA的专用ASIC芯片开始试制,如南瓜张,深圳烤猫等。ASIC专用集成电路,执行速度较FPGA快,而且是量身定制,可以省去FPGA多余的逻辑实现,所以成本较FPGA低。FPGA和ASIC两种挖矿设备的实现形式有很多相似的地方,FPGA更通用,而ASIC更体现专门定制。下图是南瓜张110nm工艺的第一代阿瓦隆芯片。
业内反ASIC化的一些探索
可以看到,随着制作工艺的不断提升,比特币挖矿已经逐步进入恐怖的军备竞赛,挖矿变得越来越专业,大众已经很难参与进来。这一现状的导致挖矿行业日趋中心化,与中本聪最开始设计比特币的理念相违背了。
当然在矿业中心化的过程中,一些倡导全民参与的团队也为阻止情况的恶化做出自己的努力与探索。2013年上半年,莱特币凭借抵抗专业ASIC矿机的scrypt算法引爆了市场。但事实上,scrypt算法(相似的还如Memorycoin ,Litecoin,Yacoin)用大内存需求来抵抗ASIC化的效果没有达到市场的预期,随着 LTC单价的上涨,年底LTC的ASIC芯片便被设计出来。再如达世币的X11算法等等,串联算法设计思路企图阻止被ASIC化是无力的,只要币值达到支持矿机硬件的投入,在技术上可行的方案就会被提出并付诸生产。
CryptoHello算法介绍
倡导去中心的区块链是否真的要以另一种中心化的方式出现?正在我们感到迷茫的时候,有一个算法进入了我们的视野,那就是今天的主角CryptoHello算法,理论上讲,制造出这种算法的ASIC,成本投入非常大,它的出现给被中心化阴霾所笼罩的矿业带来了一线生机。
CryptoHello算法借鉴了存储器难(Memory-Hard)工作量证明算法的设计思路,结合CPU、GPU、ASIC等体系结构的特点,并针对CPU体系结构进行优化。该方法分为三个阶段:使用伪随机序列初始化工作存储器、修改工作存储器和根据工作存储器内容产生最后结果。如下图所示:
1、初始化工作存储器
使用SHA3函数对输入进行计算,初始化线性同余伪随机数发生器种子。以K块(每块32字节)为单位连续填充工作存储器,其中前K-1块由伪随机数发生器产生,最后1块是根据前面填充的内容随机选择散列函数族(16种不同散列函数)中的一种填充,并更新随机数发生器种子。如下图所示:
2、修改存储器
首先基于工作存储器的最后一块内容使用SHA3函数产生随机数发生器种子,并初始化长度为L字节的状态变量。随后进行C次主循环,在每次主循环中,将进行64L次子循环。在子循环中,都将由随机数发生器产生一对地址,对工作存储器中这两个地址的字节数据和状态向量中的字节数据,使用异或方法相互融合和交换,以更新存储器的内容和状态向量内容。在子循环结束后,将使用散列函数族的函数更新状态向量和重新初始化随机数发生器种子。按照现有的参数设计,将修改工作存储器四分之一的内容。
3、结果产生
该步的主要目的是快速地基于存储器M的内容产生最后结果,将连续异或随机存储器中d个块的内容(d是依赖于上次单向函数结果),使用散列函数族更新状态向量,并重新计算d,直至工作存储器的最后一块。最后使用SHA3函数形成最终结果。第二、三步如下图:
CryptoHello算法的设计对GPU和ASIC的“不友好”十分明显,首先,工作存储器容量选择面向CPU的Cache容量优化,而对于GPU或者ASIC则难以满足同时执行大量工作量证明算法的存储器容量需求;其次,该算法通过两种方式限制并行效率,其一是使用16种散列函数构成的散列函数族,并从中随机选择执行,其二是在修改工作存储器阶段使用严格串行的执行序列,而且以字节为单位访问;最后,整个方案控制逻辑复杂,所需存储器容量大,内存访问地址不规则,难以使用传统堆叠大量加速部件模块的方法实现ASIC。
CryptoHello算法是由Ulord(优壹)团队在Ulord点对点价值传递公链中首先采用的,目的是通过算法来限制矿业的中心化,体现了研发团队开放自由、倡导公平、尊重创造的价值理念。虽然CryptoHello算法在限制算法ASIC方面“煞费苦心”,但硬件的发展和市场的需求息息相关,随着Ulord市值的不断上涨,CryptoHello算法能否经得住考验,让我们拭目以待!
2018年5月22日,以“科技匠心、U你共创”为主题的Ulord公链发布会在北京钓鱼台国宾馆隆重举行,国务院发展研究中心原副主任侯云春、文化部原副部长潘震宙、中国工程院院士刘韵洁、国防科大计算机学院原政委刘乔一、国家级长沙经济技术开发区党工委委员常利民、了得资本创始人易理华、韩国综合娱乐传媒公司THE E&M CEO南锝铉等学者、投资人、合作伙伴和嘉宾出席并发表演讲。
Ulord CEO谭林博士表示,Ulord公链是一个开放共享、安全可靠的内容领域底层操作系统,是一套区块链底层架构和数字资源分发协议。基于Ulord,第三方开发者可以创建各类区块链应用,比如社交工具、视频直播、原创内容平台乃至电商服务。从而共同构建区块链技术与应用的完整生态,真正实现区块链技术的价值共享。
|