自学区块链(七)BTC-挖矿

BTC系统中的两种节点

全节点的要求


默认情况下是沿着最长合法链挖下去,出现分叉也是根据自己先接受到哪一个就选哪一个。

轻节点的要求

因为没有存储交易信息,所以轻节点的大小大概只有全节点的千分之一。除了自身交易可以验证,其他都需要依靠全节点。如果只是转账只要是轻节点就可以了

在挖矿过程中,当别人挖到区块之后,其他的矿工需要停下来重新组合block header的信息。可能大家会有疑问,前面的工作白做了?其实并不是,因为挖到矿的概率是无记忆性的,就是说你前面做的工作对后面挖到矿的概率没有影响,相当于抛硬币的例子,抛到正面的概率和你之前是不是正面没有关系。

挖矿设备的变迁

1、最开始大家用的是家用电脑来挖矿,这时候只用到CPU(会有资源的大量闲置,内存什么的,而且本身挖矿也只使用很少的CPU指令)

2、第二代设备GPU挖矿,BTC挖矿只用到整数整数操作,相比CPU的挖矿效率有了很大提升,但是还是有很多资源浪费

3、第三代,专门设计的ASIC芯片,一般来说不同的加密货币是使用不同的ASIC芯片。

变迁的主要原因是效率,最开始人少的时候,使用家用电脑的算力和成本算下来都是能接受的,随着挖矿竞争的变得激烈,设备要求变得越来越高,最终演化到现在只能使用专用设备(设备换代很快,淘汰了也没有其他方面的用途)

很多新发行的加密货币为了获得用户,会采用和已有的加密货币一样的minng puzzle,这样不用换机器就能挖这一个货币(实现冷启动)。

研究表明一个矿机所获得的大部分利润是前两个月获得的,几个月之后算力可能跟不上了,又要换新的矿机(还是设备商比较赚钱,矿工的风险还是很大的),一般购买ASIC矿机是需要提前预定的,还有不良厂家,会先在最赚钱的前两个月自己挖,之后再把矿机交货。

其实这种专业化,已经有点和去中心化的初衷有点背离了,算力是集中在少数人手中的,以至于有的加密货币设计的Alternative mining puzzle就是为了对抗ASIC专用化,想普通家用电脑也能参与进来。

大型矿池的出现

原本如果是个人矿工使用ASIC矿机,可能一两年才能挖到一个区块,前面这么长时间的成本投入,这无疑是增大了风险。所以为了摊平这种风险,引入矿池的概念,大家矿机集中起来,挖到区块根据所占贡献大小的比例来分摊BTC奖励。降低很多不确定性风险。

主要构成是一个全节点驱动很多矿机,矿工通过通信协议来工作,矿场会发布任务给矿工,矿工提交结果作为工作证明,其实矿池的出现虽然对矿工来说有了收入保障,但是对整个BTC系统的安全来讲,并不是有利的,历史上出现过算力超过总算力51%的矿池。发动51%攻击都是可以做到了,目前而言也是算力集中在几大矿池手上,下面的图是去年的矿池算力分布。


你可能感兴趣的:(自学区块链(七)BTC-挖矿)