您现在的位置是:首页 > 外汇理财

外汇理财

用类比思维破除对去中心化应用的迷思

2021-04-21 18:57:34 fx358财富网
我准备从本月开始推出一个专栏《去中心化应用认知升级》,配合这个专栏我还准备制作一些相关的短视频,定期播出或者通过 Clubhouse 讨论。这个专栏面向更广泛的关注区块链和去

我准备从本月开始推出一个专栏《去中心化应用认知升级》,配合这个专栏我还准备制作一些相关的短视频,定期播出或者通过 Clubhouse 讨论。这个专栏面向更广泛的关注区块链和去中心化应用的人,而不仅仅是开发者或专业人士,力图每一段短视频只讲述一个概念和知识点,并且配合 ArcBlock 的实际设计和实现,让更多人在认知去中心化应用(Decentralized Applications,缩写 DApps)价值的同时,意识到这一切已经不仅仅是愿景,而是立刻可以使用的现实技术和产品。

很多年前在互联网刚刚开始商用的时候我亲历过一件事:一个著名的广告设计背景的团队为客户设计一个网站的方案,设计非常精美,从审美角度他们在所有的竞争者中一枝独秀,但只有一个问题——他们认为是 HTML 页面就是图片,因此每个页面他们的设计都是一张完整的图片!在今天大家对 Web 的认知之下,看起来这是很可笑的事情,但是在当时这样的事比比皆是。今天如果看去中心应用,如果以为就只是一个和互联网架构一样的东西,使用了区块链,使用了智能合约,就认为这是去中心化应用应该的样子,就如同以为做 Web 网页和做一批印刷彩页图片一样。

破除迷思就是认知升级的一部分

去中心应用一直是一个非常令人费解的名词。对去中心化应用的本质不太能够透彻理解,这并不奇怪。几年前,我自己刚刚开始接触这个领域的时候,同样也会对各种概念困惑不解,看着市场上各种是是而非的描述,甚至偶尔怀疑自己的智商或者多年的计算机科学常识。早期的 DApps 更多流于概念,以至于很多人都很迷惑,而且对去中心化应用的各种曲解层出不穷——有过度崇拜的原教旨主义者(比如言必称去中心化程度够不够的哪些人),有故弄玄虚的各种“概念”(比如“胖协议”什么的),更有很多出于商业推广目的而夸大其辞的宣传。最近这两年,由于对去中心化应用的过度憧憬进而带来的失望,似乎又开始走向另一个极端。

因此在过去几年里, 我们边开发ArcBlock 平台[1]边撰写了数十篇文章[2]从多个不同的角度来探讨什么是 DApps,以及什么不是 Dapps,实现 DApps 有些什么优势。我们撰写的由中信出版集团去年出版的《区块链实战:从技术创新到商业模式》[3]一书更是拿出了好几章篇幅来阐述这个问题。

在 2019 年《去中心化应用开发设计:学习如何运用聚焦去中心化的产品思维模式》[4]的在线课程中,我主要从去中心化身份(DID)角度讲述了开发去中心化应用的思想。如果你还没有看过那个讲座,那么我建议你花一些时间去听一下,因为开发去中心化应用最需要的是一种思维模式的转变,在开发方式、开发工具、语言、框架甚至技能方面并不需要太大的更新,但却需要在设计思想上有一些新的思路。

类比“中心化应用”与“去中心化应用”

了解 ArcBlock 的朋友都知道,我们在产品和技术设计上经常提到“第一性原理”,但是在帮助大家如何更好地理解去中心化应用的时候, 我想更多使用“类比”的方法。

前些时候,我们的设计师曹雯写了一篇用乐高积木来类比理解 ArcBlock 体系架构的文章《逛乐高玩具店:开发一款去中心化应用的有趣旅程》[5]就是从类比的角度让读者轻松理解我们的软件架构,获得了很多好评。

当我们采用正确的类比,就很容易理解去中心应用和中心化的应用的区别和联系,一些问题和疑问就迎刃而解。无论是建筑设计还是乐高积木,都是用类比的方法来帮助大家更好理解:建筑和去中心化应用是从宏观的角度类比,让大家更容易体会什么是去中心应用;从乐高积木看去中心化应用,是从微观的类比,让大家从细微处去理解如何构建中心化应用。两者有异曲同工之妙。需要注意一点,“类比”的方法往往是为了帮助大家的理解,有些时候未必精确,因此一定需要在类比对概念理解后,进一步深入思考。

图:一个用积木搭成的房子的模型和实际的房子

软件设计师(Software Architect)和和建筑设计师(Architect)都是 Architect,因此我们不妨用住宅来理解一下,从架构的角度,去中心化软件跟今天常见的互联网时代的中心化软件有什么区别和联系。

下图左边的高层公寓,可能是很多人都熟悉的每日生活环境。用这样的住房来类比今天的很多互联网服务还是挺贴切的:公寓式的住宅是一种典型的具有中心化特点的服务,很多住户共享了楼道、楼梯、电梯,包括地面以上的空间。很多情况下,住户实际上并没有拥有建筑或者土地,本质上只是在“租用”使用权。对比想象一下,你使用的微信、微博等很多互联网服务,你是和千千万万其他人一起“租用”服务提供商搭建的服务,你账户其实并不是真正属于你,你的数据并不在你的掌控之下。

图:香港一处高层公寓(Unsplash @jcgellidon)和澳洲一栋现代风格住宅(Unsplash @rarchitecture_melbourne)

图右则是用一栋独立的住宅来类比“去中心化应用”。去中心化应用更加强调用户的自主性,一如这样的独栋住宅,住户往往自主拥有其土地,拥有其建筑。这正如同“去中心化应用”所强调的,用户应该拥有自主的身份、用户拥有自主的数据资产。

结合这个类比,也许会更容易理解“去中心化应用”这四大重要特点,你可以试着理解和思考一下:

自主的用户身份和认证体系,没有人能夺取和控制•用户数据的确权和授权,数据自主可控、数据可携带•更好保护隐私和抗审查的能力•能去中心化地运行,降低对其他服务的依赖

通过上图的类比,可以很容易理解“去中心化应用”和现在的“中心化应用”有些什么异同,以及在未来你自己会更希望拥有什么样的应用。但也请思考一下上面的这种类比也会有些什么偏差?最容易的偏差是左图是一个比较拥挤的公寓,而右图是一栋比较高端的住宅,在现实中也会有高端豪华的公寓和比较局促的独栋住宅。但如果在类比的时候能够认清这些偏差,透过现象看本质,还是能更好地利用类比来理解一些新生事物的概念。

“中心化应用”和“去中心化应用”有很多共性

那么去中心化应用的一切都是独立自主的吗?用建筑的概念来类比是很容易理解的,虽然你的独栋房子是非常的独立而去中心化的,但是通常你会接入大家共用的供电网络、电话、宽带,你的房子通常也会接入所在小区的小水道系统……除了这些你还会享受各种公共服务,比如邮局会给你寄信,快递公司给你投递包裹,警察会维护治安,所在地政府会负责道路、路灯等市政的一切。去中心应用正如这“去中心化的”独栋住宅一样,给了你非常大的独立性和空间,但是你并没有因此和世界隔离。这里不得不再强调我一直坚持的一个观点:中心化和去中心化并不是绝对的和对立的关系。

作为去中心化应用,仍然可能需要使用一些中心化服务来让应用变得使用体验更好。例如域名(DNS)体系是一个相对中心化的体系,去中心化应用固然可以完全不使用域名,也有一些新的去中心化域名服务正在兴起,但是离被公众接受还有很大的距离。同样,去中心化应用的服务器,乃至目前的区块链,都不是脱离互联网而存在的。这正如独栋的房子仍然得建立在地上,理想中的独栋房子总是建在规划好的区域,这样才能有更好的公共服务。

这也就很容易理解,虽然“去中心化应用”有更好保护隐私和抗审查的能力,但并非“法外之地”,它带来的是对非法强取豪夺的对抗能力,仍然符合现代法治社会的治理机制,甚至是一种更加体现民主法制的治理方式。在合法性方面,中心化和去中心化应用并无太大的区别。

“去中心化应用”更难设计和实现吗?

采用类比的方法,你可以自问是设计一栋 30 层的高层公寓的“难度”更大呢?还是设计一栋独栋的两层别墅难度更大呢?施工建造一栋高层公寓的成本更高,对建筑要求更高?还是独栋别墅的成本更高,对建筑要求更高?但也同时想一下,相同面积的住宅,通常是一栋高层公寓里一套单价更贵,还是独栋别墅更贵?为什么?

去中心化应用的在设计和实现的思想上有所区别,其实搞明白去中心应用概念之后是非常自然的,甚至比中心化应用更为容易理解,因为我们人本身就是去中心化的,不存在一个“母体(Martrix)”系统来统一连接管理全世界的人类,相反每个人通过自己对世界的感知来建立起自己的世界。因此某种角度而言,去中心化应用更为简单和直接。

从软件工程角度出发,设计、开发和运营一个有很多用户的中心化服务的成本和难度很可能远远大于去中心化应用。但是作为用户来使用去中心化应用的费用可能会高于租用中心化的服务。

ArcBlock 的ABT 节点[6]和Blocklet[7]框架就是把这个设计、开发和运营的门槛进一步降低。事实上我们相信未来的去中心应用的繁荣将带来大量中小,甚至个人开发者的繁荣,而不是今天大量的互联网巨无霸垄断的局面。

用户更难安装和使用 “去中心化应用” 吗?

去中心化应用的一个非常重要的特点是“去中心化部署”。去中心化部署一直是一个难题,在上一代去中心化应用的运动中,去中心化软件最大的挑战就是安装。在过去的去中心化社交软件的运动中,最成功最有影响力的项目如 Mastondon、Diaspora,当你看到其如何开始的文档,就会知道,除了技术极客和程序员们,还需要有巨大的热情和一定的网络和服务资源,才有可能安装其这些去中心化应用的实例。也正是因为这样困难,他们的设计往往需要一些热心人为一群人来建立共享的实例,才可能让更多的用户参与。

最近流行的和区块链相关的很多去中心化应用都没有解决这个关键问题,大部分去中心化软件其实还是中心化部署的,比如 CryptoKitties、Uniswap 等都只是把智能合约部署在区块链上,而 Web 的前端仍然采用互联网服务一样的方式部署。

ArcBlock 的 ABT 节点和 ABT 通证机制可谓是去中心化应用皇冠上的明珠,ArcBlock 的 ABT 节点解决的最大的问题就是 “去中心化部署”。在 ArcBlock 平台上,用户只需要付出 ABT 通证,就能全自动获得 ABT 节点的节点资源,这些节点的安装、部署、启动、管理全部是自动化的, 用户通过 NFT 来证明自己对节点和服务的使用权。我将在未来的视频演示中,展现如何轻松地实现 ABT 节点的 “去中心化部署”。这仅仅是一个开始,未来这将会成为人人可用的服务,并且会越来越完善。

今天的第一部分,给出的是一种思维方式, 用类比的方法思考什么是去中心化软件和服务,和中心化服务有什么区别, 破除对去中心化应用的迷思。对这些有了清晰的认知提高,下面随我们一步步展开,看看 ArcBlock 平台现在已经可以帮助开发者做到什么。一切才刚刚开始,很多事情也许超乎想象, 因为去中心化软件的设计思维是一次认知的升级。

References

[1]ArcBlock 平台:https://www.arcblock.io/zh/platform[2]数十篇文章:https://www.arcblock.io/blog/zh/tags/DApps[3]《区块链实战:从技术创新到商业模式》:https://books.arcblock.io/[4]《去中心化应用开发设计:学习如何运用聚焦去中心化的产品思维模式》:https://v.qq.com/x/page/i0831skrccc.html[5]《逛乐高玩具店:开发一款去中心化应用的有趣旅程》:https://www.arcblock.io/blog/zh/post/2021/03/01/how-to-create-your-app[6]ABT 节点:https://docs.arcblock.io/abtnode/zh/introduction[7]Blocklet:https://www.arcblock.io/zh/blocklets

作者:冒志鸿(ArcBlock 首席架构师、首席执行官)

NFT 成为“新鲜事”经历了很长的过程

虽然 NFT(Non-Fungible Token,非同质化通证)最近才“火”起来,但 NFT 其实并不是新鲜的概念。早在“染色币”(colored coin)时代,类似 NFT 的早期使用和尝试已经开始,通过“染色币”技术,人们在比特币网络上发行新的资产,产生类似股权凭证等记录,也有极客在比特币数据里保存图片等信息,这些都可以视为“上古”时代的 NFT 雏形。

早在 ArcBlock 项目刚刚成型的 2017 年,第一次真正把 NFT 带入大众视野的项目 CryptoKitties(加密猫)就造成了以太坊的严重拥堵,一方面人们惊讶于一个介于卡通收集和养成游戏之间简单的“加密游戏”会引发这么高的兴趣,另一方面人们更吃惊于立志成为“世界的计算机”的以太坊性能会如此不堪一击,一个简简单单的游戏就让其性能拖慢到几乎不可用状态。正是由于 CryptoKitties 对以太坊的冲击,2017 年底我们发布的ArcBlock 白皮书[1]就以 CryptoKitties 为例说明了当下区块链存在的普遍的问题并将此作为 ArcBlock 平台努力解决的问题之一。

同样成立于 2017 年的 OpenSea 最近伴随着 NFT 的火热也变得非常热门,并成为迄今最大的 NFT 交易平台,但其实他们也已经在 NFT 交易领域默默耕耘了很久。我很喜欢 Open Sea 给自己起的这个名字,象征 NFT 展现了如同星辰大海一般无限可能性和无限包容性。

任何一种创新的技术从首次出现,到迭代升级,到开始让大众“吃惊”或者“眼前一亮”,往往都需要很多年的时间。如果从染色币时代计算,NFT 已经出现了 8 年了,即便从首次进入主流的 CryptoKitties 算,也已经是第 5 年了。NFT 是综合性的技术和产品,目前仍然处于探索创新的初期,未来会有日新月异的飞跃性发展。

NFT 与去中心化应用,以及时下流行的 Web3.0 生态有什么关系?

NFT 的应用场景远不止于数字艺术品和收场品,实际上他有着无限的空间。

熟悉 ArcBlock 的朋友都知道,我们去年举行的开发者大会[2]已经采用 NFT 作为大会门票,用 NFT 发放了各种参与活动纪念的徽章和黑客马拉松获奖证书。我们在 DevCon 2020 上也演示了用 NFT 来作为各种应用的可能性,包括用 NFT 来换取我们的签名版实体书《区块链实战:从技术创新到商业模式》。

除了实用性,我们的 NFT 徽章同时也是数字艺术家采用哈希计算方式生成的多层艺术作品,每一个人的纪念徽章都是独一无二的,而黑客马拉松的纪念徽章不但独一无二,而且可以多个可组合, 我们今年 6 月举行的 DevCon 2021 还会展现更多的 NFT 应用形态。

其实 NFT 的应用场景远远不止步于此。在 ArcBlock 的设计中,用户在服务上的账户和数据、对某个节点或软件的所有权、软件的版权和授权许可等等都是 NFT,我们的设计把去中心身份(Decentralized Identity,简称 DID)、可验证证书(Verifiable Credentials,简称 VC)和 NFT 结合起来,形成强大的应用能力,可以对现实世界中大量事物和应用流程建模,从而让区块链能够更好地应用解决更多实际问题。

我们一直认为区块链的大部分应用本质上都是 Token(NFT 和 FT,或者它们的组合)的应用, 离开了 Token 区块链将失去很大的意义。欣慰的是,最近“无币区块链”这一买椟还珠的概念几乎无人问津,Token 带来的应用繁荣时代即将来到。

在去中心化应用(Decentralized Applications,简称 DApps)和目前日渐流行的 Web 3.0 的概念中,去中心化身份、用户自主控制的数据以及去中心化的服务部署是实现去中心化愿景的关键技术,而 NFT 在这些技术细节的实现上是一种非常合适的机制。我们前不久发表的文章《NFT:数字所有权的伟大试验才刚刚开始》[3]指出,NFT 让区块链来介入现实世界的确权和验证变得可行和标准化,感兴趣的读者可以从那里了解更多。

NFT 完全存在于区块链上吗 ?

很多人在接触使用 NFT 时可能没有意识到,今天的 NFT 虽然一部分数据在链上,但大部分实现的数据是在链下的。

目前的 NFT 其实大部分被设计为链上和链下两部分,链下的部分往往是 NFT 的数据,链上部分在以太坊上通常只被用于登记 NFT 的归属权。虽然一些早期如 CryptoPunk 的 NFT 尝试试图把数据全部放在区块链上,但是现在把数据放在链下而仅把有限的信息放在链上是目前通行的最佳实践。

有些 NFT 平台把数据保存在 IPFS 或者 Swarm 这样的分布式存储平台上(比如 CryptoKitties 从一开始就把数据放在 IPFS 上),有些干脆就是一个 Web 的链接,也就是传统的互联网数据存储方式,可能是用 AWS S3 这样的云服务,也有可能就是在某个 Web 服务器上(比如现在流行的 Nifty 的 NFT 内容就存放在他们自己的 Web 服务器上)。这样带来的一个风险就是,万一这些公司或者服务不存在了,即便链上的记录说明你拥有某个 NFT,这些 NFT 本身的数据也将丢失。这是 NFT 早期的一种不完善的形态,已经有越来越多的人开始意识到这个问题。

IPFS 创始人 Juan Benet 的推文“Not on IPFS, not your NFT”

作为先行者和探索者,ArcBlock 在 NFT 的技术演进上也是经历了一个过程。我们 NFT 的最早版本设计数据完全在链上,为此我们限制一个 NFT 数据不能超过 1M,这对证书、徽章等类型的应用绰绰有余,但对数字艺术品就必须能扩展到链下, 因此在 2021 年新版资产链升级中我们对 NFT 的数据格式进行了扩展,通过扩展 W3C 规范中的 Service Endpoint(服务端点)的标准做法,使得我们的 NFT 可以由发行者进行最大自由度的控制,兼容全链上方式和链上链下协同方式。而 ArcBlock 对 DID 和 MyData 等用户自主身份、用户自主数据的支持,能让 NFT 的数据问题得以完善的解决。

NFT 可以“跨链”吗?

既然很多 NFT 数据部分在链下,那么要求 NFT 链上数据“跨链”存在是一个很现实的需求。

目前以太坊的 ERC721 和 ERC1155 协议和 ERC20 协议类似,仅仅定义了符合建议的规范接口。任何 NFT 只需要在以太坊上部署智能合约并提供符合 ERC721 或 1155 的接口,就被以太坊生态视为一种 NFT。一个在其他区块链上或者 Layer 2 系统上实现的 NFT 如果支持以太坊 ERC 721 或 ERC 1155 的接口,就可能可以直接加入现有基于以太坊的各种生态。目前出现各种 Layer 2 方案主要还只是考虑 Token 和转账的问题,我相信这将是 Layer2 发展的一个未来方向。

目前以太坊 ERC721 等 NFT 在智能合约里记录的完全是以太坊地址为单位的“归属权”,因此这对在采用不同地址体系的其他链之间来“跨链”记录 NFT 归属会产生困难。即便采用相同的地址体系,由于 NFT 的归属是记载在 ERC721 的智能合约内部数据结构的,因此当不同链上归属权不一致的时候将会产生归属权界定的困难。我认为要彻底解决 NFT 归属权的跨链,就必须采用 DID 和可验证证书或类似技术,也就是 NFT 的归属并不只是来自智能合约里的内部数据,而是来自可用密码学验证的证明,如此 NFT 的跨链存在才会真正得以实现。

ArcBlock 的 NFT 设计是原生“跨链”的。我们一直认为“链网”架构是未来区块链的形态,NFT 不但能在 ArcBlock 的ABT 链网[4]内的链之间自由流通,而且能作为以太坊的 Layer 2 而存在,采用 Optimistic Rollup 技术,用户可以把 ArcBlock 的 NFT 放回到以太坊上成为符合 ERC721 的资产,从而加入以太的生态。

NFT 和去中心化身份(DID)可验证证书(VC)有什么关系?

正如前文所述,采用 DID 和 VC 来确定 NFT 的归属权能让 NFT 跨链存在变得可行。在区块链里引入 DID 是 ArcBlock 的创新之一,把可验证证书和 NFT 结合也是我们在 NFT 领域深耕的创新之一。

目前以太坊生态的 NFT 虽然有 ERC 721 等协议和规范,但这些协议仅仅考虑了以太坊生态自己完全没有考虑其他环境,而且 ERC721 等协议仅仅定了 NFT 的交易接口规范,却没有对 NFT 本身的数据格式做出约定,导致目前各种 NFT 格式基本是各个平台自己定义,大多数做法就是一个 JSON 格式的 Meta Data(元数据),再附加指向一些外部的媒体文件。这么做的一个最大问题是”链下“的 NFT 数据可以复制也无法验证。你花数万甚至数十万美元的代价获得的数字艺术作品,在链上指向的数据往往是任何人都可以精确复制下载,也无法验证真伪的数据,这和很多人以为的 NFT 不可复制、不可篡改、容易验证属性其实存在理想与现实之间的巨大鸿沟。

自 2019 年 ArcBlock 推出DID[5]开始,我们就把 DID 和可验证证书和 NFT 结合在一起。首先我们把 NFT 的拥有对象定义为 DID,而非某个特定的区块链地址。在此基础上,我们把整个 NFT 设计为可验证证书,NFT 的可验证性包含了 NFT 的所有数据,包括其媒体文件等,真正实现了 NFT 的不可篡改、不可复制,以及可验证。

NFT 和 FT 可以互相结合吗?

NFT 和 FT(Fungible Token,同质化通证)其实是两种相辅相成的 Token,两者之间不是非黑即白,而是可以互相兼容。

以太坊的智能合约设计,使得 NFT 和 FT 可以在实现上非常巧妙地结合和重组。从这个角度而言,早期的 Token 设计,甚至一些所谓”以太坊杀手“的区块链没有这样的灵活性。因为在以太坊里,智能合约和一个有私钥的普通账户并无区别,这就是说一个 ERC721 的智能合约本身就可以成为其他 Token(无论是 FT 还是 NFT)的持有者,而对持有的 Token 的控制逻辑又是这个智能合约本身来决定的。同理,一个 ERC20 的智能合约本身可以持有其他的 Token,因此通过 ERC20 就可以“分拆”自己持有的资产。著名的去中心化交易所 Uniswap V 2 的设计里, LP Token(流动性提供者凭证)就是这样的一种符合 ERC 20 规范的 FT,每个交易对合约本身持有了用于交易的两种 Token,而投入这些 Token 的人则获得持有 LP Token,而最新的 Uniswap V3 改为采用 NFT 的方式来实现持有不同仓位的 LP Token。

NFT 和 FT 的组合可以带来非常多的应用形态,从含有面值的礼品卡、彩票、股权证明、期权、产权证书、收益权合约等等,都可以采用 NFT 和 FT 的组合来建模。ArcBlock 的 Token 设计上充分借鉴了过去系统的利弊,让用户不需要编写复杂的智能合约就能轻易铸造安全易用的 FT 和 NFT,并可任意地形成循环嵌套组合来描述非常复杂的业务需求。

NFT 和 DeFi 有什么关系?

如果说 DeFi(Decentralized Finance,去中心化金融)是“金钱积木”(Money Lego),那么 NFT 可以说将是“万物的积木”(Everything Lego),毫无疑问 NFT 可以和 DeFi 有机结合,形成非常多的创新性应用。

利用前述 NFT 和 FT 可以合这样一个特性,就能采用计算机科学里一个常见而强大的“循环嵌套”的设计模式,把简单的部件优雅地组合成为非常复杂、功能强大的部件。例如,可以设计一种 NFT,可以包含其他的 Token (FT),这很容易形成如股权、期权等应用形态。而(在法律许可范围内)NFT 又可以把其归属权通过 DAO 的方式切分成 FT 的方式,可以让一群人来按份共有一个物理上无法分割的资产所有权,比如分时度假的别墅的产权可以是一个 NFT,而这个 NFT 通过建立一个 DAO 的组织来采用 FT 的方式发行分时使用权甚至进行收益分配等。采用类似的方法可以无限地组合和分拆,而这将为 DeFi 带来比现在的“质押(staking)”、“收益播种(yield farming)”等有意义得多的创新。

Uniswap 的最新版本产品设计已经采用 NFT 来作为其 LP Token,而不是过去采用 ERC20 方式。过去以 ERC20 方式的设计让 SushiSwap 的“吸血鬼攻击”变得直接方便,而采用 NFT 方式可以有效防范此类问题发生。

NFT 和 DeFi 结合的应用,我们预期在这个领域会诞生大量的创新和耀眼的明星。需要说明的是,要让 NFT 能在 DeFi 领域获得发展,NFT 本身的数据必须具备可靠性、不可篡改和可验证性,这就是为什么我们认为与 DID/VC 的结合是 NFT 成为更严谨应用的必由之路。

ArcBlock 的 NFT 技术发展路线图

ArcBlock 成立之初,我们就意识到 NFT 是一种重要的 Token 形态。在 ArcBlock 的“可编程通证”体系中,我们从一开始就对 NFT 形态的 Token 作了非常清晰的定位和规划,NFT 相关的协议在 ArcBlock 的区块链上被称为 ABBA 协议(ArcBlock Blockchain Assets Protocol,即 ArcBlock 区块链资产协议)。在我们撰写分别由中信出版集团出版的《区块链实战:从技术创新到商业模式》和人民邮电出版社出版的《2020 区块链漫游指南》[6]两本书中都可以找到我们对 NFT 的实践的详细介绍。

在 ArcBlock 的 NFT 实现中,我们引入了一些非常独特和创新的设计,包括:

•NFT 完美结合 DID 和 VC:ArcBlock 的 NFT 结合了 DID 和 VC 技术,因此在链下数据可验证、不可篡改、数据可携带(Data Portability)、数据用户自主拥有(Self Sovereign Data)等方面有不可比拟的优势。我们认为这会是将来 NFT 的普遍方向,我们采用符合 W3C DID 规范的设计具有很好的前瞻性和标准兼容性。•原生的 NFT 的铸造和交易能力:由于 NFT 和 FT 的重要性,我们在 ArcBlock 的资产链设计中把 Token 的铸造、不同 Token 之间的原子性交换等都作为原生协议来支持,不同于其他基于智能合约的区块链如以太坊等需要通过部署智能合约的方式来支持。此外我们意识到 NFT 交易本身的重要性和通用性,我们把 NFT 的交易基础作为标准的 Blocklet Service 来提供, 开发者可以立刻在自己的 Dapps 中铸造自己的 Token 并立刻实现基于链的去中心化交易,不需要自己开发,更不需要依赖第三方。•原生 ABT“燃料”机制的开放经济协议:在 ArcBlock 系统中,我们把 NFT 的铸造、存储等应用和系统其他部分如 ABT 节点、Blocklet(基石程序)等完全统一了起来。事实上,用户通过 ABT 来运行的 ABT 节点、Blocklet,各种业务在底层实现上完全采用了 NFT 交易和确权机制。只需要使用原生 ABT 为基础的简单而一致的经济协议,开发者就可以为用户实现全方位的服务, 并且 ABT 的经济协议还通过 NFT 来隔离了支付和底层的业务提供,意味着应用可以对最终用户使用任意 Token 的支付方式(如 BTC、ETH),甚至采用传统支付方式(如信用卡、Apple Pay 等)就能提供服务, 这对服务提供的简化、业务的”出圈“等非常有帮助。我们在这部分有非常多的创新,以后会专门介绍。•完善的支持 NFT 的钱包生态:没有完善的生态钱包技术支持将是 NFT 的一个致命缺陷,这点在目前的以太坊 NFT 生态里已经可以看到这个问题,其实以太坊的 ERC 721 的 NFT 应用,如 CryptoKitties、POAP 等都已经很早就推出,但是由于缺乏面向用户的钱包支持,导致最终用户难以感知,让 NFT“出圈”很难。ArcBlock 非常重视钱包生态,ABT Wallet 实现了从 iOS 到 Android,并实现了纯 Web 端应用,并且在不同版本之间完全兼容和采用标准的用户体验, 这对以后众多 NFT 的应用非常重要。•完善的支持 NFT 的区块浏览器:过去以太坊生态的 NFT 另一个问题是区块浏览器对 NFT 不够友好,用户不能从常用的区块浏览器上一眼看清 NFT 的交易信息,也无法通过区块浏览器来检查校验 NFT 的数据(因为目前很多这些设计的外部数据没有可验证性的支持)。ArcBlock 的区块浏览器支持完善的 NFT 数据展示,并能完善帮助用户校验链下数据的一致性。ArcBlock 的区块浏览器是完全开源实现的 Blocklet,意味着不但可以使用官方部署的,任何人可以轻松部署区块浏览器实现更去中心化的校验。•作为以太坊 Layer 2 接入以太坊生态:ArcBlock 的 NFT 自成体系,但是用户可以通过 rollup 技术把 ArcBlock 系统上的 FT/NFT 在以太坊生态映射为符合 ERC20 和 ERC721 的 Token,从而融入以太坊生态。

ArcBlock 设计的 NFT 体系具备上述许多与众不同的特点,由于我们研发时间久、投入大,我们很多设计已经在实际应用中进行了多次迭代改进,在 NFT 真正走向更广泛的应用时能获得更大的先发优势。

References

[1]ArcBlock 白皮书:https://www.arcblock.io/zh/whitepaper/latest[2]开发者大会:https://devcon.arcblock.io/zh/[3]《NFT:数字所有权的伟大试验才刚刚开始》:https://www.arcblock.io/blog/zh/post/2021/03/30/nft[4]ABT 链网:https://abtnetwork.io/zh/[5]DID:https://github.com/ArcBlock/abt-did-spec[6]中信出版集团出版的《区块链实战:从技术创新到商业模式》和人民邮电出版社出版的《2020 区块链漫游指南》:https://books.arcblock.io/