有没有办法更改与 web3 帐户关联的私钥?

Is there a way to change the private key associated to a web3 account?

我有一个 web3 帐户和私钥。假设我也有 12 个单词的 mnuemoic。有什么方法可以更改私钥或在需要时轮换私钥?

如果没有,如果我的私钥被泄露我该怎么办。如果是的话,你能告诉我代码或 web3 中的 API 这将帮助我做到这一点吗?

一个地址是从它的私钥生成的。因此,当您更改私钥时,它总是会产生不同的地址。

注意:根据统计,同一地址有多个私钥是可能的。有几项研究,但 none 发现了冲突(生成相同地址的第二个私钥),因为概率极低 - 用我们目前的技术几乎不可能。


如果地址更改适合您的用例,您可以使用 wallet.add() 函数 (docs), or remove an account using the wallet.remove() function (docs) 向 web3 实例添加一个新帐户。

不幸的是,web3 仅适用于私钥 - 不适用于助记词。因此,您需要使用不同的包从助记符生成相应的私钥。例如 hdwallet-provider.