首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不向用户(或其他任何人)公开私钥的情况下签署事务

在不向用户(或其他任何人)公开私钥的情况下签署事务
EN

Ethereum用户
提问于 2022-06-10 02:46:51
回答 1查看 460关注 0票数 0

我希望有一个系统,只有在满足x条件的情况下,才能签署事务。它需要尽可能不信任;特别是不信任用户。

最理想的情况是,该系统将是一个“黑匣子”,用于:

  1. 加密和存储用户的私钥
  2. 运行检查以检查是否允许事务处理。
  3. 返回已签名的事务。

我想了几个实现:

  1. 链上
  2. 在可信服务器上
  3. 在本地,在用户的计算机上

使用解决方案1和3,私钥将不可避免地被解密,以便在某一时刻对事务进行签名,将其分别暴露给区块链节点或用户的计算机。解决方案2不是不可信的。

起初,这个问题在我看来是愚蠢的,也是无法解决的,但由于无信任、零知识的技术即将出现,我想知道是否有办法做到这一点。例如,ZKSync已经表示有兴趣转向“默认隐私”实现.。我想未来会有很多EVM链能够使用ZK技术安全地存储私有数据。但是,这可能会遇到与解决方案1相同的问题--在“黑匣子”合同签署事务时,ZKEVM节点是否仍然暴露在私钥中?

集成黑匣子是主要的障碍。我想出的每一种解决方案至少都需要某种形式的信任。我希望听到任何关于如何解决这个问题的意见!

EN

回答 1

Ethereum用户

回答已采纳

发布于 2022-06-15 00:45:08

互联网计算机似乎是解决这一问题的办法:

合同可以持有私钥,并在Ethereum上签署消息(很快),每个合同都是公开的。这意味着契约不能保存私有信息,因此不能签名消息,因为无法安全地存储私钥。IC的协商一致机制使用一种称为阈值签名的机制,在这种机制中,验证器节点协作创建一个(BLS)签名,而根本不存在整个私钥。在即将推出的一项功能中,将为合同提供类似的机制,命令IC生成阈值ECDSA签名。这些签名将在IC外进行验证,就像常规的ECDSA签名一样。这意味着您可以使用IC上的合同签署Ethereum或比特币交易,也可以创建JWT、可验证凭据或x.509证书。

关于隐私:

在Ethereum上,每个人都可以运行一个完整的节点,因此一切都是公共的。只有将数据保持在链外或使用加密技术才能实现隐私。在IC上,节点由NNS授权,并且只有部分IC是公开的。除了契约开发人员为合同本身定义的API之外,以下数据是公开的

  • 合同的子网
  • 合同名称
  • 契约的WASM模块的散列
  • 合同的控权人

特别是,契约的实际字节码和(循环)余额都不是公共的。然而,如前所述,IC将来将支持公共子网。这些子网将使原始的IC块数据可用。

https://wiki.internetcomputer.org/wiki/The_互联网_电脑_为_以太_开发人员

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

https://ethereum.stackexchange.com/questions/129942

复制
相关文章

相似问题

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