我的问题可能是重复的,但我找不到类似的问题。
我最近开发了一个类似钱包的应用程序,我正在尝试实现一些MPC功能。
我搜索了一下,甚至向ChatGPT询问了我如何做到这一点。
我知道ECdsa和Shamir的秘密共享是如何工作的,但我无法找到将它们的功能组合在一起的方法。
我需要类似于此的功能:
N各方都有自己的私钥和公钥,并同意创建一个k-n钱包,以便他们中的任何k都可以执行交易。他们绝不能彼此共享自己的私钥,但他们可以用私钥签署事务散列,并与一些受信任的实体(不包括其他参与者,例如服务器)共享签名。
我有很多问题:
wallet-public-key=GeneratePublicKey(array of participants public keys,n,k)
在这种情况下,主钱包的私钥甚至永远不会被构造。有可能吗?有任何开源的实现吗?有数学证明吗?
如果不可能,我可以尝试解决方案2:服务器可以创建一个密钥对作为主钱包,而不是每一方都保留其私钥。用类似Shamir的秘密共享或其他任何机制来分割私钥。在此之后,每一方都会自行签署协议,而不会透露私人或公共钥匙。有可能吗?我如何聚合签名?
在使用了大量的chatGPT提示之后,它告诉我这个过程被称为阈值ECDSA。有一些解决办法。与MuSig类似,ECDSA(具有批处理并行性的ECDSA)、阈值BLS和基于DKG的ECDSA.我需要了解他们到底在做什么。另外,他们中的一些看起来像是n的,而不是k的n。
发布于 2023-03-15 00:27:45
以下是阈值签名协议实现的列表,包括阈值ECDSA:https://github.com/ZenGo-X/awesome-tss的实现。
https://crypto.stackexchange.com/questions/105659
复制相似问题