默认的 NEAR TLA 拥有 FullAccess 密钥是否安全?
Is it safe for the default NEAR TLA to have a FullAccess key?
我注意到 NEAR MainNet 上的 near
顶级帐户已获得与之关联的访问密钥:
{
"public_key": "ed25519:5zset1JX4qp4PcR3N9KDSY6ATdgkrbBW5wFBGWC4ZjnU",
"access_key": {
"nonce": 1568,
"permission": "FullAccess"
}
}
此密钥是硬编码的 in the genesis。
据我了解,这实际上意味着拥有相应私钥的实体可以随时删除其 ID 以 .near
结尾的任何账户,并将所有资金从该账户转移到任何地方选择。这包括通过官方 NEAR web wallet 或通过其他方式调用 near.create_account()
.
创建的所有帐户
我想知道我的理解是否正确,这是否是网络运行所必需的,以及这对典型用户可能有什么安全隐患。
我很确定您不能像这样影响父帐户的子帐户。如果有人删除 near
帐户,您的帐户不会受到影响。除非 near
帐户本身持有子帐户的 FullAccess
密钥,否则它不会控制它们
这也很容易测试。在 TestNet 上尝试创建一个子账户并将其从父账户中删除。如果您没有帐户的 FullAccess
密钥,那么您的 DeleteAccount
操作将被网络拒绝。
我注意到 NEAR MainNet 上的 near
顶级帐户已获得与之关联的访问密钥:
{
"public_key": "ed25519:5zset1JX4qp4PcR3N9KDSY6ATdgkrbBW5wFBGWC4ZjnU",
"access_key": {
"nonce": 1568,
"permission": "FullAccess"
}
}
此密钥是硬编码的 in the genesis。
据我了解,这实际上意味着拥有相应私钥的实体可以随时删除其 ID 以 .near
结尾的任何账户,并将所有资金从该账户转移到任何地方选择。这包括通过官方 NEAR web wallet 或通过其他方式调用 near.create_account()
.
我想知道我的理解是否正确,这是否是网络运行所必需的,以及这对典型用户可能有什么安全隐患。
我很确定您不能像这样影响父帐户的子帐户。如果有人删除 near
帐户,您的帐户不会受到影响。除非 near
帐户本身持有子帐户的 FullAccess
密钥,否则它不会控制它们
这也很容易测试。在 TestNet 上尝试创建一个子账户并将其从父账户中删除。如果您没有帐户的 FullAccess
密钥,那么您的 DeleteAccount
操作将被网络拒绝。