Thursday, November 04, 2021

What's the Deal with Bitcoins and Non-Fungible Tokens (NFTs)?

I really do not consider money to be real because it does not pass my definition of physical reality.

Physical Reality - Something that does not go away even when you stop believing in it.

Once people lose faith in money it quickly disappears and the world economy quickly unravels. After all, as I pointed out in MoneyPhysics, we nearly did this to ourselves already in the fall of 2008 with the worldwide financial crises that nearly crashed the world economy. So maybe we need something better?

But in my opinion, the only possible reason for the worldwide interest in cryptocurrencies must be for money laundering purposes. We already have a huge number of government-issued currencies to choose from. If you are worried about one particular government printing too much money, you can always buy the currency from another country. And if you are still nervous, you can always buy gold and silver. So there really is no need for any cryptocurrencies beyond the need for expanded money laundering capabilities. Unfortunately, the decision to allow cryptocurrencies to flourish will be made by politicians - a likely user community. So I imagine that there will be lots of pleas for cryptocurrencies from politicians as a way to expand economic freedoms and a way to technically keep up with the rest of the world.

Bitcoins and Non-Fungible Tokens (NFTs) both use Blockchain technology to record who owns things on a large network of computers, like a network of 100,000+ different computers or "nodes". So the most important thing is to understand how Blockchain technology works. The purpose of Blockchain is to store a durable historical record of transactions that can be easily validated to be true and can never be changed.

Let's start with your checkbook. Your checkbook has records of deposits that are made and checks that you write to pay people. Your bank has the same record of transactions stored on disk drives. Your bank backs up those records on Cloud servers in case the bank burns down. Once a month, your bank sends you a statement listing those transactions and what they think you currently have on deposit. If you are like me, frequently the bank statement does not match my checkbook. Unless the two differ by hundreds of dollars, I don't bother trying to find my mistake. I know that it is always my mistake, so I just add a "correction" entry to my checkbook to set my current checkbook balance equal to what the bank statement says it is.

But how do I know that the bank is really being honest? The bank is honest because the state and federal governments send in auditors to check the bank's arithmetic. Otherwise, a bank could set up thousands of fake accounts with many millions of dollars in them and then loan the fake money out for interest. The government auditors might also get interested if they saw that you routinely deposited $100,000 in bills every week into your account, or if you received $100,000 from a foreign bank account in the Cayman Islands every month. The important point is that somebody has to store the transactions and somebody else has to validate that the transactions are true and that nobody has "cooked the books" by changing historical entries. The purpose of Blockchain is to do that without governmental involvement.

So let's move your checkbook entries to a spreadsheet on your computer. You make the same exact entries on the spreadsheet that you do for your checkbook - like date, check number, what the check is for, the amount of the check and finally your current account balance. When the spreadsheet gets to 1,000 rows you stop and start up a second spreadsheet with exactly the same columns. We will call that first 1,000-row spreadsheet a Block and never change it again. But how can we be sure that somebody does not edit the spreadsheet Block later on? Well, we can put a "hash total" on the Block that certifies that the Block has not changed by using a hashing algorithm. For example, your 1,000-row spreadsheet Block has lots of letters and numbers on it. The numbers have digits with the numbers 0 - 9. A very simple hashing algorithm would be to simply add up all of the digits to get a sum like 3,198,783. Then you put the hash total of 3,198,783 on the 1,001 row of the spreadsheet Block. Now if any single digit on the spreadsheet Block were ever changed, the calculated hash total of 3,198,783 would be different, and you would know that somebody had edited the spreadsheet Block. But if you were a smart thief, you could easily change two digits in the Block and still get a hash total of 3,198,783. So you need a hashing algorithm that makes it very difficult to do that. For example, you could square every 5th digit and add that to the hash total instead of the digit.

But what really makes it hard to "cook the books" is what you do on your second spreadsheet Block. You put 3,198,783 into the very first row of your second spreadsheet Block. Then you continue on with your normal checkbook entries. When you have added 1,000 rows to your second spreadsheet, you have a second Block. The hash total for the second Block will contain the hashed results of the digits in 3,198,783 in it plus the hashed results for all of the other digits in your second Block. Let's say the hash total for the second block is 6,233,894. When you start up your third spreadsheet Block you put 6,233,894 into the first row and so on. When you get to 100 spreadsheet Blocks you have a chain of 100 Blocks that can never be changed. In order to change a single entry, you would have to "fix" all 100 chained Blocks - hence it is a Blockchain. It would take all of the computers in the world a century to do that.

This is great! Now you have a foolproof way of storing all of your checkbook transactions that can never be fiddled with. But is it durable? Suppose your computer burns up in a house fire or a hacker comes in and deletes your spreadsheet Blocks? So you get this brilliant idea. Why, I will just email the 100 spreadsheet Blocks to 100,000 of my friends! They can keep my checkbook Blockchain on their own computers for me. The only problem is that every time you make a deposit or write a check, you have to email 100,000 of your friends to do the same thing on their latest spreadsheet Block in the Blockchain. That should work. But then you remember that some of your friends are not so great with reading their email. So you get another brilliant idea. Whenever a new Block of 1,000 rows gets generated with a new hash total, you could hire 10,000 people to check the 100,000 computers of your friends to make sure that the latest Block that they have jives with all of the other Blocks by checking the hash total generation for the latest Block. These 10,000 people could then all report back to you with what they found. Let's say that 9,967 of these 10,000 people report back with exactly the same results. They tell you that 99,940 of your friends did a great job and all of the latest Blocks agree. However, 60 of your friends goofed up and have to fix their latest Block as I do with my own checkbook. Fantastic! Now your checkbook Blockchain is durable and cannot be hacked.

The only problem turns up when you have to pay the 10,000 people who audited and validated your Blockchain on the 100,000 computers that belong to your friends. So you get another brilliant idea. Instead of paying the 9,967 of the 10,000 people who got the audit right with dollars, you will give them a Bitcoin! But then you realize that issuing something like 9,967 new Bitcoins every time a new Block needs to be validated on 100,000 computers would soon make Bitcoins worthless. You get another brilliant idea. You will play the "I am thinking of a number" game with the 9,967 winners. I am thinking of a number between 1 and 1,000,000,000,000,000,000,000. To be the final winner that gets a new Bitcoin you have to come up with a guess that is the closest number that I am thinking of but not greater than the number that I am thinking of. That's how new Bitcoins get issued when each new Block in the Blockchain is finished and stored on the 100,000 computers in the network. The 10,000 people who validated your Blockchain are called Bitcoin Miners. It takes a lot of computer time to validate a Blockchain and the payback is in new Bitcoins.

Great. But your Bitcoin Miners now complain about getting paid in Bitcoins and wonder exactly what is a Bitcoin and why would anyone ever want one. So you tell them that Bitcoins are valuable because other people want Bitcoins. But they then ask why would other people want Bitcoins? So you tell them, "Well, it takes a lot of work to make or "mine" a Bitcoin. Remember when the United States was on the Gold Standard before Nixon? The United States would pay you $35 for each ounce of gold that you mined and that made dollars valuable. So it's the same thing with the Bitcoins that I am paying you to mine.". But then your Bitcoin miners complain that you are the only one issuing the new Bitcoins and keeping track of who owns the Bitcoins. Why should they trust you? Then you get your final brilliant idea. You tell them, "Say, how about instead of putting my checkbook transactions on the Blocks in my Blockchain, we put Bitcoin transactions on the Blocks instead! That way the Bitcoin Blockchain will store a durable record of all the new Bitcoin issues and the sales and purchases of existing Bitcoins on a network of 100,000 computers and all of the Bitcoin transactions will be audited and validated by others with no governmental intervention at all!". That's all there is to it.

Here are some background links:

Blockchain Explained
https://www.investopedia.com/terms/b/blockchain.asp

How Does Bitcoin Mining Work
https://www.investopedia.com/tech/how-does-bitcoin-mining-work/

NFTs also use Blockchain technology too. Fungible things are like water. All gallons of pure water are the same. You cannot tell one from the other, so they are all fungible. Bitcoins are also fungible. One Bitcoin is exactly the same as all the other Bitcoins. You might also think that all $20 bills are also fungible too, but they are not. Each $20 bill has a serial number on it to make it unique. Now suppose President Eisenhower used the $20 bill with serial number JG28404417E to tip a caddy on the day that he was reelected in 1956. That $20 bill would now be a collectible and worth much more than $20. Now, in the olden days, people would display the $20 bill with serial number JG28404417E at Antique and Collectibles Fairs and try to sell it for $1200. But there would be a lot of wear and tear on the collectible as it moved from owner to owner, and it could always be stolen too. So how about locking it in a safe at the Bank of America in New York City and issuing a digital NFT entry for it and putting that entry on a Blockchain? And that's what people now do. You can make an NFT out of any unique thing and put it on a Blockchain to ensure everybody knows who owns it and the true and unaltered history of its ownership.

Here is a background link:

Non-Fungible Token (NFT) Definition
https://www.investopedia.com/non-fungible-tokens-nft-5115211

Comments are welcome at scj333@sbcglobal.net

To see all posts on softwarephysics in reverse order go to:
https://softwarephysics.blogspot.com/

Regards,
Steve Johnston

No comments: