因为多次用到了账户(account)和权限(permission)的概念,
还有钱包(wallet)和密钥(keys)。
在EOS中,它们之间是什么关系呢?
什么是账户?
1、账户(account)是存储在区块链上的人类可读的标识符;
2、账户可以被个人或组织拥有,具体取决于权限配置;
3、发送交易或者转移代币,都需要有账户才能完成;
4、通过导入(import)密钥,一个钱包可以和一个或多个账户相关联。
账户、密钥、钱包的关系
在钱包是open且unlock的状态下,可以通过如下命令获取导入到这个钱包中所有密钥:
cleos wallet keys
在前几篇文章中,我在测试链上创建了“sg”、“currency”两个账户,加上系统默认的“eosio”账户,共有3个账户。
这3个账户共同使用一个钱包(default),下面这张图展示了它们之间的关系:
因此,账户、密钥、钱包三者的关系可以总结为:
密钥(公钥)可以创建账户;
密钥(私钥)可以导入钱包;
账户和钱包通过密钥联系起来。
账户的权限
1、在EOS中,每个账户都有两个本地权限:owner权限 和 active权限;
owner
owner权限代表着对一个账户的所有权,是最高权限,只有少数交易会用到这种权限;
EOS建议账户的拥有者把owner权限的密钥冷存储,且不要与任何人共享;
owner权限可以用来恢复已经被破坏的另一个权限。
active
active权限可以用来转移资金、给生产者投票、账户相关信息更改等;
一般情况下使用active权限就够用了。
2、账户还可拥有自定义权限,用于进一步扩展账户的管理;
3、权限可以分配给一个或多个公钥(public keys),也可以分配给有效的账户。
单一签名(Single-Sig)
EOS的默认账户权限配置采用单一签名的方式。
这里有两个重要的概念:
权重(weight)
权限拥有者在整个权限中的相对重要程度
阈值(threshold)
能够成功push事务所需要的权重值门槛
下面是一个例子:
权限
账户或公钥
权重
阈值
owner
1
EOS5EzTZZQQ...
1
active
1
EOS61chK8GbH...
1
某账户有两个公钥,分别拥有owner权限和active权限,每种权限的权重和阈值都是1。
权重达到阈值才能授权。
对于这个账户,因为单一权限的权重就已经达到阈值,所以如果该账户要push交易,只需要使用对应的密钥对交易进行签名即可,即单一签名就能完成交易。
多重签名(Multi-sig)和自定义权限
再看下面这个例子
权限
账户或公钥
权重
阈值
owner
2
@alice
1
@bob
1
active
1
@alice
1
@bob
1
publish
2
@alice
2
@bob
2
EOS7VtcvWo1...
1
在这个例子中,
owner权限
owner权限分配给了alice和bob两个账户,owner权限的阈值为2,alice和bob的权重均为1。 因此,alice或bob单个账户都不能获得授权,必须一起对交易签名才能获得完全授权。
active权限
active权限的阈值为1,alice和bob的权重均为1。 因此,alice或bob单个账户就可以签名获取授权。
publish权限(自定义权限)
publish是一个自定义权限,阈值为2,给alice和bob的权重均为2,给一个公钥的权重为1。 结果是,alice和bob因为权重达到阈值,可以直接签名获得授权;
这个公钥因为权重不够,需要和alice或bob一起,才能获取授权。
从多重签名和自定义权限,以及可以使用账户名和公钥两种方式设置权限,可以看出,EOS的权限系统具有很高的灵活性。
本文主要讲解通过助记词、keystore、私钥 3种方式来导入钱包。导入钱包就是说根据输入的这3者中的一个去重新生成一个新的钱包。导入钱包的过程和创建的过程其实是差不多的。
根据助记词导入钱包不需要原始密码,密码可以重新设置。根据用户输入的助记词,先验证助记词的合规性(格式、个数等),验证正确后,配合用户输入的密码重新生成一个新的钱包。
验证助记词的合规性(格式、个数等)
助记词导入钱包
通过私钥导入钱包其实和创建钱包的过程基本一致。因为私钥在导出的时候转换成了16进制,所以在导入私钥的时候,要把16进制转换为byte数组。
keystore就是钱包文件,实际上就是钱包信息的json字符串。导入keystore是需要输入密码的,这个密码是你最后导出keystore时的密码。将keystore字符串变成walletFile实例再通过 Wallet.decrypt(password, walletFile);解密,成功则可以导入,否则不能导入。
这是Web3j的API,程序走到这里经常OOM!
具体原因的话,我就不多说了,细节大家可以看这里
解决办法
根据源码修改 decrypt方法,这里我用一个已经修改好的第三方库
修改后的解密方法
导入Kestore
1、导入助记词和私钥是不需要以前的密码的,而是重新输入新的密码;导入Keystore则需要以前的密码,如果密码不正确,会提示地址和私钥不匹配。
2、关于备份助记词
用过imtoken的同学可以看到imtoken是可以导出(备份)助记词的。这个一开始我也很困惑,后来了解到其实它实在创建钱包的时候,在app本地保存了助记词,导出只是讲数据读取出来而已。还有一点,imtoken一旦备份了助记词之后,之后就没有备份那个功能了,也就是说助记词在本地存储中删除了;而且导入钱包的时候也是没有备份助记词这个功能的。
不会。
首先你有几个币的私钥,你只用一个私钥导入其他币种,就是说只用一个私钥管理所有币种,然后再去导入im钱包。
Bitpie app指的就是比特派钱包,这是一款由比太团队研发的比特币钱包软件,致力于为用户提供安全,隐私的资产管理以及交易和应用服务,并且内置了一站式交易平台,能够帮助用户方便的买卖比特币,立足于HD钱包技术、多重签名和链上交易,保障您的交易安全,有需要的朋友欢迎下载体验。
iMTokenEOS钱包私钥如何导入私钥导入方法
imtoken中如何导入EOS钱包私钥如何导入私钥?imtoken钱包中?在imtoken在钱包的日常操作中,支持用户导入各种钱包私钥,很多投资者不知道如何使用imtoken钱包中导入EOS钱包私钥,接下来来看看具体的操作流程。
imtoken中如何导入EOS钱包私钥?
一、操作步骤
1.点击钱包下拉切换页面顶部的钱包按钮,点击页面顶部的钱包按钮导入的钱包右侧的+号按钮
2.进入选择钱包类型的界面,点击选择EOS钱包,进入导入EOS钱包界面;输入你imToken当时映射的eos私钥,并设置你EOS钱包密码和交易密码
二、注意事项
1.imToken它是一个分散的钱包,映射后eos私钥由用户自己保管。如果没有备份,eos私钥,备份错误EOS不幸的是,私钥丢失了eos私钥,请耐心等待EOS目前,社区正在针对这些问题提出建议,我们将继续跟进,最新消息将在官方渠道发布。
2.本质上EOS账户支持多私钥,imToken2.0版本目前只支持单私钥导入,也就是说,您最初使用它imToken映射EOS之后的私钥。
以上就是小编给大家解说的全部内容,更多专业的游戏资讯,游戏资源,尽在jq下载站!