如何给EOS账户设置自定义权限
https://bihu.com/article/1508858
EOS从上线以后,不断有传出token被盗的消息,安全无小事,我们一定要重视,今天从EOS帐户自己定义权限的角度来谈谈如何做好账户的安全问题。
一、自定义权限有什么用?
EOS账号默认的只有owner和active两个权限,除了默认的权限外,我们也可以给EOS账户设置自定义权限,权限的名字可以根据自己的需要定义,我们也可以根据自己的需要设定,给该权限绑定相应的功能。
EOS账户自定义权限非常灵活,例如可以设置一个自定义权限vote,绑定该权限只能用于投票,不给该权限转账的功能,这样用vote权限对应的公钥导入钱包后,只用用于投票,不能用于转账等其他操作,这样即使该私钥泄漏,也仅仅只能用于投票,不能转走账户里边的EOS。
我们自定义的这个vote权限只赋予了给节点投票的权限,所以相比直接使用active或者owner权限来操作,会更加安全。即使vote这个秘钥丢失也不影响账户的资金安全。
如何设置EOS账户的自定义权限呢?
二、给EOS账户设置自定义权限
主要分为两步,第一步是给帐户添加自定义权限,第二步是为该权限赋予相应的功能。
(一)设置自定义权限
1、使用scatter工具连上 https://eostoolkit.io/ 网站,
2、点击左侧「Manage Account」,然后点击左边菜单中的 「Advanced Permissions」 按钮

3、在下边的表单中新增一个权限,如下图所示(默认)

各个字段的含义如下:
Account:要添加自定义权限的账户,连接了scatter以后,这里会默认显示scatter连接的账户。
Parent:要添加自定义权限的父权限,默认为owner,一般来说,我们设置为active就可以了。
Threshold:阈值,在多设置多签的时候用,我们用默认的1即可。
Weight:账户的权重,默认设置为1。
Permission:权限名称,例如常见的权限为owner和active,这里默认显示的是active,我们以自定义投票功能为例,我起的权限名字叫vote。
Authority:权限对应的公钥(也可以是账户名,这里只介绍设置公钥)。我们先用自己安全的方式生成一对公私钥,用scatter的新建密钥对功能就可以,然后把私钥保存好,这里填入公钥。

上边的表单字段都填写完毕后,点击下边的「UPDATE」,然后在弹出的scatter框中,点击「接受」,授权Scatter发送交易后,权限就新增成功了。

此时,我们在eosflare查询帐户时,就可以查到新添加的vote权限了。

到这里,只完成了第一步。权限是增加好了,但是刚刚我们新增的自定义权限并不能进行任何操作。下面我们还要给这个权限关联一些功能。
(二)给权限关联相应的功能
1、点击左侧「Manage Account」下边的「Link Auth 」按钮

然后可以在右侧看到如下信息:

各个字段的含义如下:
Account Name:默认显示的是scatter连接的eos账户。
Account Permission:就是我们要自定义权限的名称。
Contract Name和Contract Action:就是需要连接给这个权限的一些功能。
一些常用功能的Contract Name和Contract Action,都有哪些呢?
可以在eospark网站里边查询账户:eosio

点击「查看合约 」

一些常用的都在这里了,点击上下滚动条,可以查看更多。

更详细的信息,可以访问: https://blog.eospark.com/system_contract_API_introduction_v1.2.1.html 进行查看。
较常用的如下:

2、然后在上边的表单中,填写相应的信息:
Account Permission:vote
Contract Name:eosio
Contract Action:voteproducer
如下图所示:

3、填写完后,点击「LINK AUTH」 按钮。在弹出的scatter框中,点击「接受」。
成功后,我们现在可以试验下vote的权限。
三、测试EOS自定义权限
我用vote权限绑定的公钥导入该EOS账号到TokenPocket钱包。

从上图中,我们可以看到自定义权限vote已经显示出来了,点击后边的「 > 」符号,还可以修改公钥。
我们试着转一笔账:

出现了错误提醒:密钥,权限等不匹配,说明该vote权限并不能做transfer操作,设置成功。
有了自定义权限功能,我们可以根据需求设置相应的权限,特定的权限,只赋予特定的功能。能不用Owner和active权限就尽量不用。例如设置vote权限只能用于投票,ram权限只能用于购买RAM等,在一定程度上,可以保护我们的EOS账户安全。
如何给EOS账户设置自定义权限的更多相关文章
- SharePoint REST API - 使用REST接口对列表设置自定义权限
博客地址:http://blog.csdn.net/FoxDave SharePoint网站.列表和列表项都属于SecurableObject类型.默认情况下,一个安全对象继承父级的权限.对一个对 ...
- 【转】 Pro Android学习笔记(六五):安全和权限(2):权限和自定义权限
目录(?)[-] 进程边界 声明和使用权限 AndroidManifestxml的许可设置 自定义权限 运行安全通过两个层面进行保护.进程层面:不同应用运行在不同的进程,每个应用有独自的user ID ...
- 深入理解eos账户体系 active和action
在eos中,账户是一个非常重要的概念. 账户分为两部分组成 一种是active 一种是action. 智能合约本质上来讲就是一个action加上一个回馈脚本程序.任何智能合约都有这俩个部分组成. 那么 ...
- 在Winform程序中设置管理员权限及为用户组添加写入权限
在我们一些Winform程序中,往往需要具有一些特殊的权限才能操作系统文件,我们可以设置运行程序具有管理员权限或者设置运行程序的目录具有写入的权限,如果是在操作系统里面,我们可以设置运行程序以管理员身 ...
- (转)在Winform程序中设置管理员权限及为用户组添加写入权限
本文转载自:http://www.cnblogs.com/wuhuacong/p/5645172.html 在我们一些Winform程序中,往往需要具有一些特殊的权限才能操作系统文件,我们可以设置运行 ...
- 为运行Microsoft Dynamics CRM 异步处理服务指定账户没有性能计数器权限
CRM 2016 安装 为运行Microsoft Dynamics CRM 应用程序指定账户没有性能计数器权限 为运行Microsoft Dynamics CRM 异步处理服务指定账户没有性能计数器权 ...
- Salesforce自定义权限简介
自定义权限(Custom Permission) Salesforce默认提供了多种方式设定用户的权限,比如简档.权限集等.在这些设定中,已经包括了系统中的对象.应用.字段.页面布局等组件,管理员或开 ...
- ubuntn中root密码设置和权限给予
个人理解: 1.安装ubuntn,会首先要求有一个账号密码设置,比如我设置的:用户名irt,密码**,这是一个普通账户,此时,超级管理账户root密码是空的: 2.给root账户设置密码,大概步骤见下 ...
- Orchard 前台权限与自定义权限
一:关于前台权限 1:只允许自己看到 首先,我们需要确定在 Role 设置页面,用户所对应的 View Page by others 和 View all content 未被选中.备注,我们首先和得 ...
随机推荐
- [转]linux 调用动态库so文件
记录一个面试被问到的问题. extern 有什么用途? 除了多文件共享全局变量外还有呢? extern "C" 的功能? 我想看完这篇文章就可以知道第三个问题了. 关于动态调用动态 ...
- C# Timer 定时器
Timer简单介绍 构造函数 通过ILSpy反编译可以看到Timer的内部代码. Timer 的默认构造函数里赋了初值,所以当我们初始化Timer的时候,已经有了默认值. Timer 的带参数的构造函 ...
- 剖析Elasticsearch集群系列之三:近实时搜索、深层分页问题和搜索相关性权衡之道
转载:http://www.infoq.com/cn/articles/anatomy-of-an-elasticsearch-cluster-part03 近实时搜索 虽然Elasticsearch ...
- Sciter返回json
sciter::value arr[200]; for (int i = 0; i < (int)m_fileList.size(); i++) { cv::Mat img = cv::imre ...
- 多线程局部变量之threading.local()用法
假如,开了十个线程并且做同样的一件事,他们需要带着自己的数据进来,完成事情后带着自己的数据出去.如果是并发,同时进来,他们的数据就会混乱. 一般情况,我们加锁就可以了,一个人先进来,先加锁,另一个人过 ...
- day_5.5 单例
2018-5-5 15:00:25 单例 : 就是对象只有一个 ''' class main(object): __instance = None def __new__(cls,): if cls. ...
- ThinkPHP框架 3.2.2 获取系统常量信息 连接数据库 命名空间的理解
获取系统常量信息 随便一个方法里加上这句话都能获取到系统常量信息!! var_dump(get_defined_constants()); <?php namespace Admin\Contr ...
- shell里“ ` ”
官方解释:命令替换.`command` 结构使字符(`)[译者注:这个字符不是单引号,而是在标准美国键盘上的ESC键下面,在字符1左边,在TAB键上面的那个键,要特别留心]引住的命令(command) ...
- 23. 合并K个排序链表
一种方法是分治 类似快排的例子. 第二种使用堆,比较好理解. 堆中保存一个元素是一个链表的头部. /** * Definition for singly-linked list. * public ...
- phoenix技术(安装部署和基本使用)讲解
1.phoenix简介 Apache Phoenix是构建在HBase之上的关系型数据库层,作为内嵌的客户端JDBC驱动用以对HBase中的数据进行低延迟访问.Apache Phoenix会将用户编写 ...