比特币挖矿一定要用计算机吗?为什么不能用纸和笔来计算呢?比特币的数学题是什么
比特币挖矿**要用计算机吗?为什么不能用纸和笔来计算呢?
比特币其实是一个毫无用处的一串数字,但是被大家公认为有用,它就像钻石、古董、字画、游戏皮肤等被赋予了价值。既不能吃,也不能用,但我们还是会认可它们的价值。
比特币是一种虚拟货币,基于区块链技术,区块链是一个人人都可以参与数据处理的数据库。通俗一些讲比特币系统就是一个大型的记账本,它不需要一个具体的地方去记录某个账户下有多少余额,只要知道所有账户之间的转账记录,就可以推算出某个账户下有多少余额。
举个例子:
A、B、C账户初始值分别为50、0、0

转账记录:
A转给B:10
B转给C:5
C转给A:2
B转给A:3
这时,就可以计算出A、B、C的余额分别为:
A:50-10 2 3=45
B:0 10-5-3=2
C:0 5-2=3
A转账给B时,A不光要自己记账,还要把这个账单广播给区块链上的所有人。
“挖矿”的过程实际上就是一个账单数据记录的过程,每隔10分钟左右就需要矿工将之前没有经过大家确认的交易数据收集起来进行处理。
但问题就来了,矿工那么多,到底用谁处理的数据?
系统就有了一个特殊的机制,所有参与的矿工把数据打包的时候必须加入一个叫做“哈希值”的东西,系统才会认可你处理的数据。
挖矿其实就是找Nonce随机数,通过生成区块头部的随机数来调整每次哈希的结果,使得计算出来的区块的哈希值符合一个特定的标准。
谁能**完成这件事,并把自己的工作成果广播给其他的矿工确认,**其他节点核对该区块记账的正确性,且大部分认为没问题,谁就能获得记录数据的权利,以及很多的比特币作为奖励。
最开始的时间,每次奖励50个比特币,每过4年时间奖励减半:
2009-2012年,每次奖励50btc;
2013-2016年,每次奖励25btc;
2017-2020年,每次奖励12.5btc;
按照这样的规划,到2140年左右,奖励会变为0,比特币总量约2100万个。
其实,矿工挖矿不仅仅是为了比特币,是维护整个区块链网络的重要环节:挖矿的人越多,参与数据确认的人也就越多,区块数据也就越安全。
比特币的区块哈希算法
比特币挖矿的算法,是对区块头做两次sha256哈希运算,得到的结果如果小于区块中规定的难度目标,即挖矿成功。
挖矿节点一旦筛选好交易数据,按照时间顺序,两两哈希,层层约减,就可以计算出一颗Merkle树,可以确定一个**的摘要,这就是Merkle树的根。Merkle树中,**节点的变化,都会导致Merkle树的根发生变化,通过这个值,可以用来验证区块中的交易数据是否被改动过。
区块头是80字节,平均每个交易至少250字节,平均每个区块包含2000个交易。区块哈希值实际上并不包含在区块的数据结构里,区块打包时只有区块头被用于计算哈希。
交易数据都通过Merkle树固定了下来,不需要再包含进来。所以区块链是通过区块头链接在一起的。
随机数可以变化,而且要从0试到2的32次方。直到**出现的hash结果其数字低于难度目标值。比如猜出来的值输入后得到hash值前面40个都是零,而要求是前面35个0,那么肯定符合要求。
在挖矿时,随机数是未知的,要从0试到2的32次方,就是4294967296种可能性。以现在的一台矿机的算力,**算完也不需要一秒,所以还需要改变区块内部的创币交易中的附带消息,这样就让Merkle根发生了变化,从而有更多的可能去找符合要求的随机数。
挖矿中,**笔交易是创币交易。创币交易可以附带一段文字消息,这段消息可以用来提供更多符合要求的随机数。比如中本聪在挖出创世区块时植入的信息:
The Times 03/Jan/2009 Chancellor on brink of second bailout for banks
综上所述
比特币是不可能用纸和笔计算出来。一个区块计算出来,使用普通的电脑,需要26年。一台比特大陆生产的S17(功率1470W)算力50TH/s,不间断运行挖比特币一个月可以获得0.03个比特币,挖一个比特币则需要33个月。S17运行一小时耗电量约为1.47度电,一天就需要耗电35.28度电,那么挖一个比特币就需要34927.2度电。
“挖矿”仅仅只是让更多的人参与进区块链网络的建设中来,这么多的电费用来“计算”一串虚拟的数值这样真的好吗?
比特币并不是一个保值的东西,价格浮动较大,炒比特币可能一夜暴富,也可能一夜变成穷光蛋。比特币也并非宣称那样安全,2014年全球**的比特币交易网站MtGox被黑客入侵导致破产,价值4.67亿美元的比特币瞬间蒸发。犯罪分子用它来**、逃税等等,政府想去调查也是相当困难的一件事。
以上个人浅见,欢迎批评指正。
认同我的看法,请点个赞再走,感谢!
喜欢我的,请关注我,再次感谢!
你好,我是树哥,专注于区块链的普及和推广。
回答这个问题的核心在于,
为什么要进行计算?
其实计算根本不是为了找到那个答案,而是以下的几个作用:
- 通过调整计算的难度来调整,出块时间在10分钟左右。
比特币每产生一个区块是10分钟。但实际上这10分钟只是目标值。产生区块的时间可能会低于10分钟,也可能会远高于10分钟。在网络初期两三个小时的出汗时间,一点儿也不少见。所以比特币网络每过2016个区块就会调整一次难度,尽量让网络的出块的平均时长在10分钟左右。
- 计算只是为了寻找区块生产者。
买个10分钟比特币网络都需要一个区块生产者,这个区块生产者负责打包账本,然后把它复制发送到**。当然这个区块生产者可以获得这个区块所产生的比特币。
所有人都想当区块生产者,选谁呢?出道题给大家算吧。所以这个题只是为了甄选出区块生产者,没有其他**意义。
所以这一点就可以回答你的问题,用纸和笔没有意义。要选一个计算机节点,而不是选人。而且对问题的答案也毫不在意。
总结:所以比特币的计算题只是为了选出区或生产者,而且还可以通过计算题的难度来保障每10分钟出一个区块。所以这个题的答案是什么根本不重要,所以也不需要你用笔和纸来进行计算。
首先站在当前的时间节点上,比特币挖矿已经用不到所谓的计算机了,也不能用纸和笔来计算。比特币挖矿的本质是贡献自己的算力,去完成比特币网络的交易记录。目前即便是用2080的显卡去计算比特币的网络区间节点交易的话,挖出一枚完整的比特币需要耗费1412年的时间。这中间的耗电量会让你亏到血本无归,所以目前比特币的**难度已经上涨到了19T左右,这个难度已经不再适合比特币用计算机去挖矿。
我们现在能够看到比特币是由专业的矿机去进行相对应挖矿的,他们有专门的算力峰值,组建相对应的矿场,然后通过相对廉价的水电或者火电用来获利挖掘比特币,支持比特币的算力区间。即便是这样比特币当前的挖矿成本基本上也维持在了1万美元附近,这个成本的电力计算价格是0.5元左右。
了解完比特币挖矿的本质,我们就不会再想所谓的用笔和纸去计算,这是**行不同的。数据必须建立在互联网络上,通过点对点的交易节点形成整个的**账本,并且实时更新,这样才能够保证所谓的区块链技术不会得到篡改,如果记录在纸和笔上,这样不但会形成资源的浪费,同样也无法计算出准确的比特币交易趋向。这个时候你才明白,区块链的技术才是支撑比特币的网络基石。
当前比特币的交易价格已经突破了23000美元,这个价格已经创下了历史**值,但是在历史**值的背后,同样伴随着比特币难度的又一次提升,比特币的**总量一共是2,100万枚,目前挖出了1,800万枚,剩余的400万枚要持续到2140年可想而知后续的难度比例还会呈指数倍的增加。
题主您好,比特币的区块确实一个解方程式的过程,理论上来说,解答出这个方程式可以用笔和纸来解决,确实如您所说,只是解的慢一点而已。恰恰您的**一句话就回答了您的提问,因为目前比特币有了价值,如何得到比特币呢?就是需要将这个方程式尽快的解答出来,那么就会有一个比特币的奖励,所以这个时候就出现了计算机挖矿,其实就是用计算机来进行解答。毕竟计算机的解答速度是远远高于人来计算的,尤其是复杂的方程式。
接下来,我来给您详细列举下:
咋们先说下结论哈:用手算出哈希值的难度比在全世界的沙子里面找到特定的一粒沙子还要难,可能性还要低。
比特币挖矿,说来也容易,其实就是找到如下不等式的一个解而已:
其中hash就是常说的哈希函数,target则决定了难度.
哈希函数定义域为整数,值域则是某个范围的正整数.
可以看出其实解有无数个,但是发现其中一个并不容易.
你可能要说了,我能不能分析这个函数来求它的部分反函数?
有些哈希函数可以,比如CRC校验函数,但是一类用作加密的哈希函数不可以.
哈希加密函数,基本特点之一就是随机,以比特币使用的SHA256为例,画出前100个数字的哈希值:
可以看出这个函数图像几乎就是
中的一个随机数.
也就是说随便说一个数,说中答案的概率只有
,宇宙原子总数才
左右...
Target用来调节难度.Target越小,找到一个解的难度自然就越高.
而**的求解方法就是穷举.
SHA256是SHA-2的一种,SHA-2的第t个加密循环如图所示:
图中的深蓝色方块是事先定义好的非线性函数.
先把输入从16进制翻译成2进制,有256位哦.然后切片输入这个运算器.
- 关注E,F,G.如果E为1,那么输出为F。如果E为0,那么输出为G.
- 关注A,B,C.相互进行ADN然后相加取模二余数.
- ,取A分别右移动2Bits,13Bits和22Bits,等价于数学上的除以$2^2$ , $2^13$ , $2^22$,然后相加取模二余数.
- 与 类似,只是右移6,11,25 Bits.
- 遇到红框模 ,也就是抹去前面192位.
ABCDEFGH一开始分别是八个初始值,$K_t$是第t个密钥,$W_t$是本区块产生第t个word.
原消息被切成固定长度的区块,对每一个区块,产生n个word,通过重复运作循环n次对ABCDEFGH这八个工作区块循环加密.
**一次循环所产生的八段字符串合起来即是此区块对应到的散列字符串.
比特币的方程(不等式)可以写成
其中C是个常数,根据环境而定
- version = 版本号
- prev_hash = 前一区块ID的字节反转
- merkle_root = 本区块中所有交易的SHA256的墨克哈希树根的字节反转
- ntime = 时间戳
- nbits = 网络难度
Target根据之前上千个区块的平均求解速度调整,算**将找到一个解的期望时间控制在10分钟左右.
解出来还要广播,其他终端会验证是否正确,如果正确就会被接受,然后大家一起去算下一个区块.
如果和别人几乎同时算出来,那么出现小分叉,然后继续挖,直到其中一个比较短被遗弃.
那么问题来了,人力能否求解这个方程?
不能...**步就GG了...
时间戳(ntime)是从1970年1月1日0时0分0秒(格林尼治天文台时间)开始经过的秒数...
好吧 题主是**大脑,大脑内置铯原子钟 ,这个问题不考虑.
然后以上所有运算都是16进制运算
一个这样的输入(prev_hash)有64位16进制之长,然后你得取反然后根据其他条件算出
,然后算出
,而且你得翻译成二进制进一步运算.
好吧 题主作为尖子生熟练掌握16进制加法和进制转换
这么大的整数至少要算20分钟的样子,列竖式大概只要一张纸,然后还不能有错.
当然 题主作为特长生学过珠心算 ,花了1秒打了下算盘就搞定了,然后花59秒写到纸上...
算错...不存在的...这可是国粹......
第二,取两次SHA256,一次是64个循环,两次128.这个比较简单无脑了,都是位运算就是在纸上位移不大方便.
那个老外算了16分钟,题主单身多年手速不知高到哪里去了,只花了4分钟就搞定了一轮(一共有128轮).
然而还是没有什么卵用,题主猜的这个x不是答案,还要继续穷举.
- 然而呢,上面说了平均运算时间是10分钟.你算得比别人慢......白算!!!
- 和别人同时几乎同时算出来,还要看谁被更多的终端承认,否则...白算!!!
题主是在上海上大学,聆听过人生经验,知道一些时间的奥秘,所以题主跑的很快...
根据相对论,跑的快的话时间就会变慢...
我查了下今天的**算力是7,844 PH/s,题主静止状态下算力是1/(5*60*128) H/s
题主希望他能在一天内挖出一个比特币
一天有24*60/10=144个结算周期.根据伯努利概型:
根据相对论,题主的速度达到了
倍光速!!!!
终于...题主算出了一个比特币...
但是,题主的速度实在是太快了,以至于时空畸变是如此的激烈
强大的能量,散发的辐射足以把地球轰的连原子都不剩!!!
这么大的能量从哪里来?
根据质量守恒,**是题主燃烧了YY之魂才能换取如此不可思议的能量吧.
打一个比方,你就知道了。圆周率π,你是知道的, 这个东东有一个公式,其实有时间你也可以用纸笔来计算出它的小数点后面的几位。但现在我要它后面的一百万位,你会用纸笔去计算吗?等你计算出来,都不知道是哪年哪月的事了。所以就不用纸笔来计算了,更何况,计算那些数字问题还有奖励,是按哪个计算出来的时间快来计算的,所以大家都在用专业的计算机来抢速度,比谁快,这个过程就是挖矿。
比特币,比特币,比的就是谁特别快,就能得币。
比特币是如何产生的?如何被挖出?
1、比特币的产生原理,实际上就是一个数据记录的过程。
2、区块链是一个人人都可以参与数据处理的数据库。
3、没有经过大家确认的交易数据,需要矿工收集起来进行处理。
4、数据打包的时候,必须加入一个叫做“哈希值”的东西。
5、哈希值必须满足一 定的条件,系统才会认可你处理的数据。
6、谁能**完成这件事,并广播给其他的矿工确认。
7、且大部分认为没问题,谁就能获得记录数据的权利,以及很多的比特币作为奖励。
到此,以上就是小编对于比特币的数学题的问题就介绍到这了,希望介绍关于比特币的数学题的2点解答对大家有用。
