比特币 (BTC): 是一种数字货币, 去中心化(P2P 网络), 加密解密技术, 区块链分布式记账(公开透明可追溯特点) 等技术实现
比特币怎么产生的呢? 挖矿产生的
挖矿公式: HASH(已知数(上一个区块的 hash 值)+ 未知数(随机产生)) > 比特币规定难度系数
挖矿流程: 当矿工在经过多次算力后满足上面公式之后, 就认为他挖矿成功了, 他会基于在上一个区块后新生成一个区块, 然后打包广播给其他节点, 让其他节点从自己这个新生产的区块重新开始挖矿
那么其他节点怎么判断这个广播区块是不是这个链上的呢? 他们可以拿到新生产区块的未知数和上一个区块的 hash 值带入上面的公式可以进行验证
怎么保证矿工新生成的区块是安全的呢? 每个区块都是用公钥加密的, 只有矿工的密钥才能解密
理论上只要一个的算力足够强大就可以更改区块链路, 因为每个矿工用自己的算力投票的结果, 理性的矿工会投票给最可能成为最长链的区块
举例说明:
0-->1-->2-->3-->4
比如上面这个区块链发展到第 4 个区块的时候, 这时候同时有两个矿工 (A,B) 挖到比特币了, 然后进行新生产区块并打包发布, A 发给他的邻近节点的矿工, B 发给他邻近的节点的矿工, 他们邻近节点都认为当前的这个链路是最长链的区块, 后面他们就按照自认为最长的链进行挖矿, 就导致了下面这种硬分块的情况:
- 0-->1-->2-->3-->4-->5(A)-->6-->7-->8
- 0-->1-->2-->3-->4-->5(B)-->6
经过一段时间后, B 这条链都不被其他矿工认可了, 因为他们发现还有更长的链, 都放弃 B 这条链了, 选择从 A 这个链上开始挖矿
但是只要 A 的算力强大, 他一直坚持自己的这条链, 总有一个时刻自己会成为最长的链所有只要所有的矿工一起从某个链开始挖矿, 是可以很轻松摧毁比特币的
来源: http://www.bubuko.com/infodetail-2518314.html