聊聊 das 的一些理念和关键性设计

最近,ENS 社区发生了关于 ENS 的可用字符集范围是缺陷还是特性的争执。一些所谓的大V将矛头指向了 DAS 团队,认为是 DAS 团队在攻击 ENS。对此,我们的态度是:

如果有任何证据能够证实那些文章是DAS团队所为,或者唆使他人所为。DAS 将拿出10w U,奖励给证据提供者。DAS 有自己的愿景和路径,主动攻击其他产品不是DAS 团队的行事风格。

这同时也引发了对 DAS 的攻击和质疑。这在我看来,这些质疑基本源自于对 DAS 的设计理念的理解偏差。因此,我认为适当对 DAS 的一些理念和关键性设计做阐述,或许可以让大家更好的理解 DAS,减少所谓的大V们对普通用户的误导

TL;DR

理念1:Web3.0 不仅仅是区块链,区块链也不仅仅是 EVM 兼容,更不仅仅是某一条特定的公链

基于此,DAS 的一个关键性设计就是:面向整个 Web3.0。

这意味着,你可以使用任意公链[1]的地址来注册、管理、使用 DAS 账户。你可以将一个 DAS 账户从 BTC 地址转移到 ETH 地址,从 ETH 地址转移到 TRON 地址,再转移到 Doge 地址。事实上,DAS 适用于任何非对称加密公私钥系统,而不仅仅局限于区块链。这种类似“跨链”的特性,并不是大家通常意义上所理解的“跨链”。但它却比通常意义上的“跨链”更加安全,是一种无需信任的密码学级别安全。

今天区块链领域的去中心化域名系统们,并不是为整个 Web3.0 所设计。每条公链的域名系统都是独立运作,没有共享一个统一的命名空间。这些域名系统只能应用于特定的某条公链,并不具有普适性。这倒是很像 Web2.0 的格局。Web2.0 世界中,每个服务都有账户系统,并且他们相互割裂。你在 Facebook 里面的 Username 叫 alice,但是在 Twitter 上 alice 这个 Username 大概率是属于别人的。我想我们很难,也没必要接受一个如 Web2.0 般割裂的 Web3.0。

因此,可以将 DAS 看作整个 Web3.0 的通用账户层。

对 DAS 的“跨链”的技术原理感兴趣,可以参考:BTC 地址如何管理 CKB 链上的资产 - DAS Documents

理念2: 涉及安全,再谨慎都不为过

要把 DAS 打造成整个 Web3.0 通用账户层,而账户最终是给人用的,那么提升 DAS 账户的易识别性,减少欺诈的发生,是必要的设计准则。为此,DAS 引入了一个关键设计:可以用于注册 DAS 账户的字符有严格的限制。具体而言:

  1. 当前,只有小写字母,数字,少部分 emoji 被允许注册为 DAS 账户(这并不是说 DAS 不会支持其他语言的字符,事实上多语言支持一直是 DAS 的重要待办事项)
  2. 某些语言的字符不能与另外某些语言的字符混用

详细规则见:字符集 - DAS Documents

为什么防止欺诈对于 DAS 如此重要,以致于从一开始就纳入了 DAS 的底层设计之中?

因为在 Web3.0 世界欺诈更容易发生,它们的危害也比 Web2.0 世界的那些钓鱼来得更直接,更大。在 Web2.0 世界,用户访问了一个错误的网站,他需要经历一些步骤才会导致信息或财产的损失。但在 Web3.0 世界,如果用户不能看出 satоshi.bit 和 satoshi.bit 的区别,他就会将资金转给错误的对象,访问错误的合约。

普通用户能肉眼看出 satоshi.bit 和 satoshi.bit 有什么不同吗?显然不能,即便仔细看也无法看出差别。但实际上,前者的 о 是一个俄文字符,而后者的 o 是一个英文字符,这是两个完全不同的账户名。如果没有任何的限制,别有用心者想要进行欺诈,简直太容易了。但不用担心,这类欺诈并不会发生在 DAS 中。在 DAS 系统中,前者不是一个合法的 DAS 账户,不会被注册成功。

那为什么不直接遵循 IDN 呢?原因很简单,因为 DAS 压根就不是域名(这个我们后文会再谈论这个问题),域名的可用字符规范不适用于 DAS。这里引用一位社区开发者的推文。https://twitter.com/paicha0530/status/1479453336038699016

DAS 并不歧视任何语言的字符,DAS 关注的是如何尽可能的减少欺诈,如何保证系统的可靠性。设置可用字符白名单,不断扩展白名单,这是一种安全考量,这符合安全领域的权限最小化原则。

同样出于安全考虑,DAS 的链上合约从第一天起就是实施了 3/5 多签。

理念3: 公平非常重要。我们应该清楚没有绝对的结果公平,我们应该最大化的追求过程公平

DAS 作为面向 Web3.0 的基础设施,DAS 账户具备经济学中所定义的非排他性和竞争性,因此,它是典型的公共资源。对于公共资源而言,其分配上如何做到公平,是非常重要的议题。但我们也应该清楚,不存在绝对的结果公平,我们能做的就是追求过程公平。为此我们采取了很多措施,尽可能的去保证过程公平。

1. 让信息尽可能扩散

我们大概提前一个月便开始预告 DAS 的正式上线时间。通过各大媒体,社交网络,社区去扩散 DAS 即将上线的信息。我们也发布了相关的产品介绍和公测环境。我们也联合各大钱包合作方,在他们的渠道中提前宣传 DAS。

2. 让开发团队也没有优势

作为开发团队,我们永远有最大的优势,我们有最完整的信息:我们可以知道具体的上线时间,主网合约是否已经部署,部署在何处等等。然而为了确保公平启动,我们必须放弃这种优势。我们可以承诺,开发团队不能比任何用户更早的注册有意义的 DAS 账户。我们在合约内部实现了一个注册开关,当团队完成主网合约部署,完成主网合约的功能验收之后,这个开关一直处于关闭状态。它将在约定的开放注册时间(2021-07-22 20:00 UTC+8)被打开。因此,无论是开发团队成员,还是用户,都只能在正式开放注册时间之后开始注册。

事实上,这不仅仅是口头的承诺,而是一种既定的事实。区块链是公开透明的,任何人都可以通过回溯链上交易,去验证在 2021-07-22 20:00 UTC+8 之前,开发团队没有注册过有意义的 DAS 账户。如何准确理解“没有注册过任何有意义的 DAS 账户”呢,可以阅读:《写在 DAS 上线前》 -- From DAS Team

3. 有节奏的开放注册

尽管我们提早了很长时间便开始扩散信息,但我们仍然认为这些信息没有扩散得足够开。即便 DAS 已经上线,仍然需要时间让更多的人知道 DAS。在 DAS 本身影响力不够大时,直接开放所有账户的注册,是不明智的,过程上是不公平的。因此,我们制定了一个逐步释放策略,至少让后了解 DAS 的人也有机会参与竞争,同时早了解到 DAS 的人也不会有失去参与竞争的机会。这是一种价值主张。最新的释放进度可以在 开放注册规则 - DAS Documents 看到。

账户的可注册时间,由 公开的算法 计算而来,取决于账户名本身。你可以在注册页面搜索某个账户,查看某个账户是否开放注册。鉴于目前的开放注册规则,你可能会发现你心仪的账户总是没开放注册,这会让人变得烦躁。我们希望大家能理解这个规则的初衷。

我们收到过一些用户的反馈:为什么开放注册规则这么严苛,团队为什么这么小气,团队不开放注册都是为了把有价值的账户都留给自己!这种反馈,根本源自于个体利益和集体利益之间的冲突。谁都希望自己拿到优质的账户,但每个账户最终都只会属于一个人,没有任何机制可以让任何人都满意。对此,我们需要表明我们的立场:

  1. DAS 开发团队作为 DAS 的构建者和维护者,优先考虑的永远都是 DAS 生态的整体利益,过程公平是我们在账户分配问题上的价值主张
  2. 尚未开放注册的账户不属于 DAS 团队的任何人 ,在合适的时间,它们将面向所有用户开放注册。

那么什么是合适的时间?这个问题其实一直在讨论。最终会参考的指标,大概率会是根据独立地址数这一客观的指标,按独立地址数增长情况逐步开放注册,但细节还未确定。如果社区有更好的建议,欢迎提出。

理念4: 对整体利益而不是个人利益负责

DAS 永远只会使用 .bit 一个后缀,不会新增任何其他后缀。我们认为这符合所有人的整体利益。DAS 发行多个后缀,毋庸置疑会增加 DAS 的注册数和收入,却会给整个 Web3.0 世界带来混乱,因此这不可取。

DAS 设置了保留账户清单。保留账户是指为某个知名组织/个人所保留的账户,他们需要在规定期限内来认领,否则将会开放给所有人注册。需要明确的是, 这些账户并不属于 DAS 团队的任何人。

为什么要设置保留账户清单呢,凭什么要给他们保留呢,凭什么我就不能注册 twitter.bit?其原因并不是因为 ENS 等域名系统设置过保留清单。而是源自于我们一贯的价值主张,DAS 所有用户的整体利益大于个人利益。我们认为,降低一些知名组织/知名个人采用 DAS 的门槛,会让投机者失去抢注知名账户然后高价卖出的机会,但却更有利于扩大 DAS 的共识。

对于保留账户顺便做一下进一步延伸。保留账户的保留期限是有限的,目前暂定是一年。哪些账户应该被保留,为谁保留,这显然会是一个有争议的话题。为减少 DAS 团队的主观性,DAS 团队选择了引用第三方数据+开放提交申请的方式。第三方数据源包括 bitclout,similarweb,block123。开放申请的方式是,申请人在 github 上提交 PR。一切过程都是公开的,可以验证的。

理念5: 开源

DAS 的所有代码都必须开源。

理念6: DAS 是账户,不是域名

一个产品的名字,往往是其产品定位的直接体现。各种 xxNS 都将自己定位为去中心化域名系统,而 DAS 中的 A 代表的是 Account。DAS 的定位是账户,这与 DNS 域名系统和其他去中心化域名系统由本质的差别。

不同的定位,带来的是不同的思考重点。DAS 不会去考虑如何颠覆或取代或增强现有的 DNS 系统。虽说也可以使用 .bit 去访问一个 IPFS/Arwave 上的网页,但那也不过是 DAS 诸多应用场景之一罢了。

通过 DAS,即刻 App 的 NFT Box 可以根据用户的昵称展示其名下的 NFT;通过 DAS,用户可以拥有一个去中心化的 Linktree;通过 DAS,用户可以在各个游戏/应用中拥有统一的用户名;通过 DAS,用户之间可以进行端到端加密的通讯;通过 DAS,用户可以更加安全的发送资产,更加安全的与合约互动;通过 DAS,用户可以将其在各条公链的链上声誉聚合到一起等等,这些才是 DAS 更加关注的点。而这些场景,是和域名完全无关的场景。

为什么 DAS 会被误认为是域名呢?大概是因为它有个后缀。所有互联网域名确实都有一个后缀,但并不是说有后缀的产品都是域名。.exe, .rar, .dmg 这些都是后缀,但他们只是表明文件类型的文件扩展名而已。

最后

一些基础性的问题,比如合约是否开源,是否是中心化的,合约是否多签,答案都在 Github 仓库和区块链链上。不要相信团队的口头回答,去验证。

附:

[1] DAS 支持所有的公链,但每条公链的支持都需要有一定的开发工作,DAS 当前已支持 EVM 兼容链,TRON 等公链地址注册,其他公链的支持处于开发状态。


感谢阅读。

1 Like