宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > Ethereum > 正文

区块链分叉带来的安全挑战

作者:

时间:1900/1/1 0:00:00

区块链分叉分为软分叉和硬分叉。本文主要探讨的是硬分叉,一种不支持向后兼容的软件升级方式。硬分叉是共识的分裂或者改变,共识就是区块链系统中各节点达成数据一致性的算法,正常情况下每个节点需要运行相同规则的算法,例如比特币运行的是基于PoW共识,以太坊曾经也是PoW共识,最近通过“TheMerge”切换到了PoS共识算法。

分叉的原因有很多,在区块链当中是一种很常见的现象,通常是短距离的分叉,这和共识算法有关,同一个高度上有时会出现相互竞争的区块,但最终有的区块会被放弃,只保留一个区块。但硬分叉不同,这一种是有计划有目的的分叉,一些节点客户端部署了与原网络不同的程序版本,生产出的区块只能在分叉链上通过验证,无法被原网络接受,也不接受原网络的区块。例如近期热门的EthereumPoW分叉。

上半年6省市出台区块链专项发展政策 涉及多个方向:今年上半年,已有北京、湖南、贵州、海南、江苏、河北等多个省级行政区出台区块链专项发展政策。从发展目标上看,多地都列出了区块链发展的短期目标。如7月初发布的《河北省区块链专项行动计划(2020-2022年)》明确,至2022年河北省区块链相关领域领军企业和龙头企业达20家,培育一批区块链应用产品,力争打造出1个至3个全国知名区块链品牌。不只是河北,湖南、北京都发布了为期3年的“行动计划”,截止年份都是2022年。

已经出台区块链专项发展政策的地方,大都提出了明确的发展计划。如在企业培育方面,贵州表示将引进培育100户以上成长型区块链企业;河北明确区块链相关领域领军企业和龙头企业要达到20家;湖南表示将推动3万家企业“上链”。在产业园区方面,贵州计划打造2个至3个区块链产业基地,江苏计划高标准建设2个至3个省级区块链产业园区,河北计划形成3个具有区域影响力的区块链产业集聚园区,湖南计划建成5个左右区块链产业园。

值得一提的是,6省市都提出了多个“落地”应用领域和场景,涉及金融、制造、民生、政务和通信等多个方向。以金融领域为例,江苏计划建立银行、保险、租赁等行业票据区块链平台,连接金融单位、客户、投资方和监管方,实现传统票据市场向数字票据市场的跨越式发展;北京计划促进金融服务“多方互信,降本增效”,推动在供应链金融、资产证券化、跨境支付等领域落地一批应用场景。

与其他领域相比,电子政务更受关注,在各地计划中也都有所涉及。如北京、湖南都计划要推动政务数据开放共享;江苏计划构建政府各职能部门的联盟链、政府面向民众的公有链和政法等涉密体系的私有链;贵州提出依托“一云一网一平台”,建立政府主导的联盟链,实现数据变化实时探知、访问全程留痕、共享有序关联,持续优化营商环境,服务“一网通办”;海南提出将应用区块链技术的电子政务项目优先纳入年度建设计划。(经济日报)[2020/7/13]

如果要成功分叉一条区块链并不容易,并非直接复制原网络的代码即可,需要进行基本的修改才能保证它安全运行,为此,我们总结了几种常见的安全问题及防护方法。

安徽省首个政务区块链平台搭建完成:安徽省首个政务区块链平台近日搭建完成,作为首个应用场景的律师执业资格证“区块链+电子证照”应用正式同步上线安徽省政务服务网络平台,具有全程可追溯、提高可信度等作用。此举标志着区块链应用在安徽省政务服务领域正式落地。

据安徽省数据资源管理局有关负责人介绍,去年底以来,安徽省数据资源管理局以“建设统一区块链平台,构建N个政务服务应用”为目标,依托“皖事通办”平台,快速部署搭建安徽省区块链平台,提供区块链应用运行和管理能力,为实现政务数据跨部门、跨区域共同维护利用、提升业务协同水平奠定基础。律师执业资格证作为首个“区块链+电子证照”应用场景,目前已经通过安徽省政务App“皖事通”对公众提供服务。(新华网)[2020/5/8]

网络层

由于分叉链是独立于原网络的区块链,首先需要在网络层进行隔离:

1、种子节点

声音 | 盘和林:产业界会在经济社会发展主战场加速区块链等的应用实施:2月18日,中南财经政法大学数字经济研究院执行院长盘和林在经济日报刊文《战“疫”或加速数字经济发展》。文章表示,一些行业的线上化进程早就开启了,但进度相对缓慢,也不够彻底。这次疫情使得人们不得不加快推行线上化,让人们再次审视相关产业数字化升级的可能性。此外,在抗击疫情过程中,数字技术也展现出巨大的威力。总的来说,人们已经看到了许多传统产业可以通过数字化克服空间障碍为更多消费者提供服务,也看到了数字技术具有广阔的应用前景。以此为契机,产业界会将大数据、人工智能、区块链、云计算、物联网等数字技术在经济社会发展主战场加速应用实施,各种应用场景将会层出不穷。[2020/2/18]

种子节点,也称bootnode或者seednode,是区块链启动时网络首先会尝试进行连接的节点。分叉链在启动时首先连接种子节点列表里的节点,从而进一步发现网络中其它的对等节点,然后才能进一步同步区块,达成共识。因而必须要修改种子节点列表,防止连接到原网络的节点。

动态 | 巴西本地银行将推出独特的区块链平台:据cointelegraph报道,巴西最大的银行Bradesco的副总裁Mauricio Minas透露,巴西多家主要的本地银行将于6月12日推出独特的区块链平台。[2019/6/12]

2、异形攻击

即使种子节点列表改变了,但并不代表分叉网络不会连接到原网络,因为双方的P2P协议是相同的,如果有一个节点无意中添加了另外一个网络的节点连接,那么两个节点将成功握手,并将对方添加到节点地址池。不仅如此,双方节点还会将自己节点里的地址分享给对方,进而造成双边网络节点池互相污染。关于这个问题,慢雾此前曾单独披露过《冲突的公链!来自P2P协议的异形攻击漏洞》。

为了解决地址池互相污染的问题,需要在通信协议上做网络识别。早期的以太坊并不支持网络分隔,但后续的版本中在协议里加入了NetworkID做为网络区分的标志,NetworkID通常是每个链的ChainID,例如以太坊主网的NetworkID和ChainID都为1,而ETHW初始版本中并未对NetworkID进行分叉,可能存在异形攻击漏洞。

政策 | 中共四川省委关于积极探索区块链技术发展应用的决定:中共四川省委十一届三次全体会议经研究,作出若干决定,其中包括:抢占数字经济发展制高点。积极探索增强现实(AR)、区块链技术发展应用。[2018/7/2]

在比特币网络中,使用的是Magic值来标识不同的网络,通常在chainparams里进行定义,例如比特币主网值为F9BEB4D9,测试网值为FABFB5DA。

共识层

1、交易隔离

通常与区块链交互时,我们需要用自己的私钥签署一笔交易,随后这笔交易被广播到网络,并被矿工或者出块节点打包到区块中。但如果区块链出现分叉,这笔交易可能会被两个网络分别打包到不同的区块当中,假设这是一笔原链上的转账,那么分叉链上也会有相同的一笔转账,显然这是一个非预期行为,会造成资产损失。

这时就需要对交易进行重放保护,在早期以太坊的版本中没有做这样的保护,后来EIP155之后在交易结构中加入了ChainID,确保用户签署的交易只用于当前网络。如果对以太坊进行分叉,那么也需要对ChainID进行重新定义,当然这并不是只修改配置里的ChainID这么简单,因为分叉链需要对旧的区块做兼容,所以需要在分叉高度之后使用新的ChainID,才能保证分叉链正常运行。

比特币的交易结构中不存在ChainID,那么它是如何做重放保护的呢?比特币使用了一种叫做UTXO的模型,简单说它是对一笔交易进行花费,而不是对账号进行花费,通常全新启动的网络不会存在相同的两笔交易,也就不存在重放的场景。

但是在硬分叉的情况下,还是会存在交易重放的问题,例如2017年的BCH分叉以及后来的BSV分叉。BCH通过在交易数据签名添加SIGHASH_FORKID(0x40),使得BCH上的交易和BTC的交易不再互相兼容,从而达到重放保护的目的。

2、算力调整

在分叉前,原链占有全网所有的算力,那么依据PoW共识算法,它的出块计算难度也是比较高的。分叉后,算力分散到不同的区块链上,那么分叉链由于共识不足通常无法获得足够的算力去生产新的区块,区块的增长会陷入停滞。这时有必要降低分叉后的初始计算难度,给分叉链赢得一个快速调整算力的时间窗口。

3、防范51%攻击

网络和交易都隔离开了,区块链分叉了,新区块顺利产出,一切都看似正常。然而安全问题依旧突出,它依旧存在一种更普遍、更难以防御的攻击:51%攻击。

挖矿是逐利的,当出现分叉币时,哪边的挖矿收益高矿工就会把算力切换到哪个网络,但现实是分叉币往往币价低,导致整体的算力十分低。以ETHW分叉为例,我们从2miners上看到,原ETH网络算力峰值最高超过900TH/s,而在写稿时ETHW的算力只有30TH/s左右,大量算力消失并不是好事,它随时可以对ETHW发起51%攻击。

对于这种51%攻击的防范几乎没有什么很好的方法,只能通过增加确认数来防范。

应用层

我们把建立在交易上的应用,如基于虚拟机的智能合约,统归为应用层。区块链在分叉时,也会对运行在区块链上的应用产生巨大影响。

1、签名重放

签名重放与上文提到的交易重放是相同道理的,有一些合约,例如GnosisSafe,它会在合约里验证用户的签名,如果签名里没有包含ChainID,那么这个签名非常可能可以在两个链上重放,导致资产损失。

2、预言机失效

分叉后的区块链多数智能合约依旧可以正常运行,例如Token合约、AMM合约,这些自运行系统不依赖于链下数据就可以稳定运行,但类似MakerDAO等借贷系统,高度依赖预言机的价格数据,在失去链下喂价支持后,它将无法继续运行下去。

3、价格剧变

区块链分叉了,一个应用同时运行在两个链上,用户该使用哪个链上的应用?哪个算是“正统”的呢?这个问题又回到了共识上,通常哪个区块链拥有正统的共识,那么它上面的资产就会保留原有的价值共识,而另一个区块链上的资产会在瞬间失去价值。

这种价格上的剧烈变化,会导致DeFi应用彻底崩溃,借贷应用永远无法平仓,有一些有识之士会抓住分叉的时间窗口,把“归零”的资产通过AMM等应用兑换成主链代币,从而保留了一些价值,在ETHW分叉事件中,我们观察到了大量分叉链上的套利行为。

总结

至此,我们从网络层、共识层和应用层对区块链分叉的安全性进行了分析,可以看到其中存在的技术风险,对于分叉我们需要十分审慎地对待。并且,不少分叉的背后不仅仅是技术变革的需要,有的可能存在商业上的直接利益,例如发起方在分叉中直接获取大量的分叉币,这些都需要用户准确认识,避免不必要的损失。

区块链是一种去中心化的系统,它的升级不依赖于单一个人或组织,因此分叉在区块链里难以避免,虽然给社区用户带来混乱,但也促进了系统向前发展以更好地服务社会。

标签:区块链ChainETH区块链工程专业学什么区块链存证怎么弄区块链技术发展现状和趋势Chain币是什么币ETH钱包地址ETH挖矿app下载Etherael指什么寓意

Ethereum热门资讯
万字详述 Web3 彻底颠覆品牌行业的底层叙事

序言 尽管Web3+品牌是一个被普遍看好的方向,但目前缺乏一个从底层逻辑上完全不同于Web2的叙事逻辑,Web3品牌在当前现状更多以营销策略的方式进行尝试,但是由于缺乏一个根本性的叙事.

1900/1/1 0:00:00
NFTFi终极指南:围绕NFT出现了一个充满活力和创新的子市场

什么是NFTFi? NFT是一种投资还是一种数字收藏品——对于那些活跃在行业的人来说,这是我最喜欢的问题之一。建设者倾向于“不是投资”,因为,美国SEC主席GaryGensler正在看着你.

1900/1/1 0:00:00
zkML:zk+机器学习 新兴项目和基础设施

通过zkSNARKs证明机器学习模型推理将成为这个十年智能合约发展最重要的进步之一。这一发展开辟了一个令人兴奋的广阔设计空间,允许应用程序和基础设施发展成更复杂智能的系统.

1900/1/1 0:00:00
应用链如何成为 Web3 的“潜力链”?

什么是应用链? 区块链最初是围绕货币和金融诞生的。随着数字资产交易的风生水起,区块链行业开始将目光投向艺术、游戏和音乐等领域的应用开发。应用程序的扩展需要强大的、可定制性的业务模型做支撑.

1900/1/1 0:00:00
未来Web3新篇章 VSAP对交易所、金融市场和TradFi的三重影响

引言 随着虚拟货币市场的快速发展,越来越多的人开始投资和交易虚拟货币,但由于虚拟货币市场的特殊性质和高风险性,监管部门对于中心化虚拟货币交易所的监管要求也越来越严格.

1900/1/1 0:00:00
杨民道:BendDAO流动性危机对DeFi和NFT行业有何启示

近日基于资金池的NFT借贷协议BendDAO借贷利率已超过100%,因蓝筹NFT如BAYC价格下跌引发清算,BendDAO的ETH一直在净流出,导致流动性危机.

1900/1/1 0:00:00