Pages:
Author

Topic: 难度与算力 - page 2. (Read 5342 times)

newbie
Activity: 2
Merit: 0
December 26, 2013, 12:57:14 AM
#17
学习了
newbie
Activity: 1
Merit: 0
December 25, 2013, 10:36:19 PM
#16
原來如此... Grin
newbie
Activity: 2
Merit: 0
December 25, 2013, 10:13:23 PM
#15
学习了
newbie
Activity: 2
Merit: 0
December 25, 2013, 09:14:29 PM
#14
卡位学习 Cheesy
newbie
Activity: 9
Merit: 0
December 25, 2013, 08:32:23 PM
#13
深刻到家了
newbie
Activity: 4
Merit: 0
December 21, 2013, 07:13:58 AM
#12
学习  Shocked
newbie
Activity: 56
Merit: 0
December 21, 2013, 02:56:02 AM
#11
学习了
newbie
Activity: 1
Merit: 0
December 21, 2013, 02:48:18 AM
#10
学习学习 Grin
newbie
Activity: 8
Merit: 0
December 05, 2013, 03:54:44 AM
#9
卡位学习 Grin Grin
full member
Activity: 128
Merit: 100
December 05, 2013, 03:50:13 AM
#8
学习了
newbie
Activity: 31
Merit: 0
July 04, 2016, 03:51:50 AM
#7
现在有耐心,能仔细学习研究的人少
jr. member
Activity: 53
Merit: 10
June 25, 2016, 03:54:54 AM
#6
理解起来还是有点难度啊
sr. member
Activity: 301
Merit: 250
网络·自由·客
January 17, 2014, 02:41:31 AM
#5
我以为这是必修课
newbie
Activity: 56
Merit: 0
January 10, 2014, 04:10:05 AM
#4
学习+收藏,
看了几遍了
估计还得看几遍
newbie
Activity: 1
Merit: 0
December 30, 2013, 06:09:08 AM
#3
还是似懂非懂,需要多看几遍,谢谢!
newbie
Activity: 2
Merit: 0
December 26, 2013, 08:19:52 PM
#2
赞一个,写得好。

知其然,不知其所以然。
现在有耐心,能仔细学习研究的人少
newbie
Activity: 20
Merit: 0
November 29, 2013, 12:53:38 PM
#1
我是个技术宅,对于btc而言,是个新人。最近从各个材料上学习了一些btc的理论,个人总结了一些东西,也想写出来给大家分享。
本文的内容,是从技术上来真正解释算力、难度的含义。

1.hash,哈希
学过数据结构的都应该知道hash,但这里也还是再说明一下。hash的含义就是用一个较短的文字/数字,来表示一个较长的文字/数字。
把较长的数字,变为较短的数字的计算过程,叫做hash算法。同时,hash算法从数学上保证了,只能从长数字变为短数字,从短数字无法反过来得到长数字。
如果两个不同的长数字,通过hash算法得到了相同的短数字,就叫冲突。

2.sha256,
是一种hash算法,到目前为止,还没有发现冲突。可以将任意长度的文字/数字,变为256个位的短数字。
当然,如果你的原始数字只有一个位,算法首先会把他变成512个位,然后再进行计算。得出的结果也是256个位。

3.block,块
每个块里,都包含了高度(也就是第几个块,目前是272166),前一个块的hash值,当前时间,所有在这段时间内发生的交易,自己这个块的hash值,以及一个随机数(nonce)。六个段。
下面来说明一下这些这些东西计算的次序。
首先将所有的交易,通过复杂的sha256,得出一个256位的结果。再加上nonce、高度、时间、前一hash,将这五个内容计算sha256。如果计算的结果满足条件,(前面有很多的0),就成功了。

4.算力
上面这些,很多地方都写了,我不过是多说明一下,而下面的内容,网络上就没看到过了,是我自己的理解。
完成上面所说的,对nonce、高度、时间、前一hash,交易hash,进行一次计算,得出一个新的hash。就是1个算力。

5.nonce
nonce是一个32位的数字。对于算力的计算来说,除了nonce,其他的都是都是固定的。而32位的nonce,从0x00000000到0xffffffff,要进行4G次计算。如果4G次计算还不能满足条件呢?
那就是交易hash的变化;将同样这些交易,不过是重新排序,就可以得出不同的交易hash。
目前的算力是7P每秒,在理论上的10分钟内,总计要进行4000+P次计算。也就是有1G个不同的交易hash,每个被计算了4G次。
当然,时间的变化,也可以造成结果hash的不同。

6.难度
从概率上讲,完成了4G次计算,那么就会出现一个前面是32bit个0的hash结果(从显示上看,是8个)。而难度1,就是前面要求32bit个0。
换句话说,难度1,等同于4G次计算。是在10分钟内完成的4G次计算。也就是6.666M每秒的算力。
大家可以到难度算力图上去看看,难度与算力的坐标关系,就是6.666M。

7.算力的计算
算力是根据概率估算出来的。
如目前难度是600M,那么如果有4P每秒的算力,从概率上讲,通过10分钟的计算,会出现一个满足条件的结果。
而如果目前的平均出块时间是8分钟,那估算的算力就是5P每秒。
Pages:
Jump to: