Multi-writer Dat could power the next Web
Dat is an exciting new technology that enables you to synchronise data privately and in a peer-to-peer fashion. It uses the same underlying concepts as blockchain1, sans global consensus2, and it’s run by the not-for-profit Code for Science & Society. The community has top-notch people like Mathias Buus, Tara Vancil, Karissa McKelvey, and Jim Pick.
Dat is currently implemented in Node.js3 and made up of numerous smaller components including HyperDB, a distributed scalable database, and Hyperdrive. The Dat commandline app and Dat desktop app both rely on Dat Node, which in turn uses Hyperdrive.
There is also Beaker Browser, which is a peer Web browser you can use to both view and fork/edit peer Web sites like mine. (To view this site on the peer Web, open the following URL in Beaker Browser: dat://ar.al.)
Dat is currently single-writer, meaning that although anyone with the archive’s key4 can read from the archive, only the original author can write to it. However, work is already underway to implement multi-writer support in Dat. In fact, it’s already in HyperDB and in the HyperDB back-end branch of Hyperdrive. And that is what Jim Pick used to create the Collaborative Dat Shopping List application that I demonstrate in the video, above.
Multi-writer Dat is hugely exciting. It opens up a plethora of potential use cases – anything from a peer-to-peer iCloud to peer-to-peer secure messaging. We’re witnessing the birth of the foundations of the next Web; the peer Web. We will see this implemented at the operating system level of future free-and-open mobile and desktop devices.
I cannot stress enough how groundbreaking Dat is or how important it is to creating a free and open, decentralised, and interoperable world. It’s rare to encounter a technology that you feel could have this potential and rarer still when the people behind it are doing it for entirely the right reasons. I say rare, but what I really mean is unprecedented.
You can find out more about Jim’s Dat Shopping list by reading his blog post and learn more about Dat (and try it out) on the Dat homepage.
The protocol is based on Directed Acyclic Graphs/Merkle trees, public-key cryptography, and a mechanism for sparse replication. You can read up about it in depth in the DAT whitepaper. ↩︎
So there’s no proof of work and it’s not meant for creating cryptocurrencies because it is not a right-libertarian get rich quick scheme. ↩︎
Although there are efforts underway to implement it on other platforms, like Rust. ↩︎
More precisely, the archive’s public key, which – confusingly – should not be made public as it is used to encrypt the archive. While this makes perfect sense when you understand how Dat’s cryptography works, it can be confusing to explain and that’s why I’ve started referring to the public key as just “the key” as that feels safer even if it’s less accurate technically. Revealing the public key gives anyone who has it read-only access to the archive addressed by that key. For this reason, when Dat does discovery, it doesn’t broadcast the public key. It broadcasts a cryptographically-secure hash of the key instead. In a nutshell, anyone who has your private key can write to your Dat archive and anyone who has your public key can read it. To ensure the privacy of your archives, you should share neither. ↩︎