设计目标
抵抗矿机(ASIC Resistance)。使用专门优化的芯片产生的挖矿优势应该尽可能的小,小到即使使用普通CPU挖矿也能产生收益。
轻客户端可验证。轻客户端应该有能力验证每一个块的真实性。目标是在普通桌面电脑上运行用C实现的验证算法,验证时间小于0.01秒,用Python或者Javascript小于0.1秒,使用内存不超过1MB。
挖矿算法
以太坊(ether)的挖矿算法叫做Ethash, 又名Dashimoto (Dagger-Hashimoto),是Hashimoto算法结合Dagger之后产成的一个变种。它的特点是挖矿的效率基本与CPU无关,却和内存大小和内存带宽正相关。对内存大小和带宽的要求意味着那些通过共享内存的方式大规模部署的矿机芯片并不能在挖矿效率上有线性或者超线性(super-linear)的增长。
接下来让我们看看Dashimoto的基本流程:
对于每一个块(block),先计算出一个种子(seed)。种子的计算只依赖于当前块的信息,例如block number以及block headers。
使用种子产生32MB的伪随机数据集,称为cache。轻客户端需要保存cache。
基于cache再生成一个1GB大小的数据集,称为the DAG。这个数据集中的每一个元素都只依赖cache中的某几个元素,换句话说,只要有cache就可以快速计算出DAG中指定位置的元素。完整的可挖矿的客户端需要保存DAG。
挖矿可以概括为从DAG中随机选择元素然后对其进行hash的过程。验证的过程也是一样,只不过不是从DAG里面选择元素,而是基于cache计算得到指定位置的元素,然后验证这个元素集合的hash结果小于某个值。由于cache很小, 而且指定位置的DAG元素很容易计算,因此验证过程只需要普通CPU和普通内存即可完成。
cache和DAG每一个周期更新一次,一个周期的长度是1000个块。也就是说这1000个块产生的cache和DAG是完全一样的,因此挖矿的主要工作在于从DAG中读取数据,而不是更新cache和DAG。DAG的大小随时间的推移线性增长,从1GB开始,每年增加大约7GB – 因此到2015年12月大约是8GB, 到2016年12月大约15GB。
注:以上步骤中的数字已经随着开发的推进有了调整,准确值请参考源代码。
挖矿软件
我们预计在上线之时将有至少两种挖矿方式:
使用Mist客户端(官方客户端实现,基于Go语言)进行CPU挖矿。
通过以太坊守护进程(eth daemon)和sgminer的组合进行GPU挖矿。守护进程和sgminer之前的数据通讯可以通过JSON-RPC API完成。目前有两个API和挖矿有关:eth_getWork以及eth_submitWork。
警惕骗局
由于比特币、莱特币等数字资产的暴涨,不少诈骗分子把“数字货币”的概念与传销、庞氏骗局等古老骗术结合起来,打造出专门坑人的“传销式数字货币”。为此,央行货币金银局在官网发布《关于冒用人民银行名义发行或推广数字货币的风险提示》。
央行货币金银局透露,近期,个别企业冒用央行名义,将相关数字产品冠以“中国人民银行授权发行”,或是谎称央行发行数字货币推广团队,企图欺骗公众,借机牟取暴利。央行货币金银局相关负责人表示,“我行尚未发行法定数字货币,也未授权任何机构和企业发行法定数字货币,无推广团队。目前市场上所谓‘数字货币’均非法定数字货币。某些机构和企业推出的所谓‘数字货币’以及所谓推广央行发行数字货币的行为可能涉及传销和诈骗”。
近年来,由于比特币、莱特币等数字资产接连暴涨,不少诈骗分子打着“数字货币”幌子,坑骗投资人。北京商报记者了解到,此前,珍宝币、百川币、SMI、MBI、马克币、暗黑币、MMM、美国富达复利理财、克拉币、石油币、华强币、CB亚投行香港集团、币盛、世通元、U币、聚宝、21世纪福克斯、万喜理财等,都是披着数字货币的外衣进行非法传销的项目。去年8月,湖南省常德市公安局破获“万福币”特大网络传销案,抓获这一传销组织在国内的代理人和“网头”60多名。9人因涉嫌组织领导传销活动罪被检察机关批准逮捕,数亿元银行资金被警方冻结。
黄金钱包首席研究员肖磊表示,近期以来,由于比特币、以太坊、莱特币等价格出现了升温,关注度比较高,很多诈骗分子也开始盯上了“数字货币”这个工具,他也表示,凡是以中国人民币银行授权发行“数字货币”这种宣传的,可以肯定就是骗子。投资者需要非常警惕,因为目前看,“数字货币”还处在发展阶段,而且不是法定货币,没有任何官方机构为这类“数字货币”做背书,价格是由市场决定的,一天之内都有可能暴跌80%,风险巨大。
责任编辑:forex
注册有任何问题请添加 微信:MVIP619 拉你进入群
打开微信扫一扫
添加客服
进入交流群
发表评论