【问题标题】:How to go about changing public keys of a user in my web3 app?如何在我的 web3 应用程序中更改用户的公钥?
【发布时间】:2025-12-04 14:15:03
【问题描述】:

根据我的理解social wallet,从 web3 应用的角度来看,用户的 ID 不应该是他们的公钥(因为可以被监护人更改)。这是正确的吗?

如果是这样,web3 应用程序必须为每个用户拥有自己的内部 userId,并映射到他们当前的公钥。如果公钥更改(导致监护人更改私钥),则此映射也需要以某种方式更改。

从 web3 应用程序开发人员的角度来看,是否有任何关于如何进行这种更改的文献?

谢谢。

【问题讨论】:

    标签: ethereum web3


    【解决方案1】:

    根据我对社交钱包的理解,从 web3 应用的角度来看,用户的 ID 不应该是他们的公钥

    你的理解不正确。公钥/地址是用户的id。

    【讨论】:

    • 在这种情况下,如果一个应用程序在它的所有应用程序表中使用他们的公钥,但是如果用户想要更改他们的公钥(导致私钥被盗),那么该用户的所有信息应用中的旧公钥将被卡住。
    • 没错。那么这是一个支持问题,而不是应该自动解决的问题。如果私钥被盗,无论如何对用户来说都是游戏结束。用户有责任将其私钥保密,如果他们不这样做,那么他们一开始就不应该使用私钥。
    • Understoof.,但是社交钱包+金库的意义在于,如果私钥被盗,用户有一定的时间可以逆转交易(金库的原因) ,并让他们的监护人更改用于访问保险库的私钥。所以这样一来,游戏并没有真正结束。
    • 由于钱包是基于智能合约的,而不是直接的私钥/公钥,你可以在不改变地址本身的情况下更改智能合约的密钥。
    最近更新 更多