作者:阿华 / 来源:白话区块链
在区块链的世界里,安全是我们首要考虑的问题,对于EOS公链来说,合理的账号权限管理往往决定了账号的安全性。
在 EOS 账号权限管理中,通过 EOS 账号的自定义权限功能,可以大大增加 EOS 账号的安全性。
01
自定义权限有什么用?
EOS 账号默认有 owner 和 active 两个权限,除了默认权限外,我们还可以给EOS账号设置自定义权限,权限的名称和功能都可以根据自己的需要进行自定义。
EOS 账号权限设计非常灵活,例如可以设置一个自定义权限 vote,该权限只能用于投票,这样用 vote 权限对应的公钥只能用于投票,不能用于转账等其他操作,即使该私钥被泄漏,也仅仅只能用于投票,不能进行其他操作(例如转走账号里边的EOS资产),增加了账号的安全性。
02
如何设置EOS账号的自定义权限呢?
给EOS账户设置自定义权限,主要分为两步,第一步是给账号添加自定义权限,第二步是为该权限关联相应的操作功能。
下面以给EOS账号添加一个仅能用于节点投票的自定义权限 Vote 为例进行详细的说明。
一、设置自定义权限
1、使用 Scatter 工具连上 https://eostoolkit.io/ 网站;
2、在设置自定义权限前,需要先到 Scatter 里边设置一下防火墙;
如上图,在 Settings -> Firewall -> Blacklisted Actions 里边,把 eosio 的 updateauth 权限 remove 掉,即点击 「remove」 按钮,这样我们才能更新EOS账户的权限(如添加自定义权限)。
3、点击左侧「Manage Account」,然后点击左边菜单中的 「**Advanced Permissions」** 按钮;
4、在右侧的表单中新增一个权限,如下图(默认)
各个字段的含义如下:
-
Account:要添加自定义权限的账户,连接了Scatter 钱包后,这里默认会显示 Scatter 连接的 EOS 账户;
-
Parent:要添加自定义权限的父权限,默认为 Owner,一般来说,我们设置为 Active 就可以了;
-
Threshold:阈值,在多设置多签的时候用,使用默认的1即可;
-
Weight:账户的权重,默认设置为1;
-
Permission:权限名称,例如常见的权限为 Owner 和 Active,这里默认显示的是 active,这里输入自定义权限名 vote;
-
Authority:权限对应的公钥(也可以是账户名,这里只介绍设置公钥),这里输入公钥,可以使用 Scatter 的新建密钥对功能创建密钥,然后把私钥保存好,这里填入公钥。
表单中要求的字段都填写完毕后,点击下边的「UPDATE」按钮,在弹出的scatter框中,点击「接受」,授权 Scatter 发送交易后,vote 权限就新增成功了。
此时,我们在 EOS 区块浏览器查询账号权限信息时,就可以看到新添加的 vote 权限了。
在自定义权限增加好以后,vote 权限还不能进行任何操作,还要给这个权限关联一些操作功能(本例为给EOS节点投票的功能)。
二、给自定义权限关联相应的操作功能
1、点击左侧「Manage Account」下边的「**Link Auth** 」按钮,然后可以看到右侧的表单信息。
各个字段的含义如下:
-
Account Name:默认显示的是 scatter 连接的eos账户;
-
Account Permission:填入自定义权限的名称;
-
Contract Name 和 Contract Action:合约名称与合约功能。
一些常用功能的 Contract Name 和 Contract Action,都有哪些呢?
可以通过访问链接:https://blog.eospark.com/system_contract_API_introduction_v1.2.1.html 进行查看,比较常用的如下:
例如在上面表格的最后一行,合约账号 eosio 的 Active(操作)voteproducer,具有投票功能。
2、在上面的表单中,填写相应的信息:
Account Permission:voteContract Name:eosioContract Action:voteproducer
3、填写完后,点击「LINK AUTH」 按钮。在弹出的scatter框中,点击「接受」。
至此,自定义权限 vote 就具备了投票的功能。成功后,现在可以测试下 vote 的权限。
三、测试 EOS 账号自定义权限
使用 vote 权限关联的公钥导入该 EOS 账号到 TokenPocket 钱包。
从上图中可以看到自定义权限 vote 已经显示出来了,我们试试转账功能。
出现了错误提醒,说明自定义权限 vote 并不能进行 transfer 转账操作。经测试,使用 vote 权限确实可以进行投票(如下图),说明自定义权限 vote 设置成功。
有了自定义权限功能,我们可以根据需要设置特定的权限,例如可以设置 vote 权限只能用于投票、ram 权限只能用于购买 RAM 等,可以灵活的实现 EOS 账户权限的分级管理,在一定程度上可以确保 EOS 账号的安全。
你学会给EOS账号设置自定义权限了吗?还有何疑问?