一文详解去中心化通信协议 Push Protocol_AST:Pushswap

原文标题:《BuidlerDAO:PushProtocol如何填补web3通信空白》

作者:JasonChen、Rui,BuidlerDAO

前言

PushProtocol是一款Web3的去中心化通信协议,它使任何智能合约、dApp甚至传统服务都可以向钱包地址发送通知,当然前提是这些钱包地址选择接收这些渠道的消息,它可以应用于Web3的全场景中,包括DeFi的资产清算、ens的域名到期包括媒体的新闻推送等,目前已经为6万的订阅者发送了1770万条消息,是去中心化通讯赛道的头部项目。

名称和定位的改变

于2022年9月前PUSH的名字叫EPNS,中文的含义是「以太坊消息通知服务」,通过名字我们可以看出在此之前它是针对于以太坊的项目,并且那时候它对自己的定位是服务而非协议,所以这个旧的名字拆解为3部分:以太坊、消息通知和服务,而新的名字也恰恰是打破了这三部分,随着它开始支持Polygon等其他链,它将突破以太坊到其他L1与L2,其次应用场景不仅限于通知而在于一切消息推送场景,最后因为支持多链和多场景所以它不再是某一个具体的服务而是成为了协议,所以继续叫EPNS会限制自己的业务与品牌,于是改名为PushProtocol。

为什么需要去中心化的通信协议

消息推送已经融入了传统Web2的方方面面,从IM聊天、到新闻、再到各种营销信息、通知提示等等,不论是应用场景还是技术上都已经非常成熟,但是在Web3中大家却很少有用到具备消息推送能力的Dapp,涉及到通知的需求大多是用邮件解决的,主要原因是:

目前Dapp大多数都是PC端的网页形式,移动端发展极其缓慢,因为消息推送是即时性的,移动端的缺失制约了消息推送场景的发展,反观Web2也是在移动互联网出现后消息推送才大范围应用。

Web3的基建层的消息推送目前确实是一块发展洼地,能看到的成熟解决方案不多。

即使如此Web3依然有大量需要消息推送的场景,比如DeFi价格变动、投票结果通知等,以及如LensProtocol这类社交协议产品也集成了PushProtocol,因为用户之间所产生的关注、点赞等也存在大量的通知场景,包括CoinDesk也进行了集成,每次CoinDesk博客上发布新文章时,用户都会收到通知,从而快速的了解行业动向,所以随着Web3的发展消息推送的场景将会越来越多。

Web2与PUSH消息推送逻辑对比

大家的手机每天会收到很多APP给你发送的消息,包括社交软件的好友消息、新闻媒体的头条事件、电商平台的折扣优惠等等,它们是怎么实现的呢?下图为iPhone手机中的APP对你的手机发送消息的流程,核心是APNS作为中转服务,分为3个阶段:

阶段1:上游项目方把要发送的消息和接收的iPhone标识打包,发给APNS。?

阶段2:APNS在注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发到iPhone。?

阶段3:iPhone把发来的消息传递给应用程序,并且按照设定弹出Push通知。

下图为PushProtocol的原理,其实会发现结构上和Web2的APNS是一致的,最上层的dapp、服务器和智能合约这三类处于输入层,即消息产生的源头,把消息传入PushProtocol后,内部的节点会监听协议智能合约中的事件并将消息中转给对应的接收者。

简单来说,可以理解成合约、后端服务等上游可以在需要消息推送的地方埋一段EPNS的代码,并传入对应消息内容,PushProtocol就会将这个消息传递给对应地址,当然你必须还要在下游有个前端负责接收并展示消息,PushProtocol作为协议层只负责消息的分发过程,当然PushProtocol为了便于用户使用也做了一个插件形式的消息盒子,用户经PushProtocol所收到的消息也会展示在里面。

PUSH的架构:用户、频道、订阅者

在PushProtocol中主要有3个概念:用户、频道和订阅者。

用户:指所有在EPNS中的实体包括合约、钱包、人员等

频道:在PushProtocol中进行注册的消息发送方,用户需要订阅频道后才可以收到对应的消息

订阅者:产生了订阅行为的用户

如下图所示当我打开PushProtocol的操作台后,并点击channels栏目右侧会出现很多频道,这些频道就是用户所创建的消息发送方。

我可以选择点击加入和退出某个频道,加入时需要签名成为该频道的订阅者,完成签名后频道内所产生的消息就会发送至我的钱包地址中,用户可以随时取消订阅,所以用户掌握绝对的消息获取权,不用担心被滥发消息,并且频道要发送通知必须承担费用,以ETH或DAI支付,这在一定程度上也可以防止垃圾消息的发送。

我们能看到现在频道的多样性非常强,不光几乎大多数主流的Web3产品和协议如Snapshot、MakerDAO等都入驻了,甚至还有如连载小说也入驻了,所以PushProtocol应用场景的想象空间还是非常大的。

需要质押50$PUSH才可以申请成为频道,其中10$PUSH用于创建合约的协议费用,其余的代币会存储在频道所有者的合约池中,一旦频道停用池子中的代币将返还。

频道可以发出3中消息类型,广播通知、丁香通知和子集通知。

广播通知:一次性将消息发送给该频道的所有订阅者

定向通知:可以发送给特定的钱包地址,当然前提是它们订阅了该频道

子集通知:定向通知的变种,通知某一组订阅者

如何集成PUSHProtocol

PushProtocol支持通过智能合约、PUSHdApp、SDK等多种方式发送消息,我们以智能合约为例,首先需要导入IPUSHCommInterface合约接口。

并定义频道的地址,每个用户创建的频道都会分配一个频道地址,然后设置接收地址,你可以指定某些订阅地址,也可以直接设置为广播模式即所有订阅者都会接收。

这样当你的合约代码执行到对应位置时就可以完成一次消息内容的触发,由PushProtocol的节点进行内容的中转。消息发出去后,下游的需要对消息进行接收然后展示,接收的方式PushProtocol给出了三种。

获得的消息数据格式如下,包括消息接收地址、消息内容、类型等信息。

除此以外PushProtocol还做了自己的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的一席之地,例如法律协议签署时需要实时通知进展、交易所倒台事件需要第一时间通知用户、安全合约审计的结果可以直接广播给社区等等。

经历了两年的发展,PushProtocol已经成为了消息推送赛道的头部项目,也成为Web3行业中不可缺少的重要基础设施。在未来希望看到PUSH在跨链的端对端通信中有所发展,BuidlerDAO也将在Web3的通信路上助力其蓬勃发展。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:15ms0-4:1ms