区块链研究室区块链研习社

比特币共识

2018-03-07  本文已影响49人  kathy亚峰

说到比特币的共识会让人很自然的想到两件事,第一件是:人们对比特币价值的共识,也就是有多少人觉得比特币是有价值的,这个共识越广越深厚, 比特币的根基就会越牢固、生命力就会越蓬勃;第二件是:比特币的共识规则。
这两个共识有些相同又有不同,一个是比特币体系和外部世界的关连,一个是比特币体系内部世界的关联,今天要说的是后者。

百度百科对共识的定义是:一个社会内不同阶层不同利益人群的共同认识、价值和理想。比特币的共识就是比特币网络的参与各方共同遵守的规则。把比特币比喻成一个小宇宙的话,比特币的共识规则就是小宇宙内的各种运行规律,内里的星体们即自行运转又互相影响着。比特币的共识既说明了该做什么,又说明了该怎么做,还说明了遇到争议时该如何解决,既有对积极参与者的奖励、又有对破坏者的惩罚。
共识基础
比特币的共识支撑着比特币系统的自动运转,也保证了比特币系统的安全可信。
比特币共识的实现有赖于节点的四种独立过程的互相作用而产生:
1.每个全节点对交易的独立验证
2.每个全节点对交易的独立确认(即打包区块)
3.每个全节点对新区块的独立校验和组装入链
4.每个全节点独立选择加入最长的链条
这四种过程既相互独立又相互协同,无论节点是独自完成自己的事务,还是与其他节点产生链接交互,都遵守着预先设定的共识规则,在遍及全球的网络中,在各种性能参差不齐的网络间共同维护一个大帐本,并保持数据一致、真实,想想都觉得这是一件极其了不起的事。
共识攻击
比特币共识保障下的比特币总会让我们觉得它是那么伟大,那么了不起,然而它并不是坚不可摧的,从理论上来说存在两种共识攻击:51%攻击和地址拒绝服务攻击。
1.51%攻击,就是当你拥有算力占全网51%的时候你就可以更改从当下区块往前数最多10个区块的数据。这里的更改不是我们通常理解的类似把纸上写下的字擦掉重写,而是重新构建区块。
打比方说,我花1个比特币向你买了一台车,你在这笔交易(假定该块高50001)经过6个区块确认后把车给了我,然后我用自己的节点(假定我有51%算力)从50000的块高度开始挖矿,我重新构建上面那笔交易,把比特币要转给你的地址替换成我的地址,接着把这笔交易打包并像网络传播。现在的情况是出现了2个50001高度的区块,因为我的算力超强,于是我就能更快的在我的这个链上出更多的块,按照选择最长的链条的共识,我建造的这条链从此就成了主链,于是我成功篡改了历史,最后你既没收到比特币又损失了一台车。
这多恐怖啊,改变历史,抹杀真相,不过事实上至少目前来看从逻辑上没人会这么干,因为如果攻击成功,比特币的安全性当然无存,它的价值将迅速归零,真是得不偿失。
2.拒绝地址服务攻击,就是针对某个地址的交易,在交易确认前把它从交易池中剔除,使它不能被确认被打包。 其实在交易确认后也可以对某个特定地址的交易进行攻击,还可以用51%攻击的方法。
共识规则的改变
共识规则确定了交易和块的有效性,更改共识规则是个很严重的事。这个改变有可能是主观故意也可能是无意、错误下导致的,共识规则的改变会带来两种后果,软分叉和硬分叉。
软分叉不会导致两条链,而硬分叉会分裂出另一条链。当共识规则的改变在大多数节点中进行事就会出现软分叉,最后又会回归为一条链;如果改变和不改变都不能占多数,节点们就会分裂为新旧节点,区块分裂成不同结构的区块,接着网络也会分裂成两个,最后分成两个链条。
共识是比特币生存的根本,这使得比特币系统运转自如,它的核心是激励和工作量证明方式的共识机制;共识也是参与各方的连接和协作方式,从对共识的理解和学习上能让我们对区块链就是生产关系这句话有所领悟。

本文由【区块链研习社】优质内容计划支持,更多关于区块链的深度好文,请点击【区块链研习社】简书专栏:
http://www.jianshu.com/c/b17f09dc2831

不脸的求赏,我的QYB地址:Qf4gCd2AX6K4eJJqh9cTXx2GdhnthCz1b3

上一篇下一篇

猜你喜欢

热点阅读