当前位置:首页 > 区块链新闻 > 正文

技术视点 | 如何证明我是“我”

来源: 互联网时间:2019-07-18 14:50:43

在区块链世界中,用户使用自己的账户构造和发送交易,共识节点对交易验证的重要步骤之一,便是「确认用户的身份」


                                                                                             图 | 网络

基于去中心化的设计思想,区块链没有中心的账户管理节点,账户由用户自己生成和管理。普遍使用的账户模型基于公钥密码技术建立。用户在本地生成密钥对,并使用其中的公钥按照一定的规则推导生成账户。当构造交易时,用户使用私钥对交易生成签名,并附加到交易数据中,区块链通过验证交易中的签名来认证用户的身份。这种模式下,账户无需进行注册过程,形成“即时生成,即时使用”的模式。

实际上,区块链技术并不关注“实体的人”,关注的是“认证人所持有的私钥”。

我们偶尔会看到这样一种痛心疾首的情况—— 某人的私钥不慎遗失,大量资产漂浮在空中,账户无法使用。这就告诉了我们一个道理:私钥是认证的关键,用户应该进行妥善与安全地保管,这也正是区块链与传统中心化服务的一大显著区别。


                                                                                            图 | 网络

在中心化服务中,用户的账户由服务商统一而集中地管理。本质上账户归服务商所有,而用户只是从服务商处获得了使用权。仔细想想,这种情况下用户并不是自己账户的主人,而是归由服务商所有,用户拥有的只是使用权。

从服务商角度来看,服务商通常使用“账户名+口令”的组合来认证用户的身份。口令即是由用户自己掌握的关键信息。当用户遗失了认证口令,可以向服务商申请重置。由于账户实际掌握在服务商手中,因此只需在使用辅助手段鉴定用户身份后,为用户重设口令并重新开通权限即可。

在这种中心化环境中,用户需要相信服务商不会滥用其账户及相关数据。而如果这一切交由区块链技术,所有权便仍在用户手中,每个用户要对自己的账户负责。

区块链的这种账户模式为更好地主权控制和隐私保护提供了基础,相应的对密钥管理的容错性为0,对用户的安全意识提出了更高的要求。

这种0容错的账户模型有多种改进方法。比较常见的支持门限控制的多签名账户即是一种实用的手段。

例如一个(t, n)门限的账户,只要有 n 个密钥中的任意 t 个签名即可通过认证。这样,即使其中一个密钥不慎遗失,仍可以通过其他的密钥操作该账户。

然而,目前各区块链项目的多签账户方案大多是由组成多签组的 n 个独立密钥按照一定的规则推导生成账户,通过遍历验证交易中的所有签名判断是否满足门限条件。这种多签账户不支持密钥的恢复或更新。当需要更换密钥时,则需要重新生成一个新的账户。



                                                                                             图 | 网络

这种情况下,一种改进的方法是使用秘密分享算法构建账户系统。其基本思想是使用算法将私钥拆分为多个分片,各分片可以生成签名的分片,而门限数量的签名分片可以组合出一个完整的签名。

这种算法支持秘密分片的更新,且更新后的分片不与旧的分片兼容,使得旧分片失效。因此如此构建的账户可以在有分片丢失或被盗时,在保持账户(私钥)不变的情况下重置分片。

另一种更简单直接的改进方案是将账户本身与密钥解耦。用户账户使用密钥无关的字符串表示,并通过注册的方式在链上与用户的公钥绑定。此后注册的账户可以任意绑定和解绑公钥。在操作账户时,提供任意一个公钥能验证的签名即可通过认证。在此之上,可以根据需要设定更加复杂多样的控制逻辑,这种账户体系极大地提高了灵活性。

账户体系是区块链技术发展与推广的一大挑战。从算法技术到产品设计,建立更加安全易用的账户体系才能够被更多的用户接受。

来源:本体Ontology

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。