可替换的密码学库 Substrate 同时支持几种密码学曲线:
同时支持几种 Hash:
开发者可根据自己的需要选择使用。如果没有你想要的,按照它的架构为其添加新的曲线和 Hash 函数也不难。 层次丰富的 Account 系统Substrate 的 Account Key 分三个层次:
Stash Key 是用来存资金的账户,其私钥部分应该尽可能安全地存储在冷钱包中。Controller Key用来控制 Validator 的参数,也是 Stash Key 的一个中间代理账户,在更新验证人集合时非常有用。Session Keys 用来对共识相关的消息进行签名。Session Keys 可以有多个,每一个都有自己专门的用途,一般可组合在一起使用,如: 上述代码将4个独立的 Session Keys: Grandpa session key, Babe session key, ImOnline session key, AuthorityDiscovery session key 组合在一起成为一个大的 SessionKeys。 可以将 Session Keys 理解成 Validator 运行过程中的唯一标识(Identification)。Session Keys 每过一个 Session 最好更换一次,这样能最大程度保证安全性。 Substrate 通过这种分层的 Account Key 的设计,既保证了安全性,又提供了充分的灵活性,基本能覆盖所有应用场景的需求。 抽象可切换的共识引擎Substrate 设计了一套共识框架,这套共识框架非常了得。它将块的生产(proposal)与敲定(finalize)分离,同时容纳了 Nakamoto 类(只有概率性敲定,无确定性敲定)共识和 BFT 类(有确定性敲定)共识。 Substrate 为出块提供了以下几种算法:
这几种出块算法,如果没有 Finalize Gadget 配合,只能做到概率性敲定(finalization),而无法做到确定性敲定。Substrate 提供了 Grandpa 这个 Finalize Gadget,用于确定性敲定。 出块算法与敲定算法可以自由配合使用。于是有 Aura/Grandpa, Babe/Grandpa, 甚至 Pow/Grandpa 这几种组合。而在不需要确定性敲定的场景下,当然也可以不使用 Grandpa。Substrate 给了开发者充分的自由。 (责任编辑:admin) |