Fairdrop - private file transfer
Fairdrop motivation
With the world becoming increasingly digital and the Web being plagued by surveillance practices, our freedoms are at stake. Privacy and digital sovereignty are at the heart of the changes that need to take place as part of Web 3.0.
Personal data storage is at the core of self-sovereignty - it means the data is under complete user control. Not only that, having data under own control unlocks the potential for sharing it, which has to be done in a secure way also.
Fairdrop was designed to work with Swarm as its storage backend, thereby leveraging the functionalities that it brings. Among those are self-sovereignty and complete control over the stored data, security and not the least, privacy.
Fairdrop features
The storage is decentralized, but so is the Fairdrop client Dapp. It runs entirely in the browser, including all the encryption capabilities needed to keep the data end-to-end encrypted and removing the need for any third party intermediary. (Note that in case of https://fairdrop.xyz app, a gateway is used to access the Swarm network.)
As the code is open sourced, more tech savvy users can run their own node, not relying on a public gateway as the middleman.
Faidrop was built using the open sourced fds.js library, which allows all the functionalities to be implemented by other applications. fds.js allows for creating user accounts in a human readable fashion, using text names. By knowing the account name, its public key can be found that is used for encryption of data sent to it. The possession of a private key allows for decryption of the data received or stored.
After a user creates an account, a private key is generated, which can be exported as a JSON file to be used on other computers. The user has several functionalities available in Fairdrop:
Quick send feature allows the users to save a file to Swarm unencrypted. A link is available which can be shared to another person to access the file via the Swarm network.
Secure send feature allows the users to specify who the file should be sent to. The file is encrypted with the recipient’s public key and available in the recipient’s Fairdrop account storage.
Store feature allows the users to encrypt a file with their own public key, allowing them to store the file on Swarm network for their own future use.
The UI in Fairdrop shows the folders for sent and received files as well as a special folder for consent receipts. Consent receipts are special files generated by the open source Consent receipt suite that record information about consents the person has given for sharing/using their data by different service providers. By storing the consent receipts on Swarm, they are available to both parties and acting as the single source of truth.
Future possibilities
The Consents folder is an example of Dapps using Fairdrop/Swarm as storage as well as of what could be further developed on top of data in a Personal data storage. Such a “shoebox” for consent receipts can be a data source for services that want to leverage the information about what data for a person exists and use it in some way.
It would make sense for users to keep all their app data in such storage, but not only app data - also other kinds of personal data that they would want to keep under self-sovereign control. This could be their medical history, retail purchase data, data from sensors of their mobile device - the possibilities are endless.
References
Fairdrop secure sharing and storage Dapp : https://fairdrop.xyz/
Fairdrop code : https://github.com/fairDataSociety/Fairdrop
Fds.js library: https://github.com/fairDataSociety/fds.js
Consent receipt suite toolset : https://github.datafund.io/