前言
在学习EOS开发之前,我们需要搞明白一些概念,尤其是Account(账户)和 Wallet (钱包)。
钱包、账户、公私钥之间的关系
EOS与Ethereum在账户的设计上有很大不同,引入了Account账户, Wallet钱包, 钱包密码, Key公私钥, Permission权限等概念。
下面我们通过一张图来理解一下它们之间的关系:
如上图所示:
右边是EOS Wallet钱包,里面只存放私钥,而且钱包有一个独立的密码,需要输入密码才能解锁钱包,读取私钥。
左边是EOS Account账户,可以把它看成是一个保险箱,里面有EOS Token以及智能合约,而需要转移里面的EOS Token(或者执行智能合约),我们需要钱包中对应的私钥来解锁这个保险箱。
EOS Dawn 3.0测试版本中创建一个账户的命令是:
cleos create account {创建者账户名} {新的账户名} 公钥1 公钥2
其中 {创建者账户名} 是为这个创建动作支付EOS的账户,公钥1和公钥2分别是两个不同权限的密钥对的公钥。
所以把权限系统加上,图就变成下面这个样子:
一个保险柜有两个开关,不过打开后可以进行操作的权限是不同的。2个私钥可以存在一个钱包里,也可以如上图所示存在不同的钱包里(由不同的人控制)。
权限
每个 Account 有三种权限: Owner、Active、Recovery。
Owner权限是账户的最高权限,可以修改其它权限。
Active权限默认可以进行转账等操作,但不能修改权限。
Recovery权限可以用于恢复账户使用权。
账户
每个保险箱有一个名字,也就是EOS账户名。
转账和智能合约等操作的执行都是在Account这个保险箱进行,所以账户名在EOS世界其实是以太坊的地址。
与以太坊不同,EOS的账户名不再是一串很长很长的地址,而是一个我们可以自定义的英文字母+数字(12345)+符号(.),最长12位,最短1位,全局唯一,先到先得,注册费用还没公布,但据最新的消息,长度不同,注册需要花费的EOS也不同。