织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 区块链

为什么Compound选择使用Substrate进行独立链的开发(5)

时间:2021-06-11 17:04来源:未知 作者:admin 点击:
可替换的密码学库 Substrate 同时支持几种密码学曲线: ECDSA Ed25519 SR25519 同时支持几种 Hash: Blake2 xxHash 开发者可根据自己的需要选择使用。如果没有你想要

可替换的密码学库

  Substrate 同时支持几种密码学曲线:

  •   ECDSA

  •   Ed25519

  •   SR25519

  同时支持几种 Hash:

  •   Blake2

  •   xxHash

  开发者可根据自己的需要选择使用。如果没有你想要的,按照它的架构为其添加新的曲线和 Hash 函数也不难。

层次丰富的 Account 系统

  Substrate 的 Account Key 分三个层次:

  •   Stash Key

  •   Controller Key

  •   Session Keys

  Stash Key 是用来存资金的账户,其私钥部分应该尽可能安全地存储在冷钱包中。Controller Key用来控制 Validator 的参数,也是 Stash Key 的一个中间代理账户,在更新验证人集合时非常有用。Session Keys 用来对共识相关的消息进行签名。Session Keys 可以有多个,每一个都有自己专门的用途,一般可组合在一起使用,如:

tWEEDK4bYHzhSFxeF7FwbPqvkZvVjJPYyl6KN5yf.png

  上述代码将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 为出块提供了以下几种算法:

  •   Aura:slot 模式,在一个已知的 authority set 中,使用 round robin 模式轮流出块

  •   Babe:slot 模式,在一个已知的 authority set 中,使用可验证随机函数 VRF 随机选择出块节点(每个 slot 可能不止一个出块人)

  •   Pow:工作量证明出块

  这几种出块算法,如果没有 Finalize Gadget 配合,只能做到概率性敲定(finalization),而无法做到确定性敲定。Substrate 提供了 Grandpa 这个 Finalize Gadget,用于确定性敲定。

  出块算法与敲定算法可以自由配合使用。于是有 Aura/Grandpa, Babe/Grandpa, 甚至 Pow/Grandpa 这几种组合。而在不需要确定性敲定的场景下,当然也可以不使用 Grandpa。Substrate 给了开发者充分的自由。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容