账户密钥
帐户密钥是用来控制资金的密钥。它们可以是:
使用Schnorr签名的普通ed25519加密算法实现
使用Schnorr签名的Schnorrkel/Ristrettosr25519变体的加密算法
对于简单签名,ed25519和sr25519在安全性上没有区别。
我们预计在可预见的未来,ed25519将得到商用HSMs更好的支持。
同时,sr25519的加密算法使实现更复杂的协议更安全。特别是,sr25519自带了许多协议的安全版本,如比特币和以太坊生态系统中常见的HDKD协议。
"Controller"和"Stash"密钥
当我们谈论“controller”和“stash”密钥时,我们通常在运行验证人或提名DOT的语境中讨论它们,但它们是所有用户都需要知道的有用概念。这两个密钥都是帐户密钥的类型。它们的区别在于它们的使用场景,而不是密码差异。上面部分中提到的所有信息都适用于这些密钥。创建新的controller或者stash密钥时,帐户密钥支持的所有加密算法都是可以选择的。
瑞士TRES集团获阿联酋自由经济区首个加密货币场外交易许可证:7月20日消息,在2020年达沃斯峰会上,DMCC(阿联酋自由经济区)宣布与CV VC和CV Labs建立战略合作伙伴关系,在迪拜推出最大的密码学、区块链和分布式账本的生态系统加密谷。
近期,迪拜加密谷正式开幕,瑞士公司TRES集团,即SIMBA存储的开发商,获得了加密货币资产交易许可证,可以用加密货币进行场外交易,以便在阿拉伯联合酋长国发展加密货币产业,截止目前,这是该国的第一个许可证。(News.bitcoin)[2021/7/20 1:04:38]
controller密钥是一个半在线的密钥,将由用户直接控制,用于提交手动extrinsics外部文件。对于验证人或提名人,这意味着controller密钥将用于开始或停止验证或提名。Controller的密钥应该有一些DOT用来支付费用,但它们不应该用来保存巨额金额或用来做长期的代币储蓄。因为他们会相对频繁地接触互联网,所以应该小心对待,偶尔可以更换一个新的账户。
在大多数情况下,stash密钥账户是一个冷钱包,存在于一个安全的、由多层硬件保护的一张纸上。它应该很少暴露在互联网上或用于提交?extrinsics外部信息。这把钥匙是用来存放大量资金的。它可以被认为是银行的储蓄账户,理想情况下只有在紧急情况下才可以使用。或者,一个更贴切的比喻是把它想象成埋藏的宝藏,藏在某个随机的岛屿上,只有最初藏它的海盗知道。
波卡Polkadot节点5月24日出现错误的问题已解决:据官方消息,5月24日,Polkadot节点因区块5202216的内存不足(OOM)错误而失败。该区块包含验证者选举的链上解决方案,该解决方案通常在链外进行计算,并且仅在未提交链下解决方案的情况下才在链上进行。由于提名者数量众多,选举使Wasm环境中分配的内存溢出。在准备解决此问题的更新时,要求验证程序将其节点软件暂时降级为包含运行时的本机(非Wasm)版本的先前版本。本机版本不受Wasm内存分配器的约束。在经过一个小时零十分钟的停机后,网络恢复了。后来,在区块5203204中,几个节点因“存储根不匹配”错误而失败。经过调查,这是由于构建本机运行时和链上Wasm运行时的编译器版本不同。此问题已得到解决,并已采取预防措施以防止将来再次发生。[2021/5/27 22:50:29]
由于stash账户处于离线状态,因此必须将其资金绑定到特定的controller账户。对于非支出行为,controller账户有stash账户资金的支持。例如,在提名、staking或投票中,controller可以用stash的weight来表示其偏好。它将永远无法实际转移或领取stash账户中的资金。但是,如果有人获取了你的controller密钥,他们可能会将其用于进行存在被slash的行为,因此你仍然应该保护它并定期更改。
The Graph宣布将索引和查询集成到Polkadot:2月26日,Web3基金会发文称,区块链数据索引项目The Graph将与Polkadot开展官方整合计划,将去中心化的数据网络扩展到Polkadot平行链基础设施中。这将支持开发人员使用The Graph在Polkadot上构建应用,并使所有参与生态系统建设的开发人员能够查询Subgraph。同时,Subgraph对所有开发者开放,以确保开发人员可以在不同的区块链上访问数据。[2021/2/26 17:55:40]
Session密钥
Sessionkeys是验证人必须保持在线才能执行网络操作的热密钥。Session密钥通常在客户端中生成,虽然他们不一定要生成。它们不是用来控制资金的,只用于有目的的用途。它们可以定期更改,你的controller账户只需要通过签署一个session公钥来创建证书,并通过一个外部extrinsic广播该证书就好了。
Polkadot有四种sessionkeys:
GRANDPA机制:ed25519
Asproex(阿波罗)于9月3日正式上线DeFi热门币种DOT、LINK、LEND、COMP:据官方消息,2020年9月3日,Asproex(阿波罗)正式上线DeFi热门币种DOT、LINK、LEND、COMP ,并于当日开通DOT/USDT、LINK/USDT、LEND/USDT、COMP/USDT交易对。开放充提时间:9月3日17:00;开放交易时间:9月3日18:00。2020年,DeFi流动性挖矿盛行,Asproex(阿波罗)已率先切入“DeFi”生态赛道,后续将为用户甄选更优质的DeFi项目,让用户安全快捷参与DeFi浪潮。
Asproex(阿波罗)作为首家离岸银行控股持牌交易平台,也是一家涵盖CTO企业通证上市的交易平台,持有5国牌照,为全球中小微企业提供融资难的解决方案,助力数字化上市。[2020/9/3]
BABE机制:sr25519
我在线:sr25519
平行链:sr25519
BABE需要适合在可验证随机函数中使用的密钥以及数字签名。Sr25519密钥具有这两种功能,因此用于BABE机制。
声音 | Polkadot创始人:计划年底上线主网 将进行第二次代币融资:以太坊联合创始人Polkadot(波卡)创始人Gavin Wood近日接受采访时表示,在面对大家非常关心的主网上线问题,Gavin Wood透露,现在的目标仍是在今年年底前推出。团队希望在今年7月接近完成功能完整性,然后进行全面的审计,在第三方审计专家认为可以发布后,才会正式发布Polkadot主网。在主网发布前3个月,Polkadot将会进行第二次代币融资,发售剩余的20%代币,具体的形式还在研究考虑中,不过IEO也存在一定可能。[2019/4/16]
在将来,我们计划为GRANDPA机制使用BLS密钥,因为它允许更有效的签名聚合。
常见问题解答
为什么选择ed25519而不是secp25K1?
最初为Polkadot和Substrate链实现的密钥推导密码是ed25519,这是在Edward'sCurve25519(由于曲线方程的参数而得名)上实现的Schnorr签名算法。
大多数加密货币,包括比特币和以太坊,目前在secp256k1曲线上使用ECDSA签名。这种曲线被认为比NIST曲线更安全,后者可能有国家安全局的后门。Curve25519被认为可能比这个更安全,并且可以更容易地实现Schnorr签名。最近的专利到期使它成为波卡的首选。
选择使用Schnorr签名而不是使用ECDSA并不那么简单。正如JeffBurdges在论坛上发表的关于以下话题的文章:https://forum.web3.foundation/t/account-signatures-and-keys-in-polkadot/70/2
对于帐户密钥,我们选择Schnorr签名而不是ECDSA签名有一个牺牲:两个签名都需要64个字节,但是只有ECDSA签名传递它们的公钥。有一些过时的Schnorr变体支持从签名中恢复公钥,但它们破坏了重要的功能,如分层确定性密钥派生。因此,Schnorr签名通常需要额外的32字节作为公钥。
但最终,使用Schnorr签名的好处大于权衡,未来的优化可能会解决上面引用的低效问题。
sr25519算法是什么?它是从哪里来的?
一些背景:扭曲的Edward'sCurve25519上的Schnorr签名被认为是安全的,但是Ed25519并不是完全没有缺陷的。最值得注意的是,Monero和所有其他加密货币都容易受到双重支出的攻击,这可能会导致未被发现的无限通胀。
这些漏洞是由于Ed25519中的一个特性造成的,它被称为8的辅助因子。曲线的辅因子是一个深奥的细节,它可能会对更复杂协议的安全实现产生可怕的后果。
很方便,MikeHamburg的Decaf论文为解决这个潜在的缺陷提供了一条可能的途径。Decaf基本上是一种利用扭曲的Edward曲线辅助因子并对其进行数学改变的方法,对性能的影响很小且增加安全性。?
Ristretto小组的Decaf论文在Rust中得到了扩展和实现,包括辅助因子8?曲线,如Curve25519,这使得Edward曲线上的Schnorr签名更加安全。
Web3基金会已经实现了一个Schnorr签名库,在Schnorrkel存储库中使用了更安全的Ristretto压缩曲线25519。Schnorrkel在曲线压缩的基础上实现了相关的协议,如HDKD、MuSig和可验证随机函数。它还包括各种小的改进,例如散列方案选通,理论上可以处理大量的数据,只需跨越Wasm边界一次调用。
在Polkadot中使用的Schnorr签名的实现,通过对Curve25519的Ristretto压缩实现Schnorrkel协议,称为sr25519。
波卡中是否使用BLS签名?
还没有,但他们会的。BLS签名允许更有效的签名聚合。因为GRANDPA验证人通常签署同一件事,所以聚合它们是有意义的,这也可以优化其他协议。
如BLS库自述中所述,
Boneh-Lynn-Shacham签名具有签名速度慢、验证速度慢、需要缓慢且不太安全的配对友好曲线,并且趋向于危险的延展性。然而,BLS允许一系列不同的签名聚合选项,远远超过任何其他已知的签名方案,这使得BLS成为共识算法投票和阈值签名的首选方案。
尽管Schnorr签名允许签名聚合,但BLS签名在某些样式中更有效。因此,它将是Polkadot网络上的验证人将使用的会话密钥之一,并且对GRANDPA最终性小工具至关重要。
资源
BIP32-Ed25519上的密钥发现攻击:详细说明BIP32-Ed25519潜在攻击的一篇论坛帖子。转变为sr25519变体的动机。https://forum.web3.foundation/t/key-recovery-attack-on-bip32-ed25519/44
Polkadot中的账户签名和密钥:Web3研究员JeffBurdges在论坛上的原始帖子。https://forum.web3.foundation/t/account-signatures-and-keys-in-polkadot/70
Schnorr签名可以抵抗量子计算吗?https://bitcoin.stackexchange.com/questions/57965/are-schnorr-signatures-quantum-computer-resistant/57977#57977
原文链接:https://wiki.polkadot.network/docs/en/learn-keys
翻译:PolkaWorld
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。