【翻译】【权限】EOS的权限管理

in #eos5 years ago (edited)

币乎封面.jpg
给 EOS LaoMao 投票,请认准我们的主网节点ID:eoslaomaocom


EOS 与其他区块链的主要区别之一是账户系统。在你和你的资金之间,有一个账户。一个 12 个字符的名字。当您想要使用这些资金时,您需要为帐户签署一项交易,而不是直接签署相关密钥。在账户后面,你可以有一个或多个在链上的秘钥,同时可以更改它们。你可以改变它们,有不同的权限级别。这真的是太棒了。这还意味着您可以对帐户进行权限管理。
-Alexandre Bourget

原文:Blockgenic https://medium.com/coinmonks/eos-permission-management-2c0c1634fe39

编译:Yvonne

默认权限的设置

如上所讲到,EOS 有一个允许用户管理其帐户权限的独特的帐户系统。每个权限都需要一个有效的事务处理,或者多个有效的事务处理被转移到区块链。默认情况下,EOS 帐户有两个权限,active 权限和 owner 权限。

Active 权限用于资金转移、BP 投票和其他高级账户变更。

Owner 权限表示帐户的所有权。只有少数事务处理需要此权限,但最引人关注的是对 owner权限可进行任何更改的操作。一般来说,建议持有者冷保管且不与任何人共享。owner 权限也可用于恢复另一个可能已被破坏的其他权限。
WechatIMG413.png

这就是 EOS 帐户的如何默认设置的。默认情况下, active 和owner 的密钥的权重均为 1, active 权限和 owner 权限的默认阈值均为 1 。这意味着只有一个来自 owner 密钥的签名,就能执行任何需要 owner 许可的操作。对于 active 权限也是如此。执行任何需要active 权限的操作时,active 密钥只需要 1 个签名。

更改和添加权限

幸运的是,您可以添加和更改权限,允许您创建多签名帐户、创建新权限等等。我们将通过一个例子来展示如何更改和添加权限。

多重签名帐户

在这个例子中,我们将解释多重签名钱包的工作原理,以及如何自己设置一个。
WechatIMG414.png
资料来源EOSIO Wiki

在上面的图片中,您可以看到多签名帐户的可能存在的设置。在本例中,owner 权限的默认阀值值为 2 ,并且有两个密钥,它们的权重都为 1 。这意味着需要两个 key 的密钥来执行任何需要 owner 权限的操作。

active 权限的阀值为 1 ,有两个密钥,它们的权限都为 1 。这意味着,要执行任何需要active 权限的操作,只需要两个密钥中的任意一个的一个签名。

如何在自己的帐户上设置(以toolkit为例)

假设上面的步骤具有可操作性,我们现在将解释如何使用 Genereos 的 EOSToolkit 自己设置一个多签名帐户。我们将像上面解释的多重签名帐户一样设置帐户。

首先,您必须下载一个浏览器扩展插件—— Scatter 。按照如何设置 Scatter 帐户和登录到Scatter 扩展的说明设置好,然后转到 toolkit ,连接现有的 EOS 帐户。

3.png
不要忘记在公钥后面添加“@permission”,将权限更改为实际权限(active权限、 owner权限等)

连接 Scatter 帐户后,您可以访问“高级权限”标签。我们将从更改帐户的 owner 权限开始。使用正确的信息和密钥填写空白处,然后单击“更新”。如果需要,您还可以添加更多密钥并更改密钥的阈值和权重。

4.png
不要忘记在公钥后面添加“@permission”,将权限更改为实际权限(active权限、 owner权限等)

在您更新了 owner 权限之后,您可以更新 active 权限。使用正确的信息和键填写空格并单击 update 。就像拥有 owner 权限一样,如果需要,您还可以添加更多密钥并更改密钥的阈值和权重。

现在您拥有一个多重签名帐户,就像第一个示例中的多重签名帐户一样。

自定义权限

多签名帐户只是 EOS 众多可实现权限的其中之一。不过,创建多签名帐户只需要更改默认权限。要创建更高级的权限结构,您可以创建新的权限,或者管理和设置现有的权限。我们将展示如何使用 Genereos 和 cleos 的工具包创建新权限。

如何创建新权限(以 toolkit 为例)

现在,通过 toolkit ,管理、设置和创建新权限变得非常简单且易用。假设您有一个 EOS 帐户,但不想使用您的 active 密钥对该帐户进行投票,因为密钥被泄露可能带来灾难性的后果。您可以授予另一个帐户对该帐户进行投票的权限。(或者您可以使用代理做类似的事情,在这里只是为了解释清楚事情)

5.png
在上面的图片中,您可以看到如何填充空白处,以使第二个帐户能够在主帐户上使用 vote 权限。只需要访问第二个帐户上的 active 权限。

6.png
确认上述交易后,您需要将新的 vote 权限与 eosio 行动相关联。由于我们希望拥有此权限的第二个帐户能够对主帐户进行投票,因此我们使用“链接验证”工具将 vote 权限与“voteproducer ”操作相关联。

现在第二个帐户将能够使用主帐户的投票权限。

如何创建新权限( cleos )

您还可以使用 cleos 创建一个新的自定义权限。下面我们将向您展示一个 EOS Canada 的例子,关于如何使用 cleos 创建一个新的申请奖励的权限。

EOS 的 BP 每天都会获得报酬,因此他们必须每天申请这些奖励。如果他们没有领取奖励,奖励就会消失,所以每笔(奖励)BP 都希望每天都能获得奖励。默认情况下,要获得奖励,需要使用 active 密钥,但将 active 密钥放在每天收集奖励的服务器上是非常危险的。这就是为什么需要为此设置一个新的权限并使用一个新的不那么重要的密钥。

看来如果当天没有claim,rewards也不会消失,但若超过24小时就会递减。

为此,您需要使用 cleos 运行以下命令:
cleos set account permission PRODUCERACCT claimer '{"threshold":1,"keys":[{"key":"YOUR_PUB_KEY","weight":1}]}' "active" -p PRODUCERACCT@active
PRODUCERACCT是 12 个字符的帐户名称,用以收集奖励, claimer是新权限的名称, "key":"YOUR_PUB_KEY","weight":1权重为1的新公钥,拥有新权限 "active" -p PRODUCERACCT@active 意味着新权限的父权限是active 权限。

在运行上面的命令之后,您需要将权限链接到某个操作。要做到这一点,您需要运行以下命令。
cleos set action permission PRODUCERACCT eosio claimrewards claimer
运行此命令链接 claimrewards 操作链接到 claimer 权限, eosio 是智能合约。现在只需要使用新密钥claimrewards 这个密钥被泄露就不会是一个大问题,因为你可以用这个密钥做的唯一事情是在 BP 帐户上申请奖励。

使用本指南和这些工具的风险由您自己承担,错误地使用这些工具可能导致您的帐户无法访问。
请注意,遵循这些教程可能导致您的帐户更难使用。支持自定义权限的工具目前还不多。


BP节点账号:eoslaomaocom

官方网站:https://eoslaomao.com/

CPU&NET 资源租赁:BankofStaked

币乎:EOSLaoMao

Telegram: EOSLaoMao

Twitter:EOSLaoMao

GitHub: EOSLaoMao

Steemit: EOSLaoMao

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.033
BTC 63457.41
ETH 3119.12
USDT 1.00
SBD 3.94