以太坊:V神提出新型密钥分享方案:可用于脑钱包和社交恢复设计应用

注:原文作者是以太坊联合创始人Vitalik Buterin,在这篇文章中,他描述了一种新型的M-of-N密钥分享方案,并提出了脑钱包和社交恢复设计的两种应用案例。

假设你希望生成一个秘密 s,而s可通过将N个密钥分享中的M个放在一起来恢复,其中所有N个密钥分享是预先知道的。那么这种方案有两个用例:

一种脑钱包,其中N个密钥分享是N个安全问题的答案,并且你希望仅通过M个安全问题的答案就可以恢复资金(单独的安全问题会很糟糕,但如果你将20个安全问题组合起来,你可以获得相当多的熵);

以太坊V神提出新的分片建议:EIP-4844:金色财经报道,以太坊创始人VitalikButerin在Twitter上分享了Proto-danksharding的想法,即专注于EVM无法执行的blob携带交易的数据验证场景。Proto-danksharding将取代danksharding,这是一种分片技术,其中只有一个提议者选择进入这个或那个槽的所有交易和所有数据,而不是为每个分片选择一个单独的提议者。提议的解决方案可以是一个临时变体,因为它包括了一些分片技术的实施。同时,它导致了数据使用的增加,因为它需要一个更大的区块大小。以太坊的创始人提议每30天自动删除blob数据,以防止网络对数据和内存存储的要求过大。[2022/3/21 14:08:04]

一种社交恢复设计,其中你希望使用阈值解密而不是智能合约钱包,因为你正在尝试恢复访问私人数据,而不是加密货币,并且你希望你的恢复合作伙伴能够使用他们已经拥有的密钥(以减少有丢失这些密钥的风险);

V神提出以太坊信标链第一个硬分叉提案“HF1”:以太坊创始人V神刚刚在推特上提出了以太坊信标链第一个硬分叉(暂定名为“HF1”)提案。V神称,HF1添加了轻客户端支持,简化了规范,提高了效率,并引入了惩罚性较小的不活动泄漏机制。[2021/2/16 19:51:07]

普通的 M-of-N 密钥分享方案不适用于这些用例中的任何一个,因为它只允许预先选择 M 个密钥分享,剩余的 (N-M) 个密钥分享必须使用一种确定性算法从原始的M个中产生,并且看起来像随机数据(在脑钱包的情况下,它们不适合作为安全问题的答案,在社交恢复的情况下,需要用户使用特殊软件来存储它们,而不是从现有的HD钱包中衍生出来)。

V神提议支持以太坊网络支付功能:据ethereumworldnews消息,V神认为人们应该支持以太坊网络的支付功能,支持了ETH,也能为支持其他ERC20代币打开一扇大门,比如MKR、UNI、WBTC和稳定币。至于转账费用与速度,他表示已经在主网layer-2部署了一些扩展性解决方案。[2020/10/3]

所以这就是我们要去改进的,我们制定了一个 N-of-(2N-M) 阈值方案,从原N个密钥分享生成( N-M) 个附加密钥分享。然后我们在区块链上发布所有N-M 个附加密钥分享。如果需要,在社会恢复案例中,人们可以简单地给每个参与者一份所有附加密钥分享的副本。这会导致附加密钥分享变成有效的公共信息:它们丢失的风险可以忽略不计,但任何攻击者都会拥有它们。而结果是,在未发布的 N个密钥分享中,只要有M个密钥分享与 N-M 个附加密钥分享结合并揭示数据,我们就有了一个M-of-N方案,这正是我们想要的。

动态 | V神提出数据迁移新方法 或使以太坊1.0更快过渡到2.0:在12月23日的Ethresear.ch提案中,以太坊联合创始人Vitalik Buterin提出了一种将数据迁移到以太坊 2.0的更快方法,这意味着期待已久的升级可能比预期的要快。Buterin描述了一种消除Ethereum 1.0当前工作证明区块链的方法,这将允许项目“加速进度”与Ethereum 2.0的信标链合并。据悉,以太坊2.0是一个多年的项目,它经常面临延迟。目前还不清楚这一过渡将在何时实施。(CryptoBriefing)[2019/12/24]

2021年7月18日更新:社交恢复用例的替代机制

在社交恢复用例中,我们希望设置过程尽可能简单,因为用户是懒惰倾向的,如果设置困难,他们将不可避免地选择不安全的小型恢复伙伴集。这意味着以去中心化方式生成密钥分享所需的分布式密钥生成 (DKG) 可能是一个坏主意,因为它需要 2 轮通信(这意味着额外的区块链交易或每个人同时在线并拥有同步通信通道)。

相反,我们可以利用账户持有人自己拥有他们的私钥这一事实。他们可以简单地向每个恢复伙伴询问他们的公钥(例如,通过 pk = G * hash(ecdsa_sign(msk, nonce)),其中 msk 是恢复伙伴的主要密钥),然后在链上发布一笔包含 nonce 的交易,并为每个 i 加密(share_i, pk_i) (注:其中 share_i 是第 i 个密钥分享,pk_i 是第 i 个参与者的公钥)。

如果我们避免重复使用nonce随机数,从而不重用密钥(例如,设置nonce = hash(secret, maddr_1 ... maddr_n),其中secret是放入恢复的值,maddr_i是第i个恢复伙伴的地址,应该就足够了),我们可以使用基础的Diffie-Hellman加密算法进行加密,这意味着仅具有 32 * (n+1) 个字节calldata数据的单笔交易,就足以保存恢复信息。

对此方案,ethresear.ch 论坛成员kelvin评论称:

这很有趣! 我猜在社交恢复设计中,N个参与者会给他们的私钥附加一些公共盐(salt,指通过在密码任意固定位置插入特定的字符串),然后将其哈希生成N个预先知道的密钥分享?否则他们将不愿意泄露自己的密钥分享,以让N?M个附加密钥分享被计算,并且他们还必须透露 M 个密钥才能恢复秘密。此外,你认为人们会用这种方式来分发哪些类型的私人数据呢?

而Vitalik则回复称:

1、实际上,他们会使用 hash(ecdsa_sign(key, salt))作为哈希函数来生成子密钥,因为 ecdsa_sign 方法在 web3 API 中公开并且具有标准化的确定性输出。 但这是一个实现细节, 效果是一样的。2、我只是在考虑‘以太坊电子邮件’以及像Status这样的去中心化消息传递应用的加密密钥。另一个用例当然是其他区块链的私钥。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

币赢比特币:朋友聚会上 当你被cue聊聊区块链时

转眼间,又到了一年一度的同学聚会。这次班长牵头,把班上绝多数同学都叫了过来,甚至还请了班主任王老师到场,摆了好几大桌。一时间觥筹交错,各个都喝得满面红光,场面好不热闹.

[0:0ms0-0:778ms