自由共识应用的发布、登录、引导与安全策略
-
原文链接:https://shimo.im/docs/PGtvVpdCWg3xhyR9 ,8月13日发布于开发社区微信群。
——————————自由共识是基于自由现金和密码身份扩展形成的去中心化经济基础设施系统,为密码应用提供自由共享的开发和商业平台。
总结Dplanet.io、Freedrive.vip、知识库、18.cash等生态应用的开发应用的经验教训,对自由共识生态中,密码应用的发布、登录与安全策略提出以下建议:
应用发布策略
应用的发布建议执行《FEIP15V1_应用发布》(https://shimo.im/docs/FgvLdjvxsqsJsakG)
创建cid:自由共识生态所有的主体均为CID。应用发布时,首先应当注册一个CID(建议网名2-3字符),作为该应用的主要身份,将在应用相关的各种活动中代表应用官方。
声明应用
命名:以应用CID在主链上按照FEIP15协议,发布应用声明,给出应用的正式名称。
创建者:在该声明中,声明应用的“创建者”们的CID。
官网:在声明的“详情”字段中,声明该应用的主页,具有官网地址的含义。
协议:声明本应用采用的协议,以便多应用协同,并在协议有更新时,能够及时通知应用维护者。
授权主cid:由于应用cid将用于多项活动,往往私钥在线。为确保安全,应用cid创建后,应按照《FEIP6私钥间授权协议》声明一个不可撤销的主cid(一般为应用的实际控制人cid)。一旦应用cid私钥遗失或失窃,可以主cid声明调整。
登录策略
为满足新用户和cid用户的两种需求,建议主页提供“账号登录”和“CID登录”两个登录选项。
账号登录
用户登录:用户以昵称、邮箱或手机号,输入密码登录应用。未注册用户则进入注册账号页面。
注册账号:邮箱或手机注册,设置昵称、密码,邮件或短信验证码。
生成在线私钥:为用户自动生成fch私钥和地址,并由系统发送0.001f给该地址。
地址作为账号:建议以该地址作为该用户在应用内的id,确保唯一性和不可变。
注册cid:自动以用户设置的昵称为网名注册cid。无需提醒或通知用户。
cid登录
给出“应用cid+随机数”构成的“登录码”和二维码,提示用户签名。
"登录码"应控制在10个字符以内,以便1个二维码可以容纳完整签名。意味着应用cid的网名应在3字符以内,随机数2-4字符。
用户填入“登录码----地址----签名”构成的完整签名。能够控制摄像头的应用,应添加扫描按钮,以便扫描用户离线设备上签名的二维码。
cid首次登录,建议以签名的地址为用户设立账号(地址包含在签名中,而相应cid有可能不方便查询,且地址是不可变的,cid是可重复注册的)
cid首次登录,并要求设置密码,也可忽略。
任何时候,cid登录码签名均可直接完成登录,无需输入密码。
已经设置密码的,可以以cid为账号,密码登录。
用户引导策略
新人无感入门:新人采用账号注册登录,无需感知和了解地址、私钥、cid等。
中心化功能:新人只使用无需信息上链的应用内的中心化的功能。包括应用内转账。
参与活动奖励:根据应用的功能特征,设计用户有奖参与活动,让用户获得少量fch,便于进行更多活动。
尝试链上功能:当用户积累了少量fch后,便可引导展开链上活动,如知库创作、协作发布等,并建议用户链上查看,从而认知fch地址和余额等基本知识。
注册离线cid:当用户开始存储大量资产或从事重要的社会经济活动时,引导用户注册离线cid,学习离线签名。
学习授权:用户注册离线cid之后,在线cid自动授权离线cid为主cid,并引导用户用主cid授权在线cid,展开重要经济活动。
cid登录:用户授权主cid后,随时可以通过cid签名登录应用,并可以随时以cid签名重置密码。
安全策略
在线私钥生成:应用为用户生成在线私钥,应注意随机数的安全性。
私钥服务器备份:建议在线私钥以用户密码加密后存储在服务器上。用户密码可以由应用方加密备份与服务器。
链上备份私钥:当用户以cid登录或者注册了主cid时,在线私钥以离线cid的公钥加密后按照协议《FEIP17_保险柜》,以在线地址发送到离线cid地址,类型为“privkey”,备注填入本应用cid。
用户授权主cid,用户随时可以通过cid签名登录,或者重置密码。
找回链上私钥:当服务器丢失私钥时,可从链上检索备注为本应用cid,类型为privkey的记录。并出示密文和二维码,提示用户以离线cid解密后获得私钥导入系统。