EOS技术白皮书学习笔记(二)- 账户系统

本文由币乎社区(bihu.com)内容支持计划赞助


在看本文前,最好先了解区块链相关概念:比特币。以太坊,钱包,智能合约,秘钥等

为了更好的理解,先看看一个普通账户系统需要哪些功能

假设我刚进入一个网站,我首先要能注册一个帐号,然后能用帐号登录,登录成功后能够在一定时间内保持已登录状态,同时我还有可能要对帐号的一些基本信息进行修改。另外出于之前密码泄露事件的影响,我不希望我的密码是被明文保存,希望我的帐号是安全的。

基于以上一个用户使用的流程来说,一个帐号系统功能可以进行如下划分:

用户注册

用户登录

用户登录后身份校验

用户基本信息修改

用户基本信息获取

用户安全中心

从上述功能上考虑,可以进行如下划分:

用户基本信息服务,提供用户的基本信息的获取和修改,

用户的注册和登录服务,提供用户的注册、登录授权颁发用户的登录标识

用户身份校验服务,对用户的登录标识进行校验

用户安全中心服务,提供用户的重要信息的修改如登录的邮箱手机号,密码等。用户在进行这些敏感信息的修改是需要进行身份认证,来保证用户的安全性。


简单来说一个账户系统就是为用户设计的,需要考虑用户在应用上的各方面的需求。

下面我们来看看EOS.IO为用户设计了怎样的账户系统。

技术白皮书上关于账户系统,列举了以下几点

4.帐户

消息和消息处理程序

基于角色的权限管理

命名权限级别

命名消息处理程序组

权限映射

权限评估

默认权限组

权限的并行评估

有强制延迟的消息

密钥被盗后的恢复

虽然还不知道以上列出的概念具体讲的是什么,但单从字面上就可以看出,它有消息、权限、安全等功能。相比于比特币,以太坊的只有私钥和地址概念的账户系统,可以说是非常先进了。他们的区别有点像没有装图形界面系统的电脑和装了图形界面系统(例如:Windows,macos)的电脑的区别。

另外,EOS可以使用一个人类可以阅读的2-32个字符来创建账户,而比特币和以太坊的账户地址是一串看不懂意思的字符串。

以及,EOS的账户支持域的概念,你可以创建一个叫jack的账号,表示为@Jack,接着你可以再创建一个叫做@shuai.jack的账户,并且这个账户只能由你创建。

从以上几点可以看出,EOS在可用性上比比特币、以太坊好太多。

在现实生活中,每个人都不是独立的个体,人与人的沟通是生活中不可或缺的部分。在EOS系统中也是一样,账户与账户之间需要通信,而"消息"就是他们之间通信用的语言。

EOS的消息处理机制

每个账户都可以发送结构化消息到其他账户

账户可以定义消息被接收后的处理脚本(程序)

每个账户有自己独有的数据库,只能自己的消息处理程序访问

账户的消息处理程序可以想其他账户发送消息

消息和自动的消息处理程序的组合是EOS定义智能合约的方式

当用户使用一个应用(基于EOS)的时候,会有各种各样的操作,而有些操作比较私密,不能随便操作,需要密码等权限。就好比你用“登录密码”可以登录支付宝,但是需要“支付密码”才能支付。所以对账户进行权限管理是很有必要的,EOS的权限管理是基于角色的。

基于角色的权限管理

1)判断一条消息或消息程序或事务是否被授权,最简单的形式是这条消息是否包含一个签名,并且知道这个消息是谁的

2)为了更细和更高级的控制权限,EOS提供了一个声明式权限管理系统,把个人和群组绑定在一起。这怎么理解呢?一般来说,大范围的权限可以控制群组(角色),细的权限可以控制个人,而个人又可以在群组(角色)里,还可以是多个群组,这样就可以做到权限的随意控制。

3)认证和权限管理必须标准化,并与应用程序的业务逻辑分开。这使得开发工具能够以通用的方式管理权限,并为性能优化提供重要的机会。

4)EOS还提供多账户的控制,多用户控制是提升安全性的最重要因素,如果能正确使用,可以极大地消除黑客盗窃的风险(把钱放到多个钱包比放在一个钱包安全吧)。

5)EOS还允许当前账户和其他账户的各个权限进行组合,并发送到另外的账户。这就类似支付宝的“登录密码”和“支付密码“。

想要做到以上几条,EOS是怎么做的,以下是它的权限管理方案:

1)命名的权限级别

EOS允许不同的权限设定不同的名字,当然它提供了两个默认的级别,它们分别是最高级的Owner,其次是Active。其他的权限级别的名字可以自己定义了,例如,你需要定义两个权限级别,一个给你老婆用,一个给你孩子用,你就可以分别取名为老婆大人、小可爱。

2)命名消息处理程序组

这个是干嘛用的呢?每个账户将自己处理消息的程序按照@accountname.groupa.subgroupb.MessageType这样的格式命名后,可以给其他账户使用。在这样的模式下,可以将创建和取消订单的交易合约与存取款的交易合约分离。这种交易合约的分组对用户使用交易合约提供了较大便利。

# 权限映射:命名权限级别和命名的消息处理群组之间是可以做映射(关联)的。

# 权限评估:怎么判断权限的大小?EOS是按照从小到大的权限顺序进行判断的。例如:当 @alice 以 "Action" 类型发送一条消息给 @bob 时,首先会检查 @alice 是否为 @bob.groupa.subgroup.Action 定义过权限映射。 如果什么都没有找到,紧接着检查 @bob.groupa.subgroup 映射,然后是 @bob.groupa,最后 @bob 将被检查。 如果都没有找到,那么假定映射为命名的权限群组 @alice.active。

# 默认权限组:最高级的权限是“owner”,这个权限可以做任何事情,但是一般不用做具体工作,一般用来做冷备份,比如说Active权限丢了,可以用“owner"权限来恢复。在”owner“之下就是”active"了,它是可以做除了修改“owner”以外的所有事情,一般业务都是由active权限来完成。其他的所有权限组也都是从“active"权限派生出来的。

# 权限的并行评估:权限评估是个”只读“的过程。所有事物的所有秘钥和权限评估可以并行执行。

强制延迟的消息

时间是安全的关键组成部分。怎么理解呢?

一条消息发出去,可能会受到很多因素的干扰而不能被及时接收确认,这时的你可能想取消发送消息。EOS允许发送有时间延时的消息,在特定时间范围内可以取消消息。这种延迟消息具体能延时多长时间,还得看具体的应用场景。比如说,我们买一杯咖啡可以在几秒钟之内付完钱,而买房子可能需要72小时清算周期。具体取决于应用场景以及应用开发者怎么设定,用户怎么操作的。

恢复被盗窃的秘钥

在币圈我们常常看到新闻里有报道某某某秘钥被盗,损失多少多少这样的事件。EOS为用户提供了一种在秘钥被盗时恢复其账户控制的方法。包括以下4点:

1、账户所有者可以使用30天内的任意Owner权限的密钥,注意这个密钥可能已经被黑客换过了,但是在这个场景下这个密钥还是可以使用的;

2、使用任意30天内的Owner密钥和指定的合作伙伴才能恢复密钥。

3、这里面合作伙伴不能在没有Owner协助的基础上恢复密钥。

4、合作伙伴也不会参与任何日常交易,这样可以大大降低法律上的风险。

配合学习笔记系列文章一起读会更好理解哦

EOS技术白皮书学习笔记(一)- 摘要,背景,共识算法

EOS技术白皮书学习笔记(三) - 应用程序的确定性并执行

本文首发于微信公众号:lin-mingtan 欢迎关注交流 ^.^

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容