EPNS : un système de notifications pour le Web 3.0

L’Ethereum Push Notification Service ou EPNS est un protocole de communication permettant aux applications décentralisées et aux smart contracts d’envoyer des notifications à leurs utilisateurs. L’EPNS est blockchain-agnostique, trans-plateformes et possède son mécanisme d’incitations économiques grâce à son jeton utilitaire, le PUSH.

Dans cet article, nous faisons un tour d’horizon de ce middleware décentralisé, qui résoudra bien des problèmes auxquels sont confrontés les utilisateurs de dApps et leurs développeurs !

Cet article vous est proposé dans le cadre d’une campagne de communication éducative, et soutenue par EPNS.

La raison d’être de l’Ethereum Push Notification Service (EPNS)

Les services du Web 3.0 manquent d’une fonctionnalité cruciale : un moyen de communication décentralisé avec leurs utilisateurs.

Lorsque nous interagissons avec une application décentralisée, ou un service déployé sur une plateforme de smart contracts, nous sommes notifiés par les voies de communication classiques du Web – email, réseaux sociaux ou plateformes communautaires (de type Telegram ou Discord). Il faut donc vérifier régulièrement le résultat de nos actions on-chain, ou utiliser une multitude de plateformes centralisées pour être notifiés en temps et en heure.

Une couche de communication décentralisée pour les notifications est donc essentielle. En effet, le manque d’information conduit à manquer des événement importants. Il peut s’agir de mises à jour, de conséquences d’une de ses actions ou encore de mouvements de fonds.

Des notifications pour les services du Web 3.0

Lorsqu’un trader utilise une plateforme d’échange décentralisée (DEX), il doit vérifier manuellement l’état de ses trades sur son portefeuille. De même, celui qui fait du lending sur une plateforme de finance décentralisée comme Aave ou Compound ne sera pas averti en cas de liquidation. Il devra regarder manuellement l’état de son prêt.

Sur Ethereum, un service comme l’ENS (Ethereum Name Service) utilise Twitter pour notifier les propriétaires des noms de domaine de leur expiration. Il s’agit d’un des premiers partenaires d’EPNS.

De nombreux protocoles présentent des mécanismes de gouvernance très élaborés. Cependant, les détenteurs de jetons doivent consulter les réseaux communautaires pour se tenir au courant des différentes propositions. Ils ne sont pas notifiés lorsqu’une instance de vote importante se prépare. Grâce à l’EPNS, ces services peuvent alors informer leurs utilisateurs, grâce à une simple notification.

Sur les places de marché dédiées à l’art numérique, l’EPNS permet de recevoir des notifications quant à la disponibilité de tel ou tel NFT.

Ces exemples démontrent la pertinence d’un service de notification décentralisé, tant pour les utilisateurs du Web 3.0 que pour les fournisseurs de services. C’est ainsi que le projet EPNS a vu le jour, sous l’égide d’une équipe de développement expérimentée.

L’équipe d’EPNS

Harsh Rajat et Richa Joshi fondent le projet en 2020, lors du hackathon organisé par EthGlobal, Hack Money. Durant un mois, le développeur Solidity et le chercheur en systèmes distribué conçoivent le premier protocole de notification décentralisé pour les dApps d’Ethereum.

Après la genèse du projet, l’équipe accueille de nouveaux membres et bénéficie du soutien de géants de l’industrie, comme Aave et Matic. En décembre 2020, EPNS lève en seed 750 000 dollars, auprès de nombreux leaders du secteur. Des fonds de capital-risque comme TheLaoOfficial, MetaCartel, Fourth Revolution Capital, BlockRock Capital, LD Capital, D64 Ventures et Moonwhale Ventures rejoignent également l’aventure.

Ethereum Push Notification Service - EPNS - Team
L’équipe de développement d’EPNS et ses conseillers.

Le développement d’EPNS est rapide. L’équipe a su bâtir une communauté solide : en effet, les produits proposés deviendront probablement indispensables pour l’Internet décentralisé.

Le protocole EPNS

Ethereum Push Notification Service donne donc aux services les moyens de notifier leurs utilisateurs, à travers les adresses de leurs wallets. Le protocole comporte des incitations économiques : chaque acteur est récompensé pour sa participation honnête et active.

Diagramme des flux applicatifs sur l’EPNS.

Il y a ainsi plusieurs rôles au sein de l’écosystème :

  • Services : applications décentralisées, smart contracts, ou encore services centralisés ;
  • Canaux : services ayant rejoint l’EPNS, peuvant donc envoyer des notifications à leurs utilisateurs ;
  • Abonnés : utilisateurs inscrits à l’un des canaux ;
  • Utilisateurs : n’importe qui ayant rejoint le protocole.

Le protocole permet de communiquer de façon décentralisée et privée via les adresses des wallets des utilisateurs. Il est doté d’un mécanisme anti-spam. Les services peuvent communiquer tout type de contenu : images, appels à l’action, vidéos, transactions chiffrées… Les notifications utilisent des JSON payloads – charge utile en français – c’est-à-dire les données essentielles à transmettre, codées en JSON dans notre cas.

Fonctionnalités du protocole

Notifications et récompenses

L’EPNS incite économiquement ses utilisateurs à recevoir des notifications. En effet, les fournisseurs de services placent sous séquestre des DAI (staking) pour activer leurs canaux, sur le protocole DeFi Aave (ce qui pourra changer à l’avenir). Les abonnés reçoivent ensuite les intérêts générés. Ces récompenses favorisent les utilisateurs qui s’inscrivent le plus tôt.

Le dépôt minimum pour ouvrir un canal est de 50 DAI. Plus le stake est élevé et plus les récompenses distribuées aux abonnés sont importantes. Cela incite le propriétaire du canal à augmenter la quantité de DAI verrouillés, afin d’attirer plus d’utilisateurs. Pour fermer un canal, il faut s’acquitter de la somme de 20 DAI : elle est suffisamment basse pour ne pas pénaliser les acteurs sérieux, mais suffisamment élevée pour empêcher un acteur malicieux d’abuser du système.

Un protocole trans-plateformes

Les informations relatives à chaque notification (chiffrées ou non) sont stockées sous forme de payload sur l’IPFS. De telle sorte, les notifications peuvent être délivrées sur tous type de plateformes intégrant le protocole EPNS : wallets, applications mobiles, navigateurs, dApps, etc. Afin d’inciter les fournisseurs de wallets et d’infrastructures à intégrer l’EPNS, les frais payés par les services leurs sont distribués.

Charge utile flexible

Les notifications sont donc stockées et organisées sous forme de payloads JSON. Elles peuvent être transformées de façon arbitraire. Il existe différentes formes de payloads selon le type de notification : cela permet d’avoir un contenu flexible. Il en va de même pour le format des données, leur stockage et leur acheminement.

Des notifications centrées sur l’utilisateur

Les utilisateurs contrôlent les notifications qu’ils reçoivent (opt-in). Le protocole impose aux services des règles pour éviter le spam.

Ratio de spam et étranglement

Les mécanismes d’incitations économiques poussent les acteurs à bien se comporter. Cependant, il existe des cas limites, où un canal devient un mauvais acteur, malgré les pénalités qui lui sont imposées. Par exemple, un canal peut être racheté pour spammer ses abonnés, ou sa clé privée peut être compromise.

Chaque canal comporte alors un “spam score”, compris entre 0 et 1. Par défaut, le score d’un canal est de 0,5 à son ouverture. Ce score varie ensuite en fonction du bon ou du mauvais comportement du canal. Un score de 0 indique un canal en parfaite santé, tandis qu’un score de 1 témoigne d’un mauvais comportement.

L’ajout d’abonnés au cours du temps (pondéré par le nombre d’utilisateurs total de l’écosystème) fera tendre le spam score vers 0. À l’inverse, les désabonnements et les signalements de spam feront tendre le score du canal vers 1.

Lorsque le score dépasse 0,8, le canal sera pénalisé. On parle d'”étranglement” : le nombre de notifications pouvant être envoyées par le canal sera limité de manière quadratique.

Le gouvernance de l’Ethereum Push Notification Service

Le mécanisme de gouvernance de l’Ethereum Push Notification Service favorise son adoption. Tous les utilisateurs de l’EPNS sont récompensés ou pénalisés pour leur comportement, grâce au jeton utilitaire du protocole, le $PUSH.

Il y a 4 catégories d’utilisateurs de l’EPNS :

  • Fournisseurs de services : les services/protocoles/dApps souhaitant envoyer des notifications ;
  • Utilisateurs : ceux qui souhaitent recevoir des notifications ;
  • Wallets et infrastructures : portefeuilles crypto ou autres infrastructures intègrant le protocole pour permettre à leurs utilisateurs de recevoir des notifications (solutions décentralisées ou centralisées) ;
  • Détenteurs de jetons : ils définissent les règles auxquelles sont soumis les 3 acteurs précédents.

Le jeton PUSH

Le PUSH est le jeton utilitaire natif du protocole EPNS. Il joue un rôle capital dans l’écosystème :

  • Premièrement, il est utilisé comme intermédiaire des échanges (moyen de paiement et de règlement sécurisé) entre les différents participants ;
  • Deuxièmement, le PUSH fournit les incitations économiques nécessaires pour encourager les utilisateurs à maintenir l’EPNS ;
  • Troisièmement, il s’agit aussi d’un jeton de gouvernance. Les utilisateurs de l’EPNS peuvent ainsi voter quant aux fonctionnalités du protocole.
Ethereum Push Notification Service - Processus de gouvernance du protocole EPNS
Processus de gouvernance du protocole EPNS

Frais d’utilisation de l’EPNS

Les frais collectés lors de l’utilisation de l’EPNS sont agglomérés dans le fee pool. 30 % du fee pool est alloué à l’Ecosystem development pool. Une partie de ces frais revient aux partenaires de l’EPNS qui intègrent le protocole, et le restant compose les récompenses pour de futures intégrations.

Usages du jeton PUSH

Le PUSH a de nombreux cas d’usages et de fonctions de gouvernance :

Frais du protocole
  • Paiements de micro-frais par notification pour les services ;
  • Frais de souscription mensuels ou annuels pour les utilisateurs;
  • Pénalités imposées aux fournisseurs de services qui envoient des notifications sans l’accord explicite de l’utilisateur ;
  • Pénalités dues au changement de nom d’un service, d’icône, d’URL, etc.
Gouvernance
  • Configuration du spam throttle index (gestion de l’étranglement des notifications en cas de spam) ;
  • Ajustement de l’allocation des fonds de l’ecosystem development pool pour les différents partenaires intégrant l’EPNS et les futures intégrations.
Staking et vote

Les détenteurs de jetons PUSH doivent “staker” ces derniers pour créer des propositions et les soumettre au vote. Les jetons sont verrouillés durant 30 jours afin de s’assurer que seuls les utilisateurs sérieux assurent cette fonction.

Liquidity mining

Les fournisseurs de services seront récompensés en jetons PUSH durant plusieurs années lorsqu’ils accroissent leurs activités au sein de l’écosystème. Les plus fortes récompenses reviennent à ceux qui ont le plus d’abonnés et qui envoient le plus de notifications. Cela incite ainsi des tierces parties à créer des canaux au contenu qualitatif pour recevoir ces récompenses. De plus, les utilisateurs qui votent pour les propositions sont également récompensés en PUSH.

Incitations économiques pour les utilisateurs

Les utilisateurs de l’EPNS sont récompensés en jetons natifs pour leurs actions, directes ou indirectes. Par exemple, ils seront récompensés lorsqu’ils s’abonnent volontairement à un canal, ou lorsqu’un canal les ajoute à sa liste d’abonnés.

Le jeton PUSH est donc bien un jeton utilitaire : il est voué à être consommé et utilisé. Si tous les détenteurs de PUSH se contentaient de les garder dans leur wallet, cela mettrait à mal le développement du protocole.

Du point de vue de la théorie des jeux, le mécanisme de récompense incite chaque acteur à participer :

  • Les fournisseurs de services ont tout intérêt à utiliser l’EPNS pour améliorer leur expérience utilisateur. Elle pourra à l’avenir être meilleure que celle du Web 2.0 ;
  • De l’autre côté, les utilisateurs bénéficient des notifications relatives à leurs transactions. Qu’il s’agisse de DeFi, de gaming, de NFT ou autre service du Web 3.0, les atouts de l’EPNS sont indéniables. De plus, ils sont incités à s’abonner aux canaux, grâce aux récompenses en PUSH ;
  • Les wallets et services d’infrastructure bénéficient des récompense issues de l’ecosystem development pool ;
  • Enfin, les détenteurs de jetons gagnent à faire des propositions et à voter pour les meilleures. En effet, leurs récompenses croissent avec le nombre de participants à l’écosystème EPNS.

Le jeton PUSH sert donc à créer un cercle vertueux favorisant l’adoption du protocole. Plus il y aura d’utilisateurs et plus le pool de frais sera juteux. En parallèle, l’ecosystem development pool sera de plus en plus attrayant. Cela incitera les fournisseurs de wallets à intégrer l’EPNS.

Comment rejoindre l’écosystème EPNS ?

Du point de vue du développeur, il est facile d’intégrer l’écosystème et de créer des canaux via la librairie JavaScript EPNS. Les notifications sont ensuite envoyées directement depuis la dApp sans passer par un serveur.

Schéma : intégration de l'Ethereum Push Notification Service au sein d'une application décentralisée - Sans serveur
Intégration de l’EPNS au sein d’une dApp

Une fois la notification configurée, il faut créer son payload JSON via la librairie JS de l’EPNS. On peut aussi utiliser la librairie de son choix. Les types de payloads supportés et leurs spécifications se trouvent ici et .

On peut également intégrer le protocole pour envoyer des notifications depuis un serveur :

Ethereum Push Notification Service - EPNS - Intégration depuis un serveur
Intégration de l’EPNS depuis un serveur.

Enfin, l’EPNS peut aussi être intégré à un smart contract. Une fois la notification définie, le mieux est d’appeler une fonction externe au smart contract qui peut interagir avec le protocole. Le hash du contenu ou les données seront ensuite injectées dans l’EPNS.

Ethereum Push Notification Service - EPNS - Intégration dans un smart contract
Intégration de l’EPNS dans un smart contract.

Pour utiliser l’EPNS, il faut un wallet intégrant le protocole. Pour l’instant, Metamask, Wallet Connect, Ledger et Portis supportent la version alpha de l’Ethereum Push Notification Service.

Le jeton PUSH est disponible sur plusieurs plateformes de change centralisées – Huobi, KuCoin, Gate.io – mais aussi sur le DEX d’Uniswap.

Vous pouvez également contribuer de diverses façons à l’adoption et l’amélioration d’EPNS ! Création de memes, écriture d’articles sur le fonctionnement du protocole et ses tokenomics, chasse aux bugs, retours d’expérience sur l’UX… Un programme de récompense – l’EPNS NFT Community Drop – permet de gagner des NFT communautaires !

Conclusion

Né durant un hackathon, l’Ethereum Push Notification service a pris une ampleur considérable. Son utilité est indiscutable. L’EPNS pave la voie vers un Web 3.0 offrant une expérience utilisateur similaire à celle de l’Internet traditionnel. N’hésitez pas à tester l’application, disponible en version alpha !

Ressources

Morgan Phuc

Cofounder @ 8Decimals & Partner @ Node Guardians - Making crypto great again - Journal du Coin / BitConseil