首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

分叉和重放攻击是什么?

现在比特币社区有很多种扩容方案,如果有某种扩容方案可以获得足够的算力支持,成功激活,那么比特币网络将避免分叉的风险。但是,因为比特币没有中心化的权利机构,很难达成共识。如果没有任何一种方案获得足够的算力支持,比特币区块链将形成分叉,届时将会产生多种比特币分叉币。

原先持有比特币的人,在分叉后将自动且免费拥有分叉后产生的每种分叉币。因为分叉币都是免费获得的,所以又被称为糖果。

以比特币为例,2017年8月,社区就扩容方案达成共识,激活了隔离见证bitcoincash分叉方案,导致比特币区块链一分为二,比特币区块链的处理速度扩大至1.8倍。随后4个月里,比特币相继发生了多次分叉,产生了多个分叉币,很多比特币爱好者戏称比特币”生了很多儿子“。根据分叉后的区块链是否能兼容旧区块链,分叉又分为“硬分叉”和“软分叉”。

硬分叉,是指当比特币代码发生改变后,旧节点拒绝接受由新节点创造的区块。不符合原规则的区块将被忽略,矿工会按照原规则,在他们最后验证的区块之后创建新的区块。而软分叉是指旧的节点并不会意识到比特币代码发生改变,并继续接受由新节点创造的区块。矿工们可能会在他们完全没有理解,或者验证过的区块上进行工作。

软分叉和硬分叉都"向后兼容",这样才能保证新节点可以从头验证区块链。向后兼容是指新软件接受由旧软件所产生的数据或者代码,比如说Windows 10可以运行Windows XP的应用。而软分叉还可以"向前兼容"。向前兼容是指旧软件可以接受由新软件所产生的数据以及代码,比如你用Word 2013保存的文档,假如仍然可以用Word 2011打开,就是一种“向前兼容”。

重放攻击是什么?

如果比特币真的发生分叉,作为普通用户,最大的风险就是重放攻击。重放攻击是什么呢?如果比特币分裂为一种或多种比特币,如BTC1/BTC2/BTC3等,每个比特币账户内将根据他的比特币余额,同时存在对应数量的所有分叉币。由于每条链上的地址和私钥、算法等都相同,交易格式也完全相同,导致在其中一条区块链上发起的交易,完全可以放到另一条区块链上去重新广播,可能也会得到确认。这就是“重放攻击”。

简单来说,在你转账BTC1的时候,你的BTC2/BTC3也可能同时被转走。但是,目前很多分叉币做了双向防重放攻击处理,避免了分叉后被重放攻击的风险。

以太坊(ETH)和以太经典(ETC)是硬分叉的典型案例。

The DAO计划基于以太坊智能合约建立一个众筹平台,于2016年5月正式发布,截止当年6月,募集资金超过1.6亿美元。之后,The DAO被黑客利用智能合约的漏洞,转移了市值五千万美元的以太币。为了挽回投资者资产,以太坊社区投票表决决定将更改以太坊代码,希望索回资金。为此,以太坊在第1920000区块进行硬分叉,回滚所有以太币(包括被黑客占有的)。

但是,有一部分人认为以太坊这种作法违背了区块链的去中心化和不可篡改精神,坚持在原链上挖矿,从而形成两条链,一条为不承认回滚交易的链-以太经典(ETC),一条为承认回滚交易的链即以太坊(ETH),各自代表不同的社区共识以及价值观。分叉时持有以太币的人在分叉后会同时持有ETH和ETC。

2019年1月15日左右,以太坊Ethereum(ETH)的君士坦丁堡(Constantinople)硬分叉升级。这是ETH的第二次硬分叉,火币和OK等各大交易所已经公告支持硬分叉并发放相关糖果。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190105A0NHP400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券