说到挖矿,那么不得不先说一下“矿”是什么?所谓的“矿”就是虚拟货币,有很多种,比如比特币、门罗币等等。这些货币充当虚拟世界的金钱,有很大价值。
在众多虚拟货币中,属比特币最负盛名。比特币(BitCoin)的概念最初由中本聪在2009年提出,根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。点对点的传输意味着一个去中心化的支付系统。与大多数货币不同,比特币不依靠特定货币机构发行,它是依据特定算法,通过大量的计算产生。比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节的安全性。
P2P的去中心化特性与算法本身可以确保无法通过大量制造来人为操控比特币的币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。
比特币与其他虚拟货币最大的不同是其总量非常有限,具有极强的稀缺性。该货币系统曾在4年内只有不超过1050万个,之后的总数量将被永久限制在2100万个。
为什么挖矿?
那为什么需要通过大量主机进行挖矿?简单来说:通过借助大量计算能力来计算产生虚拟货币。
区块可以看作是比特币账本的单独一页纸或者总账本。在绝大多数情况下,新区块被加入到记录最后(在比特币中的名称为:块链),一旦写上,就再也不能改变或删除。每个区块记录了它被创建之前发生的所有事件。
每个区块还包括一个数学方程的答案,该答案对每个区块是唯一的。新区块如果没有正确答案,不能被发送到网络中。所谓“挖矿”实质上是用计算机解决一项复杂的数学问题,来保证比特币网络分布式记账系统的一致性。也就是说要算出当前区块复杂数学问题的解。这个复杂数学算法被设计为一共有21万组特解,每组特解都能解开方程且是唯一的,但无法通过任何有效方式解决,只能通过计算机暴力碰撞猜测。可是为什么这么多人愿意做这么枯燥的事?因为每解决一个区块,都会得到新产生的比特币奖励,这才是众多人来挖矿的利益诉求。
但是比特币网络会自动调整数学问题的难度,让整个网络约每10分钟得到一个合格答案。随后比特币网络会新生成一定量的比特币作为赏金,奖励获得答案的人。
举例来说,假如每10分钟生成一个区块,这个区块包含25个比特币,但全球一共有1000THash/s的计算能力用来计算,你所占计算能力的比例越大越会获得这个比特币,而其他人将颗粒无收。
2009年比特币诞生的时候,每笔赏金是50个比特币。诞生10分钟后,第一批50个比特币生成了,而此时的货币总量就是50。随后比特币就以约每10分钟50个的速度增长。当总量达到1050万时(2100万的50%),赏金减半为25个。当总量达到1575万(新产出525万,即1050的50%)时,赏金再减半为12.5个。
而随着挖矿难度的不断上升,往往获得的比特币利润也不能抵消高昂的电费消耗和机器的损耗,所以往往是大规模工厂化操作。
而黑客们没有这么大的资源投入,却可以利用技能优势达到同样的效果,即入侵大量肉鸡来帮助黑客求解复杂的数学问题特解,进而帮助黑客获得比特币的奖励。
怎么挖矿?
网上有大量的挖矿程序,常见的挖矿病毒都是将挖矿程序封装,伪装成系统程序、添加自启动等持久化操作后植入肉鸡中运行,对客户没有安全危害,只有对性能的影响,只是通过占用系统资源来帮助黑客挖矿。
而随着全球挖矿计算能力的不断提升,单个用户PC主机的挖矿能力很难挖出,因此现在往往通过矿池技术,即所有矿机计算能力集中到矿池一起,所有的矿机计算能力集合到一起就非常可观了,这样黑客就可以空手套白狼,不用搭建大型矿机集群就可以坐收比特币。
矿工网络分成矿机、矿池、钱包等几个主要部分,有时矿池软件与钱包安装在一起,可合称为矿池。矿机与矿池软件之间的通讯协议是stratum,而矿池软件与钱包之间的通讯是bitcoinrpc接口。在恶意挖矿程序中常见的就是stratum协议通信。
stratum是JSON为数据格式,类似于这种矿池地址:stratum+tcp://pool.XXXX.com:80,被入侵的主机首先会连接黑客的矿池进行矿机的登记,然后领取任务并认证账号,如果挖到特解,就向矿池提交答案并等待确认结果。
just keep it up and do it