Images on the blockchain - a flaw in design

in #steemit6 years ago (edited)

Blockchain and images

Let's first take a look at how using images works

The way the Steemit platform handles images is actually pretty good. There are several ways to add images to your posts. You can:

  • Upload an image from your computer
  • Paste an image from the Clipboard
  • Add a link to an external source

Upload an image from your computer

This could be the default way most people add images to their post. It is an easy workflow. You use an image from the internet or from your camera, adjust it in your edit software, save the edited image, upload the image to your post. This is a perfect way in case you often use the same image on different platforms. You have the original image, you have the edited image, you can use either one whenever you want.

Paste an image from the Clipboard

This is the way I usually add images to my posts. It removes the saving and browsing actions from the workflow.

Using Pixabay.com

The above image is from Pixabay.com. All I did was right-click on the image at pixabay.com, click 'Copy Image', then go to my post and use Ctrl+v and the image shows up. That is a pretty neat function.

Using editing software

In case I want to adjust an image (from whatever source) before I add it to the post, I'll load it into editing software. After adjusting I will use Ctrl+a and Ctrl+c to put the image on the Clipboard. Then it is Ctrl+v again in the post and I am done.

No adjustment needed just resizing

When you need a smaller version of the image you just pasted into your post, you don't have to go through the trouble of doing that in your editing software. You can adjust the size of your image on the fly. All you have to add to the image code is https://steemitimages.com/350x0 that is if you want the image to be 350 pixels wide. The height will be automatically adjusted proportionally.

This is what the image-url looked like first:
https://cdn.steemitimages.com/DQmYLobZwmgvknd1xJFwhaGqicG1GxT4eCuuVzxwgDRXr4H/afbeelding.png

This is what the image-url looks like after adding the size link
https://steemitimages.com/225x0/https://cdn.steemitimages.com/DQmYLobZwmgvknd1xJFwhaGqicG1GxT4eCuuVzxwgDRXr4H/afbeelding.png

When you upload an image from your computer, the system will use your image name in the image-url. When you paste an image into your post the image name will always be 'image'.png. The image part will adjust to your language.

Using external sources

This is used by people who use third party services to host their images online, like imgur.com or people who own their own domain. The service differs but most of these services let you upload your image, do some adjusting and then save the image while supplying you with a url you can use in your post.

So far so good it seems, but that is not true.

The idea of the blockchain is for data to be saved and locked for ever. No changes can be made to the data. Unfortunately when using the last option described above, data can be changed. What is locked unchangable in the blockchain is the external url. The contents of this url are on a default server, this data can be changed.

Why is that a problem?

Let's say I write a post about some charity organization, helping less fortunate people. Text can be greatly generalized. To spice up the post and make it relate to helpless kids I'll add a picture of kids in a mud pool, this image is added by use of an external url. My last sentence could be "They need our help. These people are fighting for a better life".

I know there are good people on Steemit.com, who would gladly help people in need. This post will get some comments showing people sympathize with the content.

After a while no changes can be made anymore, I could change the image of the kids in the mud pool by a group of men fighting for religious cause. When someone finds the post using Google, you could be found to be supporting a group you have never heard of.

More drastic

A more drastic way would be to initially present your whole post as an image, text and all. It is even easier to replace this with completely different content afterwards.

Diminishing a great blockchain feature

By allowing external links in posts the blockchain is not as solid as it is assumed to be. The allowance of external links in posts diminishes an important feature of the blockchain, proof of ownership.

All your original content is stored in the blockchain. If someone else comes along and uses it after the date you posted it, it is provable fraud. Now that content can be manipulated by use of external links, this feature is lost.

Dependency

By allowing external links to images, you also make the system dependent of these external links. What if their structure changes, what if they stop their business completely. It will leave gaps in the posts on the blockchain. It affects the trust of seeing the blockchain as an independent, unchangable, data keeper.

Solution

Images added by use of external links should be converted to 'blockchain'-images the same way clipboard and uploaded images are already. That way you can still use your external source for uploading, but the hotlink will be broken, making blockchain data rocksolid again.

One last tip for everyone

There is no need to polute the system by uploading the same image over and over. Just copy the link of the image from an earlier post and paste it into your post.


Image source