为什么要从 NEAR 协议中的帐户中删除所有访问密钥?

Why would you delete all access keys from an account in NEAR protocol?

当我们测试一些代码时,我们删除了一些 NEAR 帐户的所有完整访问密钥,该帐户现在看起来已经死了。

我们只是好奇为什么不禁止这样做。它以某种方式有用吗?这似乎可能导致用户失去对其帐户的控制权的灾难性后果。

虽然删除所有访问密钥对于普通帐户来说既无用又危险,但创建帐户、部署合约并从帐户中删除所有密钥以证明没有人使用是一种常见的模式可以重新部署合约了。您已经可以在 NEAR 主网上找到许多示例,例如质押池合约以这种方式部署和“锁定”staked.poolv1.near. See more details about locked contracts in

附近的帐户可能持有合同,因此合同与普通帐户没有特殊情况。如果没有合约也没有访问密钥,它就是一个死账户,实际上,就像一个拥有密钥的账户,其私有 key/seed 短语丢失了。

NEAR 账户模型的妙处在于,您可以为同一个账户设置备份密钥,并且您的所有资产都附加到账户 ID,因此您可以添加新密钥而无需转移所有资产。

Basic concepts documentation 是了解更多有关 NEAR 帐户的良好起点。

命名帐户模型对于曾经使用过 Web2 应用程序的任何人来说都应该非常熟悉,其中用户通常使用他们的用户名作为标识符,并且在登录时,服务器会生成一个会话令牌。 NEAR 账户模型几乎相同,但使用了一些随机会话令牌加密密钥。

我还认为持有可替代代币或不可替代代币的智能合约应该删除所有访问密钥。否则,可能会更改合约,并修改代币的所有权。