首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >利用秘密共享方案实现ECDSA门限

利用秘密共享方案实现ECDSA门限
EN

Cryptography用户
提问于 2023-03-14 12:00:52
回答 1查看 72关注 0票数 2

我的问题可能是重复的,但我找不到类似的问题。

我最近开发了一个类似钱包的应用程序,我正在尝试实现一些MPC功能。

我搜索了一下,甚至向ChatGPT询问了我如何做到这一点。

我知道ECdsa和Shamir的秘密共享是如何工作的,但我无法找到将它们的功能组合在一起的方法。

我需要类似于此的功能:

N各方都有自己的私钥和公钥,并同意创建一个k-n钱包,以便他们中的任何k都可以执行交易。他们绝不能彼此共享自己的私钥,但他们可以用私钥签署事务散列,并与一些受信任的实体(不包括其他参与者,例如服务器)共享签名。

我有很多问题:

  1. 有可能吗?如何制作主钱包的公钥(和地址)?我想到了这样的方法:wallet-public-key=GeneratePublicKey(array of participants public keys,n,k)
  2. 每一方的签名机制是否都是返回R和S的正常的ECdsa签名机制?
  3. 我如何聚合签名并创建最终的R和S?应该是一串签名,还是每一方都签署相同的散列?

在这种情况下,主钱包的私钥甚至永远不会被构造。有可能吗?有任何开源的实现吗?有数学证明吗?

如果不可能,我可以尝试解决方案2:服务器可以创建一个密钥对作为主钱包,而不是每一方都保留其私钥。用类似Shamir的秘密共享或其他任何机制来分割私钥。在此之后,每一方都会自行签署协议,而不会透露私人或公共钥匙。有可能吗?我如何聚合签名?

在使用了大量的chatGPT提示之后,它告诉我这个过程被称为阈值ECDSA。有一些解决办法。与MuSig类似,ECDSA(具有批处理并行性的ECDSA)、阈值BLS和基于DKG的ECDSA.我需要了解他们到底在做什么。另外,他们中的一些看起来像是n的,而不是k的n。

EN

回答 1

Cryptography用户

发布于 2023-03-15 00:27:45

以下是阈值签名协议实现的列表,包括阈值ECDSA:https://github.com/ZenGo-X/awesome-tss的实现。

票数 0
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/105659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档