冰岛雷雅内斯巴(Reykjanesbaer),北极圈附近的熔岩平原。在这里,有一个找比特币矿的专业工区。创立者是31岁的Emmanuel Abiodun。他曾是汇丰银行伦敦分部的码工。看到银行的钱象流水,自己那点工资实在什么都不是,因此决定放弃编码,自己建专业机器挖矿。后来发现自己造的专用机实在太落伍,就改为购买专业级的。他的这个挖矿区是一个不起眼的黄色建筑。有一扇厚厚的大门。你要进入这扇门,先要在防弹玻璃后的保安给登记,再通过4道卡---前方的通道只有在后方的大门关闭后才会核对,然后决定是否打开。这般过了四道门,才能进入挖矿区。这是一个灯光通明的房间,他买来的100多台大型多卡服务器正在运转,每台造价2万美金 --- 此类级别的配置,在中国炒到40万人民币,反正都是“科研金费”,“赶超世界先进水平”的“长江计划”、“千人基金”。
这些机器安装的都是开源的比特币软件,每天24小时运行,就是希望能抢在竞争对手之前按算法找到匹配的答案,从而将可以从比特币分布网中获得25个新的比特币。按约定,比特币网中目前定的上限是2100万个,现在一半被挖出了。不过,由于挖掘新比特币的算法越来越复杂(BLOCK链越来越长,核对移位移到死),速度就越来越慢,因此整个挖掘工作可能可以持续100年。
直到两个月前,大部分比特币都是个体户在家用计算机上完成的。不过,随着近几个月比特币价格飙涨,比特币挖矿很快就成为了一门大生意,工业化生产也逐渐开始。最近几周,比特币的稀缺以及投机者的狂热把比特币价格推到1100美元。人们的热情不仅推高了比特币,而且推高了挖掘的难度:前天用木棍石头就可以夺得领事权,昨天需要的则是飞机与大炮,那今天呢,就要用导弹航母核弹头了。挖币已经到了专业级,甚至是非常顶级的专业设备。正如Emmanuel Abiodun说的:我们的这些机器就是联储局的印钞机,我们必须够专业够给力。他先是用13万美元架设了两台,又在堪萨斯城数据中心租赁上线,然后发现这样的计算能力还是远远不够。因此,他于今年10月从瑞典一家公司采购了约100台矿机,并把整个设施迁至冰岛。总开支约300万。根据该公司在比特币网中的帐户的信息,按目前价格算,在三个月内,该矿区就挖掘了价值超过400万美元的比特币。
虚拟货币研究公司Genesis Block的联合创始人Greg Schvey说:“即使是今年早些时候才架设的机器也已经落伍,我们正在讨论跨级提升。”矿机所做的工作类似猜测彩票。谁的运行速度快,谁猜到正确号码机会就多。因此Cloud Hashing的机会就相对多些。例如,上周三,Cloud Hashing公司把挖出的225个比特币,按当天价格交易给别人,获得16万美元。现在他们也把自己的80%计算能力外租给散户,自己只留有20%的计算能力。--- 我想,应该比挖矿赚得更多吧。
冰岛的Cloud Hashing数据中心还为BMW等大公司提供数据服务。中心的维护和保安由Verne Global公司负责。近期,这一中心正安装从乌克兰运来的66台新设备。冰岛矿区从未遭遇停电问题。“我们不希望宕机。希望我们花的钱物有所值,不能因为外围让用户的比特币出现问题。”
淘金热伴随的辛酸
凡是淘金热,都伴随着辛酸,甚至于血腥。过去几个月,很多人以“淘金热”的心态去挖矿,一窝蜂。虽然都坚信比特币不会崩,但当中国政府宣布监管之后,很多人还是恐慌了,所以把币值拉到了500美元以下。再退一步说,如果比特币体系真的崩溃了,这些专门为挖币而设计的计算机群将完全失去作用。因为这些设备的GPU实在太给力,一张专业卡成本都要us$3000至us$4000,一个机器里可以装四张,当然可以山寨成六张八张,这对一般人和一般的计算中心来说,真没什么用。
现在的比特币挖掘者虽说对货币很有信心,但当初的“廉价”方式可以说已经逐步消失,过去一天可以一枚,现在几天也不见出来一枚。而且全球范围内的挖矿机日夜轰鸣,高速翻腾,在香港、花生炖都有这样的设备。然而这些用汗水买来的设备,流出的不再是简单实现全球自由流动的币,而淌出的都是电费、高速网费,以及让自己渐渐地、越来越失望的无奈。虽说冰岛那里电价便宜,气候寒冷,有助于减低中心的能耗,但一般人还是难于承受的。
是浪费还是科研
由于这些计算机的能耗很大,因此很多人说,比特币挖矿活动完全是人类的浪费,对社会毫无贡献。
其实,仅就算法而言,已经是人类的伟大创造。技术改变人类。从石头到铁器,从蒸汽机到计算机,无一例外。当然,凡事有好就有坏,不一而论。因为技术与工具推进人类发展的同时,人类的膨胀与贪婪也伴随着技术与工具而肆意加大甚至于无度。我们不说难度,就算法的普适性,都是有广泛前景的。例如:算法会调整难度,保证全球范围内,每十分钟至少有一枚币算出来:如果网络中的矿机需要花费超过10分钟才能得到一个结果,那么程序会调整,使猜测更容易。而如果猜测正确结果花费的时间不到10分钟,那么比特币程序将加大难度,让你十分钟内“听”不到,全世界又有谁淘到了一枚币。
另一个意义是矿机本身对IT发展得推动。这些专业矿机推动了高性能计算机的发展。只要几架6万一台的配置,如今的功能就可比拟那花费了几千万的天河一号。而且,对数据中心的上线运行提升,对分布算法的提升,对分布保密算法的提升,对机器协作和保密的提升,都是在不经意的人海战术中得到了实践与升华。
从Cloud Hashing的运作还让人们清楚地看到:世界是走在大协同的时代。即使挖币这种和钱直接打交道的东西,也可以假手以人,也可以租赁计算能力,而不必事事亲力亲为,不必一定要自己采购高额的高性能计算机。就像你公司可以租飞机而不必买飞机一样。
根据加州大学圣迭戈分校教授Michael Taylor的计算,目前所有比特币矿机的计算能力总和已达到美国政府最强大超级计算机IBM Sequoia的4500倍。仅从今年一月以来,比特币网络的计算能力已经增长了30000%。这些全新的计算机于过去的12个月上线运行。bit币产生和验证的过程,为我们的世界建立了一个崭新的国际会计系统。网络提供的基础设施确保虚拟货币按照规则在人们之间流动,并确保人们无法非法创造货币。---- 如果以后各国的税收系统在全球联网,按这种会计系统运作,就没人能作假,没人能逃税漏税。
个人挖币路漫漫
类似Cloud Hashing,一些客户在互联网讨论版上投诉,说出现问题时很难获得该公司的回复。其实,每个大数据公司都这德性。跟bit币本身无关。不过,这并未能阻止其他人继续使用该公司的服务。据说,Cloud Hashing目前已有4500名客户,高于9月份时的1000名。公司承认,Cloud Hashing业务增长太快,尚未准备好应对快速的增长服务。现在已利用两家天使投资人提供的400万美元,开设了位于美国奥斯汀和英国伦敦的客服人员。Cloud Hasing还准备在达拉斯附近的一处数据中心建立矿区,部署价值超过300万美元的、由德州公司CoinTerra开发的新矿机。同时他们也在扩大冰岛矿区,将66台新计算机从乌克兰的制造商运抵这一数据中心。到明年2月,该公司在整个比特币网络中的计算能力将占约15%,高于其他任何公司。
但目前并不清楚他们的客户能否获得合适的回报。每个客户每年需要支付999美元费用。相对于所获得的计算能力,这是一个昂贵的价格。不过公司认为,服务价有所值。如果你一年挖出两枚,你就不赔。何况公司必须确保这些设备不会被窃贼偷走,或遭到黑客攻击。
任何时候、任何行业都是大吃小。在每个行业里,小个体都是受气的媳妇。这是丛林法则定义了的。然而,Cloud Hashing就是从两个人的小公司快速成长起来的,很有启示意义。
------------ 附录:
Bitcoin网中使用的Block哈希算法 (专业版)
产生比特币:就是机器不断散列Block的头,同时该Block又不间断更新。一个block头含有如下的字节
域 目的 ; 更新的时候 大小(字节)
版本号 Block的版本号 Block升级到一个新的版本 4
上一个哈希值 上一个哈希Black 有新的哈希Block加入 32
Merkle根 基于所有交易位的散列 有个交易是接受 32
时间戳 当前时间戳 每隔几秒钟 4
位 当前目标的大压缩格式 复杂度自动调整 4
随机数 32位数码(从零始) 散列值增量 4
Block结构体包含了交易信息。这些只能间接通过Merkle根被散列。由于交易没有被直接散列,散列1个交易的Block和1万个交易的Block消耗相同的资源。
对于所有用户来说,大多数域是相同的。时间戳有些微变化。随机数通常会不同,但它以严格的线性方式增长。随机数从0开始为每次散列递增。每当随机数溢出(不经常),溢出部分产生的交易就会递增,从而改变Merkle根。
由于散列函数的原因,不同人常会产生出完全相同的哈希序列,按先得先有为原则,所以最快的机器几乎总是获胜者。但任意两个人几乎不可能具有相同的Merkle根,在你的Block中的第一笔交易是会“发送”到你唯一的Bitcoin地址。由于你的Block地址与其他人不同,就可以保证产生你得到不同的散列。这就保证了,你在一个地方计算每个哈希散列的过程,和别人在其他网络上计算一个哈希散列拥有同样的获胜机会。
Bitcoin使用SHA256(SHA256(Block_Header)),
你必须要小心字节顺序。
例如:用Python代码将计算散列2011年6月,Block125552,生成最小的哈希值。Blcok头是将上述六个域用小字节法排序串联一起为的十六进制表示法的值:
>>> import hashlib
>>> header_hex = ("01000000" +
"81cd02ab7e569e8bcd9317e2fe99f2de44d49ab2b8851ba4a308000000000000" +
"e320b6c2fffc8d750423db8b1eb942ae710e951ed797f7affc8892b0f1fc122b" +
"c7f5d74d" +
"f2b9441a" +
"42a14695")
>>> header_bin = header_hex.decode('hex')
>>> hash = hashlib.sha256(hashlib.sha256(header_bin).digest()).digest()
>>> hash.encode('hex_codec')
'1dbd981fe6985776b644b173a4d0385ddc1aa2a829688d1e0000000000000000'
>>> hash[::-1].encode('hex_codec')
'00000000000000001e8d6829a8a21adc5d38d0a473b144b6765798e61f98bd1d'
注意,实际的哈希有大量的尾数为零的位,解释一个256位的大字节序的数,与SHA-256的定义的大字节序列常数保持一致,但是当解释为bitcoin使用小字节序列排序时,导致了哈希头部出现了大量的零位。
对作者这个bitcoin系列文章的理解需要有对数学,电脑,金融以及政治文化一系列专业知识的了解,轻易下结论真是无知无畏啊。