注:原文作者是以太坊联合创始人VitalikButerin,在这篇文章中,他描述了一种新型的M-of-N密钥分享方案,并提出了脑钱包和社交恢复设计的两种应用案例。
假设你希望生成一个秘密s,而s可通过将N个密钥分享中的M个放在一起来恢复,其中所有N个密钥分享是预先知道的。那么这种方案有两个用例:
V神提出在二层生态转移NFT的跨Rollup NFT包装和迁移思路:9月7日消息,以太坊创始人Vitalik Buterin在以太坊研究论坛发文《跨Rollup NFT包装和迁移》,提出能够在整个二层生态中转移 NFT的思路。
他表示,NFT将在一个Rollup中注册,可以通过创建Wrapper NFT在其他二层方案中进行跨链。具体过程为:在Rollup A中,将NFT发送到Wrapper管理器合约,指定目标Rollup和初始所有者锁定合约,然后在储存中保存一条记录,并给NFT分配新的序列号R。在Rollup B中,任何人都可以使用Rollup B上的Wrapper管理器合约中指定源Rollup和序列号,创建包装NFT。当NFT取回时,当前所有者必须将其发送回Wrapper管理器,从带有序列号R、源Rollup的初始所有者中解除包装,将NFT交给新的所有人。NFT取回会有时间延迟,因为Optimistic Rollup状态根需要大约1周的时间延迟才能最终确定,以便收据可以被验证。到目前为止,更快地进行多条链间的跨链,唯一的办法是进行多层包装。[2021/9/7 23:06:29]
一种脑钱包,其中N个密钥分享是N个安全问题的答案,并且你希望仅通过M个安全问题的答案就可以恢复资金;
V神提出新型的跨二层DEX交易方案,仅需接收方支持智能合约:以太坊创始人VitalikButerin在Ethresear.ch提出一种新型的跨二层DEX交易的解决方案,该方案仅需接收一方支持智能合约即可,这意味着发送一方仅需支持简单的代币发送Rollup或Plasma即可。[2021/3/5 18:17:05]
一种社交恢复设计,其中你希望使用阈值解密而不是智能合约钱包,因为你正在尝试恢复访问私人数据,而不是加密货币,并且你希望你的恢复合作伙伴能够使用他们已经拥有的密钥;
普通的M-of-N密钥分享方案不适用于这些用例中的任何一个,因为它只允许预先选择M个密钥分享,剩余的个密钥分享必须使用一种确定性算法从原始的M个中产生,并且看起来像随机数据。
V神提议支持以太坊网络支付功能:据ethereumworldnews消息,V神认为人们应该支持以太坊网络的支付功能,支持了ETH,也能为支持其他ERC20代币打开一扇大门,比如MKR、UNI、WBTC和稳定币。至于转账费用与速度,他表示已经在主网layer-2部署了一些扩展性解决方案。[2020/10/3]
所以这就是我们要去改进的,我们制定了一个N-of-(2N-M)阈值方案,从原N个密钥分享生成个附加密钥分享。然后我们在区块链上发布所有N-M个附加密钥分享。如果需要,在社会恢复案例中,人们可以简单地给每个参与者一份所有附加密钥分享的副本。这会导致附加密钥分享变成有效的公共信息:它们丢失的风险可以忽略不计,但任何攻击者都会拥有它们。而结果是,在未发布的N个密钥分享中,只要有M个密钥分享与N-M个附加密钥分享结合并揭示数据,我们就有了一个M-of-N方案,这正是我们想要的。
动态 | V神提出一个无需委员会的可扩展数据链模型:以太坊创始人V神今日在Ethereum研究论坛上主持了一场讨论,在这场讨论中,他通过无欺诈证明的数据可用性证明概述了一个无需委员会的可扩展数据链模型。根据V神的说法,无欺诈证明的数据可用性检查方案保留了传统非切分区块链的更多特性。他还提出了一种可能的设计,其中包括一个现有的基础链,“类似于以太坊式不可伸缩的区块链,任何人都可以将交易发布到该区块链。”在这里,用户将能够支付费用并发送包含数据承诺的一种特殊类型的事务,区块提议者/矿工随后可以在该事务上进行数据可用性检查,以验证数据是否可用。V神还扩展了如何仅接受通过每个可用性检查的块,以及数据可用性采样将“完全且绝对出于安全性”的依据。(AMBCrypto)[2020/1/6]
2021年7月18日更新:社交恢复用例的替代机制
在社交恢复用例中,我们希望设置过程尽可能简单,因为用户是懒惰倾向的,如果设置困难,他们将不可避免地选择不安全的小型恢复伙伴集。这意味着以去中心化方式生成密钥分享所需的分布式密钥生成(DKG)可能是一个坏主意,因为它需要2轮通信。
相反,我们可以利用账户持有人自己拥有他们的私钥这一事实。他们可以简单地向每个恢复伙伴询问他们的公钥,然后在链上发布一笔包含nonce的交易,并为每个i加密(share_i,pk_i)。
如果我们避免重复使用nonce随机数,从而不重用密钥,我们可以使用基础的Diffie-Hellman加密算法进行加密,这意味着仅具有32*(n+1)个字节calldata数据的单笔交易,就足以保存恢复信息。
对此方案,ethresear.ch论坛成员kelvin评论称:
这很有趣!我猜在社交恢复设计中,N个参与者会给他们的私钥附加一些公共盐,然后将其哈希生成N个预先知道的密钥分享?否则他们将不愿意泄露自己的密钥分享,以让N?M个附加密钥分享被计算,并且他们还必须透露M个密钥才能恢复秘密。此外,你认为人们会用这种方式来分发哪些类型的私人数据呢?
而Vitalik则回复称:
1、实际上,他们会使用hash(ecdsa_sign(key,salt))作为哈希函数来生成子密钥,因为ecdsa_sign方法在web3API中公开并且具有标准化的确定性输出。但这是一个实现细节,效果是一样的。2、我只是在考虑‘以太坊电子邮件’以及像Status这样的去中心化消息传递应用的加密密钥。另一个用例当然是其他区块链的私钥。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。