阿波罗飞船计算机挖矿能力如何?挖个币需1380亿亿年
2019-07-11 10:26:35
凤凰网科技讯北京时间 7 月 10 日消息,控制阿波罗飞船登月的阿波罗导航计算机(以下简称“AGC”),是美国航空航天局阿波罗载人登月项目取得的众多技术突破之一。在那个计算机大小与冰箱相当,甚至塞满一间房子的年代,AGC 重量仅为约 70 磅(31.75 千克)。它还是首批采用集成电路的计算机之一。
一个计算机历史学家获得了一台 AGC,并使之恢复运行。该团队的成员之一肯·谢里夫(Ken Shirriff)决定看看它在比特币挖矿方面的表现。
挖矿是维护比特币区块链过程的关键部分。只有解决一个难题,用户才能获得在区块链中添加一个区块的权利:找到一个 SHA-256 哈希值具有最少 0 的区块。当前已知完成这一任务的唯一方式是强大的算力:矿工创建一个带有随机数的区块,计算其哈希值。如果哈希值的前导 0 个数不够多,矿工会改变随机数,然后再次尝试计算其哈希值。
合格的区块要求的 0 的个数会自动调整,使网络能平均每 10 分钟生成一个新区块。目前,一个区块的哈希值需要至少约 18 个0(16 进制)才能被网络接受——相当于尝试约 1022 次才能发现一个有效的区块。
目前,大多数比特币挖矿活动都是由专用硬件完成的,它们每秒能计算数万亿个哈希值。相比之下,谢里夫为 AGC 编写的挖矿软件就慢多了:每计算一个哈希值需要约 10 秒。
谢里夫写道,“阿波罗导航计算机运行太慢了,要成功挖到一枚比特币,它需要相当于宇宙年龄约 10 亿倍的时间。”宇宙年龄被广泛认为是 138 亿年,这意味着 AGC 挖出一个比特币的时间约为 1380 亿亿年。
这一差异反映了过去 50 年计算机硬件的飞速发展。在摩尔定律“推动”下,现代芯片集成有多得多的晶体管,时钟频率也要高得多。定制的挖矿 ASIC(专用集成电路)能够并行计算大量哈希值。
不过谢里夫也遇到了其他问题:AGC 的特异之处也使得它不适合用来挖比特币。例如,AGC 中一个字的长度为 15 位,现代计算机中一个字的长度通常为 32 位或 64 位。SHA-256 算法进行大量的 32 位计算,因此谢里夫必须将每个 32 位的整数划分为 3 个部分——一个部分为 4 位、两个部分为 14 位——对各个部分单独计算。
AGC 还不支持移位和循环指令——现代计算机的标配、被大量应用在 SHA-256 算法中,谢里夫不得不通过子例程完成这些操作。
AGC 有限的内存也影响了其挖矿能力,“与 1960 年代的大多数计算机一样,AGC 也使用了磁芯存储器,在每个微型磁化铁氧体中存储 1 位数据。由于磁芯存储器尺寸相对较大,AGC 的存储容量仅为 2K 字(约为 4K 字节)。AGC 的寻址方案给编程带来了更高的复杂性,除非使用一种不方便的存储体切换机制,用户通常只能使用 256 字的内存容量。问题是 SHA-256 算法利用 8 个(32 位)哈希值,1 个 64 字的消息表和 8 个字的中间值,它们就会占去 240 个 AGC 字的内存,只给其他指令留下 16 个字的内存,其中包括中间值、子程序返回地址、循环计数器、指针等。通过重用这 16 个字的内存容量,我将算法塞在一个存储体中,但我用了很长时间调试软件。”
这并非谢里夫第一次在“老爷”计算机上部署挖矿算法。数年前,他曾成功在一台 1960 年代生产的 IBM 1401 计算机上部署挖矿算法。这台计算机挖矿的速度比 AGC 还要慢,80 秒才能计算一个哈希值。谢里夫还在一台 1970 年代生产的施乐 Alto 计算机上部署了挖矿软件——每秒能计算 1.5 个哈希值。
扫描二维码分享到微信