And why do they have value?

NFT stands for “Non-Fungible Token,” which is, of course, gibberish.

Fungible sounds a lot like fungus but has nothing to do with mushrooms.

Being “fungible” is characteristic of good money, that all $20 bills have the same value, that they store the same amount of wealth for a given time & location. Does not matter who holds the $20 bill or the history of that $20 bill.

This implies that “non-fungible” tokens can have different values…

Where a token is a tradable digital asset whose ownership is managed by a blockchain. One can assume that the ownership of most NFT’s is managed by the Ethereum blockchain.

OK, but how can an infinitely copy-able digital file, such as a digital image, have value if the supply is limitless?

Enter the Hash Function.

Once again, having nothing to do with a hallucinatory substance. Perhaps related to the random appearance of corned beef hash.

Consider the following mathematical function, where a binary data file is the input:

No matter the length of the input data file, the length of the output is always N bits.

Given just the N output bits, it is impossible to extract any information about the input data file.

While two different input data files may produce the same N output bits, there will be no discernible relationship between the two input data files.

The probability of two random input data files producing the same N output bits should be one out of 2 to the N power.

While the same input data file will always produce the same N output bits, any change to an input data file, no matter how small, will not only produce a different output, but it will also be very different and unpredictable output.

While there are many available hash functions, I will use the MD5 Hash function, which outputs a 32-byte (256 bit) output.

**Really Important Point**: For the MD5 hash function, the probability of two inputs generating the same 256-bit output should be one out of two to the 256 power. This is a mind-boggling large number, so assuming that the MD5 hash function is performing as advertised, the following assumption can be made:

*For the MD5 hash function, it will be assumed that there is a one-to-one relationship between an input data file and a 32-byte hash. i.e., no two input data files in our lifetime will ever produce the same MD5 hash output.*

It should also be noted that mathematicians spend a lot of their spare time trying to come up with better hash functions or proving that other hash functions do not perform well, because it is very important that the hash functions work as advertised.

…

Any data file is like a book. Has a beginning, an end, and lots of information in between. There is structure, the information is organized, and is generally read from beginning to end, in order.

A digital image is, of course, a data file. While you see a cat, all the computer sees a long string of one’s and zero’s.

On Windows, one can compute the MD5 hash output of a file using the “certutil” in the command prompt, for this image, the command looked like:

>certutil -hashfile “cat 1.bmp” MD5

With the computed MD5 hash output being: 7750dd8cbe01366607fd83675ec75b8c

Meaning that this MD5 hash output is forever associated with this BMP formatted image, this data file, a one-to-one relationship.

In the next image, I made a slight change to the image, the upper eye is now all black. Both images are exactly 122,456 bytes in length, the only difference being the color, the value, of several of the pixels.

Here is the hash of the second image, note how completely different it is from the hash of the first image:

0f5b6d217d280ac039d95c4870190e4f

With this unique MD5 hash output being forever associated with this second BMP formatted image.

One particularly important application of hash functions is that they can be used to quickly detect if any changes are made to a data file, where a change could be modifying the value of the data or changing the length of the data file.

(As a side note, this feature of hash functions, the ability to detect change quickly and efficiently, is critical to the performance of all blockchains, whether it be the Bitcoin blockchain or the Ethereum blockchain. It is via hash functions that it becomes mathematically impossible to “go back in time” and make unauthorized changes to the blockchain without anyone noticing.)

Now consider the case where an image is altered in such a way that it becomes very appealing, displaying brilliant artistic talent. Just the right amount of eye pixels changed to red to reveal the true nature of this particular kitty.

Perfection!

Compute the associated MD5 hash output to lock down this priceless work of feline art:

597da5eba12783f812f9bd8c1fdd4995

Proof of Ownership

Given the one-to-one relationship between a data file and an MD5 hash output, to prove ownership of a data file, or in this case, a most desirable feline image, one just has to prove ownership of the associated MD5 hash output.

Which is exactly what the NFT does. The MD5 hash output is the digital asset, that only you can prove ownership of via the Ethereum blockchain. As the established owner of the token (i.e., only you have the associated private key), only you can transfer ownership of the NFT, making it a tradable digital asset.

Just do not lose your wallet that stores your private keys, or like bitcoins, your NFT’s will be lost forever, because if you cannot transfer ownership of an asset, it has no value.

All transparently documented on the immutable, irreversible Ethereum blockchain.

Uhh… why go through all of this trouble creating and storing hash outputs as tokens? Why not just store the data file itself? Because the size of data files can be quite large, not an optimal usage of blockchains that need to be continuously stored and updated on many devices.

In general, something has value if there is demand for it, combined with a finite supply. Given that NFT’s have value, it can be assumed that there is demand for them, and that the supply must somehow be limited.

How does one limit the supply of an infinitely copy-able digital file?

The quick answer is we cannot. But what NFT’s can do is limit the number of owners of a digital file. While there can be millions of copies of a data file, thanks to NFC’s, there will only be “one true owner”.

Thus, the scarcity, the limited supply.

FYI, these three images have not been registered as an NFT, go for it.

And yes, if NFT’s become widely popular, this is probably good news for those that hold Ethereum tokens.