原文标题:《 Buidler DAO:Push Protocol 如何填补 web3 通信空白 》
原文作者:JasonChen、Rui,Buidler DAO
01/ 前言
02/ 名称和定位的改变
03/ 为什么需要去中心化的通信协议
04/ Web2 与 PUSH 消息推送逻辑对比
05/ 协议架构:用户、频道、订阅者
06/ 如何集成 PUSH Protocol
07/ 未来重要发展方向
Push Protocol 是一款 Web3 的去中心化通信协议,它使任何智能合约、dApp 甚至传统服务都可以向钱包地址发送通知,当然前提是这些钱包地址选择接收这些渠道的消息,它可以应用于 Web3 的全场景中,包括 DeFi 的资产清算、ens 的域名到期包括媒体的新闻推送等,目前已经为 6 万的订阅者发送了 1770 万条消息,是去中心化通讯赛道的头部项目。
于 2022 年 9 月前 PUSH 的名字叫 EPNS,中文的含义是「以太坊消息通知服务」,通过名字我们可以看出在此之前它是针对于以太坊的项目,并且那时候它对自己的定位是服务而非协议,所以这个旧的名字拆解为 3 部分:以太坊、消息通知和服务,而新的名字也恰恰是打破了这三部分,随着它开始支持 Polygon 等其他链,它将突破以太坊到其他 L1 与 L2,其次应用场景不仅限于通知而在于一切消息推送场景,最后因为支持多链和多场景所以它不再是某一个具体的服务而是成为了协议,所以继续叫 EPNS 会限制自己的业务与品牌,于是改名为 Push Protocol。
消息推送已经融入了传统 Web2 的方方面面,从 IM 聊天、到新闻、再到各种营销信息、通知提示等等,不论是应用场景还是技术上都已经非常成熟,但是在 Web3 中大家却很少有用到具备消息推送能力的 Dapp,涉及到通知的需求大多是用邮件解决的,主要原因是:
目前 Dapp 大多数都是 PC 端的网页形式,移动端发展极其缓慢,因为消息推送是即时性的,移动端的缺失制约了消息推送场景的发展,反观 Web2 也是在移动互联网出现后消息推送才大范围应用。
Web3 的基建层的消息推送目前确实是一块发展洼地,能看到的成熟解决方案不多。
即使如此 Web3 依然有大量需要消息推送的场景,比如 DeFi 价格变动、投票结果通知等,以及如 Lens Protocol 这类社交协议产品也集成了 Push Protocol,因为用户之间所产生的关注、点赞等也存在大量的通知场景,包括 CoinDesk 也进行了集成,每次 CoinDesk 博客上发布新文章时,用户都会收到通知,从而快速的了解行业动向,所以随着 Web3 的发展消息推送的场景将会越来越多。
大家的手机每天会收到很多 APP 给你发送的消息,包括社交软件的好友消息、新闻媒体的头条事件、电商平台的折扣优惠等等,它们是怎么实现的呢?下图为 iPhone 手机中的 APP 对你的手机发送消息的流程,核心是 APNS(Apple Push Notification Service)作为中转服务,分为 3 个阶段:
阶段 1:上游项目方把要发送的消息和接收的 iPhone 标识打包,发给 APNS。
阶段 2:APNS 在注册 Push 服务的 iPhone 列表中,查找有相应标识的 iPhone,并把消息发到 iPhone。
阶段 3:iPhone 把发来的消息传递给应用程序,并且按照设定弹出 Push 通知。
下图为 Push Protocol 的原理,其实会发现结构上和 Web2 的 APNS 是一致的,最上层的 dapp、服务器和智能合约这三类处于输入层,即消息产生的源头,把消息传入 Push Protocol 后,内部的节点会监听协议智能合约中的事件并将消息中转给对应的接收者。
简单来说,可以理解成合约、后端服务等上游可以在需要消息推送的地方埋一段 EPNS 的代码,并传入对应消息内容,Push Protocol 就会将这个消息传递给对应地址,当然你必须还要在下游有个前端负责接收并展示消息,Push Protocol 作为协议层只负责消息的分发过程,当然 Push Protocol 为了便于用户使用也做了一个插件形式的消息盒子,用户经 Push Protocol 所收到的消息也会展示在里面。
在 Push Protocol 中主要有 3 个概念:用户、频道和订阅者。
用户:指所有在 EPNS 中的实体包括合约、钱包、人员等
频道:在 Push Protocol 中进行注册的消息发送方,用户需要订阅频道后才可以收到对应的消息
订阅者:产生了订阅行为的用户
如下图所示当我打开 Push Protocol 的操作台后,并点击 channels 栏目右侧会出现很多频道,这些频道就是用户所创建的消息发送方。
我可以选择点击加入和退出某个频道,加入时需要签名成为该频道的订阅者,完成签名后频道内所产生的消息就会发送至我的钱包地址中,用户可以随时取消订阅,所以用户掌握绝对的消息获取权,不用担心被滥发消息,并且频道要发送通知必须承担费用,以 ETH 或 DAI 支付,这在一定程度上也可以防止垃圾消息的发送。
我们能看到现在频道的多样性非常强,不光几乎大多数主流的 Web3 产品和协议如 Snapshot、MakerDAO 等都入驻了,甚至还有如连载小说也入驻了,所以 Push Protocol 应用场景的想象空间还是非常大的。
需要质押 50 $PUSH 才可以申请成为频道,其中 10 $PUSH 用于创建合约的协议费用,其余的 Token 会存储在频道所有者的合约池中,一旦频道停用池子中的Token将返还。
频道可以发出 3 中消息类型,广播通知、丁香通知和子集通知。
广播通知:一次性将消息发送给该频道的所有订阅者
定向通知:可以发送给特定的钱包地址,当然前提是它们订阅了该频道
子集通知:定向通知的变种,通知某一组订阅者
Push Protocol 支持通过智能合约、PUSH dApp、SDK 等多种方式发送消息,我们以智能合约为例,首先需要导入 IPUSHCommInterface 合约接口。
并定义频道的地址,每个用户创建的频道都会分配一个频道地址,然后设置接收地址,你可以指定某些订阅地址,也可以直接设置为广播模式即所有订阅者都会接收。
这样当你的合约代码执行到对应位置时就可以完成一次消息内容的触发,由 Push Protocol 的节点进行内容的中转。消息发出去后,下游的需要对消息进行接收然后展示,接收的方式 Push Protocol 给出了三种。
获得的消息数据格式如下,包括消息接收地址、消息内容、类型等信息。
除此以外 Push Protocol 还做了自己的 Web3 原生聊天软件,如下图所示可以实现文本、表情、附件的内容发送,并且该聊天能力支持 SDK 集成,任何 dapp 都可以接入后具备原生的 Web3 聊天功能。
PUSH 允许所有的 dApp、智能合约、后端、协议甚至任何分布式技术直接与用户的钱包地址进行通信,目前 PUSH 的合作方在各个重要领域都有涉及:
DeFi 通过 PUSH 发送交易相关的信息:去中心化金融活动一直是 Web3 的主体。可以利用 PUSH 的场景:日常状态时发一些用户教育以及了解最新的动态和池子;紧急状态时例如贷款或者抵押品接近清算时,需要用 PUSH 提醒他们的用户采取行动;参与活动时可以提醒用户关于奖池的变化,以及获奖情况等。
DAO 组织利用 PUSH 进行治理与投票:去中心化自治组织在日常中经常需要大量的提案、投票、公示,但是使用 Discord 等平台的现状是,人们会屏蔽或忽视重要的信息,使用 PUSH 可以端对端的提醒用户参与 DAO 治理。
GameFi 利用 PUSH 进行用户激励:玩家和平台可以进行直接通信,并且通过 PUSH 可以实现所有的 NFT 空投、奖励、升级进展都作为通知以激励用户,鼓励留存。
数据分析协议结合 PUSH 进行更及时的用户告知:市面上有大量的 Web3 数据分析协议,通过结合 PUSH,用户可以直接自定义自己的需求,例如追踪聚合交易平台的某 NFT 交易量、读取 sushiswap 的 swap 和配对、当某 nft 地板价下跌时进行通知等。
总而言之,在任何重要的 ToC 领域都可能有 PUSH 的一席之地,例如法律协议签署时需要实时通知进展、交易平台倒台事件需要第一时间通知用户、安全合约审计的结果可以直接广播给社区等等。
经历了两年的发展,Push Protocol 已经成为了消息推送赛道的头部项目,也成为 Web3 行业中不可缺少的重要基础设施。在未来希望看到 PUSH 在跨链的端对端通信中有所发展,Buidler DAO 也将在 Web3 的通信路上助力其蓬勃发展。
原文链接
欢迎加入律动 BlockBeats 官方社群:
Telegram 订阅群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方账号:https://twitter.com/BlockBeatsAsia