做最好的区块链网

tp钱包下载app|解析 Lens Protocol 的数据孤岛与技术细节

到现在为止 Web3 的社交产品依然没有出现杀手级应用,问题何在?


撰文:jason chen


浅研了一下 LensProtocol,由 Aave 团队打造的 web3 社交协议,它本身不是一个前端的社交产品,而是一个中后端的协议服务层,开发者基于其提供的 API 可以在上面低成本构建出社交产品,这应该也就是为什么 lens 的 logo 是一束花的原因吧,它希望自己成为这片社交花园里的根和土壤,开发者们可以在其之上种出鲜花。


相信大多数人对于 web3 的主要叙事都在于痛斥 web2 的 facebook、twitter 等公司垄断用户数据权,制造数据孤岛,用户拥有自己的社交数据和关系链也是 web3 原生的重要叙事,于是也冒出了很多号称 web3 twitter 的产品,但到现在为止 web3 的社交产品依然没有出现杀手级应用,我觉得抛开行业成熟度原因主要在于:


第一,在此之前多数 web3 社交产品依然在走制造数据孤岛的老路,怎么理解呢?基于区块链的社交产品确实可以让用户成为他数据的 owner,但产品数据的边界依然是合约,如果用户使用了 10 个产品,则用户的数据会散落在 10 个独立合约中,且每个产品合约的数据格式和标准都不一样,虽然透明了,但孤岛依然存在。从而导致用户的社交数据依然无法打通,用户在各个产品中产生的数据虽然属于其自己,因为独立的合约和不一致的数据格式,依然无法「带走」,假设一个产品挂了,那在此之前所产生的社交数据也很难被利用起来,除非其他的产品专门投入资源去做数据同步,所以目前 web3 社交产品只解决了拥有的问题,而非连接;第二,开发一个社交产品的成本也是很高的,其实这个成本主要还是在中后端,但是中后端的功能确可以被穷举且标准化,不外乎就是点赞、关注、发帖、收藏等功能,而前端业务层看似纷繁复杂也不过就是基于中后端标准功能的组合拼装。所以我认为 lens 也是基于这两点认为如果他们再做一个社交产品,也不过就是市面上的 10 个产品变成了 11 个,继续增加孤岛,所以他们把自己向下藏了一层,首先制定了标准,将什么样的行为需要铸造为 NFT,发布的内容需要用什么样的数据格式等问题都标准化,能够保证基于其标准所开发出的产品是不存在孤岛问题;其次通过阅读其开发者文档会发现 lens 的模块化设计非常充分,将能力拆分的颗粒度很细,尽可能做了解耦,从而便于开发者在上面去灵活的拓展业务逻辑。如下图所示,这是 lens 的主合约,可以看到其上面已经产生了 540 万条社交数据,包含了发布、收藏、关注等动作,所以 lens 打造了一个大陆,而不是一个孤岛。



关于标准,分为接口标准和数据标准,首先说一下接口标准,如下图 1 所示这是 lens 提供的所有一级 API,基本上社交关系的主要能力都包括了,图 2 是单关注这一个能力所拆分出来的二级 API,可见其颗粒度是做的很细的,开发者可以基于这些 API 自由拼装组合。




数据标准则又细分为 NFT 和非 NFT 两类,lens 的核心数据围绕 NFT 展开,首先每个用户需要一个.lens 域名才能拥有个人主页,其他的数据都是挂在这个域名下的,这个域名本身是一个 721 类型的 NFT,从这个角度也算是 DID 的范畴。


除了域名外用户的关注、收藏等动作也会被铸造为 NFT,如图 1 当用户进行关注时,触发了合约的 follow 函数,从所产生的链上数据可以看到 mint 了一个 NFT,如图 2 当取关的话则会将该 NFT 销毁掉。




社交数据其实是索引关系非常复杂的,lens 的接口对于开发者也非常方便,将链上数据包了一层不需要开发者自己去分析数据,而是如下图为例,如果需要查询某个人的关注者,通过接口可以直接以很清晰的以拉清单的形式将数据获取到并层层下钻。



另外对于 post 内容发布,首先它不是作为 NFT 呈现的,我在此之前还以为用户发的内容都会铸造成 NFT,如图 1 所示就是正常的链上数据写入的过程,这里我还没有理解清楚为什么 lens 不把他们做成 NFT。如图 2 这是 post 的写入数据,包含的数据有挂载在谁身上,挂载的内容是什么,发布内容用 contentURI 一个外链来索引。




具体内容则是存储在链下的,contentURI 会指向一个存储地址,但是 lens 对于数据的存储格式也是有一套标准规范的,这样就可以达到上文中提到的各产品基于 lens 构建后可以互通的效果,如图 1 为解析出来的一个数据格式,包括名称、内容、类型等。图 2 为枚举的数据格式,图文音视频等都包括,从而结构化内容数据。




以上就是对于 lens 的浅研,不愧是 Aave 出来的,确实对 web3 的原生很透彻,基于 lens 诞生出来 web3 原生 twitter 的可能性还是很大的,也许是研究还不够深,也存一些疑惑,比如个人主页是一个.lens 的 nft 域名,而所有的数据和关系链都挂在上面,但是该 nft 又是可以买卖的,社交关系可以买卖我觉得还是挺奇怪的。