Push protocol 是應用於 Web3 全場景中的一款去中心化通信協議。

文章: @Buidler DAO

作者:JasonChenRui

編排: @Coucou

封面: Push Protocol

注:文章不構成任何投資意見

全文 3100 字,預計閱讀時間 8 分鐘

文章速覽👀

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 的發展消息推送的場景將會越來越多。

Web2 與 PUSH 消息推送邏輯對比

大家的手機每天會收到很多 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 的架構:用戶、頻道、訂閱者

在 Push Protocol 中主要有 3 個概念:用戶、頻道和訂閱者。

  • 用戶:指所有在 EPNS 中的實體包括合約、錢包、人員等
  • 頻道:在 Push Protocol 中進行註冊的消息發送方,用戶需要訂閱頻道後才可以收到對應的消息
  • 訂閱者:產生了訂閱行為的用戶

如下圖所示當我打開 Push Protocol 的操作台後,並點擊 channels 欄目右側會出現很多頻道,這些頻道就是用戶所創建的消息發送方。

我可以選擇點擊加入和退出某個頻道,加入時需要簽名成為該頻道的訂閱者,完成簽名後頻道內所產生的消息就會發送至我的錢包地址中,用戶可以隨時取消訂閱,所以用戶掌握絕對的消息獲取權,不用擔心被濫發消息,並且頻道要發送通知必須承擔費用,以 ETH 或 DAI 支付,這在一定程度上也可以防止垃圾消息的發送。

我們能看到現在頻道的多樣性非常強,不光幾乎大多數主流的 Web3 產品和協議如 Snapshot、MakerDAO 等都入駐了,甚至還有如連載小說也入駐了,所以 Push Protocol 應用場景的想像空間還是非常大的。

需要質押 50 $PUSH 才可以申請成為頻道,其中 10 $PUSH 用於創建合約的協議費用,其餘的代幣會存儲在頻道所有者的合約池中,一旦頻道停用池子中的代幣將返還。

頻道可以發出 3 中消息類型,廣播通知、丁香通知和子集通知。


廣播通知:一次性將消息發送給該頻道的所有訂閱者

定向通知:可以發送給特定的錢包地址,當然前提是它們訂閱了該頻道

子集通知:定向通知的變種,通知某一組訂閱者

如何集成 PUSH Protocol

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 的通信路上助力其蓬勃發展。

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。文章內的信息僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。