在区块链系统中,用户体系是一个非常非常重要的部分。为什么这么说呢?因为它直接决定了一个区块链项目上用户的资产安全。接下来我会从技术角度详解——EKT的用户体系为何安全?为何能够向链上企业实现用户的共享?
目前,比特币采用的是UTXO 模式。和比特币不同,EKT 多链技术生态采用的是 Account 模型,并且增加了“账户申请”的机制。EKT 生态内的所有主链以及 DApp 都可以方便的接入现有的用户体系。
1、用户地址的创建
在 EKT 多链技术系统中,新账户的创建既可以使用 EKT 提供的默认算法生成,也可以到 EKT 的客户端里申请,所有的用户信息都只记录在 EKT 主链上。每个用户在申请地址时,需要提交的信息有公钥、加密算法以及自己打算申请的地址。用户申请的地址是个性化的,可以填写没有被注册过的地址,地址的长度为32Bytes。由于 EKT 多链技术系统里的用户地址不是通过公钥计算出来的,而是通过申请得到的,所以用户可以更换地址背后的公私钥以及加密算法,而 EKT 也会保持对最新加密算法的支持。即使目前区块链项目中流行的 SHA256 被破解,EKT 的用户体系也不会受影响。
2、用户密钥及加密算法的更换
在 EKT 的客户端中,一个账户可以申请更换地址背后的公私钥以及加密算法,更换之后账户地址保持不变,主链同步更改账户的相关信息。在区块链项目中,交易的生成、发送以及其他的写操作都需要用户用私钥进行签名确认,如果用户更换了地址的相关信息,那其他主链或节点如何验证新的签名信息呢?主要有两种方法:
1. 如果对安全性要求不高,在用户更换完私钥和公钥以后,可以等待主链的区块同步,使用主链区块上用户的公钥来进行校验。这种方式在其他主链上无法通过校验。
2. 如果其他主链想要校验用户签名的有效性,可以通过 RPC 调用 EKT 主链的方法,将地址、消息以及签名信息等发送到主链的节点,主链节点验证后返回校验结果。一般情况下,EKT 主链上如果有(1 n/2)个节点校验通过则视为校验成功。
3、用户的跨链资产交换
在白皮书里我们提到过,EKT 是天然支持跨链的。这里的跨链指的是 EKT 多链技术生态里的各个主链间的资产交换。
在 ETK 的系统中,一个币的交易只能在一条链上进行打包,在其他主链发起的任何交易都会通过 EKT 主链路由到这笔交易所涉及的币种所在的主链上进行打包并记录。我们来看一个完整的跨链交易流程:假设用户 user1 发起一笔交易,在 B链上将 A 资产转移到用户user2,此时流程如下:
1. B 链发现交易资产并不是自己的主币,将交易发送到 EKT 主链;
2. EKT 主链查找 A 资产对应的主链,假设为 A 链。并将交易发送到 A 链。
3. A 链打包交易,打包结果发送到 EKT 主链。此时手续费为 A 链的主币。
4. EKT 主链收到打包结果后,对相应的账户进行资产的增减。
基于 EKT 主链的用户系统以及路由功能,天然的实现了资产的跨链操作。
4、Dapp的用户体系
基于 EKT 主链或者生态里的其他主链开发的 DApp,也可以利用主链提供的用户系统和路由功能。在 DApp 内部实现资产的跨链转账、用户登录等。
EKT 的用户体系兼顾了安全与通用性,让各个主链的资产可以自由的在生态内流动,又为基于 EKT 开发的 DApp 提供了天然的用户群体,是一种非常高效的解决方案。