我是一名为以太坊开发智能合约的初级开发人员。我们从其他公司获得资金来开发Dapps。
智能合约包含只能由所有者使用的功能。使用此功能需要所有者的私钥。
委托我们开发的公司不想暴露所有者的私钥。我们开发的公司也不想把私钥硬编码到数据库或源代码中。
有什么办法解决这种情况吗?
在某些情况下,作为开发人员,您甚至不需要知道owner
私钥。
- 部署程序可以是与所有者不同的地址。也就是说,您可以从您的地址部署合约,并在构造函数中设置客户端的
owner
地址 - 所有者可以使用自己的钱包(例如MetaMask或通过WalletConnect的硬件钱包(与智能合约进行交互,该钱包为他们保存私钥。在这种方法中,他们需要手动签署来自所有者地址的每一笔交易
- 客户端还可以自托管应用程序,只在自己的实例中传递私钥
或者,如果您需要持有他们的密钥,请将其保存在机密管理系统中,如Hashicorp Vault或AWS secrets Manager。
委托我们开发的公司不想公开所有者的私钥。我们开发的公司也不想把私钥硬编码到数据库或源代码中。
将Gnosis Safe multisig钱包设置为合同的所有者。它将允许您在开始和将来配置所有者设置。这是这个行业其他人都在做的事情。