比特币编程难度
❶ 天河二号超级计算机挖矿多久可以挖一个比特币2100万个需要多久
告诉你,家用PC挖的话计算力太低。按照现在9亿多的运算编程难度讲家用PC的算力一般在100M到600M之间,去挖的话一个月挣的钱连电费的十分之一都不够,所以需要矿机。现在市面上专门针对比特币生成计算算法而优化制造的机器就是矿机。一台矿机每秒能处理600GHash数据运算,不间断的话能够在大约10天的时间生成一个比特币,对电脑的配置要求好高的。
你说的一天能挖100个并不是没可能,确切的来说不需要一天,只需要几秒不到就可以拿下,前提是你拿得下世界排名第一的“天河二号”。
❷ 为什么比特币总量是2100万枚
比特币有争议的属性之一就是它的固定的供应量。当前每10分钟又25个新的比特币被生产出来,并且这一数字每4年减半。总的来讲,不会有超过2100万个比特币的存在>。另一方面,每个比特币可以被划分成1亿份(每份叫做1“聪”),如果一美分都足够买辆车的话,用美元来交易就麻烦重重了,但比特币就算升值到和上面假设的美元的>状况,也不会遇到那样的问题。因此,总之,将永远存在的货币单位的总数字是2,100,000,000,000,000,也就是2100万亿,或者说250.899。在选择这个数值的方>面,中本聪比大多数人意识到的要幸运的多或者说聪明的多。首先,这个数字远小于264-1,这是一台计算机里面可以以标准整数形式存放的最大整数,超过那个值的话,>数值将像里程表那样归零。
其次,然而,还有一个总“聪”数要设法低于的更小的阈值:可以用浮点的格式表示的可能的最大整数。整数不是计算机可以存储的唯一一种数字;为了处理小数,计算机>使用一种做浮点表示法的格式。浮点表示法本质上就是一个科学记数法的二进制版本。举个例子,下面是一个在你学习物理学的时候会遇到的值:
地球的质量: 5.972 1024 kg
太阳的质量: 1.989 1030 kg
光速: 2.998 108 m/s
一光年: 9.460 1015 m
质子的质量: 1.672 10-27 kg
普朗克长度: 1.616 10-35 m
我们可以注意到,科学记数法是如何使得你可以在合理的精度下表示所有的这些数值,尽管它们的大小相差极大。浮点表示法本质上就是二进制的科学记数法;当你存储数>字9.625的时候,你的计算机存放的是“1.001101
* 1011”(或者说,它存放的是01000000 00100011 01000000 00000000 00000000 00000000
>00000000
00000000,这是高精度序列形式的同样一回事)。在这个高精度形式中,系数(也就是不是指数的那部分)有52位(52bits)。这意味着高精度(更加精>确的说法是“双精度”)浮点数足以存贮高达253的数字,但不能再高了,如果超过了,你就得开始砍掉末尾的数字。比特币的250.9这一以指数形式表现的总“聪”数,刚>好低于这个最大值。
如果我们有了整数,我们为什么还要关心浮点值呢?因为更多的高阶编程语言(比如说Javascript)并不开放低阶的“浮点”和“整数表示法”,而只给程序员提供“数”的>概念
– 当然以浮点的形式提供。如果中本聪当时选择了2亿1千万而不是2100万这个值的话,用很多语言里比特币编程就会比现在要麻烦得多了。
注意,Stefan Thomas不幸的在他写BitcoinJS的时候没有及时留意到这个,以至于那个库使用了一个专门的‘大数big
number’对象,而不是一个普通数来存储教程输出值;我自己分叉的的BitcoinJS(同时还加入了其他的改进)使用了普通数。