区块链如何切换网络

 网络   2022-10-20 21:16   36

假设要乐成分叉一条区块链并没有轻易,并非直接复制原收集的代码便可,须要施行根底的改动才华保险它安全运行,为此,咱们归纳了多少种常见的安全课题及防护方式。

收集层

因为分叉链是独立于原收集的区块链,开始须要正在收集层(P2P)施行隔断:

1、种子节点

种子节点,也称 bootnode 大概 seednode,是区块链煽动时收集开始会实验施行连贯的节点。分叉链正在煽动时开始连贯种子节点列表里的节点,进而进一步发明收集中其余的对于等节点,然后才华进一步同步区块,完毕共鸣。所以必需要改动种子节点列表,避让连贯到原收集的节点。

2、异形打击

即使种子节点列表改革了,但并没有代表分叉收集没有会连贯到原收集,由于两边的 P2P 协议是不异的,假设有一个节点无心中推广了其它一个收集的节点连贯,那么两个节点将乐成握手,并将对于方推广到节点地方池。没有仅如许,两边节点还会将自身节点里的地方瓜分给对于方,进而形成双边收集节点池互相污染。对于这个课题,慢雾此前曾经零丁表露过《辩论的公链!来自 P2P 协议的异形打击马脚》。

为领会决地方池互相污染的课题,须要正在通信协议上做收集判别。早期的以太坊并没有支柱收集分割,但后续的版本中正在协议里参加了 NetworkID 做为收集识别的记号,NetworkID 常常是每个链的 ChainID,比如以太坊主网的 NetworkID 以及 ChainID 都为 1,而 ETHW 初始版本中并未对于 NetworkID 施行分叉,大概生存异形打击马脚。

正在比特币收集中,利用的是 Magic 值来标识分歧的收集,常常正在 chainparams 里施行定义,比如比特币主网值为 F9BEB4D9,测试网值为 FABFB5DA。

共鸣层

1、买卖隔断

区块链如何切换网络

常常与区块链交互时,咱们须要用自身的私钥订立一笔买卖,随即这笔买卖被广播到收集,并被矿工大概出块节点打包到区块中。但假设区块链呈现分叉,这笔买卖大概会被两个收集不同打包到分歧的区块之中,假定这是一笔原链上 的转账,那么分叉链上也会有不异的一笔转账,昭彰这是一个非预期动作,会形成物业亏空。

这时就须要对于买卖施行重放损坏,正在早期以太坊的版本中没有做这样的损坏,以后 EIP155 之后正在买卖组织中参加了 ChainID,确保用户订立的买卖只用于现在收集。假设对于以太坊施行分叉,那么也须要对于 ChainID 施行从新定义,固然这并没有是只改动配置里的 ChainID 这么简捷,由于分叉链须要对于旧的区块做兼容,因而须要正在分叉高度之后利用新的 ChainID,才华保险分叉链一般运行。

比特币的买卖组织中没有生存 ChainID,那么它是若何做重放损坏的呢?比特币利用了一种叫做 UTXO 的模子,简捷说它是对于一笔买卖(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、出面重放

出面重放与上文提到的买卖重放是不异情理的,有一些合约,比如 Gnosis Safe,它会正在合约里验证用户的出面,假设出面里没有蕴含 ChainID,那么这个出面很是大概也许正在两个链上重放,导致物业亏空。

2、预言机作废

分叉后的区块链普遍智能合约仍然也许一般运行,比如 Token 合约、AMM 合约,这些自运行系统没有依附于链下数据就也许牢靠运行,但一致 MakerDAO 等假贷系统,高度依附预言机的代价数据,正在落空链下喂价支柱后,它将没法连续运行上来。

3、代价巨变

区块链分叉了,一个利用同时运行正在两个链上,用户该利用哪个链上的利用?哪个算是“正宗”的呢?这个课题又回到了共鸣上,常常哪个区块链拥有正宗的共鸣,那么它下面的物业就会保全原有的价值共鸣,而另一个区块链上的物业会正在霎时落空价值。

这种代价上的猛烈改变,会导致 DeFi 利用彻底溃逃,假贷利用永久没法平仓,有一些有识之士会抓住分叉的时光窗口,把“归零”的物业经过 AMM 等利用兑换成主链代币,进而保全了一些价值,正在 ETHW 分叉事宜中,咱们查看到了大度分叉链上的套利动作。

归纳

至此,咱们从收集层、共鸣层以及利用层对于区块链分叉的安全性施行了分解,也许看到个中生存的本领告急,对付分叉咱们须要十分审慎地周旋。并且,没有少分叉的面前没有仅仅是本领改革的须要,有的大概生存商业上的直接好处,比如提议方正在分叉中直接猎取大度的分叉币,这些都须要用户确切认得,避免没有须要的亏空。

区块链是一种去焦点化的系统,它的进级没有依附于简单集体或构造,所以分叉正在区块链里难以避免,虽然给社区用户带来杂乱,但也匆匆进了系统上前繁华以更好地办事社会。

本文地址:http://yz.ziyouea.com/p/37323.html
版权声明:本站文章来自网络,如有违规侵权请联系我们下架。