前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >略懂链3:EOS的账户体系

略懂链3:EOS的账户体系

作者头像
用户1682855
发布2018-12-25 12:04:41
8290
发布2018-12-25 12:04:41
举报
文章被收录于专栏:前沿技墅前沿技墅

本文作者 虞家男(Eric Yu)

上海交通大学硕士,区块链技术专家,全栈开发者,麦子钱包CTO&联合创始人,EOSData.io技术社区联合创始人。

当今区块链世界分为四个层次,分别是以比特币为代表的“链+币”,以域名币、比特股、Steem为代表的“链+专有应用”,以以太坊为代表的“链+通用平台”,再就是以EOS为代表的区块链3.0技术的“链+操作平台”。EOS作为企业级操作系统,对链的基础功能进行了强化和封装,提高了应用开发者的关注层次。EOS无疑在技术实力、资金支持、社区共识等方面,都有着巨大的产生可商用产品的潜力。即使观望、质疑,了解以下一些必要常识,也可在进退之间多一份从容与机动。

什么是账户

如果使用ETH的话,你会从一串地址向另一串地址转账,这个地址是长长的一串乱码字样的字符,没有人能够凭记忆记住。而通过EOS转账,就简单多了,使用的是很容易记住的有意义的名字。

在EOS中,是通过一个账户向另一个账户来转账的。比如,假设笔者的账户名是giveeostoken,你的账户名是sendeostoken,那么转账的时候,发送人为sendeostoken,接收人为giveeostoken,填好了数额,直接转账就可以,再也不需要记住那么一长串的字符地址了。

在EOS中,操作是以账户为基础的,转账、更新其他信息都是基于账户的操作。

从本质上讲,账户是存储在区块链中的人类可读标识符。每笔交易都根据配置的账户权限进行评估。每个已命名的权限都有一个阈值,在该权限下签署的交易才能被视为拥有有效的阈值。它可能属于个人或组织,这取决于账户的权限配置,需要通过账户才能将交易直接或以其他方式推送到区块链。

EOS账户有12个字符的限制(允许字符a~z、1~5),这12个字符是从64位整数的base-32编码派生而来的。64位整数是本地机器字符的大小,而数据库索引也是以这些64位整数为基础的,所以使用12个字符的账户名限制是对性能充分考虑的结果。

EOS也支持少于12个字符的短账户名模式,但获得短账户名需要参与系统合约拍卖,第一个被拍出的短账户名是“eos”,拍卖的价格是50000个EOS代币。

什么是交易

交易是一组Action操作的集合,也可以理解为执行智能合约。交易通过使用已经安装和解锁钱包的客户端来签署。

什么是公钥

EOS账户有Owner权限及Active权限,对应的都是一串公钥。也就是说,如果你有这串公钥所对应的私钥,那么就有对应的操作权限,就能够操作这个账户。一个公钥可以绑定到多个账户上。

什么是密钥对

密钥对是由公钥和私钥组成的,相互之间唯一对应,如下:

Private key:5KFvWKC4xCBHTTPmgJq1kWFJAWrgGHS99RPEgtk55WM3WycZ1ie

Public key:EOS5KcZJddh58Xeiwd9h4U7U7KA6dXBPTarkq813XCo4XvVkYQkkZ

私钥一定要写在纸上备份并保存好(注意区分大小写)。

什么是权限

EOS会为每个账户生成两个默认的权限:Owner权限和Active权限,账户的拥有者可以通过权限所对应的私钥来进行操作。

EOS内置了一个层状用户管理和权限管理系统。不同用户拥有不同的权限,也可以隶属于不同的用户组,不同的用户组可内置不同的权限,这种设计非常符合企业环境的需求。

账户权限的更新

EOS账户的每个权限默认会对应一个公钥,那么如果想修改我的公钥该怎么办呢?

其实比较简单,更新账户所对应的权限即可。比如,你有一个账户giveeostoken,你想换个公钥来控制它的权限,这时就可以用updateauth命令更新Owner权限和Active权限,将对应的公钥换成你新的公钥即可。

什么是钱包

钱包是保护和利用你的密钥的软件。这些密钥可能被授予也可能不被授予区块链上的账户权限。

账户和钱包的关系

钱包是一个存储可能与账户有关的密钥的客户端。在通常情况下,钱包有锁定和解锁两种状态,并通过一个高熵密码保护。EOSIO/eos库中有一个名为cleos的命令行界面客户端,它与一个名为keosd的lite客户端进行交互,并且共同展示了钱包的这种模式。

EOS对于账户的设计与ETH有很大的不同,引入了Account(账户)、Wallet(钱包)、钱包密码、Key(公/私钥)、Permission(权限)等众多概念,刚入门的时候会令人一头雾水,如图1所示。

图1 EOS账户和EOS钱包的关系

如图1所示,右边是EOS Wallet钱包,里面只存放私钥,而且钱包有一个密码,需要输入密码才能解锁钱包,读取私钥。左边是EOS Account账户,可以把它看成一个保险箱,里面有EOSToken及智能合约,而若要转移里面的EOS Token(或者执行智能合约,EOSToken本身其实也是智能合约),你需要钱包中对应的私钥来解锁这个保险箱。

创建一个账户的命令是:

cleos create account {创建者账户名} {新的账户名} 公钥1 公钥2

其中{创建者账户名}是为这个创建操作支付EOS代币的账户,公钥1和公钥2分别是两个不同权限的密钥对的公钥。

所以把权限系统加上,图1就变成如图2所示的样子,一个保险箱有两个开关,不过打开后可以进行操作的权限是不同的。两个私钥可以存放在一个钱包里,也可以如图2所示存放在不同的钱包里(由不同的人控制)。

图2 EOS账户对应多个钱包管理密钥

在图2中,Owner权限是账户的最高权限,可以修改其他权限。Active权限默认可以进行转账等操作,但不能修改其他权限。每个保险箱有一个名字,这就是EOS账户名。

转账和智能合约等操作的执行都是在Account这个保险箱中进行的,所以EOS世界中的账户名对应的其实是以太坊的地址。与以太坊不同,EOS的账户名不再是一串很长的字符串,而是一个你可以自定义的英文字母+数字(12345)+符号(.)的字符串,其最长12位,最短1位,全局唯一,先到先得,注册需要消耗大于4KB的内存。

本文节选自电子工业出版社博文视点新书《EOS区块链应用开发指南》的2.3节“EOS的账户体系”,该节下还有EOS权限管理和丢失密码可恢复等内容。如果各位读者对EOS区块链技术有兴趣,可以点击阅读原文了解更多。

内容简介:这本书由业内专家汪波、何琼、孤失、翟东明联袂力荐,向读者展示了EOS区块链技术的众多概念和特性,包括初识EOS、EOS的工作原理、开发工具和环境、编写智能合约、EOS RPC接口、创建和部署DApp、部署基于EOS的侧链等内容。书中结合实战经验,从基础的概念和原理,到一线的执行与案例,对EOS技术进行了系统且深入的阐述,希望能够帮助开发者进入EOS的世界并比较容易地上手开发DApp。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前沿技墅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本文节选自电子工业出版社博文视点新书《EOS区块链应用开发指南》的2.3节“EOS的账户体系”,该节下还有EOS权限管理和丢失密码可恢复等内容。如果各位读者对EOS区块链技术有兴趣,可以点击阅读原文了解更多。
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档