新闻详情

科普:区块链分叉带来的挑战

明明 2023-05-09 8

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

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

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

科普:区块链分叉带来的挑战

网络层

由于分叉链是独立于原网络的区块链,首先需要在网络层(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 分叉事件中,我们观察到了大量分叉链上的套利行为。

总结

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

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



免责声明:所提供的信息不是交易建议,www.hao76.com对根据本页提供的信息进行的任何投资不承担任何责任。本文内容仅供参考,风险自担!

  • 币种
  • 全球指数(¥)
  • 24H涨幅12
  • BTC
    BTC
    710471.707108
    $98107.060000
    +4.22%
  • ETH
    ETH
    24292.038756
    $3354.420000
    +8.95%
  • USDT
    USDT
    7.248681
    $1.000950
    +0.01%
  • USDC
    USDC
    7.233110
    $0.998800
    -0.01%
  • BNB
    BNB
    4503.820256
    $621.920000
    +2.10%
  • BUSD
    BUSD
    7.243973
    $1.000300
    -0.01%
  • XRP
    XRP
    8.553290
    $1.181100
    +8.11%
  • ADA
    ADA
    5.737678
    $0.792300
    -2.10%
  • SOL
    SOL
    1842.096666
    $254.370000
    +7.98%
  • DOGE
    DOGE
    2.803880
    $0.387180
    +2.33%
  • DOT
    DOT
    42.436948
    $5.860000
    +3.13%
  • DAI
    DAI
    7.378670
    $1.018900
    +0.12%
  • TRX
    TRX
    1.439670
    $0.198800
    +1.68%
  • SHIB
    SHIB
    0.000178
    $0.000025
    +2.58%
  • AVAX
    AVAX
    259.618530
    $35.850000
    +6.23%
  • WBTC
    WBTC
    708748.013872
    $97869.040000
    +3.99%
  • LEO
    LEO
    64.167760
    $8.860747
    +6.04%
  • MATIC
    MATIC
    2.747539
    $0.379400
    +1.88%
  • UNI
    UNI
    65.798995
    $9.086000
    +2.86%
  • FTT
    FTT
    17.528053
    $2.420400
    +11.73%
  • LTC
    LTC
    641.261390
    $88.550000
    +5.04%
  • CRO
    CRO
    1.353758
    $0.186937
    +4.73%
  • LINK
    LINK
    107.540730
    $14.850000
    +2.82%
  • XLM
    XLM
    1.765551
    $0.243800
    -1.31%
  • NEAR
    NEAR
    41.213084
    $5.691000
    +2.67%
  • ATOM
    ATOM
    45.869561
    $6.334000
    +0.96%
  • XMR
    XMR
    859.601660
    $118.700000
    -0.68%
  • ALGO
    ALGO
    1.548297
    $0.213800
    +0.47%
  • ETC
    ETC
    197.049378
    $27.210000
    +6.91%
  • BCH
    BCH
    3514.445540
    $485.300000
    +10.18%
  • VET
    VET
    0.231013
    $0.031900
    +0.30%
  • FLOW
    FLOW
    5.134436
    $0.709000
    +4.76%
  • ICP
    ICP
    66.863539
    $9.233000
    +1.52%
  • MANA
    MANA
    2.954654
    $0.408000
    +3.74%
  • SAND
    SAND
    2.483937
    $0.343000
    +2.61%
  • APE
    APE
    8.349795
    $1.153000
    +5.29%
  • XTZ
    XTZ
    7.560439
    $1.044000
    -1.93%
  • HBAR
    HBAR
    0.884658
    $0.122160
    -0.87%
  • FIL
    FIL
    32.580858
    $4.499000
    +5.96%
  • AXS
    AXS
    41.886571
    $5.784000
    +4.69%
  • THETA
    THETA
    12.318302
    $1.701000
    +2.98%
  • EGLD
    EGLD
    217.181582
    $29.990000
    +4.28%
  • TUSD
    TUSD
    7.241076
    $0.999900
    +0.13%
  • HNT
    HNT
    33.819206
    $4.670000
    +0.59%
  • BSV
    BSV
    491.578826
    $67.880751
    +0.12%
  • EOS
    EOS
    4.757138
    $0.656900
    +4.40%
  • AAVE
    AAVE
    1206.049372
    $166.540000
    +5.44%
  • MKR
    MKR
    11854.826600
    $1637.000000
    +7.37%
  • USDP
    USDP
    7.237455
    $0.999400
    +0.01%
  • QNT
    QNT
    625.691520
    $86.400000
    -1.97%
  • KCS
    KCS
    79.899183
    $11.033056
    +1.51%
  • ZEC
    ZEC
    327.908704
    $45.280000
    +6.83%
  • BTT
    BTT
    0.020110
    $0.002777
    +5.44%
  • MIOTA
    MIOTA
    1.242484
    $0.171571
    +2.41%
  • XEC
    XEC
    0.000320
    $0.000044
    +1.27%
  • OKB
    OKB
    329.480142
    $45.496996
    +4.35%
  • USDN
    USDN
    0.158814
    $0.021930
    -1.77%
  • RUNE
    RUNE
    38.685696
    $5.342000
    +5.00%
  • USDD
    USDD
    7.263574
    $1.003007
    +0.09%
  • HT
    HT
    4.666127
    $0.644333
    +1.76%
  • KLAY
    KLAY
    0.908846
    $0.125500
    +4.72%
  • FTM
    FTM
    5.119953
    $0.707000
    +6.25%
  • GRT
    GRT
    1.594644
    $0.220200
    -3.01%
  • NEO
    NEO
    94.215818
    $13.010000
    +5.13%
  • BAT
    BAT
    1.554814
    $0.214700
    +3.91%
  • CHZ
    CHZ
    0.538066
    $0.074300
    +2.03%
  • GMT
    GMT
    1.207208
    $0.166700
    +7.08%
  • WAVES
    WAVES
    7.792177
    $1.076000
    -0.80%
  • PAXG
    PAXG
    19408.024000
    $2680.000000
    +1.20%
  • CRV
    CRV
    2.948137
    $0.407100
    +7.81%
  • LRC
    LRC
    1.310766
    $0.181000
    +5.07%
  • STX
    STX
    13.860805
    $1.914000
    +5.24%
  • ZIL
    ZIL
    0.149109
    $0.020590
    +3.38%
  • DASH
    DASH
    209.794946
    $28.970000
    +5.29%
  • ENJ
    ENJ
    1.451257
    $0.200400
    +4.57%
  • USTC
    USTC
    0.172862
    $0.023870
    +8.18%
  • CAKE
    CAKE
    14.041850
    $1.939000
    +2.56%
  • KSM
    KSM
    151.715710
    $20.950000
    +4.31%
  • CELO
    CELO
    5.080123
    $0.701500
    +7.27%
  • FEI
    FEI
    7.112467
    $0.982141
    +0.78%
  • KAVA
    KAVA
    3.338470
    $0.461000
    +4.45%
  • MINA
    MINA
    4.770898
    $0.658800
    +3.56%
  • CVX
    CVX
    20.284282
    $2.801000
    +18.53%
  • AMP
    AMP
    0.033392
    $0.004611
    +3.51%
  • AR
    AR
    129.555802
    $17.890000
    +3.20%
  • 1INCH
    1INCH
    2.423106
    $0.334600
    +4.09%
  • GALA
    GALA
    0.208347
    $0.028770
    +3.19%
  • XEM
    XEM
    0.115579
    $0.015960
    +2.66%
  • HOT
    HOT
    0.015360
    $0.002121
    +5.71%
  • NEXO
    NEXO
    9.247779
    $1.277000
    +4.23%
  • COMP
    COMP
    390.622692
    $53.940000
    +2.09%
  • XDC
    XDC
    0.305231
    $0.042148
    +0.74%
  • DCR
    DCR
    100.443766
    $13.870000
    +3.95%
  • QTUM
    QTUM
    23.485157
    $3.243000
    +8.75%
  • GNO
    GNO
    1919.077000
    $265.000000
    +6.69%
  • GT
    GT
    71.918278
    $9.930995
    +2.82%
  • KDA
    KDA
    4.965702
    $0.685700
    +2.04%
  • XYM
    XYM
    0.151018
    $0.020854
    +0.57%
  • BTG
    BTG
    127.817770
    $17.650000
    +2.13%
  • SNX
    SNX
    13.346637
    $1.843000
    +9.75%
  • OMG
    OMG
    2.773609
    $0.383000
    +6.41%
  • LSK
    LSK
    7.495263
    $1.035000
    +2.95%
  • REP
    REP
    34.253714
    $4.730000
    +4.50%
  • ZRX
    ZRX
    3.077765
    $0.425000
    +1.86%
  • ICX
    ICX
    1.211553
    $0.167300
    +5.05%
  • DGB
    DGB
    0.074808
    $0.010330
    -9.14%
  • BTS
    BTS
    0.039106
    $0.005400
    +5.57%
  • STEEM
    STEEM
    1.552642
    $0.214400
    +3.26%
  • KMD
    KMD
    1.954562
    $0.269900
    +1.74%
  • BTM
    BTM
    0.033464
    $0.004621
    -1.62%
  • SC
    SC
    0.043212
    $0.005967
    +0.39%
  • XVG
    XVG
    0.044733
    $0.006177
    +2.76%
  • SNT
    SNT
    0.257084
    $0.035500
    +2.43%
  • PPT
    PPT
    1.160365
    $0.160232
    +31.92%
  • GNT
    GNT
    2.583049
    $0.356686
    +3.00%
  • ARDR
    ARDR
    0.695430
    $0.096030
    +0.79%
  • ARK
    ARK
    4.235005
    $0.584800
    +2.92%
  • MAID
    MAID
    3.574569
    $0.493602
    +3.93%
  • FCT
    FCT
    5.011895
    $0.692079
    +0.00%
  • QASH
    QASH
    0.090326
    $0.012473
    +6.14%
  • HSR
    HSR
    0.133087
    $0.018378
    +3.71%
  • ELF
    ELF
    3.022727
    $0.417400
    -0.05%
  • WTC
    WTC
    0.074591
    $0.010300
    +8.36%
  • PIVX
    PIVX
    1.681546
    $0.232200
    +2.95%
  • XZC
    XZC
    32.197043
    $4.446000
    +3.39%
  • NAS
    NAS
    0.041500
    $0.005731
    +0.47%
  • AION
    AION
    0.068290
    $0.009430
    +9.11%
  • POWR
    POWR
    1.843038
    $0.254500
    +3.05%
  • BNT
    BNT
    4.779588
    $0.660000
    +7.61%
  • DGD
    DGD
    0.000000
    $0.000000
    +0.00%
  • RDD
    RDD
    0.000395
    $0.000055
    -0.26%
  • SYS
    SYS
    0.765458
    $0.105700
    +7.15%
  • ENG
    ENG
    0.091222
    $0.012597
    +5.24%
  • SAN
    SAN
    0.822734
    $0.113609
    +7.90%
  • TFUEL
    TFUEL
    0.489328
    $0.067570
    +1.43%
  • PAY
    PAY
    0.050442
    $0.006965
    +2.34%
  • NXT
    NXT
    0.007730
    $0.001067
    -0.18%
  • GBYTE
    GBYTE
    53.596738
    $7.401024
    +2.39%
  • GAS
    GAS
    35.549996
    $4.909000
    +3.26%
  • CVC
    CVC
    0.998644
    $0.137900
    +0.89%
  • NXS
    NXS
    0.189849
    $0.026216
    +1.33%
  • FUN
    FUN
    0.024984
    $0.003450
    +27.18%
  • CND
    CND
    0.001797
    $0.000248
    +0.00%
  • NEBL
    NEBL
    2.570839
    $0.355000
    +0.00%
  • RDN
    RDN
    0.037059
    $0.005117
    -1.86%
  • QSP
    QSP
    0.044792
    $0.006185
    +19.19%
  • EMC
    EMC
    0.676170
    $0.093370
    +2.15%
  • SALT
    SALT
    0.047047
    $0.006497
    -7.56%
  • POE
    POE
    0.000000
    $0.000000
    +0.00%
  • VEE
    VEE
    0.059889
    $0.008270
    +2.03%
  • XDN
    XDN
    0.000122
    $0.000017
    -6.47%
  • SUB
    SUB
    0.005142
    $0.000710
    -0.17%
  • GAME
    GAME
    0.003117
    $0.000430
    +20.73%
  • WAX
    WAX
    0.300954
    $0.041558
    +2.44%
  • LUNA
    LUNA
    3.123388
    $0.431300
    +7.74%
  • OP
    OP
    15.113637
    $2.087000
    +25.85%
  • INJ
    INJ
    177.206846
    $24.470000
    +3.87%
  • LDO
    LDO
    8.972590
    $1.239000
    +10.48%
  • MNT
    MNT
    5.712190
    $0.788780
    +9.78%
  • RNDR
    RNDR
    50.909854
    $7.030000
    -5.26%
  • TIA
    TIA
    38.475683
    $5.313000
    +5.88%
  • ARB
    ARB
    5.707263
    $0.788100
    +17.42%
  • SEI
    SEI
    3.490548
    $0.482000
    +3.21%
  • BEAM
    BEAM
    0.472165
    $0.065200
    +0.98%
  • FLR
    FLR
    0.145682
    $0.020117
    +2.00%
  • STRK
    STRK
    3.645522
    $0.503400
    +10.33%
  • ORDI
    ORDI
    274.174548
    $37.860000
    +6.10%
  • AKT
    AKT
    27.528220
    $3.801295
    -1.29%
  • PYTH
    PYTH
    2.982173
    $0.411800
    -0.82%
  • BLUR
    BLUR
    1.814071
    $0.250500
    +4.87%
  • 1000SATS
    1000SATS
    0.001735
    $0.000240
    +4.46%
  • DYDX
    DYDX
    9.396960
    $1.297600
    +6.09%
  • CFX
    CFX
    1.123203
    $0.155100
    +9.74%
  • WOO
    WOO
    1.679373
    $0.231900
    +9.49%
  • DYM
    DYM
    12.158982
    $1.679000
    +14.00%
  • ASTR
    ASTR
    0.472165
    $0.065200
    +1.72%
  • RON
    RON
    10.282303
    $1.419855
    +5.65%
  • FET
    FET
    9.139152
    $1.262000
    +0.20%
  • AGIX
    AGIX
    4.447189
    $0.614100
    -0.49%
  • OSMO
    OSMO
    3.922883
    $0.541700
    -0.15%
  • BONK
    BONK
    0.000382
    $0.000053
    +4.62%
  • ROSE
    ROSE
    0.595710
    $0.082260
    +5.72%
  • AXL
    AXL
    5.177887
    $0.715000
    +4.87%
  • AVAV
    AVAV
    0.000000
    $0.000000
    -0.42%
  • ALT
    ALT
    0.833459
    $0.115090
    +8.52%
  • PIXEL
    PIXEL
    1.417220
    $0.195700
    +7.89%
  • JUP
    JUP
    8.097781
    $1.118200
    +46.25%
  • JTO
    JTO
    23.485157
    $3.243000
    +20.47%
  • MANTA
    MANTA
    6.097596
    $0.842000
    +11.71%
  • XAI
    XAI
    1.795966
    $0.248000
    +11.47%
  • PORTAL
    PORTAL
    2.226129
    $0.307400
    +6.50%
  • WLD
    WLD
    16.351984
    $2.258000
    +5.70%
  • ARKM
    ARKM
    15.403309
    $2.127000
    -0.54%
  • PENDLE
    PENDLE
    37.700811
    $5.206000
    +4.86%
  • LOKA
    LOKA
    1.420841
    $0.196200
    +3.91%
  • SUI
    SUI
    26.019787
    $3.593000
    +0.86%
  • MAV
    MAV
    1.381735
    $0.190800
    +9.27%
  • APT
    APT
    86.756764
    $11.980000
    +0.49%
  • RDNT
    RDNT
    0.446819
    $0.061700
    +10.02%
  • HFT
    HFT
    1.450533
    $0.200300
    +9.20%
  • GAL
    GAL
    18.408656
    $2.542000
    +2.08%
  • ANC
    ANC
    0.228189
    $0.031510
    -2.66%
  • HIGH
    HIGH
    10.153004
    $1.402000
    +5.84%
  • MC
    MC
    3.520239
    $0.486100
    +5.33%
  • PEPE
    PEPE
    0.000150
    $0.000021
    +9.78%
  • BICO
    BICO
    2.103743
    $0.290500
    +7.80%
  • BB
    BB
    2.215267
    $0.305900
    +8.88%
  • TRB
    TRB
    494.904612
    $68.340000
    +6.23%
  • AEVO
    AEVO
    2.541872
    $0.351000
    +5.58%
  • PONKE
    PONKE
    4.806189
    $0.663673
    +1.65%
  • TON
    TON
    39.670580
    $5.478000
    +2.73%
  • IOTA
    IOTA
    1.243417
    $0.171700
    +0.00%

Copyright © 2024 Hao76.com All Rights Reserved

玺果公司  版权所有