分享

更多

   

【★比特币挖矿到底在计算什么?☆】★18065

2018-02-19  漫步之心情


首先,”比特币“挖矿是怎挖的

比特币是一中虚拟货币,基于区块链技术。如果我们简单地把区块链的区块比作一个个的账本,那么”挖矿“就是“打包”过去十分钟整个区块链网络的交易,把这些交易写入新的区块,那么就“打包”完成,那就是完成了“挖矿”。完成了挖矿之后就获得了系统分发给你的比特币。这就是比特币“挖矿”比较简化的说法,当中的原理和运行还是相当复杂的。

如何分配“打包权”

比特币的价格超过2w元一个,每一次获得“打包权”,完成工作就会获得12.5个比特币(会随时间递减),获利可谓相当丰厚。

天下熙熙皆为利来天下攘攘皆为利往,只要有利润的地方就有人。网络上矿工众多,那么如何确定应该分配给哪个矿工去做这事呢?

比特币的创始人中本聪采用这种方法:采用一种叫“工作证明(Proof Of Work,简称POW)机制,即工作量的证明。

这种方法通常来说只能从结果证明,因为监测工作过程通常是繁琐与低效的。这是用来确认你做过一定量的工作,但是监测工作的整个过程极为低效,而通过对工作的结果进行认证来证明完成了相应的工作量,则是一种非常高效的方式。

我们可以比喻成,要证明您会开车技术好,企业不可能给您几天时间,跟着您在市区上走。但是,你可以提供驾驶证和之前在公交车公司当公交车司机的工作证明, 来说明您得能力。你要获得这个能力需要付出大量的时间和精力,但是企业验证却非常简单。

比特币这种加密系统所使用工作量证明机制的证明是哈希现金,需要算出对应的哈希函数。哈希现金是一种工作量证明机制,它是亚当·贝克在1997年发明的,主要用于抵抗邮件的拒绝服务攻击及垃圾邮件网关滥用。在比特币之前,哈希现金被用于垃圾邮件的过滤,也被微软用于hotmail等产品中。

对于比特币这种加密系统所使用的哈希函数,它需要具备以下的性质:

1. 免碰撞,即不会出现输入x≠y,但是H(x)=H(y)

2. 隐匿性,也就是说,对于一个给定的输出结果H(x),想要逆推出输入x,在计算上是不可能的。

3. 不存在比穷举更好的方法,可以使哈希结果H(x)落在特定的范围。

比特币在区块链的生成过程中使用了POW机制,一个符合要求的区块哈希函数由N个前导零构成,零的个数取决于网络的难度值。

要得到合理的区块哈希码需要经过大量尝试计算。当某个节点提供出一个合理的区块哈希值,那就是说明该节点确实经过了大量的尝试计算,那么系统就把”打包权“分配给该节点(矿工)

当然这不能得出计算次数的绝对值,因为寻找合理hash是一个概率事件,所以当节点(矿工)拥有占全网n%的算力时,该节点基本上就是有n/100的概率找到区块哈希。那就是意思上说比拼算力。

当能不能记住前面几个0,然后可以使用呢?不能的,因为难度值不一样, 0的数量就不一样。而且要证明的数是一个哈希码,而且需要验证的工作量证明非常庞大,基本上无法造假。

只存在一个方法:穷举!

那么意味着,你不仅要算出你的哈希值,还需要对比对不对,如果不对的话继续算。

所以需要大量的显卡进行大量的并行运算,获取哈希值。让我们来看看,矿场是一个怎么样的存在:

这些矿场都是用很贵的显卡来算,他们的算里是人工的N倍。如果单靠人力,算十年都没有它们工作一小时的工作量大。

所以,题主,真的不要想了


  

彤彤说车 

2017年12月7日 · 头条号图集作者

虚拟货币行情仍然持续暴涨,比如说比特币,日前轻松突破1万美元,昨日更是一度超过1.1万美元,而怀揣“暴富梦”的矿工们也是无所不用其极。


有的四处购买显卡自建矿机,有的上专业矿机,有的借用水电站发电,有的……




有一位美国特斯拉车主为了免费挖矿,竟想出了一个“丧心病狂”的主意:他把矿机搁在特斯拉的后备箱里,然后把特斯拉放在超级充电站,假装充电的样子……


不得不说,能想出这么一招,脑洞实在够大,只是如此做法也太过于损人利己了。




特斯拉在全球有1032座超级充电站,可以为车主免费提供充电服务。“免费充电”成功吸引了币圈脑洞大开的挖币爱好者。




近期,有创意的网友在特斯拉车主的论坛上称,可以在特斯拉电动车的后备箱放矿机,再到超级充电站充电,就能用免费的电力来挖比特币了。




有趣的是,真的有一位特斯拉Model S的用户这么干了。




编辑点评:想利用挖矿实现暴富无可厚非,但这种薅……羊毛的方式着实令人啼笑皆非。


网友辣评:


- 薅资本主义羊毛


- 首先,你要有台特斯拉


- 颇有国人的风范


- 特斯拉:本次更新修正了充电状态能用电的BUG


- 法国有免费租用比特币矿机在家当取暖器的


- 又想骗我买。。。。不起


- 这脑洞开的~这要是买台特斯拉卡车,车上装个小型变电站,到充电站一接,再把电卖出去,特斯拉会不会倒在巨额电费账单面前?


就在比特币矿商认为手机和水力采矿是革命性的时候,特斯拉电动汽车模型的所有者正在使用他的汽车充电桩的免费电源来挖掘比特币。为了做到这一点,店主在车的后备箱里安装了一个比特币挖掘计算机。然后,这个矿机被汽车的充电桩充电,而它挖掘比特币。




这是一种很有趣的加密方式,但对于所有者来说,这可能是非常有利可图的,因为他在挖掘数字货币的过程中几乎为零。他唯一的主要投资是矿机的成本,以及相关的设备和配件。




一些关于创新的比特币挖矿策略的问题


对比特币和其他虚拟货币的创新和创造性方法的探索一直是一个非常有趣的尝试,因为数字货币的价格不断上涨,尤其是比特币。


使用特斯拉模型等电动汽车的超级充电桩可能是个好主意,但可能会出现一些问题。在这些担忧中,有一种可能性,即采矿设备可能产生大量的热量,可能会随着时间的推移损坏汽车的内部部件。在持续使用比特币的情况下,汽车的电池组也很容易被损坏。


尽管特斯拉或其他电动汽车车主们有很大的潜力,可能也有很好的利润,但如果他们想要使用这种方法来开采加密货币,就应该谨慎地做出决定,因为这可能会对他们的汽车性能产生不利影响。


那些想要开采数字货币的人可能也想探索其他采矿方法,比如使用太阳能板等可再生能源。


然而,由于这些新技术仍处于早期发展阶段,因此需要大量的前期投资。如果矿工们决定使用这些方法开采比特币,他们应该准备投入大量资金。


“挖矿”只是戏称,实际上矿工在争取“打包权”。小编从技术的角度说说。


打包权


比特币基于区块链技术。比特币的区块链网络每十分钟就产生一个区块。


这个区块的内容就是在之前的区块的内容之上加上过去十分钟整个区块链网络的全部交易。完成这个工作被称为打包。完成这个工作的人被称为矿工,这个工作的过程被称为了“挖矿”。


那么打包有什么好处呢?


获得打包权并且完成打包之后,这个矿工就会获得12.5个比特币(比特币的数量会慢慢递减的)。按照现在的比特币价格,每十分钟就有人获得12.5w美元的呢,获利丰厚。




“挖矿”的实质就是争夺打包权。


矿工不止一个,到底怎么决定给那个矿工呢?中本聪在设计比特币的区块链网络中,使用一种方法叫工作量证明(Proof Of Work,简称POW)来决定“打包权”。


工作量证明,简单理解就是一份证明,用来确认你做过一定量的工作。监测工作的整个过程通常是极为低效的,而通过对工作的结果进行认证来证明完成了相应的工作量,则是一种非常高效的方式。




举个栗子:




举一个例子,我们去往企业进行应聘的时候,那么招聘方就会要求我们亮出相应的证据:毕业证、学位证、作品等。这些证据都有有一个特点,那就是招聘方很容易验证的,但是你需要付出大量的努力才能获取这种技能和证书。这就是工作量证明的一个简单的例子。


争夺比特币打包权的需要拿出一个哈希码。这个哈希码运算最好的方法就是穷举法。最快获得这个哈希码的矿工就获得打包权。




那么,用什么运算是最好的呢?没错就是显卡。显卡天生就适应大规模的并行运算。如果CPU是几个博士,那么显卡一大群小学生。博士虽然厉害,但是哈希码运算对与他们来说就是小学生的四则运算,显卡足够应付。小学生胜在数量多,所以哈希码运算就比CPU快。所以大家都用显卡挖矿(矿机的本质就是一台电脑。不过插入很多显卡,并行运算能力最大化)


近月来虚拟货币市场异常火爆,其中最具代表性的比特币从8000美元涨到9000美元只用了9天,而感恩节以来比特币一路飙升至11000美元,比年初涨了十倍。在这样的诱惑下,大批的人加入了“挖矿”的行列,但挖矿所需要的高性能计算机后是高昂的电费,为了省出这笔钱矿工们可谓绞尽脑汁,让人不由得佩服他们“脑洞大”。


近日一位美国特斯拉车主,他将矿机与特斯拉汽车连接,然后将特斯拉停放在超级充电站(可以为特斯拉免费充电)中假装充电,以节省下挖矿所需的电费。面对如此“疯狂”的车主,想必特斯拉CEO马斯克也没想到自己会被这样“算计”吧。




在寒冷的俄罗斯,“战斗民族”发明出一种挖矿机,拥有八台高端华硕P106-100 6G图形处理器,紧紧排列在一个纤薄的全金属机身当中,挖矿能力强劲的同时还能产生出足够的热量,保证25-30平米房间的温暖。想必这台可以赚钱的“电暖器”一定会大受欢迎。



为了节约成本,我国一些矿工选择在水电站旁边搭建矿场。四川的水电站在丰水期时电力充沛,电费低廉,而枯水期则电费上涨,一些矿工会选择在枯水期迁移至内蒙古和新疆,根据季节调整矿场,甚至有些像放牧。



还有些矿工不惜铤而走险,走上违法的道路。在延安山区的油田附近,山间的简易板房中曾有很多人私接电线,在这样的板房中架设数百台矿机挖矿。在今年8月份警方就查封了8处这样的矿场,据警方估算一个矿场每天的耗电量就在一万度以上。


在比特币的大幅升值下,大批人投身矿工行列进行挖矿,为了省电费,这些矿工可谓“不择手段”,真是蛮拼的。


特斯拉的创始人甩清了他和比特币之父的关系,比特币圈子里的很多人却独爱特斯拉。


据彤彤了解,币圈土豪们已经将特斯拉作为出行标配,矿场矿机的投资者、交易所的掌门人、知名炒币玩家以人手一辆特斯拉为荣,听说还有专门的俱乐部。


传闻某交易平台老总把开了多年的日系车换成了特斯拉,理由是平日工作实在太累,自动驾驶缓解疲劳。


想必以后如果谁不开特斯拉,大概在币圈要混不下去了。



彤彤认为,对于这样无谓的浪费电力资源,实际上是一种十分不道德的行为。居然能这样挖矿!不知道特斯拉会不会被玩坏?你怎么看?

阅读量8931举报|反对


  

彤彤说车 

头条号图集作者

3.6万粉丝·1473赞·102回答 


超能网 

1月11日 · 超能网官方帐号 科技数码问答专家

你要盈利的话,当然要靠计算机啦,还是那种专门为比特币算法开发的ASIC芯片矿机才可能挖得动。


如果你仅仅为了娱乐,你用纸笔墨也是能算出来的哦。




挖矿程序的实质是计算Hash值,靠得就是SHA-256算法,即大量的【整数】运算,所以靠手算也是可能实现挖矿的哦。具体算法如下:


SHA-256算法把之前64bit的区块数据整合成加密数据并产生了32bit的输出,但是同样的工作需要进行64次操作才算是一次完整的SHA-256计算。下图展示了把8个4bit的输入(A到H),展开或分别进行对应的运算从而产生新的值,周而复始运行64次,最后得出的结果需要符合最高20bit为全零才能算做有效算力。




上图中你可以看到,A~H产生新值并非简单循环右移,是在右移的过程中引入了对应的非线性计算(深蓝色格子的运算)来获得新A值,这种算法就能大大提升了计算难度,下面我们逐个来讲下这些值到底怎么得来的。




Ch值由E决定,如果E=1,则作为新F值;如果E=0,则作为新G值。


Σ0值就是转换A的值并且相加,得出除以2以后的余数,其实就是A向右移2、13、22位。


Σ1值也是同样原理,只不过变成了右移6、11、15位


Ma值主要和A、B、C三个值有关,如果ABC上都是0或1,输出0,如果是2或者3就输出1


Wt值是由输入的数据决定的,也就是本区块产生第t个word,Kt值则是由由每一轮运算定义第t个密钥


显然一键,没经过一轮运算,只有A和E数值发生了变化,但是你要记得一共有64轮计算,最后的结果千变万化,所以这个就是比特币挖矿算法的工作量证明方式,不停计算已获得正确答案获取奖励。


看起来很简单,但是比较熟悉这个算法的人用纸笔计算一轮需要1005秒,以这个速度计算一个完整的比特币区块(128轮)需要连续计算1.5天,算力只有可怜的0.67hashes,然而1KH/s=1000hashes,现在的矿机算力是TH/s级别,其中的差距可想而知。


等你手算出来一个结果,估计专业矿机早就算出了无数个正确答案。

阅读量2.8万举报|反对 


  

全天候科技 

1月22日 · 全天候科技官方头条号

挖矿是比特币建立信任的手段。比方说,女生男生谈恋爱的时候,女生希望男生对自己舍得花钱,甚至希望花一些很浪费、很不“居家”的钱——这是在建立信任,考验你是不是“对我好”。比特币在比特世界工作,原子世界为比特世界花钱,还能让比特世界定量地感知到,有什么手段?除了烧电做哈希碰撞,好像没了。不采用工作量证明的挖矿方式也有,例如PoS(权益证明),它不按照电力投票,而是按照你以往拥有的币来投票,隐含的逻辑是相信这个链上的既得利益者。




【挖矿】 挖矿是一种发行数字货币的机制,也是对维护区块链的节点们的奖励机制。它指的是节点为系统提供“记账“的算力——节点需要接受用户发送来的交易记录,验证其数字签名,验证用户是否真的有他所声称的币。它们为系统付出了很多劳动,应该得到奖励。以比特币为例,它开始运作时,每当节点为系统追加一个新的区块(或者说“挖”出了一个新的块),节点就会“凭空”获得50个比特币的奖励,这些币是新发行的或者说新“印刷”出来的。之后,每过大约三年半,奖励就会减半,最终在100多年后会减到0。整个过程中,总共将发行2100万个比特币。挖出新块、得到奖励的过程,被形象地称为挖矿

阅读量1.1万举报|反对 


金十数据 

1月23日 · 金十数据官方帐号

要知道挖矿到底在计算什么,首先得知道比特币的本质及产生的过程。比特币是基于网络的电子货币,实际是互联网的一串代码,依靠算法计算得出。挖矿是完成算法的过程,也是生产比特币的唯一方式。而且由于算法规定,比特币目前只有2100万个。



1、挖矿既能生产比特币,又能保障交易信息


类似于,一个数学系统包含2100万个数学题,需要通过庞大的计算量不断的去寻求这个每个数学题的特解。另外,特解是唯一的。


下面来具体解释挖矿,从作用来说,挖矿不仅可以增加比特币货币供应,而且还可以保护比特币交易安全、防止欺诈交易。从过程来说,比特币网络是一个点对点的支付系统,任何人都可以通过交易程序进行交易。


为了确保交易过程被如实记录,就需要“矿工”这个角色来负责记录比特币交易信息,这个时间间隔是10分钟,矿工中记账最好的交易记录就会被打包存储到一个新的区块中,相应的矿工也会得到一定数量的比特币奖励


2、挖矿过程极其复杂,非人力所能为



具体的流程如下,当某一个矿工监听到这笔交易时,首先会对交易信息进行验证。通过验证的交易则会被矿工记录下来,保存在自己的数据库里面。全世界可能有成千上万个矿工在进行同一件事,但在每十分钟内,只有一个矿工有权创建新的区块,使自己记录的交易信息被大家所承认并永久地存储下来。


接下来,矿工们就需要争夺记账权,这是一场算力竞赛的比拼,其核心是用计算机完成大量的计算任务,找到一个超难的随机数,这个随机数就是第一段所说的方程特解,最先算出正确随机数的矿工胜出。


根据游戏规律,一个矿工获得记账权的几率与其算力占全网算力之和的比例成正比。换句话说,找到该随机数的概率相当于将一亿个骰子扔出,最后骰子总和小于1亿零50。因此,挖矿需要大量的计算机,安装特定的算法软件,日夜重复运行,非人力所能为。


3、比特币挖矿其实就是“村民记账”




可能还是有网友不懂,那就举个例子。在一个村里,村民之间经常会发生借款行为,哪怕写了字据也有违约的风险。那么,在每次村里有借款行为发生的时候,就用村里的大喇叭告知大家,所有的村民(矿工)就在自己的账簿里记下所有交易记录。


在一个固定时间段里,哪位村民记得最详细、最认真,就给他奖励比特币。然后,把每个时间段最好的账簿记录先后拼接起来,就形成一个村子的债务账簿,确保借款行为赖不掉。其实,整个过程的原理就是我们常说的区块链技术。


当然,也有人会问为什么这么玩?这就是比特币系统的游戏规则,谁把账记好,谁就能得到作为奖励的比特币,同时又能保证交易记录安全,一举两得!

阅读量39万举报|反对 


  

新奇岛

前天 16:20

首先,比特币“挖矿”只是个形象的说法,其实质内容就是通过不断输入不同的随机数nonce,通过哈希运算来找到一个符合条件的解,就说明“挖矿”成功,根据比币特的共识机制,成功找到这个符合条件解的随机数,就会奖励50比特币。这50个比特币是约每四年减半。也就是说,2009年到2013年,如果成功找到这个随机数,就会奖励该节点50个比特币,2013-2017年,挖矿成功只会奖励25个比特币了,2017-2021年,挖矿成功只会奖励12.5个比特币了。这是比特币最开始就给出的规定,还有另一个规定总比特币是2100万个,不会有多的。随着奖励折半,通过挖矿获得的比特币奖励越来越少,在比特币挖完后,矿工的奖励来源主要是交易带来的手续费,因为交易还是需要矿工来记帐(打包区块并链接到上一个区块),所以只要比特币有交易,“挖矿”就不会停止


那么具体是怎样来“挖矿”呢?这就涉及到比特币采用的SHA256算法,这个算法其实早就存在,比不是随比特币的产生才出现的。这个算法的原理是,输入任意的一段数据,都会产生256位的定长字符串。比如,通过在线生成工具,把上述这段话明文转换就成了如下图的结果:




sha256算法的特点是如果输入的明文不发生变化,则每次得到的结果都是不变的,如果有一个字符发生变化,则经SHA256运算的结果一定会不同,比如可以把上图中明文后面的一个冒号去掉,则得出如下结果:




你看,只去掉了一个冒号,则转换后的结果是不同的。


而比特币挖矿的过程是:把上一区块头的SHA256得出的结果即上一区块的哈希值 本区块所有交易打包得到的数据 随机数 这三个部分组合一段数据,然后进行SHA256哈希运算,得出一个如上图下面的字符串值。上一区块的哈希值是确定的,本区块所有交易打包的数据也是固定的(每个结点都验证了交易的合法性,可以说是确定的),唯一不能确定的就是随机数。而这个随机数就是需要矿工(严格来说是矿机)需要反复去推测的,需要一个一个随机去试,直到找到的哈希值满足共识达成的条件,比如目标哈希值和找到的哈希值前面10位都是0(找到两个完全相同的哈希值以现有计算机能力在10分钟内几乎是不可能的,所以共识规则是只需要找到“类似”的哈希值就可以了)。


如果哪台矿机首先找到这个“类似”的哈希值,就会把这个区块(区块头 区块体 交易记录数据 找到的随机数)广播出去,经其它节点验证无误后(其实只要51%以上的结点验证通过就可以了),这个区块就找到了,矿工把本区块填上上一个区块的哈希值连接到链的最后面,再去“挖”下一个区块。


注意:区块通过验证后,矿工会把奖励的比特币记入区块体的第一笔交易,其它交易则根据优先级依次罗列在后面,如果一个区块的大小不能记录所有的交易,则未记入的交易优先级会随着“链龄”提高,优先记入下一个区块。


这就是比特币“挖矿”最简捷、最基本的一个解释,实际运算要复杂得多,一篇文章无法一一讲清。如果有兴趣,可以找一些相关原理的书籍来学习一下就知道了。


基于以上的原因,一般的计算机(CPU、GPU),这两种类型的矿机包括后来的FPGA(可编程逻辑门阵列)都无法满足现在的“挖矿”了,现在比特币的矿机基本都是ASIC(专用逻辑电路)矿机,并且为了加大“成功挖矿”的机率,由许多这样的矿机组成矿场来挖(许多矿机计算比单台旷机合中率当然高得多,只要哪台矿机找到了符合条件的随机数,则矿场的主人就获得了这个区块的奖励比特币和交易的手续费)。


因此,人用纸笔来计算机根本不可能,单台计算机在共识机制的限制,可能几千年也不一定能“碰巧”找到一个符合条件的随机数,更别说效率低得多的纸笔计算。

阅读量441举报|反对


  

新奇岛

3182粉丝·1129赞·130回答 


  

视频王波波

3天前

比特币挖矿的算法,可以简单地总结为对区块头做两次sha256哈希运算,得到的结果如果小于区块头中规定的难度目标,即挖矿成功。


区块头的结构如下




区块头的结构

那么挖矿的算法可以表达为


简单回顾下挖矿的流程。挖矿节点首先对交易做验证,剔除有问题的,然后通过一套自定义的标准来选择哪些交易希望打包进区块,比如通过交易费与交易占用的字节大小的比值超过某个门槛来判断,这样的交易才被认为有利可图。当然,节点也可以特意选择要加入某条交易,或者故意忽略某些交易,每个挖矿节点有很大的自由裁度权力。


如果是通过矿池挖矿的话,矿池的服务器会去筛选交易,然后分配给每个参与的矿机一个独立的任务。这个任务的难度小于总的挖矿难度,完成了小难度的计算,即确认了自己参与的工作量。每台不同的矿机计算的问题不会重复,当其中一台矿机成功挖矿时,其他矿机依据工作量分配获得的总收益。


一旦筛选好交易数据,按照时间排序,两两哈希,层层约减,通过这些交易就可以计算出一棵Merkle树,可以确定一个唯一的摘要,这就是Merkl树的根。


merkle树中,任何节点的变化,都会导致merkle root发生变化,通过这个值,可以用来验证区块中的交易数据是否被改动过。


然后我们再依次获取挖矿需要的每一项区块头的信息。 区块头只有80个字节,挖矿只需要对区块头进行运算即可。交易数据都通过merkle树固定了下来,不需要再包含进来。而所谓的区块链,其实也是通过区块头而链接在一起的。下面的示意图比较简单明确地解释了区块链和区块的构成。




比特币区块链示意图

区块头中的信息,在挖矿前大部分已经是固定下来的,或者是可计算的。


版本号

跟随比特币客户端而定,一段时间内不会改变。即使要改变,也会有比特币的核心开发人员来协调升级策略,这个可以理解为一个静态常数。


前一区块的哈希摘要

一次哈希即可。前一区块已经是打包好的。


默克尔树的根

刚才已经得到了结果,根据本次交易包含的交易列表得到。


时间

取打包时的时间。也不需要很精确,前后几秒,几十秒也都可以。


难度目标

参考上两周产生的区块的平均生成时间而定。两周内如果平均10分钟产生一个区块的话,两周会产生2016个区块,软件会计算最新的2016个区块生成的时间,然后做对比,随之调整难度,使得接下来产生的区块的预期时间保持在10分钟左右。因为最近的2016个区块已经确定,所以这个数字也是确定的。


随机数nonce

这个就是挖矿的目标了。这是一个32位的数字。


随机数可以变化,而且要从0试到最大值2^32。直到最后出现的hash结果,其数字低于难度目标值。不过以现在的计算机算力,一台矿机用不了一秒就把全部的变化可能计算完了,所以还需要改变区块内部的创币交易中的附带消息,这样就让merkle root也发生了变化,从而有更多的可能去找到符合要求的nonce。


挖矿中,第一笔交易是创币交易。创币交易可以附带一段文字消息,这段信息可以用来提供更多的nonce. 比如中本聪在挖出创世区块时植入的信息


The Times 03/Jan/2009 Chancellor on brink of second bailout for banks

讲完了基本的原理,我们开始使用实际数据来验证这个算法。我们以区块277316为例,其信息来自网站http://blockchain.info


Bitcoin Block #277316blockchain.info

选择这个区块的原因是为了与《Mastering Bitcoin》一书中的介绍做参考。此书中文社区译本和英文原版在介绍这部分内容时有出入,而且作者Antonopoulos并没有做完整的演算;没有提到一个关键点,就是字节顺序的问题,相信很多人可能会踩这个坑。这里还原的细节可以帮助读者对书中介绍工作量证明的算法部分彻底理解。




比特币区块277316的信息



比特币区块277316的hash值

接下来演示具体的验算算法。第一步,准备数据,转换时间

转换时间,记住,一定要转为utc的时间戳,此处遇到过坑,小心。算法本身不难,困难的是你需要把其中所有的数据都准备正确。


第二步,全部转换为16进制

第三步,从big-endian转化为little-endian

这一步的发现异常艰辛,耗费了大量的查询和尝试,大坑,大坑,谨记!发明人中本聪可能为了让机器计算更快,而变为了更接近机器的编码方式little-endian.


再说一遍,算法不难,最难的地方就在于亲自验算的过程中,你要把所有的隐藏知识都挖掘出来。中文资料中,极少有人做过通篇验算,而一旦真正理解了验算的过程,你会发现比特币的算法真的不难。


第四步,拼接字符串,开始验证

代码中为何要再转换一次顺序?又是因为字节顺序的问题,我们在平常使用和网站展示时,都使用大端顺序,所以需要转换过来。


最终得到的结果就是


16进制下前面15个0,然后是1。 为了得到这个数字,需要花费我近一个星期的时间,先从椭圆曲线加密算法开始学起,再到各种原始资料的阅读,还下载了难懂的源代码,论坛也翻了个遍。看到前面有一堆0,感觉胜利的曙光快来了。


不急,我们仍然要验证最后一步,是否满足难度目标。当然是满足的,因为我们是在验证结果嘛,不过如果是在正向计算的挖矿过程中的话,就一定要验证。


难度目标对应的数字是


16进制下前面15个0,然后是3。


计算结果小于难度目标,符合要求。那这个结果就一定是网站上公布的数字了。




正确的hash值

在挖矿时,nonce随机数是未知的,要从0试到2^32,但是这个数字其实不大,只有4294967296。以现在的一台矿机动辄14T每秒的算力,全部算完到上限也不需要一秒。上文提到在这种情况下,需要使用创币交易中的附带信息,额外的字符串成为extra nonce。


对这个结果我们解释下意味着什么,在2013年年底时,这个区块产生,这需要算力达到8T/s的设备,即每秒8*10^15次暴力验证,连续工作10分钟。这对于2018年的现在来说的确不算什么,一台矿机,不比两三块砖头大多少,就拥有14T/s的算力,只需要6,7分钟单独就可以挖到。但在当时,8T也是全网千分之一的算力了,需要当时最好的矿机上百台一起工作。而如果这个计算使用一台普通的桌面电脑,需要26年。如果使用2018年最好的手机iphoneX的话,每秒可以做70次计算,那么将需要四百万年。


通过上面的算法我们完整地回顾了比特币区块链的工作量证明算法,如果各位完全理清了其中的思路,也就可以手动实现自己的挖矿程序,或者另外尝试设计一些新的区块链产品了。最艰深的技术,我们希望能够在底层去了解,然而拨开云雾,其实底层的逻辑并不难。


不过比特币里面的技术远不止挖矿算法,加密算法,Script智能合约,各种协议,各种网络,交易的验证,每一个都充满了魔性,进出之间,不由得让人惊叹发明人知识的深度与广度。无论比特币是什么,将会怎样,但是以比特币为第一个大规模应用的区块链技术,已经扩散了开来,整个系统的严密与逻辑的复杂,的确让人着迷。


One more thing...


创世区块也可以通过上面的方法来验证,有好奇的朋友可以尝试下。虽然创世区块后来硬编码在客户端,但仍然是挖出来的。


提示:


对于创世区块,版本号是1。

前一区块的hash摘要,猜想会是什么呢?对于创世区块,是没有前一区块的。

难度目标是1,这是定义为一个sha256结果的前32位是0,也就是对应的16进制字符串要有8个0,那么难度bits此时是0x1d00ffff。这个数字的得出需要概率论的知识,同时也是中本聪的一个规定。

然后再用上面的解法去求解随机数就可以了。



现在比特币越来越贵了,目前一个比特币就是一万美元了,所以很多人都想自己弄一台电脑24小时不停的去挖矿。那么,现在一个比特币普通电脑一天开机24小时要挖多久?挖一个比特币成本要耗费多少度电?

你的电脑曾经可能就是一台印钞机,我不是在天方夜谭。如果在2009年比特币诞生之初就意识到比特币的价值,并且用自己的电脑轻易地挖到很多比特币,留到今天的话那将是一笔不小的财富。

曾经的比特币非常好“挖”,普通电脑CPU就能完成,只需下载软件就可以自动“解题”。但是随着币价上涨,想要“解题”的人越来越多,所以每生成2016页账本,题目的难度动态调整一次。到了2010年6月,有人开始使用显卡挖矿,买了40多张显卡,在天津做了个矿场,但是由于没有及时维护,还没有挖到多少比特币,就亏损关停了。

后来显卡也渐渐无法解题,个人“挖矿”也越来越没有优势,“矿池”就被发明了。'矿池’把大家的算力收集起来,赢了大家一起分收益,就像游戏组团一样。挖矿的难度也越来越大。现在挖一个比特币需要消耗的计算量普通人根本无力承担,普通电脑也别想了。

挖一个比特币成本要耗费多少度电?

业内人士表示,在2014年,每天50万元电费产出100个比特币,仅电费成本每枚就要5000元。但是到了现在,同样的成本已经翻了一倍以上,每枚比特币电费成本高达万元。

在比特币的产生机制里,挖矿奖励是递减的。比特币诞生之初,每记一页账本,矿工就能拿到50个比特币,后来记一页奖励25个,依次递减。就像挖金子一样,一开始挖得多,后来越来越少。每次新增奖励减少一半的时间点,就叫做比特币产量减半。

假设挖矿计算能力为100Mhash/s,在2014年每天总计算力为4000Ghash/s,每24小时挖出3600个比特币。

现在,我们可以这样来理解挖比特币的难度,相当于1亿个骰子扔出小于1亿零50的数字,谁先扔出来,谁就获得记账权。此时,1亿零50就是个哈希值,扔骰子的过程叫做哈希碰撞,而挖矿算力的单位就是每秒钟多少次哈希碰撞。

目前比特币全网算力达到236万万亿次哈希碰撞每秒,相当于20多万个50米长的标准游泳池里面水滴的数目。但即便是这么大的算力,也需要10分钟左右才能碰撞到一个符合要求的哈希值。

2012年比特币进行了第一次产量减半,2016年7月,比特币进行了第二次产量减半,目前记一页账本获得的奖励是12.5个比特币。下一次减半会发生在2020年左右,而到2040年比特币总数不会再增加,总量是2100万枚。也就是说,挖比特币的难度在递增,而需要的时间在增加。

所以一句话,现在如果想挖比特币家用普通电脑就算了,首先计算能力不行,还有所花的时间精力,电费成本等,会让你得不偿失。


  

有态度的土豆

1月27日 · 科技问答达人

普通电脑就算了


比特币的产生就是通过不断碰撞的哈希值来计算的。通俗的将就是算出正确答案的次数。一款普通笔记本电脑的cpu,每秒钟大概可以算800多次,一块中端显卡可以算2000多次。具体算法单位可以参照下图。




因为比特币算法的特性。所以相比做复杂逻辑运算的cpu,只做简单重复算法的GPU更适合来挖矿。为了表示现在比特币挖矿有多难。我特意借了一块贴吧上网友的显卡来计算下。




这是一块七彩虹的GTX 1080TI Neptune 水冷显卡。京东售价6999




以上是这款显卡的参数,从参数上来讲。这款显卡已经十分残暴。当然这是一块N卡。从比特币挖矿角度来讲A卡的效果会好一些。不过只是做测试,无所谓了。




黑色按钮是一键超频用的,后边的测试都是基于一键超频以后1594/1708MHZ这个频率来做的。




测试平台:cpu i7 6700k 16G内存 测的的算力大约是1.8GH/s也就是0.0018TH/S



得出收益是每天0.00000021个比特币,这是一个什么概念呢。按目前一个比特币大约7.6万人民币的价格算,这台配置上万的主机每天能挖出价值一分六厘的比特币。


按这个速度来挖,需要1.3万年才能挖出一个比特币……我天。大家还是洗洗睡了吧。


比特币为什么这么难挖?


因为目前的比特币矿场都是用专用的比特币矿机来挖矿。一个蚂蚁s9矿机的算力就是13.5TH/S相当于7500块 1080ti显卡算力的总和,而一个中型矿场就拥有几百上千台这样的矿机。写这篇文章的时候比特币的全网算力是21480PH/S




所以比特币目前的全网算力是惊人的大……普通人还是不要打挖矿致富的主意了。

阅读量390万举报|反对


  

有态度的土豆

科技问答达人

1.3万粉丝·1.5万赞·283回答 


  

戒烟买馍馍1

2月9日

现在比特币越来越贵了,目前一个比特币就是一万美元了,所以很多人都想自己弄一台电脑24小时不停的去挖矿。那么,现在一个比特币普通电脑一天开机24小时要挖多久?挖一个比特币成本要耗费多少度电?



你的电脑曾经可能就是一台印钞机,我不是在天方夜谭。如果在2009年比特币诞生之初就意识到比特币的价值,并且用自己的电脑轻易地挖到很多比特币,留到今天的话那将是一笔不小的财富。


曾经的比特币非常好“挖”,普通电脑CPU就能完成,只需下载软件就可以自动“解题”。但是随着币价上涨,想要“解题”的人越来越多,所以每生成2016页账本,题目的难度动态调整一次。到了2010年6月,有人开始使用显卡挖矿,买了40多张显卡,在天津做了个矿场,但是由于没有及时维护,还没有挖到多少比特币,就亏损关停了。


后来显卡也渐渐无法解题,个人“挖矿”也越来越没有优势,“矿池”就被发明了。'矿池’把大家的算力收集起来,赢了大家一起分收益,就像游戏组团一样。挖矿的难度也越来越大。现在挖一个比特币需要消耗的计算量普通人根本无力承担,普通电脑也别想了。


挖一个比特币成本要耗费多少度电?


业内人士表示,在2014年,每天50万元电费产出100个比特币,仅电费成本每枚就要5000元。但是到了现在,同样的成本已经翻了一倍以上,每枚比特币电费成本高达万元。


在比特币的产生机制里,挖矿奖励是递减的。比特币诞生之初,每记一页账本,矿工就能拿到50个比特币,后来记一页奖励25个,依次递减。就像挖金子一样,一开始挖得多,后来越来越少。每次新增奖励减少一半的时间点,就叫做比特币产量减半。


假设挖矿计算能力为100Mhash/s,在2014年每天总计算力为4000Ghash/s,每24小时挖出3600个比特币。


现在,我们可以这样来理解挖比特币的难度,相当于1亿个骰子扔出小于1亿零50的数字,谁先扔出来,谁就获得记账权。此时,1亿零50就是个哈希值,扔骰子的过程叫做哈希碰撞,而挖矿算力的单位就是每秒钟多少次哈希碰撞。



目前比特币全网算力达到236万万亿次哈希碰撞每秒,相当于20多万个50米长的标准游泳池里面水滴的数目。但即便是这么大的算力,也需要10分钟左右才能碰撞到一个符合要求的哈希值。


2012年比特币进行了第一次产量减半,2016年7月,比特币进行了第二次产量减半,目前记一页账本获得的奖励是12.5个比特币。下一次减半会发生在2020年左右,而到2040年比特币总数不会再增加,总量是2100万枚。也就是说,挖比特币的难度在递增,而需要的时间在增加。

阅读量162举报|反对


  

戒烟买馍馍1

14粉丝·4赞·17回答 


  

凹了个球

2月3日

比特币实际上即是一大堆杂乱算法生成的特解,特解即是指方程组所得到无限个解中的一组。用俗语解说即是相当于人民币的序列号,只需你知道这个序列号,你就具有这张人民币。而挖矿的进程即是经过巨大的核算量不断的去寻求这个方程组的特解,这个方程组被规划成了只要 2100 万个特解,所以比特币的上限即是 2100 万。


现在世面上的挖矿机报价凹凸层次不齐,这就决议挖矿机在挖矿时的功率。通常一个高档挖矿机可以在100单位天内挖到3~4个比特币。思考到本钱的投入以及矿场的保护,通常几百万的投入才是刚刚小试牛刀的初步。思考比特币商场常常起伏不定,上周日比特币在创新高以后一路跌落,出资矿场的人本来也是需求雄厚实力支持。

咱就别跟着添乱啦 哈哈

阅读量1267举报|反对 


  

冰心30417076

9天前

戒烟买馍馍1 昨天 07:33 现在比特币越来越贵了,目前一个比特币就是一万美元了,所以很多人都想自己弄一台电脑24小时不停的去挖矿。那么,现在一个比特币普通电脑一天开机24小时要挖多久?挖一个比特币成本要耗费多少度电? 你的电脑曾经可能就是一台印钞机,我不是在天方夜谭。如果在2009年比特币诞生之初就意识到比特币的价值,并且用自己的电脑轻易地挖到很多比特币,留到今天的话那将是一笔不小的财富。 曾经的比特币非常好“挖”,普通电脑CPU就能完成,只需下载软件就可以自动“解题”。但是随着币价上涨,想要“解题”的人越来越多,所以每生成2016页账本,题目的难度动态调整一次。到了2010年6月,有人开始使用显卡挖矿,买了40多张显卡,在天津做了个矿场,但是由于没有及时维护,还没有挖到多少比特币,就亏损关停了。 后来显卡也渐渐无法解题,个人“挖矿”也越来越没有优势,“矿池”就被发明了。'矿池’把大家的算力收集起来,赢了大家一起分收益,就像游戏组团一样。挖矿的难度也越来越大。现在挖一个比特币需要消耗的计算量普通人根本无力承担,普通电脑也别想了。 挖一个比特币成本要耗费多少度电? 业内人士表示,在2014年,每天50万元电费产出100个比特币,仅电费成本每枚就要5000元。但是到了现在,同样的成本已经翻了一倍以上,每枚比特币电费成本高达万元。 在比特币的产生机制里,挖矿奖励是递减的。比特币诞生之初,每记一页账本,矿工就能拿到50个比特币,后来记一页奖励25个,依次递减。就像挖金子一样,一开始挖得多,后来越来越少。每次新增奖励减少一半的时间点,就叫做比特币产量减半。 假设挖矿计算能力为100Mhash/s,在2014年每天总计算力为4000Ghash/s,每24小时挖出3600个比特币。 现在,我们可以这样来理解挖比特币的难度,相当于1亿个骰子扔出小于1亿零50的数字,谁先扔出来,谁就获得记账权。此时,1亿零50就是个哈希值,扔骰子的过程叫做哈希碰撞,而挖矿算力的单位就是每秒钟多少次哈希碰撞。 目前比特币全网算力达到236万万亿次哈希碰撞每秒,相当于20多万个50米长的标准游泳池里面水滴的数目。但即便是这么大的算力,也需要10分钟左右才能碰撞到一个符合要求的哈希值。 2012年比特币进行了第一次产量减半,2016年7月,比特币进行了第二次产量减半,目前记一页账本获得的奖励是12.5个比特币。下一次减半会发生在2020年左右,而到2040年比特币总数不会再增加,总量是2100万枚。也就是说,挖比特币的难度在递增,而需要的时间在增加。 阅读量46举报|反对 戒烟买馍馍1 7粉丝·1赞·14回答

阅读量7举报|反对


  

冰心30417076

13粉丝·0赞·15回答 


  

草原的风

2月8日

比特币是现在全 世界互联 网上最流行的一种虚拟互联网货币,它现在也可以购买很多东西。这种虚拟货币,可以通过挖矿机的功能来获得。 很多朋友看了笔者的《比特币老司机的段位全解析》,对其中的“钻石段位”——“挖矿”表示很感兴趣,还有朋友私信笔者可不可以用自己的电脑“挖矿”挣点外快。然而理想很丰满,现实很骨感,用我们的普通电脑挖矿确实是想的太美了。


首先给大家解释一个概念——哈希函数(Hash function)。哈希函数是能将任意长度的数据映射为固定长度的数据的函数。哈希函数返回的值被叫做哈希值、哈希码、散列,或者直接叫做哈希。一个使用场景就是哈希表,哈希表被广泛用于快速搜索数据。比特币的产生就是通过不断碰撞的哈希值来计算的,通俗的将就是算出正确答案的次数。一款普通笔记本电脑的cpu,每秒钟大概可以算800—1000次,一块中端显卡可以算2000多次,这也是为什么从2017年初到现在显卡价格一直飙升的原因,2017年一年高级显卡几乎涨价了一倍。


举个例子吧,挖矿相当于1亿个骰子扔出小于1亿零50的数字,谁先扔出来,谁就获得记账权。1亿零50就是个Hash值,扔骰子的过程叫做Hash碰撞,而挖矿算力的单位就是每秒钟多少次Hash碰撞。再给大家看一下哈希值算力单位表。


使用cpu i7、 6700k 、16G内存配置的电脑作为测试平台,其算力大约是1.8GH/s,也就是0.0018TH/S,一天24小时不停地挖,得出收益是0.00000021个比特币,是不是可以忽略不计了。每天挖出的比特币价格大约是多少呢?以今天各大平台比特币的均价74973元来计算,这台配置上万的主机一天全马力开工能挖到价值一分五厘多的比特币。所以那些希望一边LOL,一边挖矿赚钱的筒子们还是洗洗睡吧。


那为什么比特币这么难挖?而专业的矿机又具有怎样的算力?举个例子,一个蚂蚁s9矿机的算力相当于13.5TH/S相当于7500块 1080ti显卡算力的总和,而一个中型矿场就拥有几百上千台这样的矿机,其算力真是相当惊人。


而挖矿收益可以通过以下公式来计算:


挖矿收益=产生的比特币*币价-矿机成本-电费-维护费及人工成本-矿场折旧费等


初期固定成本较高,随着边际成本递减,后期基本是一本万利的生意。彭博新能源财经分析师Sophie Lu表示,即使是按照中国政府制定的最高电价,只要比特币的价格能维持在6925美元以上,中国矿工就能赚钱(当前价格远高于盈利均衡点,仍维持在单价10000美元以上)。


这么大的算力对电力的消耗也是巨大的,根据摩根士丹利在今年1月10日发表的研究报告中估算,比特币2017年的耗电量为36太瓦时,相当于卡塔尔全国的年度耗电量。并预测2018年,比特币的电力需求将增长三倍,一年的用电量相当于阿根廷全国一年的电力需求。更值得我们注意的是,全球75%左右的矿机分布在中国,主要分布在新疆、西藏、内蒙、四川、贵州和云南等地区。这些地区要么有水电,要么有火电,要么有风电,电力充沛,电价低廉。特别有些地区还有凉爽的天气,有利于矿机降温,更受矿场主们青睐。比较困惑笔者的一个问题是这种大量消耗我国电量“挖矿”的现象究竟是利大于弊还是弊大于利。“弊”的方面很容易理解,消耗了大量的能源,而比特币将来能走到哪一步没有人知道。“利”的方面在于,有证据显示“挖矿”的入驻解决了部分地区电力产能过剩的问题,尤其是在四川、云南等以水电为主的省份,在涨水期电力供给显著大于需求,引入比特币矿场就地解决产能,并将价值输送到世界。有媒体报道,因为比特币矿场的入驻,某云南腾冲的小型水电站回收周期从20年缩短为1年。因此笔者认为,国家有必要对此现象利弊进行全面评估。


有人会说,比特币在中国不是取缔了吗?为什么还要评估?挖矿是不是违法的?事实上,这种看法是存在误区的。截止到现在,2017年9月4日下午,央行等七部门联合发布公告,正式叫停ICO;该月15日,北京市互金风险专项整治办下发《北京地区虚拟货币交易场所清理整治工作要求》,各交易场所在当天24点前发布公告,明确停止所有虚拟货币交易的最终时间;10月30日,OKCoin、火币网、比特币中国三家比特币交易大型平台均发布清退公告,宣布退出中国; 2018年1月2日,互联网金融风险专项整治办工作领导小组下发文件,整治违规矿场;其后传出“央行召开闭门会要求限期关停比特币矿场”的风声,被证实为不实消息。因此尽管仍保持高压态势,至今我国仍没有出台对“挖矿”业务的明确“禁令”。但国家对于增量挖矿显然是不支持的(存量太大,需要慢慢消化)。在法律法规允许的框架内创造财富,是每个现代公民应该遵守的法则。


因此,各位仍想从事挖矿的朋友,不仅技术恐怕难以实现,政策上也是存在不小的困难,所以还是早点洗洗睡吧。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。如发现有害或侵权内容,请点击这里 或 拨打24小时举报电话:4000070609 与我们联系。

    猜你喜欢

    0条评论

    发表

    类似文章 更多
    喜欢该文的人也喜欢 更多