Skip to content

Document Waku's Value Proposition and USP #134

@fryorcraken

Description

@fryorcraken

The introduction of RLN brings UX and Dev Ex challenges and friction, hence we need ensure we clearly convey the USP and value proposition of Waku.
Something to be more generalized and clearer than https://docs.waku.org/overview/use-cases

Attempting to provide a first draft below.


The Waku Network

The Waku Network is a set of nodes that enable exchange small payloads across users of an application. It is

  • permissionless: anyone can run a node, join the network and be discovered .
  • DOS protected: Rate limitation applies to sending messages, ensuring reasonable bandwidth usage and preventing users with lower bandwidth to be kicked out of the network
  • scalable: the network is split in shards, enabling network traffic to increase beyond the capacity of individual nodes.
  • a service network: nodes can run services to serve users with limited bandwidth or devices that are mostly offline

The parameters of the current Waku Network (Gen 0) are defined in this RFC: https://rfc.vac.dev/spec/64/

The Waku Network can be used as an existing peer-to-peer network, enabling your project to leverage properties of such network without building your own.

Peer-To-Peer-Network-As-A-Service

Decentralized Marketplace Enabling Auto-scaling

Tags: scalability, no-infra, open, permissionless

Thanks to using a shared network with decentralized node incentivization. An application can grow their user base without having to manage infrastructure.
Growth of relay user intrisically grows network capacity (bounded to 10k users per shard) as does other p2p networks.
Howeever, growth of services (store/lightpush/filter) needed by resource-restricted devices can be handled by the laws of the market.
With increased user demand, follows increased opportunity for operators to join in.

Status

  • Incentivization protocol are WIP, won't be mainnet until 2025
  • Need to Waku Network to be validated to enable incentivization protocols to operate on it.

Larger Network for K-Anonymity

Tags: privacy

Thanks to using a shared network for all applications, users using relay benefit of k-anonymity in terms of application usage. This means that external parties or even other nodes in the network, will not be able to determine the applications used by the user.
As long as the user does not use Waku store protocol and the number of Waku nodes in the given shard is large enough.

Status

  • We are yet to increase the push for node operator adoption
  • Node distribution may be limited until financial protocol incentivization are in place

To Build No-Infra DApps

Tags: no-infra, user-pays

You can leverage the Waku Network the same way you would leverage the Ethereum blockchain: to be able to build no infra dApp. By deploying a smart contract on Ethereum and publish a webapp to use said contract, you can build a dApp with no or minimal infra (just hosting your webapp, using centralized or decentralized tools).

With Waku, you can do the same and enable interaction between users without having to run your own database or backend.

Do note that similarly to Ethereum, where users pay gas fees to use a smart contract, users will also have to pay for the usage of Waku. Currently, this means acquiring a RLN membership to send message or paying a store service to retrieve missed messages (for being offline)

Status

  • We only recently rolled out RLN, Dev Ex is still a work in progress

To Build Web only Dapps

Tags: no-infra, web apps

Thanks to the no-infra value proposition, it is also possible to build a decentralized webapp that leverage Waku as a peer-to-peer network, without deploying infra, apart maybe for hosting the webapp (webserver only). Waku adds the possibility of off-chain interactions between users or actors of such dApp.

To Bootstrap a Peer-to-Peer Network

Tags: peer-to-peer, decentralization

When building a new peer-to-peer application and network, during the initial phase you may need to run most nodes yourself. Thus, until you are able to grow your community.
This can be an issue if decentralization matters to your project.

In this instance, the Waku Network can be used as the peer-to-peer communication layer of your project.
Nodes can use the wider Waku network to exchange data.
Once your own application is more broadly used, and is capable of the level of decentralization you need, you may get off the Waku Network and use your own (Waku) p2p network.

Status

  • The Waku Network has only started and the number of Waku node may not yet be sufficient for this purpose.
  • Once incentivization is in place, we can expect the network to grow more as node operators will be running for monetary reasons.

Enable Decentralised Access of a Peer-to-Peer Network to Light Clients

Tags: light clients, decentralization

Most peer-to-peer network use TCP and UDP protocols for peer-to-peer communications.
This makes it impossible for browser to participate to the peer-to-peer network. This is often mitigated by running a centralized gateway with a REST API, that in turn, can be censored or simply cost the project to run.

By integrating Waku in the network nodes and webapps, you are able to leverage Waku's peer discovery and browser compatible transport protocols to enable webapp to access your peer-to-peer network in a decentralized manner.

Status

  • websocket is the only browser protocol currently supported. WebRTC and Webtransport implementation may be needed to scale the usage of browser devices
  • distributed store and store incentivization are likely to be needed to scale the network reliably

Signal Network

Tags: peer-to-peer, decentralization, no-infra

The Waku Network is currently optimized to provide fair/low latency data exchange across a peer-to-peer network.
This may not be suitable for higher bandwidth usage such as streaming, video call or large data transfers.

In this instance, the Waku Network can still be used to enable these use cases in a no-infra/decentralized/privacy friendly manner. Handshake (SDP, noise, etc) can be done over Waku to enable direct WebRTC, TCP, holepunching connections between 2 or more devices.

With the Waku network, you can enable these use cases without running your own centralized signal servers.

Status

Best practices are yet to be provided to easily enable project to use Waku as a signal network.

A Shared Interoperable Network for Public Goods

Tags: common goods, interoperability

For projects aiming to build public goods, and optimizing for interoperability, the Waku Network can act as a common neutral ground for ephemeral communications.

To enable interoperability between projects, for example, by enabling users of different apps to interact with each other, one needs common infrastructure.

Bi-lateral agreement could be made to run centralized API services that would enable such interoperability.
On Ethereum, interoperability is enabled by common protocols (smart contract) and infrastructure (Ethereum nodes).
While this is limited to on-chain interaction, Waku enables a similar concept for off-chain, ephemeral interaction with common protocols (content topic + payload format + encryption scheme) and common infrastructure (Waku nodes).

Waku for node operators

Tags: node operators, incentivization

The Waku Network cannot exist without solo and professional operators running nodes to operate it.
While today, most nodes are run by the Waku project, projects using Waku, users and altruist operators, we understand this is not a sustainable strategy.

This is why we are currently defining incentivization of services such as Waku Store, to grow the Waku network thanks to financial incentives.
The intent is to onboard node operators that can provide resources such as disk space, memory and bandwidth in exchange of cryptocurrency payments.

Status

The incentivization protocol are yet to be defined. We are currently not able to provide guarantees that running a Waku node will lead to financial reward.

The Waku Protocol Family

The Waku Network provides a number of features as highlighted above. However, this may not fit all use cases.
The Waku project is opensource to the core, with a suite of CC0 RFCs and MIT+Apache 2.0 implementations, it is possible for projects to build a Waku network fit to purpose.

All Waku protocols are modular and peer-to-peer protocols are built on top of libp2p, enabling projects to pick and choose the protocols needed for their use case.

Generalized DOS Protection

Tags: peer-to-peer

Thanks to anonymated rate limit. Users can be limited to send a fixed number of messages per time period. Users registers by joining an EVM smart contract. Using zeroknowledge technology, users do not dox their blockchain address when sending a rate-limited message.

This is particularly useful for peer-to-peer network that do not have intrisic spam protection (e.g. blockchains can only broadcast valid transaction and blocks across the network, acting as a form of network dOS protection).
This cannot be the case when there is no possible consensus on what form a valid message (e,g, notification, chat message, any data that is encrypted).

Light Client Protocols

Tags: light clients, peer-to-peer

Waku defines a suite of protocols that enables mobile and browser to access the peer-to-peer network in a decentralized manner. This is two folds:

  • Protocols that minimize resource consumption, reducing bandwidth usage
  • Protocols that assume devices are mostly offline, enabling fast connectivity and retrieval of missed messages

Waku's innovation enables browser and mobile phone to still run peer discovery protocols to access a decentralized network of nodes.

Scalability

Tags: peer-to-peer, scalability

With the autosharding protocol, an application can deploy a network composed of several shards and let the protocol handle the distribution of messages across the shards, without having to predefine shard allocation.

This can enable a project to shard their peer-to-peer network with minimal R&D effort.

Encryption

Tags: privacy

Waku provides several encryption strategies out of the box. Enabling you to encrypted your data using industry standards.
The following strategies are available:

  • Symmetric/AES encryption: users use a common key to encrypt and decrypt messages. Useful for n:n scenario such as multiplayer games.
  • ECIES encryption: public key to encryption, private key to decrypt. Useful to enable basic 1:1 communication.
  • Noise handshake and encryption: Useful for more advance use cases where ephemeral key are used to enable forward secrecy.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions