NFTs are trending, everyone’s talking about them, but what do people really know about the technology behind them? Are we really aware of what we’re buying? Or are we just chasing fomo?

First of all, we must know what an NFT really is. Standing for “Non Fungible Token”, an NFT is basically a token, a hash, a piece of bits of defined length, an unique identifier code for a digital file.

This token is stored in a blockchain: an inmutable, tamper resistant, decentralized database; and it is assigned to a public address. This hash can be traded and transferred between different addresses around the world, using the blockchain’s protocol.

But there are myriad workarounds to the uniqueness of the encoded file, that are an inherent part of the digital systems. We are going to unveil some of them, and then, make a point on the weaknesses and strengths of the NFTs.

About hashes and timestamps

In order to keep this simple, I am going to assume you are already familiar with hash functions and timestamps. If you are not, please study these links before further reading:

Here, in these two simple computer science terms, relies the nature of any NFT. As stated before, an NFT is not really a file, or a picture, or a piece of art, instead, the NFT is a hash, a piece of digested code in a blockchain, which is assigned to a public key as it’s property.

So if you are in control of the public key, this means you are the owner of such hash in the issuer blockchain.

But we have to read this with maximum precision, you’re the owner of the hash, in the issuer blockchain, which basically means, such a hash can exist on any other blockchain and someone else be the owner.

So in that scenario, the original hash would be the one with the lowest timestamp, or in other words, the one first created.

Steganography as a means to falsify NFTs

So now let’s go a step further, let’s say we purchased a piece of .flac file, and now we own the NFT to that file. But then how do we know that this NFT of a .flac file is the original one?

We could argue that since the NFT is unique in a blockchain and the timestamp for such a hash is the first one to be issued, this .flac file must be the original file. But this is not true.

Here to understand why, we should refer to the steganography process:

So with steganography, we can basically encode anything in a media file, change just some bits of data, and the final product will have a completely different hash, but the contents of the file will be virtually the same.

For example, steganography allows anyone to take any .jpg image and create millions of images which will look the same to the naked eye, but there will be very tiny, small changes in the bits. Then, each of these images will have a different hash, even when they look the same, they are not the same.

Then if we recall what we know about hash functions, we know a hash is irreversible. There’s no way to guess the original file by looking at the hash.

This leads us to a serious implication: by getting a file and it’s associated NFT, there’s no way to make sure it’s not a fake. Having a file and its hash does not allow us to know if that file was derived from a previous file whose NFT was already issued and sold.

Encoding pure objects

But not every piece of digital information is the same, media files like .jpg, .png, .flac can be easily manipulated with steganography, but there are certain pieces of data that are more resistant to such manipulation.

A good example of these pieces of data are JSON Objects.
The following JSON object encodes the attributes of a videogame character:

{
    "character": {
        "strength": 10,
        "agility": 15,
        "intelligence": 13,
        "health": 1000,
        "mana": 1000
    }
}

So we can save this to a file like character.json and calculate a hash of such file like this:

sha256sum character.json
b4f485cc9d0f83fed4cfea2779016d13c4bd19ad4e87e03c3cd8a7fda2e5ef6e  character.json

In this case, there’s no way to modify the character without changing the hash and it gives you a valid unique NFT as long as it follows certain conventions on the file formatting.

This way we can encode in NFTs the properties of different weapons, characters and environments of different parts of a video game, making them unique and tradeable.

This kind of structure adds a layer of transparency to online videogames, where cheating is harder and more interesting than ever. Does this mean these code-structure-wise NFTs are more valuable? Not really.

For this to work there should be a very strict set of rules in the encoding of the game, as to make the amount of possible attribute combinations very limited. So here, combinatorial mathematics plays an important role on the valuation of the asset.

These code-wise NFTs are valuable as long as the code is valuable, which will probably depend on some third party video game developer, the inherent smart contract, the combinatorial mathematics behind it and the user base of the videogame.

We already know that any file available on the internet, when not encrypted, is susceptible of being copied, stored and distributed.

So owning an NFT means you own the hash to the file on some blockchain. And this might grant you some copyright to that file, but it won’t prevent it from being copied.

With the proper hash and timestamp, you can argue in a court of law your ownership of certain digital file, so nobody can steal your work legally.

But for this to work, your works must be priced in a range of money as to matter to a court of law and a bunch of lawyers. Then, since there’s no legislation for NFTs, we should take the most flexible definition of copyright as reference. Which means there should be someone using your files for an economic activity, because copyright laws do have non-commercial use permitted.

Some conclussions

NFTs became a whole revolution on the internet, allowing users to pseudo-copyright their files. This made intellectual property easier to trade for everyone. But the technologie is still immature, there are myriad ways to circumvent the system in order to scam people. Valuations on intellectual property require a lot of knowledge about the digital file we are using, or at least, a very liquid market, jumping to buy an NFT without this practical knowledge would be economically unwise.