sha256的核心是,NX=X,这个问题是无解的,目前顶级数学家也无法找到最快解,举个例子,一捧沙子里边有一个唯一的是0.12418g,让你去找到它,你有什么最快的办法吗,只能一个个称,而不能一眼就知道是哪个!
看来你没明白什么事SHA256,这不是加密而是HASH,也就是说这是一个单项算法,比如可以从A推导成B,但要从B反推导到A只有穷举,当前全世界计算能力都没有办法实现的,BTC挖矿也是尽可能接近正确答案,也就是所谓难度。SH A256是很长一段,全部计算正确不可能,但是尽可能的计算出与前面多少位一样是可以的。这也就是BTC挖矿的难度,算力多了就比如动态调整要计算出前50位一样才给奖励(币),假设只有你一个人在挖,那么能难度就只要求你前三位一样就给奖励了。
简单说:是的。一种情况只有你知道破解方法,相当于你的算力增长了万亿亿倍形成绝对垄断,把比特币所有历史交易都作废,按你心意重造一遍都可以。另一种情况所有矿工都知道了破解方法,出块速度超快,会产生大量永久分叉,导致整条链的瓦解。无论是哪种情况,比特币都会归零。
然而,人类几千年科学发展都是连续平滑的,sha256一夜间被破解这种降维打击不会发生,信息系统有足够时间升级,如果哪天终于破解了sha256,它至少在几十年前就被比特币弃用了。
256是拿来挖矿的,ECC椭圆曲线加密才是比特币加密算法。
目前没法破解的加密算法几乎都属于大整数因数分解。
除非你从数学上解决了大整数因式分解,那么推算私钥按照目前算力几十亿年往上。
看了好几个回答,没有一个靠谱的,除了我的[大笑]
比特币挖矿算力本质就是做题,专业术语叫做穷举,到目前比特币的全网算力难度已经上涨到了25T创下了历史新高,比特币的加密性质在理论上确实存在着一种算法能够将其破解,比如之前很多人提到的量子计算机,但是破解前也要遵循比特币的算法。
SHA256算法破解的本质就是私钥,但是想一想256位的私钥破解起来也是需要相当长的时间,即便是按照当前的算力来看,只是存在理论上的不可靠性,并且SHA256的算法是公开透明的而比特币的加密也是开源的。
个人认为在技术理论上能够让比特币短期内价格归零的几率几乎可以忽略不计,如果可以的话,在比特币诞生的前三年时间里,在他的算力还没有达到一个相对应分值状态时,攻击它是最容易的,可是现在为止比特币已经安全运行了11年。
所以目前理论上能够让比特币完全价值归零的,应该就是诞生了新的替代品,并且取得了更大的全球范围内的共识替代了比特币。只有这样比特币参与的人群数量就会越来越少,最终形成单击模式逐渐的退出历史舞台。
所以目前为止并不是哪个算法的破解就能够威胁到比特币,目前一个机构或者一个矿场所拥有的算力始终都是有上限的,而这个上限无法对于当前比特币已经已有的区块进行51%的双花攻击,所以现实上的比特币目前还是很安全的。
比特币其实是一个毫无用处的一串数字,但是被大家公认为有用,它就像钻石、古董、字画、游戏皮肤等被赋予了价值。既不能吃,也不能用,但我们还是会认可它们的价值。
比特币是一种虚拟货币,基于区块链技术,区块链是一个人人都可以参与数据处理的数据库。通俗一些讲比特币系统就是一个大型的记账本,它不需要一个具体的地方去记录某个账户下有多少余额,只要知道所有账户之间的转账记录,就可以推算出某个账户下有多少余额。
举个例子:
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分钟。在网络初期两三个小时的出汗时间,一点儿也不少见。所以比特币网络每过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位哦.然后切片输入这个运算器.
ABCDEFGH一开始分别是八个初始值,$K_t$是第t个密钥,$W_t$是本区块产生第t个word.
原消息被切成固定长度的区块,对每一个区块,产生n个word,通过重复运作循环n次对ABCDEFGH这八个工作区块循环加密.
最后一次循环所产生的八段字符串合起来即是此区块对应到的散列字符串.
比特币的方程(不等式)可以写成
其中C是个常数,根据环境而定
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不是答案,还要继续穷举.
题主是在上海上大学,聆听过人生经验,知道一些时间的奥秘,所以题主跑的很快...
根据相对论,跑的快的话时间就会变慢...
我查了下今天的全网算力是7,844 PH/s,题主静止状态下算力是1/(5*60*128) H/s
题主希望他能在一天内挖出一个比特币
一天有24*60/10=144个结算周期.根据伯努利概型:
根据相对论,题主的速度达到了
倍光速!!!!
终于...题主算出了一个比特币...
但是,题主的速度实在是太快了,以至于时空畸变是如此的激烈
强大的能量,散发的辐射足以把地球轰的连原子都不剩!!!
这么大的能量从哪里来?
根据质量守恒,一定是题主燃烧了YY之魂才能换取如此不可思议的能量吧.
比特币素数正加财富网内容推荐 | ||
OK交易所下载 | USDT钱包下载 | 比特币平台下载 |
新手交易教程 | 平台提币指南 | 挖矿方法讲解 |