如果你曾经尝试在本地运行 EOS 测试节点,会发现编译、运行并不是特别复杂,但官方教程里两个概念很容易把人搞晕: Account(账户) 和 Wallet (钱包)。
WALLET
EOS 的 Wallet 跟其他区块链项目是类似的,都是一个基本功能:本地储存密钥,仅此而已。你可能说了不对啊,其他项目的 Wallet 不光存密钥,还存代币呢。这里就是大家的一个误区,其他项目的 Wallet 也没有存你的代币,你的代币是存在整个区块链网络里的,只是区块链网络里的代币可以由你钱包里的密钥支配,给你了“钱包存代币”的错觉。那 EOS 的代币不由密钥支配?对,应该说不直接由密钥支配,先别急,先把 Wallet 说完。
Wallet = 本地存密钥,怎么存呢?一个 eosc (eos客户端) 可以建立多个 Wallet,每个 Wallet 可以存多个密钥(公/私钥对),不管这些密钥之间有没有关系,都能直接存在一起。每个 Wallet 都可以通过密码加密。EOS 公网上线后,一定要将存有密钥的 Wallet 加密,并且将 Wallet 文件单独备份好。 Wallet 密码也要单独备份。总而言之:私钥、Wallet 文件、Wallet 密码永远都在本地,不要上网,不要跟任何人分享。
ACCOUNT
Wallet 说完了,前面说 EOS 的代币不直接由密钥(或者钱包)支配,那由什么支配呢?答案就是 Account。Account 字面意思是“账户”,但我觉得有个概念更适合:“法人”。Account 是 EOS 网络的基本单位,是保存在区块链网络上的。一个 Account 背后可能只是一个自然人,也可能是一个数千人的大公司,或者是个智能合约。EOS 代币就是由 Account 持有的。先来看看最基本的情况:一个自然人持有一个 Account。
读过上篇文章的已经了解,每个 Account 有三种权限: Owner、Active、Recovery。
只要你钱包里拥有的密钥能达到阈值要求,就能直接行使相应权限,也就是说如果本地钱包存有上述两个公钥对应的私钥,就可以行使 @Xiaodi 账户的 Owner 与 Active 权限。对于 Recovery 权限,则需要 Recovery 列表里至少两个账户的授权才能行使。
再来看看一个稍复杂的 Account:
你看的没错 EOS 是可以增加权限种类的,对于这个 @XiaodiGongZhongHao账户,增加了 Publish (发布文章权限)。
相信读者可以自己分析了:Owner 权限必须两个账号同时授权,因为阈值是2;Active 权限则只需一个账户授权;Publish 权限中,虽然第三个公钥的权重为1,但阈值是2,也就是说这个公钥签了名也是没法发布文章的,需要两个账户之一再次签名。可以直接公布此公钥的对应私钥,这是模拟网友使用对应私钥投稿,编辑审核的情况。
配合可以增加的权限种类,可修改的阈值和权重,EOS 的 Account 权限可以有无限种玩法。