Collaborating without compromises
The Morning Paper on 20 November 2019 is super interesting and points to a world of software that sounds ideal for users. It’s also a vision we share at Quorum Control, where we are building out Tupelo.
In the paper they point to software ideals:
- It should be fast.
- It should work across multiple devices.
- It should work without a network.
- It should support collaboration.
- It should support data access for all time.
- It should be secure and private by default.
- It should give the user full ownership and control of their data.
Personal computer software began as desktop apps that users would download. The data and applications were local. Over time, the web and networked world began to whole-hog replace this traditional model, and for good reasons: most of us work on multiple devices, from multiple locations and have high-speed bandwidth available. The unfortunate side effect from this swing is that data is now something to be mined by large corporates and the utility to users is merely a cost to acquire that data.
There’s lots of articles talking about the pros-and-cons of mass data collection so I don’t really want to rehash those arguments in this post.
What I do want to talk about is architecting software with conflict-free replicated data types (CRDTs) and Distributed Ledger Technology (DLT).
CRDTs are amazing for your application when you trust the users involved in your collaboration. They can take a lot of the burden off of data sync, replication, offline, etc. I really suggest you read the post: I think you’ll really find the demo apps compelling. The paper and the post do a really good job of explaining the benefits of CRDTs for collaboration. What I want to add is DLT.
DLT shines in (at least) a few areas related to collaboration:
- Value exchange
- Establishing the identity of your trusted collaborators
- Collaborating with semi-trusted (or untrusted) entities
I’ll start with Value Exchange because that should be the most obvious for people at least familiar with Bitcoin. You need a global layer of trust to prevent double spends and accounting. DLTs shine in this peer-to-peer (p2p) landscape: the first technology that allows digital value flow without a trusted entity.
I trust my teammates not to spam my Trello board, but how do I know the users interacting with my Trello board are actually my teammates? New technologies like Distributed Identifiers, Distributed Identifier Documents and Self Sovereign Identity are enabling public, p2p, decentralized identity management. This tech can bootstrap trust and community and then allow collaboration to happen “off-chain.”
This is where DLT really completes the collaboration spectrum. I might trust my teammates not to spam my Trello board, but I certainly don’t trust the internet to not do bad things™ to a collaboration space. DLT lets identity, auditability and automatic rule-enforcement happen at the edges of a system and allows for remediations like economic rewards and punishments. All of this is usually very app-specific, but, in general, DLT allows untrusted entities to collaborate in ways in which behavior won’t diverge outside the bounds of the designed system… all of this without going through central servers. Using things like payment channels or Tupelo’s offline capabilities, it’s also possible to do all of this enforcement in an offline or semi-connected setting.
If you work in tech, I bet you can feel the paradigm shift coming. Consumers have growing unease around privacy and trust of big-tech. Consumers used to complain and not shift their behavior, but that’s changing. Traditionally, user experience has suffered when moving to user-owned data but the tools to make fantastic privacy-preserving experiences is coming into its own. DLT is unlocking the missing link: allowing new business models for the organizations providing these new experiences.
We have the opportunity to remake the web in its original vision: a fault-tolerant, peer-to-peer network that allows community collaboration and value building.