DAS:跨越任何疆界的去中心化身份
区块链发展至今,严格来说已经超过了十个年头,身在其中的我们可以感觉到一件深刻的事情,那就是:许多区块链上的事物可以真正为个人所有,尤其是资产,但是去中心化的身份(DID)却仍然是一个尚未发展起来的领域。
DID 为什么重要? 根本的原因是 DID 可以让身份、账户为个人所有,进而用 DID 来做各式各样的操作,这也能够避免像如今的互联网世界一样,过多的个人身份被中心化机构所控制,并且常常因此而产生身份泄露,甚至诈骗等事件。
同时,去中心化身份也是未来在区块链世界进行任何治理时重要的入口,我们在 DID 中能关联自己对于各种身份的验证信息,我们在独自掌控自己的任何信息下,还可以参与各种的应用或治理。
DID 也是 Web 3.0 世界中的重要组件,然而目前 DID 的发展仍然是缓慢的,我们还很难看到一个较为普遍的解决方案,在目前的这些去中心化身份的尝试中,我们可以列出几个我们观察到的常见问题:
1、无需许可链的地址可读性不足:公有链的地址是最常见的一种去中心化身份,背后的账户也由个人所控管,但是对于一般人要读取地址这种一长串的乱数,却有一定的困难性。因此,我们很少用公链地址作为一种公开展示给他人的去中心化身份。另外,地址也不具有转移的能力,也就是说这个身份会长期由拥有私钥的人所有。
2、易读但有排他性的ENS:ENS (Ethereum Domain Service)是以太坊上专门为了让以太坊等地址变得更有可读性的一种解决方案,很有效地将地址转化成为了 XXX.eth 的形式。但是,从其名即可知,ENS 是把自己定位为「以太坊专属的域名服务」,对于其他链的钱包都具有排他性,无法让 ETH 以外的其他账户控制这个域名。
3、复杂且难以被兼容的 W3C DID 、Handshake 和 Blockstack:除了较为知名的 ENS 之外,万维网联盟(W3C) 也制定了一套 DIDs 的资料格式,然而接口以及整合标准等工作均较为复杂,所以目前难以被采纳。另外,公链项目 Blockstack 和 HandShake 也具有去中心化身份的设计,然而同样地面临架构复杂,以及无法让其他公链的账户控制去中心化身份的问题,因此难以被大量采用。
01
去中心化账户服务(Decentralized Account Services,DAS):Web3 世界的去中心化身份认证系统
经过上述对于市面上项目的问题剖析后,我们会知道除了可读性、去中心化、唯一性对于去中心化身份来说是必备的特性之外,能够跨链,轻量好集成,以及低使用门槛势必也是一个去中心化账户服务所必须的,这样用户才能够让来自四面八方的公链以及密码学验证工具去控制他们所拥有的这些身份。简而言之,他一定是任何人都可以接入,并且是个中性的身份管理系统,因此在域名的选择上 DAS 统一以 .bit 作为结尾,而不是强调特定公链或者特定属性。
具体来说,DAS 目前有两个主要的核心功能,一是去中心化身份注册、管理以及透过 DAS 账户进行加密货币转账。
去中心化身份注册:世界上任何一个公链账户都能控制的去中心化身份
首先,在 DAS 去中心化账户注册的页面中,你会发现到任何公链的钱包都能在 DAS 中注册/竞拍 「.bit」结尾的域名作为自己的去中心化账户。同时,为了实现尽可能的低使用门槛,在 DAS 中购买域名,可以直接以「支付宝」、「微信支付」、「Paypal」以及大家常见的「加密货币支付」等选项,好让任何用户都能够以自己习惯的方式,购买到 CKB 链上的去中心化身份。
在这个过程中,你可能会发现,你不论是用 ETH 上的 MetaMask,还是 Tron 的 Tronlink 浏览器钱包,都能够完成 DAS 域名的注册。这正是 CKB 所特有的能力,也可能是唯一一条公链,能让用户随意地使用自己所习惯的任一条公链的钱包,来控制自己的去中心化身份账户。
DAS 账户的使用与管理
我们在每一个自己所注册的账户中,可以看到他们都以 .bit 作为结尾,这些账户都能填入我们希望它们对应的 ETH、CKB、BTC 或者 TRON 等任意公链的地址。在未来,我们只需要注册一个 .Bit 的 DAS 账户,就能够用 DAS 作为所有地址的收款地址。
若要深究其中的原理,我们会发现 DAS 的设计上具备了层级结构,以方便账户做不同层级的操作与管理,这个 DAS 账户的基础架构如下,分成了 Owner、Manager 以及 Records:
1、Owner:Owner 是该账户的最终所有者,如下图我们能看到他能转移该账户的所有权以及设置账户的管理员(Manager);
2、Manager:DAS 账户的管理员可以管理此账户的 Records 以及子账户;
3、Records:Records 是此 DAS 的解析记录数组。而解析记录是以键值对(Key-Value)的方式让用户或者相关dApp进行自定义。如此一来,就能够完成该 DAS 账户对应到哪个 ETH 地址、哪个 BTC 地址以及 CKB 地址,同时还可以在上面注明昵称、邮箱等信息。
Owner 可以对于 Manager 进行管理,当然也可以转移 DAS 账户的所有权。
将 DAS 作为所有公链的收款地址:一个账户,行遍天下
我们在目前的 demo 中 (https://dapp-demo.da.services/),已经可以看到,任何人都已经能够直接使用他们的任意钱包或 DAS 账户,来向任何的 DAS 账户进行不同链之间的转账。
举个例子,今天我如果欠 Alice 500 USDT,我手上的钱包是 Tron 的 Tronlink ,我就可以向 Alice.Bit 所代表的 Tron 地址转 TRC-USDT,我手上的是 MetaMask,面对 Alice.Bit,我一样能够转给他对应的以太坊地址 ERC-USDT。
足够抽象的 Nervos 底层,使得任何区块链账户都能使用 DAS
我们仍然相信未来的世界是多链并行的,除了比特币和以太坊之外,任何一条链都有可能在特定的领域具有一席之地,具有自己独特的价值与市场。因此,对于一条底层公链而言,能不能够让来自任一条公链的用户,都能够使用自己链上的钱包来对链上的 dApp 进行签名,取决于这条公链有没有有足够的兼容能力。
Nervos 最大的特性,就是能够在每一个 lock script 中都能够使用任意的密码学做为解锁的方式,因此如果我们今天在前端页面已经知道这是一名持有比特币钱包的用户,我们便能够去构造一笔验证比特币签名的交易,以确认这个提出交易请求来注册域名的用户,是不是真的持有该比特币地址的私钥。
当然,能够对于各种密码学的兼容也并非是偶然,而是 Nervos 底层设计与众不同下的必然。Nervos 的底层虚拟机 CKB-VM 是基于 RISC-V 指令集打造而成,能够广泛地接纳现有的以 C 语言或者其他语言实现的密码学库,并轻易地移植到 CKB 虚拟机上,这让我们在 Nervos 的链上,能够使用任何新的密码学技术。同时 Nervos 的编程模型也具有足够的灵活性,提供开发者任意的在解锁用的 lock scirpt 上自定义这个 cell 的签名验证方式。
因此,有了能够随意抽换解锁的签名算法,又具备能够验证任意的签名算法的虚拟机,也就成就了今天要在 Nervos 公链上注册 DAS 账户,并非像以太坊一样只有签名算法和哈希函数为 secp256k1 和 keccak256 才能够进行注册,而是任意公链的签名算法都能够被兼容。甚至我们可以更精确地说,在 Nervos CKB 上还能够兼容除了各条公链以外的其他签名算法,例如我们在互联网世界常见的 FaceID、TouchID 等 WebAuthn 算法,以及邮箱验证使用的 DKIM 等等 ,即便是区块链经验为零的小白用户也能很容易地使用 DAS 。这些模块也已经被 Lay2 团队进行了验证与实践,也能够进一步的在未来与 DAS 团队的产品进行深度整合。
基于 Open Transaction 下让用户得以使用任意币种支付
最后,还必须说的是,在 DAS 系统中的注册费用都是以美元进行收费,这是因为在基于 UTXO 的 Cell model 下,我们能够让交易更自由地去进行组合,这里也使得用户可以直接将费用以任意的币种支付给 DAS 的支付网关,在有了这个支付的凭证下, DAS 支付网关就能够用 CKB 在链上为用户去建构的 DAS 注册交易。
如下图可见,整个注册过程其实有非常多的交易在链上发生,但是都已经被 DAS 团队用巧妙的方式为用户完成,取而代之的是用户只需进行一次性的付款和一次的交易签名,就能够注册任意的 DAS 账户。
02
未来,DAS 在哪一些面向值得你期待?
别忘了,DAS 做的是去中心化的账户服务,而不是单单的域名服务,因此它能够跳脱原本定位在域名服务的市场产品,所面临的发展局限性,进而去发展大于域名协议的身份协议。DAS能做的事情,远远大于「让地址变得可读」。
以下我们试着列举一些可能看到的应用场景:
DAS 统一您的去中心化资产账户
DAS 提供了解析账户背后所对应的地址这项服务后,我们能够将 DAS 的账户关联上我们所有的常用地址,如此一来 DAS 账户便可代表任何的收款地址。
例如,今天我们看到一个 DAS 账户名为 XYZ.bit ,当我们要打给他比特币时,他能够解析出比特币的地址。同样地,如果我们要打给他的是 ETH 或者 ERC token ,那么他所表现的可以是某个 0x 开头的以太坊地址。
这样也减少了我们在面对多链不同地址的管理问题,甚至我们可以说这样的服务还能够和交易所和钱包进行整合,未来我们在交易所、钱包进行收款、充值等业务时就不用一再地去确认给到对方的充值地址是否正确,因为已经有更易读的 DAS 账户取而代之。
去中心化账户作为登入凭证
在访问任何去中心化服务时,DAS 也能够作为相关联的登入入口,甚至以插件的形式我们可以让 DAS 账户在浏览器上替我们去登入任意的去中心化应用。此时也就降低了许多我们在 Web 2.0 时代因为多重密码管理而造成的不便,并且能够让用户享受到区块链所带来的安全,因为在每个 DAS 账户中都关联了至少一组的公私钥,那么一来 DAS 天生可以作为任意网站的登入凭证,而且还是一个去中心化的身份凭证。
DAS 账户作为更出色的端到端加密通讯体系
在关联了至少一对公私钥的 DAS 后,我们可以用之作为端到端加密的通讯网络,例如说当我们在与任意的 DAS 账户的使用进行交谈时,搭载 DAS 服务的 App 能够透过 DAS 的解析服务而获取到对方的 DAS 账户,并且使用该公钥对信息进行加密。
如此一来,我们便能确定该信息只有对应该公钥的私钥所有人才能对消息逆行解密,并且确认此消息的信息是不是透过我们的 DAS 账户所发出。别忘了,这样的账户通信体系还是基于去中心化身份的,这优于我们看到的其他互联网的通讯软件如 WhatsApp,甚至我们还能够与既有的相关应用如 Maskbook 进行整合 。
身份象征或者在任何场域下更可读的身份识别
在 DAS 中还具有子账户等功能,例如说今天我们的账户能够是 ElonMusk.Tesla.bit,那么就能够借由这个子账户的功能,让大家知道你所属的机构以及称呼,甚至于身份象征。
例如说,如果今天某人是 001.Coinbase.bit~ 100.Coinbase.bit,或许代表的就可以是 Coinbase 的前一百位 VIP。甚至,我们还能够看到未来当进行珍贵域名竞拍时,可能会出现珍贵域名的众筹参与竞标,例如说某一群用户集资竞标 Doge.bit 域名,那么当这群人得标时,那么其中某位叫做 Alice 的众筹成员就能够获得「Alice.Doge.bit 」的子域名。
目前,DAS 服务还正在持续地开展中,未来还会加入竞拍、社区治理等模块,让未来的用户能够跨越任何疆界,享受到一套中性、不属于任何公链(你根本不需要知道他建在 Nervos 还是哪一条公链),也不存在任何学习成本和使用门槛,并且能够真正掌握所有身份信息在自己手上的账户服务,并且透过 DAS 连接未来的 Web3.0 的世界。
最后,谢谢 DAS 的 Founder Tim 不厌其烦地给予解惑,以及 ManJin 细心的审阅。
参考资料:DAS whitepaper
👇欢迎关注👇