Can you use social media without exposing your personal data?

Photo by George Pagan III on Unsplash Retouched by Kitty West

You Already Knew It

Spoiler alert — social media companies sell your personal data!

But then, you already knew it. That information has been in the public domain since forever. From:

If you’re not paying for the product, you are the product.
Provenance is unclear. This has been around for decades.
Recommend that you look it up on DuckDuckGo.


BBC: The Virtual Revolution — The Cost of Free
Dr Aleks Krotoski explores how the internet is reshaping our lives. She shows how commerce has colonised the web, and how ‘free’ sites are paid for.


Privacy is Power
Carissa Véliz discusses why and how…

How to use social media without exposing your personal data

Illustration by Kitty West

Normal social media platforms use centralisation of personal data, and it’s looking like a really bad thing for individuals, and indeed, society as a whole.

However, we can make a decentralised social media platform to address the issues.

Please see my article “Protect Your Social Media” for more information and screenshots of this solution.

A Decentralised Social Media Platform

Here is one possible solution:

How can you protect your personal data if organisations store it in central repositories?

Colourful paper boats floating on a still lake at night. Photo by Andy Hall on Unsplash Retouched by Kitty West
Photo by Andy Hall on Unsplash Retouched by Kitty West

I’ve got my personal data with me. It’s my email address, telephone number, home address, passport etcetera.

Either I know what my personal data is, for example my mobile phone number, or I can produce it when required, for example my passport.

My problem, and yours too I expect, is that I distribute my personal data too freely. If I am asked for my email address by a website I’m using, I usually give it. I certainly have in the past, although I’m a little more reticent now that I know what it costs me.

Sometimes, other people distribute my…

What difference does it make if Personal Data is Distributed instead of Centralised?

Photo by Artem Kovalev on Unsplash Retouched by Kitty West

My personal data is my email address, telephone number, home address, date-of-birth, sex, etcetera. Basically, any data that is pertaining specifically to me.

The practice of organisations keeping many individuals’ personal data in one place for easy processing is personal data centralised by organisations, normally called centralised data.

Alternatively, personal data could be stored in a distributed manner, and organisational access to it could be granted by the individuals who own it. That would be personal data distributed by individuals, often called decentralised data in our organisation-centric world.

It’s time to transfer the control of personal data from organisations to people.

Photo by Claire Proud on Unsplash retouched by the author


In today’s world, our personal data is usually stored and controlled by organisations.

In tomorrow’s world, personal data will be stored and controlled by its owners, us.


What is personal data?

It’s our email address, telephone numbers, home address, bank account details, location, preferred hot drink, basically any data pertaining to us.

Who owns our personal data?

We do.

Where is our personal data stored, and who controls it?

In today’s world, our personal data is usually stored and controlled by organisations:

This article discusses the ideal location to store personal data.

Photo by Florencia Viadana on Unsplash


Where is the ideal location to store personal data?

In this article, we discuss the person that owns the personal data and the organisation that uses the personal data. Other models are available.

Each organisation interacts with multiple people:

This article discusses Solidity smart contracts sharing common data using libraries.

Photo by Kitty West


In our article “Smart Contracts Sharing Common Data”, we described why and how Solidity Smart Contracts share common data.

However, the technique used to share common data amongst Solidity smart contracts is also applicable to Solidity libraries. This article describes how to implement that and compares the gas consumption of smart contract and library solutions.

This method is supported by Solidity v0.6.4 onwards.

Example Model

For this article, we assume that we are building a solution that matches “Smart Contracts Sharing Common Data”, that is, a Router contains a Producer that produces some objects that are queued for a Consumer to consume…

This article discusses why and how some Solidity smart contracts share common data.

Photo by Kitty West

There are many possible models of interaction between multiple smart contracts. In the example for this article, we consider a simple Producer to Consumer model, so that we can focus on the theme of sharing common data:

This article considers using value arrays to improve sorting in Solidity, the defacto smart contract language for the Ethereum blockchain.

Photo by the author


In my article “Sorting in Solidity without Comparison”, I compared various sorting techniques on Solidity memory arrays. In summary, my conclusion, according to the provided code, data and tests, was that the Unique Sort on dynamic uint memory arrays was most suitable for my particular application. If you need to sort Solidity storage arrays, consider the article “Shadowing Solidity Storage Variables in Memory” which illustrates the best technique.

Following my further articles “Value Arrays in Solidity” and “Dynamic Value Arrays in Solidity”, I revisit the Unique Sort algorithm here, to determine whether using value arrays can improve performance further.



We need our smart contracts to handle accounts with multiple roles. What is the most efficient way of doing that?

Photo by Priscilla Du Preez on Unsplash

Accounts and Roles — Background

During the development and testing of Datona Lab’s Solidity smart data access contracts (S-DAC), we often need to handle accounts with multiple roles, such as contract owner and data owner, or data auditor and data regulator.

In the examples for this article, we investigate whether using dynamic value arrays, or sets, helps us to do that more efficiently than using Solidity mappings.


Our Solidity smart contracts often contain state machines, as per the article “State Machines in Solidity.” Whenever a user attempts to transition the smart contract from one state to another, it checks whether the user has the permission…

Jules Goddard

Experienced high-integrity software engineer, crypto code compactor and Datona Labs founder — providing smart contracts to protect your digital information.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store