提起比特币和区块链,很多人都觉得如数家珍,实则知其然不知所以然。比特币是区块链的前身实现,区块链是比特币的后期提炼;如果初次接触比特币,当你想和别人交流的时候,面对的第一个概念可能就是挖矿。那么,挖矿的原理是什么?
在区块链上,数字货币的发布模式是怎样的呢?
区块链发布链上的数字货币有两种主要形式。一种是,以国内的NEO为例,NEO的发行模式是:在系统创建的时候,一次性的在创世块里,写入1亿个NEO。借助ICO,用户可以直接用人民币认购持有。这种模式比较类似于央行发行人民币。
另一种就是类似于淘金,就是比特币这样的,通过挖矿节点,不断消耗自身的算力,来换取比特币。由于比特币系统是完全开源的,在这套开源的代码里,包含了挖矿的功能,只要一个人懂代码,就可以把这套代码进行编译部署,加入到比特币网络里面去,把挖矿功能开启,那你的宿主机开始挖矿了。
挖矿是比特币系统中一个形象化的表述。它背后真正的名称是POW算法,也就是工作量证明算法。工作量证明,是从经济学中来的。1993年,由两个经济学家提出来的一种策略,就是防止对服务滥用或者资源滥用,而采取的一种有效阻断的经济策略。
任何人均可以在专门的硬件上运行软件而成为比特币矿工。挖矿软件通过P2P网络监听交易广播,执行恰当的任务以处理并确认这些交易。比特币矿工完成这些工作能赚取用户支付的用于加速交易处理的交易手续费以及按固定公式增发的比特币。
新的交易需要被包含在一个具有数学工作量证明的区块中才能被确认。这种证明很难生成因为它只能通过每秒尝试数十亿次的计算来产生。矿工们需要在他们的区块被接受并拿到奖励前运行这些计算。随着更多的人开始挖矿,寻找有效区块的难度就会由网络自动增加以确保找到区块的平均时间保持在10分钟。因此,挖矿的竞争非常激烈,没有一个个体矿工能够控制块链里所包含的内容。
比特币是一种加密数字货币,除了从别人手中购买以外,还可以通过挖矿获得,那一个比特币要挖多久呢?
这里说的挖矿,就是维持比特币网络的一个奖励性的机制,在这里的用户其实已经变成了比特币网络里的一个矿工,矿工必须在每十分钟里要解决这短时间里的一个交易数据,不进步如此还要解决一道很难的题目,只有矿工成功解决了这个问题的答案才能从比特币的提问区域上升到另外的区域,从而拿到奖励。
想要成为这样的一个矿工其实是不难的,只要你在计算机上安装了相关的软件,就可以成为一个矿工了,比特币只是根据程序算出来的虚拟货币,所以,只要有电脑其实就行了,听起来是不是很简单呢?我们接下来就来探索下挖比特币究竟有多难?
那么有了电脑也安装了相关的软件,要怎么挖矿呢?挖矿需要找到一个输入X,然后让X+交易数据的哈希值前面N位的字符为0,N越大困难程度就会越大,所以算力就是每秒可计算几次哈希值,1H/S=每秒一次哈希的碰撞。
现在比特币的全网计算力已经达到每秒3百万亿次的哈希碰撞,目前在理想状态下,矿工的一台家用计算机即使是顶端配置他的每秒计算能力也就只1000H/S,如果矿机每天24小时都在挖矿,那么就可以挖到0.0018个比特币,就是556天才能挖到一个比特币,而且算的还是最好的概率。
比特币的全球总数是2100万枚,产量现在都在减半,到了2040年比特币数量就会固定,不会增长,所以挖一个少一个,以后的每年获取难度就更大了。按矿机功率1350瓦算,一小时用电一度多,每天电费需16.8元,意味着挖到一个比特币需花费9367元电费。比特币数量减少,对电脑硬件要求也高,挖到一个比特币,还是相当困难的。