Grant Proposal - LoFiRe

Project Title

LoFiRe - Local-First Repositories for Collaborative Decentralized Applications

Description

LoFiRe is a decentralized, collaborative data repository with authentication, access control, and change validation. It is built on local-first data storage, synchronization, and change notification protocols that aim to protect privacy by minimizing metadata exposed to intermediaries.

Manifesto/Vision

We want to empower communities, organizations, and individuals to collaborate and share knowledge in a decentralized way while retaining ownership and control over their data with adequate privacy and security guarantees.

Here’s a selection of applications LoFiRe can be used for that we intend to develop once we are ready with the underlying infrastructure:

  • Decentralized wikis & knowledge bases with semantic graph data models
  • Project collaboration and publishing tools
  • Structured discussion and decision making tools
  • Personal information management tools
  • Local-first search & discovery of relevant information and repositories

Problem

Communities and organizations (including DAOs) need tools for interaction and collaboration, sharing knowledge and publishing content.

Decentralized, local-first collaboration with privacy & security guarantees, authentication, and permissions while maintaining data ownership is a key building block for collaborative decentralized applications,
such as wikis, knowledge bases, structured discussion and decision making tools, however it is still not a solved problem:
most collaboration tools available are centralized,
while the few decentralized ones are missing either privacy, security, or asyncronicity properties.

Solution

LoFiRe enables local-first, asynchronous collaboration and data storage within communities while respecting privacy and maintaining data ownership, and provides foundations for developing local-first decentralized applications and community overlay protocols.

Product Features

LoFiRe can be used by decentralized applications that use Conflict-free Replicated Data Types (CRDTs) as their data model. It is designed to support collaboration and knowledge sharing within communities and organizations. It does not depend on any specific blockchain, does not have a token, and it can synchronize its membership from external sources: initially we want to support Ethereum-based authentication.

Communities and organizations (including DAOs) can use it to support secure and authenticated interaction of their members through wikis, knowledge bases, structured discussions and decision making tools.

Progress & Validation

We have done extensive research and protocol design that was supported by an NGI grant,
and published the design and protocol specifications of LoFiRe
that serves as the basis for the implementation we are going to do.
We have also requested and incorporated feedback from other projects and researchers working on decentralized internet and peer-to-peer protocols.

Differentiation (from other projects)

Centralized collaboration systems lock in users together with their data with no possibility of offline use nor data portability (e.g. NextCloud, CryptPad, various wikis).

Decentralized collaboration tools based on CRDTs aim to tackle this, but they’re still missing end-to-end encryption, cryptographic authentication, and permissions (e.g. Automerge, Yjs).

Radicle is a decentralized code collaboration network with Git support that uses cryptographic identities, and employs a P2P gossip protocol for repository replication.
As it is intended for code collaboration, it relies on manual merges and does not use CRDTs that would allow collaboration on all kinds of data, not just source code.

LoFiRe aims to improve on this by researching & developing decentralized, local-first collaboration protocols and tools with data ownership, portability and offline use, while ensuring that privacy & security guarantees are built into the protocols.

Team

The core team consists of:

  • tg-x: distributed systems researcher, systems & network engineer, software architect
  • nikoplp: software engineer specialized in semantic web, P2P, security, application design

With a few more collaborators for the development.

Grant Request $

  • 100k USD

What the Funds Are For

The funds are for the further research and development of LoFiRe.
The source code we publish under the Apache 2.0 & MIT open source licenses.

We are going to implement the following components in Rust over a 6-month period:

  • lofire-repo: repository structure, encryption, synchronization
  • lofire-node: P2P node with sync, pubsub and broker protocols
  • lofire-eth: synchronize repository membership from the Ethereum blockchain
  • demonstration of functionality

The work consists of the following milestones:

  • Repository structure & storage:
    repository structure with branches, commits, and object storage.

  • DAG synchronization:
    synchronization of two branches

  • Object queries:
    object query and response routing over the network,
    and external repo requests for non-members

  • P2P pub/sub protocol:
    pub/sub subscriptions and event dissemination

  • Edge network protocols:
    discovery, sync, and pub/sub protocols over LANs

  • Broker protocol:
    provides access to the pub/sub and data store for end-user devices asynchronously

  • Ethereum-based authentication:
    synchronize repository membership with with an external source:
    DAO membership stored on the Ethereum blockchain.

  • Demo:
    a simple tool to demonstrate the usage & functionality of the implementation

Help Requested

We are looking for collaborators and projects that would like to use our protocols to develop decentrantrized applications and collaboration tools for various use cases.

Additional Resources, Links, Portfolio

Neat project. Unfortunately MolochDAO is at war and now only funding mission critical projects that will have broad ecosystem impact.

$100K is 15% of the treasury and too high, especially for a research project that will inevitably need further grants to accomplish its goals.

Also, while CRDT tech is cool, we see other CRDT projects spend years on protocol development like Gun and only make marginal (in our view) progress towards real world decentralized applications.

So I don’t think funding additional CRDT protocol research is a good use of MolochDAO funds at this time. Maybe next year if ETH is $10K.

Please consider signing up for a gitcoin grant!

Thanks for your response. While I understand your funding goals may be different at this point, here are a few points for clarification:

  • The project is based on thorough and extensive research of P2P protocols and problems related to decentralized internet. The proposal exists exactly because what you point out that other CRDT projects failed to accomplish real decentralization, and thus we take on providing the underlying decentralized storage and transport protocols focusing on privacy & security that can be used by applications with CRDT data models and serve as a backend for existing CRDT projects.

  • 50k would already be a good start that we can already make good progress with on the protocol level, indeed it’s a complex project that requires further development, which will require further grants, but we have to start somewhere.

  • yes, we put together a gitcoin grant propsal too, but we don’t have enough resources to spend on the necessary PR/publicity efforts to make real money with gitcoin at this point. but we’ll try again later.