1. 首页 > 娱乐生活

DAS跨链的技术原理

DAS 之于加密世界,应如手机号/Email 之于互联网。

伴随比特的出现,人类第一次真正意义上实现了私人财产不可侵犯。更深层次的,它启发了人们开始以去中心化的视角重新审核和着手重构这个世界。既然我们的货币可以彻底掌握在我们自己的手中,那我们的数据是不是也可以,我们的身份是不是也可以?答案是肯定的。

去中心化身份是 Web3.0 的关键组成部分。已有不少团队在尝试构建去中心化身份,但这些尝试仍存在诸多的问题。这些尝试包括:

从某个角度来看,公链地址就是一种去中心化身份。它可以被随意创建,具有唯一性,抗审查。但它的可读性很差,且不能转移。

Ethereum Name Service,Unstoppable Domains 是运行在以太坊上的Dapp。旨在将区块链地址,文件Hash等映射成人类可读域名。我们可以认为它是一种比公链地址对人类更加友好的去中心化身份。但其只能运行在某条特定的公链上,例如一个BTC 地址是无法持有 .eth 域名的。其定位为域名,同时无法跨链使用,使得其并不是最理想的去中心化身份方案。

W3C 的去中心化身份工作组也在积极起草去中心化身份的标准。其标准复杂,几乎没有产品支持。面对一个快速迭代的领域,先制定标准再实践的做法难以奏效,历史上的HTML5 标准就是这样一个案例。一些参考 W3C DID 开发的产品,事实上无人使用。

Handshake 是一条公链,其目标旨在实现去中心化的顶级域名管理,即去中心化的 ICAAN。通过 Handshake人们可以注册自己的域名,域名可以关联各种信息,这也是一种身份。

Blockstack 也是一条公链,定位于一个去中心化应用开发平台,其内置了去中心化的身份。

这类身份解决方案的问题在于,不是纯粹的身份协议,杂糅了其他与身份无关的特性。既无法与现有的公链兼容,又因其架构复杂,使得其难以普及和扩展。

作为 Web3.0 基础组件的去中心化身份协议,应该是轻量级的,高度兼容的,可组合的,易于集成的,易于扩展的。

去中心化账户系统 DAS(Decentralized Account Systems),正是这样一套去中心化的身份体系。其基本单元是 DAS账户。整体上来看,DAS 账户具有特征:

1、易读易拼写。如 Alice.bit,Bob.bit,区块链.bit 。

2、去中心化,抗审查。任何人均可以匿名的无需许可的创建,由用户掌握完整的所有权和控制权。

3、全局唯一。每个账户都独一无二,无法创建出同名的 DAS 账户。

4、跨链。基于高可扩展性公链 Nervos CKB 构建,任意公链无需做任何改造,天然的被 DAS 所兼容。这是 DAS最棒的特性!技术原理请参考《附录1:BTC地址讲解控制CKB上的资产》

5、轻量级,易于集成。DAS 是一个去中心化应用,而非公链,包含多种编程语言的 SDK,采用模块化设计,便于集成。

6、低门槛使用。虽然 DAS 基于 Nervos CKB 构建,但用户无需事先安装 CKB 钱包,无需拥有 CKB 地址,在使用时也无需使用 CKB来支付手续费。用户在使用过程中,对于 DAS 运行在哪条公链上是无感知的。

所有的 DAS 账户都以 .bit 结尾,具有层级结构,具有唯一性。典型的 DAS 账户形如 alice.bit, office.bob.bit。 每个DAS 账户包含如下基础的抽象结构:

Owner,该 DAS 账户的最终所有者,可以转移该账户和设置账户的管理员。

Manager,该 DAS 账户的管理员,可以管理该账户的 Records,子账户等。

Records,该 DAS 账户的解析记录数组。解析记录是一系列键值对,由用户或应用自行定义。各类解析记录,便构成了对一个身份的完整描述。Records记录只能由 Manager 管理,不能通过 Owner 管理。

Owner 和 Manager 一般为一个或多个公钥。当为多个公钥时,意味着该角色的职能,能通过某种多重签名来实现的。

尽管从账户抽象结构上来看,DAS 与 ENS 具有相似性,但 DAS 不是 ENS 的改良版。DAS目标是成为一套去中心化身份协议,而不仅仅是一个域名系统。在 DAS看来,域名不过是一种特殊的身份,身份协议本身的应用场景远远大于域名协议。不是每个人都需要域名,但每个人都应该有至少一个去中心化身份。

是一些 DAS 使用场景举例。需要说明的是,当我们拥有一套稳定可靠的去中心化身份协议之后,其衍生的使用场景,远不止所列举的。

假如 Alice.bit 解析记录如前图。某用户准备给 alice 发送比特币,在支持 DAS的应用中,用户只需在收款地址中填入alice.bit,钱包即可自动解析其 BTC 地址为17A16QmavnUfCW11DAApiJxp7ARnxN5pGX。若准备发送以太坊,收款地址中填入alice.bit,钱包即可自动解析其 ETH 地址为0x829bd824b016326a401d083b33d092293333a830。免去了用户复制粘贴 alice 的收款地址的麻烦。当 alice需要收款时,也无需再提供具体的收款地址,直接告知对方她的 DAS 账户为alice.bit即可。

同样的,用户通过支持 DAS 的钱包转账时,填入的收款地址如果有匹配的 DAS账户,钱包会自动展示。这给用户提供了一种对收款地址进行二次检验的机制,可以有效的避免将资金转给错误的对象。

越来越多的应用开始关注用户的链上声誉。即根据用户地址的过往行为,为用户的声誉进行一个量化评估,以决定提供什么级别的服务。在多链并存的格局下, 用户可能在A 公链上有极高的声誉评分,而对于 B 公链而言,他却是一个新用户。那作为一个 B 公链上的应用,自然希望能获取用户在 A公链上的声誉,以提供与之匹配的服务。

DAS作为一个跨链的身份系统,天然的可以聚合用户在各条链上的声誉。对于应用而言,它可以获得的,不再是用户的某个地址的声誉,而是用户在所有公链的所有地址的声誉汇总。

Dapp 一般以合约 Hash 作为合约入口,可识别度非常差。通过给 DAS 账户添加解析记录的方式,可以为 Dapp提供一种非常高识别度的入口。如,当我们要访问 uniswap 的合约时,可以在钱包中通过 uniswap.bit 访问,而不是其合约地址。

其带来另一方面好处在于,无论合约讲解升级,合约地址讲解变化,对用户而言,永远只需要访问 uniswap.bit 即可使用合约的最新版本。

事实上,DAS账户上所关联的数据并不局限于区块链地址或者文件Hash。它可以是任意的,由用户自行指定的数据。基于此,用户可以将社交账号,个人简介,个人偏好等信息选择性的关联到DAS 账户。商业机构也可将部署在去中心化存储上的网页关联到 DAS 账户。用户通过安装了 DAS 插件的 web浏览器访问这些账户时,便可以访问到这些信息。

此时 DAS 账户表现得像一个域名,并且去中心化的,抗审查的域名。

我们可以给每个 DAS 账户都关联了至少一对公私钥,这天然的构成了发送端到端加密消息的基础。

以 Alice.bit 给 Bob.bit 发送消息为例:

1、Alice 在 App 输入消息内容,并在收件人中填入 Bob.bit

2、App 通过 DAS 解析服务获取到 Bob.bit 的公钥,使用该公钥对消息内容进行加密,并用 Alice.bit的私钥进行签名,然后发送消息。

3、Bob 的 App 收到消息推送。App 获得 Bob 授权之后,使用 Bob 的私钥对消息解密,并通过 DAS 解析服务获取到 Alice.bit的公钥,验证该消息确实是由 Alice 发所出的。

4、Alice 和 Bob 完成了一次端到端加密消息的收发。

上面这些的端到端加密通讯体系,优于 Facebook 的 WhatsApp 和 Apple 旗下的 iMessage 等产品。原因在于:

1、除了消息本身的端到端加密之外,DAS 账户是去中心化的,任何人都无法删除该账户。

2、DAS 账户本身是匿名注册的,而 WhatsApp 和 iMessage 需要使用邮箱或手机号码等实名账户系统。

Web2.0 时代的服务都需要账户密码进行登录。多个网站使用相同密码,存在安全性问题。多个网站使用不同密码,又有极高的密码管理成本。

我们可以给每个 DAS 账户都关联了至少一对公私钥,且 W3C 的 WebAuthn 标准已被各大浏览器所支持。DAS账户天然的可以作为登录第三方系统的凭证。登录方式从以前的输入账户密码,改为使用 DAS账户所关联的私钥对登录操作进行签名。既免去了密码的管理成本,也简化了登录步骤。

若 Alice 是 Coinbase 的 VIP 客户,Coinbase作为 coinbase.bit 的持有人,可以创建二级账户alice.coinbase.bit,并将 alice 在 Coinbase 的所有充值地址作为该二级账号的解析记录。那么:

这对于 Alice 而言,这是来自于 Coinbase 官方对其 VIP 身份的认可,是一种身份象征。

当 Alice 需要向 Coinbase 充值时,无需再登录 Coinbase 获取充值地址,直接在钱包中输入 alice.coinbase.bit即可。

事实上,任何开展数字货币资产的企业/机构,都可以在其客户中应用这种实用的身份象征。

对用户而言,DAS 提供了一系列功能集合。

有两种途径获取 DAS 账户:

向 DAS 系统注册/竞拍

二级交易市场中购买/竞拍

任何人均可向 DAS 系统注册/竞拍 DAS 账户。为保证过程公平性,不同字符长度的 DAS账户注册费用,开放注册时间,以及开放竞拍的时间有所不同。同时,对于知名品牌和全球流量排名靠前的域名所对应的 DAS 账户,DAS系统将进行保留不予注册,对应的实体机构需要在申领期内通过申领的方式获得。

从二级市场中购买/竞拍也是获取 DAS 账户的方式之一。DAS 账号作为全局唯一的符号,是一种稀缺资源。DAS系统内置二级交易市场模块,以降低这种稀缺资源的错配。

获取 DAS 账户后,用户可以账户的其 Owner,Manager,Records 等属性进行修改。用户也可决定是否启用该账户的子账户。

所有的上述功能,用户可以在 DAS 网站及任意支持 Dapp 的钱包中使用。

DAS 以开源的方式提供一套完整的组件,供生态中各个角色使用。包括:

Core Protocol

指一系列部署在 Nervos CKB 上的 Lock Script 及 Type Script,它们定义了 DAS 账户以及 DAS账户的相关操作标准,是 DAS 核心协议的具体实现。

Keeper

Keeper 是一组任何人都可以无需许可的运行的链下程序,负责触发一系列符合核心协议的交易,是 DAS 系统的关键模块。

Resolution Service

根据 Nervos CKB 上的交易解析出 DAS 的全局状态,并以接口的形式对外提供账户解析服务。

Client SDK

包含各种语言的 SDK,用于简化移动端钱包,网页版钱包,服务端钱包以及其他 DAS 相关应用的集成工作。

Dapp UI

用户最终通过各种应用界面使用 DAS 的各项功能。这些应用可以直接在浏览器中使用,也可以集成到流行的钱包软件中。

Payment Gateway

使用 DAS 时,某些操作需要相应的费用。费用均采用法币定价,得益于现已成熟的价格预言机服务,以及 Nervos CKB 的 OpenTransaction 特性,用户可以使用任意主流数字货币,甚至法币进行支付。因此,虽然 DAS 是基于 Nervos CKB 构建的服务,但无需持有 CKB也可使用 DAS 服务。

Governance System

成为一个社区驱动的项目是 DAS 的目标之一。社区可以通过该系统完成对 DAS 的投票治理,包括新特性添加,系统参数调整等。

DAS 团队会实现所有上面这些组件并开源。其中 Keeper,Resolution Service,Client SDK,Dapp UI,PaymentGateway 等组件,任何人都可以根据 Core Protocol 的协议约定,实现自己的版本。我们也十分乐意协助社区实现自己的版本。

本章节简述 DAS 系统的关键技术特性,技术挑战,以及部分功能的实现原理。为了明确概念,在的章节中 Nervos CKB 代表 Nervos L1公链,而这条公链上的原生代币称为 CKB。

得益于 Nervos CKB 的开放性架构,我们可以将任意公链的签名算法放置到 Nervos CKB 上,并在必要的时候使用该算法进行验证。如,我们可以在Nervos CKB 上校验一个用户是否为一段数据提供了有效的 ETH 私钥签名。进一步,如果验证 ETH 私钥签名有效,则可以对 Nervos CKB的状态进行修改。这便是 CKB.pw 这个产品所实现的,用 ETH 地址收发 CKB 的原理。基于此,我们推广开来,可以用任意公链地址,管理任何发行在Nervos CKB 上的资产,自然包括 DAS 账户这样的 NFT 资产。这便是 DAS 具有高度兼容性底层原理。

技术原理请参考《附录1:BTC地址讲解控制CKB上的资产》

Nervos CKB 的 Cell 模型是对比特币 UTXO 模型的一般化设计,这与 ETH 的账户模型有所不同。ETH账户模型下,某个合约的所有用户数据都集中存储在该智能合约的内部数据表中。而 Cell 模型下,某个“合约”的用户数据分散存储在用户各自的 Cell中。两种模型的优劣,在此不作展开。单从 DAS系统来看,数据分散存储,为校验一个账户是否已经被注册过,带来了一定的挑战。但这并不是什么问题,通过恰当的设计,可以很好的解决。

另一个角度而言,我们将归属于用户的 DAS 账户以及账户相关的描述信息,解析数据放到用户自己的 Cell中,只能用户自己修改,这更符合去中心化的理念。

我们采用逻辑上的有序链表,来保证一个 DAS 账户不会被重复注册。每个已注册的 DAS 账户,都有一个 Cell 用来存储其相关的信息,称为AccountCell。我们要求所有的 AccountCell 按某种顺序排序,比如按账户名做字典序升序。当要注册一个新的 DAS账户时,我们可通过链上脚本,确保其对应的 AccountCell必须插入到链表中合适的位置,以保证不破坏这种顺序。保证了有序链表中内容的有序性,也就可以顺便保证其链表元素的唯一性。

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:http://www.fjxmta.com/ylsh/47289.html

联系我们

在线咨询:点击这里给我发消息

微信号:wx123456