# Lens Protocol ：Web3 去中心化社交网络的设计与实现（附测试网撸空投教程）

By [WhatsZine](https://paragraph.com/@whatszine-2) · 2022-05-07

---

### 什么是 Lens 协议？🌿

Lens 是一个部署在 Polygon 区块链网络的 Web3 社交图谱协议

设计目标是让创作者拥有自己和粉丝之间的链接关系，形成一个完全可组合的、用户拥有的社交网络

协议从一开始就考虑到了模块化，允许添加新的功能和修复问题，同时确保用户拥有的内容和社交关系不会改变

> 关于 `Lens` 名称的含义，不是直译的「镜头」，而是`Lens Culinaris`
> 
> Lens Culinaris 🌿 （小扁豆）是一种高大的分枝植物，会结出透镜状的豆荚种子。它与某些土壤细菌有共生关系，地下的根部会为邻近的植物提供氮源
> 
> 所以开发者将协议命名为 Lens ，意为一个共生协作的生态，而不是争夺养分的零和生态

### 有何不同？

Lens 协议试图解决现有社交媒体网络中的主要问题：Web2 社交网络都是从其专有的、中心化的数据库中读取数据，没有可移植性

你的个人资料、朋友关系和内容都被锁定在一个特定的网络中，并由网络运营者拥有，例如 Twitter 和 Facebook。这导致每个社交网络平台都在为争取你的注意力进行零和游戏

Lens 协议纠正了这一点，它是一个用户拥有的、开放的社交网络，任何应用都能以可拔插的方式加入其中

由于用户掌控自己的数据，他们可以把数据带到任何建立在 Lens 协议之上的应用中。作为内容的真正所有者，创作者们不再需要担心个别平台的算法和政策变动，从而失去内容、粉丝以及以此为基础的生计

此外，使用 Lens 协议的每个应用程序都会使整个生态系统受益，将零和游戏变成协作游戏。开发者可以设计有价值的社交体验，而不是利用各种机制来锁定用户的注意力，使其留在自己的平台

### 架构设计

首先看看一下 Profile 主页的创建和发布：

用户可以在 `LensHub`上创建个人主页，创建后将收到一个按顺序自增 ID 的 Profile NFT，成为该 Profile 主页的实际控制者

Profile 主页所有者可以：

*   发布内容到 Profile 主页，发布类型包括：
    
    *   Post（帖子）：图文或者其他内容
        
    *   Comment（评论）：包含评论内容，同时有一个指向 Post（帖子）的指针。由于 Comment（评论）包括一个指针，这将触发被指向内容的 `Reference Module` 逻辑（如果被评论 Post 有设置的话）
        
    *   Mirror（转发）：相当于传统意义上的「分享」，没有内容，但有一个指向被转发 Post（帖子）的指针。由于 Mirror（转发）包括一个指针，这将触发被指向内容的 `Reference Module` 逻辑（如果被转发 Post 有设置的话）
        
*   设置 Profile 主页的 `Follow Module`：
    
    *   `Follow Module`可以设置为经过协议管委会认证通过的智能合约（也就是白名单列表，防止恶意代码），包含了当主页被关注时必须执行的逻辑：例如，你可以在`Follow Module`加上必须付费才能关注的功能
        
*   设置 Profile 主页的图片 URI
    
*   设置 Profile 主页的「dispatcher」：
    
    *   可以将 Profile 主页授权给「dispatcher」，让其发布内容到你的 Profile 主页或者设置 Profile 主页的 URI
        

其他用户可以：

*   关注 Profile 主页：
    
    *   关注时将执行该主页的 `Follow Module` 逻辑（如果有配置的话）
        
    *   关注后将铸造一枚按顺序自增 ID 的 `Follow NFT`。`Follow NFT` 有一个由主页所有者设置的 URI
        
*   收藏发布内容：
    
    *   收藏时将执行 Post（帖子）的 `Collect Module` 逻辑（如果有配置的话）
        
    *   收藏后将铸造一枚按顺序自增 ID 的 `Collect NFT`。`Collect NFT`的 URI 指向被收藏内容的 URI
        

### 测试网体验

访问基于 Lens 协议开发的社交网络平台：[https://lenster.xyz/](https://lenster.xyz/)

使用你的 `MetaMask` 小狐狸浏览器插件钱包登录网站，会提示切换到 `Polygon Testnet` 测试网，如果你的钱包内没有测试币，可以点击页面右边的`Get testnet tokens` 获取

登录成功后就可以创建个人主页，相当于 Web2 社交平台的注册：

注意这里的 `Handle` 就是你在社交平台的 ID，具有协议级别的唯一性，类似于 `ENS` 的域名，存在的投资套利的空间，可以大量囤起来转售

按照 Lens 协议规范，每个主页都是一份 ERC721 兼容的 NFT ，未来可能直接挂到 OpenSea 出售：

创建个人主页 Profile 后，就可以开始发布帖子，就像 `Twitter` 或者 `微博` 一样，也可以评论、转发、收藏他人的帖子：

注册、发帖、评论、收藏、转发、关注操作都在链上执行，需要消耗 gas fee，这也是 Lens 协议部署在 Polygon 区块链网络的原因：毕竟和以太坊主网相比，Polygon 网络交易费用要便宜很多

需要注意的是，发布的内容是存储在 `IPFS` 或 `Arweave` 等去中心存储网络，或者 Amazon S3 等中心化存储平台中，区块链上只保存内容链接

上文说到 Lens 协议是模块化设计，用户可以自定义关注、评论、转发需要执行的逻辑，这里就有一个很有趣的示范：

在关注之前，需要付费，从而拥有更多权限，包括：

*   允许在博主内容下评论；
    
*   允许收藏博主内容；
    
*   将获得专属徽章；
    
*   获得更高的投票权限；
    
*   ......
    

### 结束语

Lens 设计了一种去中心化的社交网络协议，将用户的关键社交行为和内容上链，从而实现用户控制自己社交图谱和内容的目标

用户可以自由地在基于 Lens 协议实现的社交平台上无缝迁移，不用再担心个人资料、关注人、粉丝或者发布的内容丢失

开发者可以更容易地实现一个社交网络平台，没有冷启动的困扰，也不存在 Web2 的巨头垄断。更重要的是每个不同的社交应用都会给整个网络带来价值，不再重复建设，将零和游戏变成了协作游戏，实现用户、开发者、协议三方共赢的局面

Web3 已来，加速上车，快去体验一下这个全新的社交网络平台吧~ 也许这些交互记录就是 Lens 协议上线主网后，空投治理 Token 的依据

---

*Originally published on [WhatsZine](https://paragraph.com/@whatszine-2/lens-protocol-web3)*
