如何办理亚马逊CPC,CPSIA( 六 )


遇到这种情况,比特币系统怎么处理呢?在这种情况下,相当于网络上的其他节点收到了两个合法的新区块,因为网络节点的地域分布不同,所以,不同的节点收到这两个新区块的先后次序就会不同 。此时,所有的节点会暂时保留两个新区块,并且把区块链做一个临时的分叉,如下图所示:(图片来源:自绘)接下去,比特币网络中必然又会有其中一个节点(矿机)抢到了记账权,这时该节点就会将生成的最新区块接到其中的一个分支上,那到底是接到新区块 1 上还是 2 上呢?系统规则是:这个节点先收到哪个区块,就接到哪个区块上,同时放弃另一个区块,然后全网广播,如下图所示:(图片来源:自绘)比特币网络上的所有节点在收到最新的区块链后,只要发现其中一个分支比另外一个分支多 2 个区块了,就立即也放弃那个短的分支,总之,比特币网络永远只承认更长的那条分支 。
你可能会想,那如果小概率事件再次发生,在区块链第一次分叉后,又同时产生了两个新区块,而恰好两个新区块产生在两个不同的分支上,这时候,其他节点收到的区块链还是两个一样长的分支,那怎么办?很好办 。还是同样的规则,只要分支一样长就暂时保留,直到出现两个分支不一样长时,就放弃短于 2 个区块的,保留长的 。那个被放弃的分支中所有交易和比特币奖励都会被判定为无效 。
因为有了这个临时分叉的规则,所以,比特币玩家在完成一笔交易后,不能立即认为这笔交易是成功的,有可能会被取消,必须要等到一定数量的新区块生成后,如果交易依然没有被取消,这才能放心地认为交易成功了 。那到底要等到多少个新区块产生才能放心呢?按照概率来说的话,小额交易有这么三个新区块产生就够了,但是大额交易的话,为了更保险,一般认为是等到 6 个新区块产生,就足以放心了 。
前面说过,每个区块产生的平均时间是 10 分钟,也就意味着,一笔大额交易需要 1 个小时左右才能确认交易成功 。但是小额交易确认的时间往往会更长,甚至长达好几天 。听到这个你可能会有点儿糊涂,刚才不是还说小额交易一般只要三个新区块产生就够了吗?怎么确认时间反而会更长呢?比特币网络刚刚诞生的头几年,确实不会出现这样的怪事,但是这几年随着交易量的猛增,就会出现这种怪事了 。
为什么?先回忆一下每个区块的规则:区块规则你的交易记录要被写到区块链上,有一个前提:矿工将你的这笔交易记录打包到这个区块上 。你可能想问:为什么会不打包?难道系统规则还允许不打包吗?打包成功了不是还要给矿工交税吗?矿工好不容易抢到一次记账权,怎么会有钱不赚呢?是的,允许不打包 。原因不是矿工不想赚钱,而是“不可抗力”,关键问题是每一个区块允许存储的数据量有限 。
中本聪当初设计比特币系统时,规定了每一个区块最大只能是 1MB,一条交易记录大概是 0.25K,那么一个区块最多可以储存 4000 多条交易记录,如果在一个新区块产生的时段中,发生的交易请求超过了 4000 条,那就肯定存不下了 。我们可以算算,这个量大概是一个怎样的交易频率 。每个区块的平均产生时间是 10 分钟,也就意味着,平均每秒钟的交易量如果超过 7 条,那么就一定会出现排队等待打包的交易记录了 。
这个交易频率实在很低,要知道支付宝一秒钟大约要处理上万笔交易 。这一秒钟七笔交易对于全球来说,实在是太不够用了 。一般来说,大额交易优先打包,小额交易,手续费越高的交易越优先打包,打包规则矿工有一定的自主权 。比特币交易手续费的规则比较复杂,不同的矿工收得还不一样,不是三言两语能说清 。但有一点可能会让你感到诧异,越是大额的交易反而收费越低,甚至免费 。

推荐阅读