资讯

贝克链|区块链深度重组,最受伤的是谁?

作者:admin 2021-09-15 我要评论

文 | Bruce Lee (转载请注明出处)序前几天,BCH 的某个分叉币在主网直接测试大块,结果因为技术上还没达到水准,导致了 6 个区块的深度重组。事后,...

文 | Bruce Lee (转载请注明出处)


前几天,BCH 的某个分叉币在主网直接测试大块,结果因为技术上还没达到水准,导致了 6 个区块的深度重组。事后,该分叉币的粉丝出来发表声明,声称该次事故没有造成用户的任何资金损失,所有的交易最后还是被正常打包了,虽然获得确认的时间打乱了,但是并没有影响。


【单就本次事故而言,交易所受到的影响最大】


在该分叉币发生重组后,火币交易所很快发布了公告,暂停了该币的充值提现操作。为什么火币会这么做?

因为火币之前对该币充值是要求 5 个确认入账,而这次重组的区块数却高达 6 个。这意味着在重组期间,某些充值到火币的交易本来已经显示 5 个确认入账了,但是又突然变成了 0 个确认,这会造成火币的账目混乱。所以火币需要立刻进行钱包维护,人工核对账目。

鉴于该币经常会在主网做这种事情,以后再次发生深度重组的概率很大,因此不少交易所纷纷大幅度提高了该币的充值确认数。


【如果未来再次出现深度重组,谁最受伤?】


该分叉币这次深度重组没有让用户出现资金损失,其实是一种幸运。因为该币的智能合约方案还没上线。

该币的智能合约方案和 BCH 的虫洞协议是比较类似的,原理都是把数据保存在 op_return 里面,并且是基于帐户制,才可以实现类似以太坊那样的复杂的智能合约功能。实际上比特系的分支要实现高级智能合约功能,只有这么一条路径可走,各种解决方案只是细节上的不同。

这种智能合约不是基于 UTXO 的,因此无法支持 0 确认。上一个操作必须获得确认之后,才可以进行下一个操作,否则就可能会出错。

我们来设想一个例子 :

如果未来某天该币的某个合约地址发生了 6 次 token 交易,初始余额为 0

第一次 转入 100 个

第二次 转出 50 个

第三次 转出 30 个

第四次 转入 200 个

第五次 转出 150 个

第六次 转出 40 个

那么该合约地址的 token 余额就是

100-50-30+200-150-40=30

假设在此期间,发生了区块重组,上述 6 次交易的顺序被打乱了,变成了

第一次 转入 100 个

第二次 转出 40 个

第三次 转出 150 个

第四次 转入 200 个

第五次 转出 30 个

第六次 转出 50 个

当合约运行到第三步的时候,结果就是 100-40-150 =
-90,此时这笔交易就会被合约协议判定为无效。因为任何地址的余额都不可以为负数,如果允许负数就意味着可以无中生有增发币了。

这样后面第四,五,六步的交易就会统统被判定为无效。

因此重组完成,必然会有人永久性的失去资金。这类交易是区块重组的最大受害者。


【BCH 的 SLP token 不会受到重组影响】


既然上述例子里面提到了 token,也就不得不说一下 BCH 的 token 协议 SLP 了。SLP 的强大之处就在于可以支持 0 确认交易,SLP 的余额信息都是和 UTXO 绑定的,因此就算 BCH 的区块链发生了重组,SLP 的交易也不受影响。

结束语


原本该分叉币的粉丝还宣称要继续在主网制造大块的,但是在该币的开发者请求下,他们放弃了这一行为。他们似乎也意识到了,现在强行打包上百兆的大块只会让主网再一次发生深度重组。把主链当玩具一样耍只会让正经的商业应用敬而远之。

相关文章
  • 贝克链|区块链深度重组,最受伤的是谁

    贝克链|区块链深度重组,最受伤的是谁

  • swftc|国有大型银行利用区块链技术管理

    swftc|国有大型银行利用区块链技术管理

  • 从DAO、DCR到Polkadot 去中心化社区治

    从DAO、DCR到Polkadot 去中心化社区治

  • 未来加密数字世界的操作系统:智能合约

    未来加密数字世界的操作系统:智能合约