Skip to main content

XMTP: The journey to decentralization

· 5 min read
Montez

XMTP Labs is taking a phased approach toward architectural and logical decentralization of the network. The mission is to make sure the network is permissionless: owned by infrastructure providers and users that choose to participate, which can be anyone. Taking it further, these permissionless infrastructure providers and users will become symbiotic, since one can’t exist without the other.

  1. What does decentralization mean when it comes to XMTP?

    Decentralization means two things:

    1. Decentralization of node operators: Multiple, uncorrelated node operators hold copies of the data in the XMTP network
    2. Decentralization of network value: the value generated by the network is distributed to participants according to their level of network contribution. This can be node providers, users, developers, governance, etc
  2. Why is decentralization of XMTP so important?

    1. XMTP’s vision is to ensure that secure, private, and portable communication is a public good.
    2. Decentralization helps us fulfill this vision by creating a network that is self-governed (no central party is making the decisions) and permissionless (operators, developers, and users can participate in the network as they see fit) all while keeping user data secure, private, and portable.
  3. Why is xmtpd (XMTP daemon) such a crucial milestone for us?

    1. XMTPD (this is the software that nodes run to be a part of the network) allows XMTP Labs to experiment with Merkle-CRDT based replication and message relay (how messages propagate or gossip through the network).
    2. XMTP Labs is now providing those attributes directly with XMTPD which sets XMTP Labs up to continue validating implementations and methods for creating a decentralized network.
    3. XMTPD is currently experimental but anyone can run a testnet node today with it.
    4. Once Phase 1: Data Plane of decentralization is complete, XMTP Labs can onboard a trusted node operator partner to run a testnet node.
  4. What does it mean that we’re building in public?

    1. XMTP Labs shares an initial roadmap for decentralization, that the community can respond to and iterate on.
    2. XMTP Labs shares the design of the decentralized network through a whitepaper
    3. XMTP Labs shares the codebase through public repos for XMTPD and any relevant decentralization work
  5. What are the next steps we’re taking to continue to decentralize?

    There are five phases to decentralization. We are currently in phase 1.

    • Phase 1: Data plane

      This phase validates that XMTPD supports a reliable method for data replication between nodes, authorization of senders while maintaining user privacy, and a logic for retaining and pruning data held by the nodes.

      • Implement full nodes with Merkle CRDT data synchronization and storage to ensure reliable data replication.
      • Implement authorization for publishing.
      • Onboard the first trusted external node operator on testnet.
      • Implement data retention and eviction.
    • Phase 2: Control plane

      This phase introduces smart contracts to provide stronger consistency for managing controls such as postage fees, advertised identities, or staking in the network.

      • Implement and deploy Topics Contract for managing topic metadata.
      • Implement Dispatcher for clients interacting with the control plane.
      • Implement initial full node registration and staking via Consensus Contract.
      • Implement and deploy Contacts Contract for managing advertised contacts.
    • Phase 3: Consensus and economic mechanisms

      This phase introduces ways for node operators to be paid which incentivizes them run a node

      • Integrate message fees via off-chain payment channels.
      • Implement fee pooling and rewards distribution.
      • Implement refundable fees.
    • Phase 4: Public mainnet

      This phase is taking all of the testing from the previous phases and flipping the switch to make it public in prod for the world.

      • Release the public mainnet.
    • Phase 5: Sharding This phase introduces sharding to help the network scale efficiently.

      • Implement topic-based data sharding.
  6. When will node providers be able to permissionlessly join the production network?

    Once XMTP Labs completes phase 4. The timeline is still TBD but we’re looking at roughly a two year time horizon.

  7. Are there any risks with being too centralized? Too decentralized?

    1. Too centralized
      1. Developer teams would be hesitant to trust building with XMTP since there is a history of centralized networks limiting dev access or making grand changes to the network once the network owners are pursuing different goals (e.g. Facebook, Twitter)
      2. There becomes a single point of failure
    2. Too decentralized
      1. Decentralization introduces risks for performance issues, security & privacy vulnerabilities, bad actor participation, and network scaling pains. The phases of decentralization XMTP Labs has outlined are to directly address these risks.
  8. What do you actually need in order to run a node?

    1. After XMTP Labs completes Phase 1: Data Plane, another party can run a node by running XMTPD on their server. This phase means XMTPD has:
      1. A reliable method for replicating data between nodes that ensures strong eventual consistency, data integrity, and efficient synchronization (validating Merkle-CRDT in Q2 checks this box)
    2. After XMTP Labs completes Phase 3: Consensus and Economic Mechanisms, another party will be incentivized to run a node. This phase means the network has:
      1. Methods for incentivizing and rewarding node operators for keeping the network secure and consistent through consensus.
  9. What’s the incentive for running a node?

    Node operators earn token rewards and fees for driving consensus of the network and facilitating any transactions between network participants

To follow the XMTP network on its path to decentralization, see the Decentralization roadmap.


Was the information on this page helpful?
powered by XMTP