Skip to content

21.账号

oxogenesis edited this page Aug 8, 2019 · 6 revisions

账号

传统信息系统的账号是建立在服务提供方对个体识别的基础上。

识别的3种方式:

  1. Something you know
  2. Something you have
  3. Something you are

识别要素包括:口令、验证码(短信、语言、邮件)、密码设备(U盾、令牌卡等)、生物特征(指纹、虹膜、体重、步态等)、使用习惯(登录IP、设备指纹)等。

如果有个体提供这些识别要素的答案,系统就认为是该个体是账号的主人,放行相关权限的操作。
至于掌握识别要素的个体是否是真正对应账号的个体,系统是不能确认的。

这种模式主要有2个弊端:

  1. 由于系统掌握所有账号识别要素的答案,一旦系统被攻破,所有账号都遭受损害。
    A的账号除了A知道以外,系统也是知道的,B是从哪里盗取的账号,是说不清的。
    A再X系统、Y系统...使用的识别要素(口令、验证码等)可能是相同,X系统被攻破,可能导致A在其他系统的账号被滥用。
    近年来,百万千万甚至上亿账号的被盗屡见不鲜,都是由于系统集中掌握了识别要素的答案。
  2. 个体要否认一个操作是很难的,一切以系统为准。
    A本人用A的账号给B转账100块,C盗用A的账号给B转账100块,在系统上留下痕迹是一样的。
    甚至系统的管理人或特权用户可以直接使用A的账号执行相关操作,这是显然的,并且痕迹与A自己操作是一样的。

首先要承认纯粹的机器识别个体,在方向上就是错误的。机器识别的是特征,不是人。
基于这一点基本认知,系统不识别个体,只识别账号。
要回避以上两个弊端,必须做到系统不能知道任何一个账号识别要素的答案
识别方式3是方向错误,首先被否决。
识别方式1,系统和个体都知道答案,也不行。
识别方式2,something you have,而且这件something,要个体自己生成,而不能像U盾、令牌卡等设备由系统或其他实体发放。

个体本地设备生成,系统还要能够识别。
能做到这一点的只有非对称算法,并且已有BTC、Ripple等钱包账号的成功案例。
账号从生成的那一刻开始,始终不离开个体控制的计算设备。

照抄BTC等区块链项目的钱包账号的生成方式和算法,生成个体账号
这里摒弃用户账号的说法,个体是账号的主人,是本地系统的主人,而不是系统的一个用户

具体方法:
使用种子seed(默认随机生成)按椭圆曲线(当前为secp256k1)算法分离出公钥pk私钥sk
公钥pk使用散列算法并进行编码生成账号地址address
种子seed进行编码生成编码后的种子seed

address形如oeZELFBq5mbE4y5XdvG1f3DsW85FM7HHGM
seed形如xpQthz8SovHw3DF8CtmLw71VA7RhR

推导关系如下:
seed ==> (pk,sk)
pk ==> address
address ≠≠> seed

注意:
种子seed就是一切,应该妥善保存,防止泄漏。
账号地址只依赖于公开算法,可以公开给其他个体,用于标识个体。
男朋友会欺骗你,闺蜜会背叛你,算法不会,它就是不会。

密码学算法账号的重大意义:

账号不依赖于任何系统,而独立存在,不受任何个人、组织、国家的控制,无法被垄断,就像空气和地球引力。

为数据的自由传播打下了无比坚实的基础。