Substrate 使用多组公/私钥对来代表网络的参与者。
区块链系统的参与者角色各异,例如从验证人到普通用户。
举个例子,Substrate 节点使用 “提名权益证明”(NPoS)算法来选择验证人。验证人和提名人可能拥有大量资金,因此 Substrate 的 Stake 模块引入了帐户抽象,以帮助确保资金的尽可能安全。
这些抽象账户是:
存储密钥(Stash keys): 存储账户的作用是持有大量资金。它的私钥应该存放在冷钱包中,保证尽可能安全。
控制密钥(Controller keys): 控制帐户代表存储帐户作出选择,例如付款偏好,但应仅持有少量资金来支付交易费用。它的私钥应该保持安全,因为其会影响验证人设置,但私钥会在维护验证人时定期使用。
多个波卡项目入驻SubDAO测试网:据官方消息,SubDAO已与Crust、Phala、StaFi、Litentry达成战略合作,以上项目均已入驻SubDAO测试网。同时,SubDAO对入驻项目开放测试网奖励。
据悉,SubDAO是波卡DAO基础设施,提供电子协议签署、DAO社交、资产管理等工具与服务。SubDAO已获得Web3基金会官方3个Grant,并完成Huobi Ventures、OKEx Blockdream Fund、Hypershere、CMS等数十家机构以及Messari创始人Ryan Selkis在内的数百万美元融资。[2021/11/3 6:30:02]
会话密钥(Session keys): 会话密钥是保存在验证人客户端中的 “热” 密钥,用于签署某些验证人操作。他们不应该持有资金。
SubGame王庆进:未来AMM数字模型的变化会针对解决滑点问题:金色财经现场报道,4月10日,金色财经主办的共为创新大会“DeFi的创新进阶”专场于上海举办,会上SubGame发起人兼CEO王庆进演讲表示,流动性是Defi发展的重点,流动性为什么重要,因为会产生点差,滑价,会提高做单成本,AMM是通过数学函数去定义的,在AMM池两种代币的差值比较大时,滑点会非常高。未来做市的数字模型的变化会针对解决滑点问题。应用最重要的是背后的数字模型,运行逻辑完善的开发模块,可以更完善的开发Defi。[2021/4/10 20:05:16]
一个密钥对可以代表一个账户并控制资金,就像你在其他区块链中看到的普通账户一样。在 Substrate Balances 模块的语境下,这些帐户必须具有最小金额(“现有存款”)才能存在于存储中。
波卡Participation Lottery模块代码已被并入Substrate库:1月6日,波卡Polkadot官方社区PolkaWorld发文表示,Parity已经开发出了一个“Participation Lottery(参与彩票)”系统,来激励社区更多地参与链上治理。Parity工程师Shawn Tabrizi昨日宣布Participation Lottery模块代码已经被并入Substrate库中。这意味着,未来所有基于Substrate的链(包括波卡、Kusama和波卡生态里大多数的链)都可以使用这个功能来创建彩票,从而激励用户参与链上活动,如Staking、公投投票、为理事会竞选投票等。目前这个模块还未进行代码审计,是否要用于Kusama也还在讨论中。[2021/1/6 16:35:01]
帐户密钥是通用化定义的,并在 runtime 中具体化。
动态 | Substratum项目团队耗尽1380万美元ICO资金 团队转移到田纳西州:据ambcrypto 9月10日消息,Substratum项目团队耗尽之前1380万美元的ICO资金,团队宣布将转移到田纳西州。[2019/9/10]
继续我们存储和控制帐户的例子,这些帐户的密钥通过其预期用途进行区分,而不是通过任何底层的加密学差异进行区分。创建存储或控制密钥时,还支持普通帐户密钥支持的所有加密。
存储密钥(Stash keys)是定义存储帐户的公/私钥对。该帐户就像一个 “储蓄帐户”,因为您不应经常使用该帐户进行交易。因此,应以最高安全性来对待其私钥,例如在安全或硬件安全层中进行保护。
由于存储密钥保持离线状态,因此它将指定一个控制帐户以利用存储帐户资金的权重做出非支出决策。它还可以指定一个代理帐户来代表其投票参与治理。
声音 | Substratum首席执行官:Substratum并没有陷入经济困境:据coindesk报道,Substratum首席执行官Justin Tabb最近对该项目是否真的像人们所认为的那样陷入了经济困境做出了回应。Tabb表示,事实并非如此,Substratum已经开展了一年半的业务,即使在严峻的加密市场,该项目“很幸运能够在大部分时间有资金可转换为法币用于建立公司”。Tabb表示,将能够收回一定比例的以太坊,一旦市场在几个月内转向牛市,该公司的立场会更好,将能够进一步获得时间继续构建其打算建立的产品。预计将在明年获得积极的现金流。[2019/3/13]
控制密钥(Controller keys)是定义控制帐户的公/私钥对。在 Substrate 的 NPoS 模型语境中,控制密钥将表示一个人想要验证或提名的意图。
控制密钥用于设置诸如奖励接收地址之类的偏好,对于验证人来说还用于设置其会话密钥。控制帐户只需要支付交易费用,因此只需要很少的资金。
控制密钥永远不能用于从其存储帐户花费资金。但是,控制密钥的行为可能会导致 slash,因此仍应妥善保管。
会话密钥(Session keys)是验证人用来签署与共识相关的消息的 “热密钥”。它的本意不是控制资金的帐户密钥,而应该仅用于其本来的目的。它们可以定期更改;您的控制账户仅需要通过签名会话公钥来创建证书,然后通过外部信息广播该证书。会话密钥也是通用定义,并在 runtime 中具体化。
要创建会话密钥,验证人的操作者必须证明密钥代表其存储帐户(stake)和提名人。为此,他们通过使用其控制密钥对密钥进行签名来创建证书。然后,他们通过在链上的事务中发布会话证书来通知链此密钥代表其控制密钥。
Substrate 提供了 Session module,该模块允许验证人管理其会话密钥。
你可以声明任意数量的会话密钥。例如,默认的 Substrate 节点就用了三个:BABE、GRANDPA 和 “I'm Online”。其他链可能有更多或更少的会话密钥,具体取决于链希望其验证人执行的操作。
这些不同的会话密钥可以使用相同的密码学,但是在整个 runtime 逻辑中,其用途完全不同。为了防止将错误的密钥用于错误的操作,Rust 强类型会包装这些密钥,使它们彼此不兼容,并确保仅将它们用于原有目的。
如果会话密钥被泄露,攻击者可能会犯下造成 Slash 的行为。会话密钥应定期(例如每个会话)通过 the `rotate_keys` RPC 更改,以提高安全性。
了解更多 Substrate 中使用的密码学。
学习创建本地网络和生成密钥的教程。
Staking module: https://substrate.dev/rustdocs/v2.0.0-rc5/pallet_staking/index.html
Balances 模块: https://substrate.dev/rustdocs/v2.0.0-rc5/pallet_balances/index.html
Session module: https://substrate.dev/rustdocs/v2.0.0-rc5/pallet_session/index.html
the rotate_keys RPC: https://substrate.dev/rustdocs/v2.0.0-rc5/sc_rpc/author/trait.AuthorApi.html#tymethod.rotate_keys
Substrate 中使用的密码学: https://substrate.dev/docs/en/knowledgebase/advanced/cryptography
创建本地网络和生成密钥的教程: https://substrate.dev/docs/en/tutorials/start-a-private-network/
session keys runtime API: https://substrate.dev/rustdocs/v2.0.0-rc5/sp_session/trait.SessionKeys.html
Substrate 节点 runtime 中的会话密钥: https://substrate.dev/rustdocs/v2.0.0-rc5/node_runtime/struct.SessionKeys.html
substrate_application_crypto: https://substrate.dev/rustdocs/v2.0.0-rc5/sp_application_crypto/index.html
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。