从 DAS 开始了解 CKB 应用开发(一)—— 如何保证 DAS 账户的唯一性

本文是《从DAS开始了解CKB应用开发》系列的第一篇,作者介绍了在CKB上构建DAS时如何解决账户唯一性问题。DAS是基于CKB的去中心化账户服务,面临的主要挑战是如何在数据分散存储的情况下确保账户唯一性。文章列举了六个设计方案,包括集中存储、分散存储、中心化判断、多中心化判断等,最终选择了通过有序链表的方式来实现。该方法利用Cell模型,通过链下计算和链上验证保证账户注册的唯一性,同时解决了Cell竞争问题。
摘要由CSDN通过智能技术生成

近日,DAS 创始人 TimYang (杨敏)在 Nervos CKB 上开发了 DAS
去中心化账户服务。借着这次的产品开发,TimYang 将通过《从 DAS 开始了解 CKB
应用开发》系列文章,向大家阐述他的设计思路和开发历程,让大家了解如何在世界上第一个基于 UTXO 架构的公链 CKB 上构建产品级应用。

在第一篇文章中,Tim 将向大家介绍他们在设计 DAS 时面临的第一个大问题 ——如何保证 DAS 账户的唯一性。欢迎阅读及体验。



开篇


DAS(Decentralized Account Services),是基于 CKB 构建的去中心化账户服务。DAS 项目本身,旨在为新世界提供一套兼具抗审查性、唯一性、可识别性的账户体系。在 DAS 的第一阶段,它看起来像是以太坊的 ENS,并且具备一些比 ENS 更为优秀的特性。但 DAS 要做的,不仅仅是更好的 ENS,而是试图为加密世界的「去中心化账户/身份」这块拼图,带来新的定义。

DAS 不是一个概念性产品,它目前已经运行在 CKB 测试网上,并预计于近期上线主网。可以通过 https://da.services 体验测试版本。

DAS 是基于 CKB 开发的区块链应用。在诸多公链中,为什么我们要选择基于 CKB 来进行开发呢?原因有二:

  • PoW 共识 + Cell(UTXO)模型
  • 自定义密码学原语(高度开放的架构),基于此我们能够实现 DAS 账户可以被任意公链地址所持有。

CKB 是少有的在 UTXO 模型之上构建智能合约环境,并主张「链下计算,链上验证」的公链平台。这些主张和设计经过了充分的考量,非常具有前瞻性,但同时也带来了全新的去中心化应用开发范式。习惯了中心化应用开发和以太坊智能合约开发的开发者,在刚开始接触 CKB 开发时,会充满不适应。加之目前尚没有标杆应用出现,这让开发者们对于 CKB 到底能做什么,是不是真的值得花精力去学习 CKB,充满疑问。

《从 DAS 开始了解 CKB 应用开发》系列文章的目的,也正在于此。我们将我们在 DAS 实践过程中的问题、思考,以及解决方案整理成一系列文章,让大家了解我们是如何基于 CKB 构建产品级应用的。希望借此给更多开发者带来启发,了解 CKB 能做什么,应该怎么做。

需要说明的是:

在面对一个问题时,我们采用的思路和解决方案,不一定是最优解,甚至大概率不是。但这些满足我们场景的思路和解决方案,若能给大家带来启发,目的便已达到。
这一系列的文章,都假定读者已经充分理解 Cell 模型和「链下计算,链上验证」模型。



如何保证 DAS 账户的唯一性


我们将在第一篇文章中,探讨 DAS 面临的第一个棘手问题:

每个 DAS 账户都需要一个 Cell 来存储其数据,Cell 是通过不同交易来创建的,这意味着 DAS
系统的全局状态数据是分散存储在各个角落的。同时每个 DAS 账户又必须具有唯一性。那么,当一个 DAS
账户注册行为发生时,我们如何判断该账户是否已经存在呢?

我们把这个问题一般化:对于分散存储的数据集,在插入数据时,如何保证每条数据的唯一性?

对于习惯了中心化应用开发和以太坊智能合约开发的开发者而言,要保证注册的账户不重复,这一件几乎不用思考的事情,你可以把所有的数据都放入合约的存储空间,由于这些数据是集中存储的&#x

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值