使用“扫一扫”即可将网页分享至朋友圈。
BTC的挖矿算法究竟是如何运算的?
比特币挖矿是比特币系统安全的一个关键部分。其原理是,比特币矿工将一堆比特币交易归为一个区块,然后反复执行一种叫做Hash的加密操作几十亿次,直到有人找到一个特殊的目标Hash值。至此,该区块即被开采并成为比特币区块链的一部分。Hash 任务本身并不能完成任何有价值的任务,但由于通过它找到一个成功的目标值非常困难,所以它确保了没有人拥有接管比特币系统的能力和资源。
Hash 函数是指输入一个数据区块并创建一个较小的、不可预测的输出。Hash 函数的设计使得没有 "捷径 "来获得所需的输出结果--你只能不断地对区块进行Hash操作,直到你通过蛮力找到有效的一个结果为止。对于比特币来说,Hash 函数是一个叫做SHA-256的函数。为了提供更高的安全性,比特币将连续重复SHA-256函数两次,这个过程被称为双SHA-256。
在比特币中,一个成功的Hash值是一个以足够多的零开头的数值。就像很少能找到一个以多个0结尾的电话号码或车牌一样,很少能找到一个以多个0开头的Hash。但比特币的难度是呈指数倍增加的。目前,一个成功的Hash必须从大约17个0开始。换句话说,找到一个成功的Hash比在地球上所有沙粒中找到某一粒沙子还要难。
下图显示了比特币区块链中的一个区块以及它的Hash值。黄色的字节经过Hash后生成区块Hash值。在这种情况下,生成的Hash值以足够多的0开始,因此此次挖矿成功。然而,Hash很难一次得到的,在这种情况下,矿工会改变nonce值或其他区块内容,然后进行反复尝试。
比特币使用的SHA-256Hash算法
SHA-256的Hash算法采用512位(即64个字节)的输入块,对数据进行加密组合,并产生256位(32个字节)的输出。SHA-256算法由重复64次的相对简单的回合组成。下图显示了一个回合,它需要8个4字节的输入--A到H,然后执行一些操作,并生成A到H的新值。
蓝色方框以非线性的方式将数值混合在一起,因此很难用密码学分析这些值。由于算法使用了几个不同的函数,所以发现攻击就更难了。(如果你能找出一种数学捷径来生成成功的Hash值,你就可以接管比特币挖矿了)。
Ma大多数框看A、B、C的位数,对于每个位置,如果多数位数为0,则输出0,否则输出1。也就是说,对于A、B、C的每个位置,看1位的数量。如果是0或1,输出0,如果是2或3,输出1。
Σ0框将A的位数反转,形成三个反转版本,然后将它们相加模数为2。换句话说,如果1位的数量是奇数,则和为1,否则为0,和中的三个值分别是A向右反转2位、13位和22位。
Ch "选择 "框根据输入E的值选择输出位,如果E的某位为1,则输出位为F的对应位,如果E的某位为0,则输出位为G的对应位,这样,F和G的位就根据E的值进行随机选择。
下一框Σ1对E的位进行反转和,除了移位是6位、11位和25位外,其他与Σ0类似。
红框执行32位加法,生成A和E的新值,输入Wt是基于输入数据,稍加处理。(这是输入块被输入到算法中的地方。)输入Kt是为每一轮定义的常数。
从上图可以看出,一轮中只有A和E是变化的。其他值不变通过,旧的A值变成新的B值,旧的B值变成新的C值,以此类推。虽然SHA-256的每一轮都不会对数据有太大的改变,但64轮之后,输入的数据将完全被扰乱。
这对挖矿的硬件意味着什么?
SHA-256的每一步在数字逻辑中都非常容易实现--简单的布尔运算和32位加法。(如果你学过电子学,你可能已经可以把电路可视化了)。出于这个原因,定制的ASIC芯片可以在硬件中非常高效地实现SHA-256算法,在一个芯片上并行地放上几百轮。
相比之下,Litecoin、Dogecoin和类似的altcoins使用Crypt Hash算法,该算法被有意设计成难以在硬件中实现的形式。它将1024个不同的Hash值存储到内存中,然后以不可预测的方式将它们结合起来,以获得最终结果。因此,与SHA-256 Hash相比,Scrypt需要更多的电路和内存。你可以通过查看挖矿硬件来了解其影响,Scrypt(Litecoin等)的计算速度比SHA-256(比特币)慢数千倍。
SHA-256算法出乎意料的简单,很容易手动完成。(用于签署比特币交易的椭圆曲线算法用手计算会非常痛苦,因为它有很多32字节整数的乘法)。手工做一轮SHA-256花了我16分45秒。按照这个速度,Hash一个完整的比特币区块(128轮)需要1.49天,每天的Hash率为0.67次(虽然我可能会通过练习变得更快)。相比之下,目前的比特币挖矿硬件每秒可以做到几兆次的Hash,比我的手动Hash快了约五千万倍。不用说,手动比特币挖矿根本不实用。
有Reddit读者问到我的能量消耗。其实不需要太多能量消耗,所以假设静止代谢率为1500kcal/天,人工Hash的能耗差不多为10兆焦耳/Hash。一般挖矿硬件的能耗是1000兆焦耳/Hash。所以,我的能源效率低了10¹⁶。接下来的问题是能源成本。一个便宜的食物能量来源是甜甜圈,200千卡的热量是0.23元。这里的电是0.15美元/千瓦时,便宜了6.7倍--比我预期的要接近。因此,我每Hash的能源成本大约是挖矿硬件的67倍。很明显,我不会靠人工挖矿发家致富,我甚至还没有包括我需要的所有纸和铅笔的成本。
作者:Sajjad Hussain
翻译:李翰博
编辑:Olivia
“广东财经网”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服邮箱1098101642@qq.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
- 声音提醒
- 60秒后自动更新
【民政部回应何时恢复婚姻登记】民政部社会事务司二级巡视员杨宗涛表示,婚姻登记场所是人群聚集场所,部分地区暂停婚姻登记工作是对人民群众安全负责。未停止登记的地方推广用电话、网络、qq群预约登记,控制登记人数,分批分段登记,减少人员聚集和在登记机关停留时间。已停止婚姻登记地方将根据当地疫情控制情况逐渐恢复。
15:54欧洲央行副行长金多斯:欧洲央行还没有达到逆转利率。宽松政策的副作用更明显了。
15:54财经网站Forexlive分析师Justin Low评瑞士1月CPI月率:尽管通胀年率保持稳定,但核心通胀率有所下降,这一点令人更加担忧。这只是进一步巩固了瑞士央行维持现有货币政策不变,并可能在未来寻求更多宽松措施的观点。
15:54【武汉两大批发市场商户开业率超过80%】商务部市场建设司司长朱小良10日称,目前武汉生活必需品供应基本正常,除冷鲜肉、鲜叶菜等少数品种存在结构性短缺外,大部分重要生活物资供应充足,未发生明显抢购或脱销断档情况。当地白沙洲和四季美两大批发市场正常营业,商户开业率超过80%,日交易量上升至3000吨以上。(国是直通车)
15:53【日本2019年经常项目顺差增长4.4%】日本财务省10日发布的国际收支初步统计报告显示,主要受外国人入境游消费扩大影响,2019年日本经常项目顺差增长4.4%。报告显示,2019年日本经常项目顺差为20.06万亿日元(1美元约合109.8日元)。其中,商品贸易方面,由于液化天然气价格下跌等因素,进口下降5.6%至75.56万亿日元;由于汽车部件及钢铁等产品出口减少,出口下降6.3%至76.12万亿日元。货物贸易顺差减少53.8%,为5536亿日元。(新华社)
15:53欧元兑美元EUR/USD短线波动不大,现报1.0952。
15:53瑞士1月CPI年率:0.2%,前值:0.2%,预期:0.1%;瑞士1月CPI月率:-0.2%,前值:0%,预期:-0.2%。
15:52英镑兑美元GBP/USD短线走低13点,现报1.2890。
15:52【宁德时代“供电”国产特斯拉 有望拉低售价20%】全国乘联会秘书长崔东树分析认为,“随着特斯拉国产化率提升和产能爬坡,未来特斯拉国产车型的价格下探空间还是很大的。”他预计今年下半年,国产Model 3车型的售价就有望降至25万元,降幅接近20%。(新京报)
15:51【内蒙古:对不裁员或少裁员企业返还上年度50%失业保险费】据内蒙古新型冠状病毒肺炎疫情防控工作指挥部消息,疫情期间,内蒙古对不裁员或少裁员的企业返还上年度实际缴纳失业保险费的50%,对面临暂时性经营困难的中小企业,返还标准提高到上年度6个月企业及其职工缴纳社会保险费的50%。
15:51【商务部:2019年服务进出口总额54152.9亿元 同比增长2.8%】商务部新闻发言人表示,2019年,在服务贸易创新发展试点等政策的激励下,我国服务贸易总体保持平稳向上态势,逆差明显下降,结构显著优化,高质量发展成效初步显现。全年服务进出口总额54152.9亿元(人民币,下同),同比增长2.8%。其中,出口总额19564.0亿元,同比增长8.9%;进口总额34588.9亿元,同比减少0.4%。(第一财经)
15:51【振华股份:疫情导致下游客户开工推迟 产品库存上升】振华化学公告,公司目前生产经营稳定,所有产能均正常开工,原材料采购能基本满足生产需要,由于疫情导致下游客户开工推迟,公司出货量减少,产品库存有所上升。公司将根据客户需求、疫情及市场变化,适度调整生产经营策略,尽可能保持生产经营的稳定。
15:50环旭电子2月10日晚间公告,公司2020年1月合并营业收入为23.27亿元,较去年同期的合并营业收入减少27.83%,较2019年12月合并营业收入环比减少37.23%。
15:49精测电子:与京东方集团签订了多份销售合同,合同累计金额达到6.96亿元。
17:12华夏银行:银保监会同意本公司在全国银行间债券市场发行不超过100亿元人民币的金融债券,募集资金全部用于绿色信贷。
17:03