Your photos, decentralized and encrypted — a first look at the tech inside Textile Photos

Personal data is a mess. We are leaving traces of it across hundreds of services, hundreds of others are actively trying to track you for it, and we have little or no control over what happens to it once it leaves our own devices. The blow back from this has been frequent and at times huge, but still there are very few good solutions to it. We believe personal data sovereignty is the right way forward.

Control over our personal data is important because we also believe that every individual should feel comfortable storing and maintaining more complete records of all their digital data. Why? So that we can build amazing new technologies on top of that data that users actually feel comfortable using because they know how, why, and which parts of their data these services are accessing.

If you aren’t familiar with Textile Photos, we are working to build services for you to store and control your digital photos. We believe giving users greater control over their photos is a step toward giving them control over all their data. Think about the last 5 years of your photos. Now think about the number of devices, services, and companies that have pieces of that data and the untold number of databases that data is scattered across. What if all your photos lived in a single place that you controlled?

Textile Photos is a decentralized service that helps users store, manage, and share their personal photos. This week our first invites are going out to individuals on our wait list, so I wanted to spend a minute and talk through some of the exciting technology that makes up Textile.

Technology Overview

Creating your private wallet: imagine you knew where every digital photo you ever took was today?

At the heart of Textile Photos is your digital wallet. From the moment you download our mobile app, every photo you take will be encrypted and given a universally-unique fingerprint and stored in your wallet. This means, no matter where you store or share that photo in the future, you can always keep a record of it to quickly open, move, or share again.

Importantly, encryption is managed through your personal wallet. After downloading, the mobile app will provision you a new Ed25519 master key pair. Ed25519 was chosen for a few reasons, first, we want to enable the authorization of external apps and services to add content to private wallets by leveraging a public key. Secondly, the speed and performance of this method was beneficial on the mobile device.

Storing your private photos: making it easy to move photos across devices and services.

While your wallet contains references to every photo you take you still need a place to store the raw file. Our first storage option is through IPFS. One of the coolest features of the Textile Photos app is that you are running a small, personal, IPFS instance directly on your mobile device where your photos are stored.

There are two other places for you to store your digital photos. The first is on a remote IPFS server. We are currently maintaining a large IPFS server that allows Textile users to remotely backup their data on the system. In the future, we plan to sunset our own server in favor of Filecoin services and other decentralized storage options.

The final place to store your digital photos is on your other devices. We make Textile Photos pairing possible between your phone and your desktop computer using peer-to-peer wallet syncing. It’s freaking sweet. You basically get unlimited, real-time, photo sync between your phone and other devices for free, without any centralized servers or accounts. Enjoy! (old sneak peek)

Sharing photos: private spaces for your friends, family, or community

Okay decentralization enthusiasts, ready for something awesome? We’ve created a concept in Textile Photos we call, Threads. Textile’s Threads sit somewhere between a sub-reddit and an Instagram feed. Threads allow two people, a group of friends, or an entire community to create private or public spaces to share their photos and in the future, other content. Thread posts are encrypted, so members of each Thread are the only people able to view the content or invite new members.

Best of all, Threads are fully decentralized — content is shared over the IPFS backbone using a decentralized protocol not dependent on any central server.

Excited yet?

Before we get into the fun stuff, are you on the wait list? If not, head over to our sign-up form and drop your email into the bucket.

Emergent Concepts

Collect and sign everything

We believe that users should feel comfortable collecting and storing all their personal, digital data. As we build out that future (starting with photos), we are going to be focusing a lot on how individuals can sign their private data in ways that can unlock cool new forms of digital security, proof and authenticity, sharing, and collaboration.

Allowing for mud puddles

Textile Photos is a mobile-first application. This means, literal mud puddles happen and we need to give people a way to get their photos back when that happens. One option would be for us to store you keys for you, this is where companies fail the real mud puddle test and we don’t want to do it. Instead, each user’s master key is derived from a private mnemonic phrase. Users can store this phrase and if they ever lose their wallet they can regenerate their master key.

To help users then recover all the contents of the wallet, we are close to releasing remote wallet storage features. Wallet storage will allow users to encrypt and store every new version of their wallet, not just the original data, on IPFS. In the event of a lost phone, a user can download their wallet backup and, if they know their mnemonic phrase, regenerate their entire lost data archive and access to their shared Threads. Follow these issues here.

Sharing in a whole new world

When you share a post to a Thread, you are authorizing anyone on that Thread to hold and distribute that same encrypted copy of your post. It also means, if you request to delete a post, that delete will only happen when all members have purged their caches of your data. This is the nature of many decentralized protocols, but is a departure from most social apps people are familiar with.

We believe this way of sharing is a more honest approach to sharing digital data… the reality is, digital data sticks around. While many companies claim that you can delete your data, the reality of technology and data itself is that it is never so easy. Like an email, you probably want to be pretty comfortable with what you share and who you share it with, since the ability to copy and forward data is limitless. Still, there are some neat ways to facilitate data removal in a decentralized network that we are going to experiment with.

Bad actors, blacklists, etc

This is an important topic for us and probably worth it’s own write-up. There are a number of ways to handle bad content, bad users, and bad communities in decentralized systems. We are working through the approaches we will take in Textile and will share those ideas on our blog.

Get in touch

We are excited to hear your feedback, review your pull requests, and see your shared photos. Keep in touch.