CheckGenesis用例

时间:2019-10-21 18:52:08

标签: substrate

在今天的基础协作学习中,出现了 CheckGenesis SignedExtension 隐含内容(有关验证的讨论,请参见this riot conversation)。 回到第一原则, CheckGenesis 的用例是什么?

1 个答案:

答案 0 :(得分:0)

当用户向基于Substrate的区块链提交交易时,该交易会附加额外的签名数据,以确保将其应用于用户预期的正确链状状态。您可以在node template

中查看附加了哪些其他签名数据

CheckGenesis的目的是确保将事务提交到正确的链,而不是其他链。如果没有CheckGenesis,则可能会发生以下攻击。

爱丽丝在双方都常用的链上向鲍勃支付了一些代币。 交易按预期进行,Bob收到了令牌。 鲍勃注意到爱丽丝在另一条链上重复使用了她的钥匙。 因此,他也将她的交易提交到第二条链。 交易也在第二条链上进行,鲍勃收到第二笔款项。

通过在签名数据中引用交易打算使用的链,爱丽丝可以防止这种攻击。

作为加密建议,通常不应在应用程序之间重用密钥。并非所有的区块链都基于Substrate,也不是所有的链都包含此检查。