TLDR: Users don't really understand WHAT a transaction is, WHY we need to use them, and HOW it influences their workflow. Modern wallets do little to explain this so it's up to us, the community, to create awareness around these issues. We must explain things in ways that are clear & simple to understand by using pre-existing mental models & assumptions in users' minds. Or we take initiative and create products/tools that walk through this nuance in a cohesive way.
Transactions on blockchains are fascinating.
You use them to:
- Write (change state) – basically change the information stored on the blockchain
- Read (view state) – read what's already on the blockchain
- Sign (sign a message) – sign something with your private key
But what does a user see when they come across a transaction?
But nowhere in metamask does it tell you WHY you need to send a transaction.
And what the hell is a transaction?
And why does it COST so DAMN much!?!?!?
For those curious, the reason WHY we send transactions to Ethereum is to change the blockchain. We want the blockchain to keep track of what we're trying to do. We pay a (maintenance) fee in return. And our transaction gets stored forever.
The above simply shows what happens with Ethereum. A bunch of people make transactions at any given point that changes the blockchain or "world state" and when all those changes are properly executed, we get a new world state or a new block in the chain.
Don't worry if that doesn't make sense. It's not important.
What does a transaction look like?
Think of this like an email... The only difference is that we can now send along value!
The from and to fields are self-explanatory.
The value field is the amount of the Ethereum coin we want to send.
But... We also need to send along a tx fee. This money goes to the people who keep the network running all over the world. Think of it as a maintenance fee.
But why transactions?
This is where users struggle.
Imagine a scenario where you're interacting with a dApp that is in NO way categorized as a financial application in your mind.
If it has nothing to do with handling money then why am I spending money to interact with it?
But I think users have a point here. Why did we land on using the mental model of transaction over anything else?
Too much finance speak...
In my assessment, the term transaction was used simply because that is what Bitcoin used as well.
But Ethereum is NOT Bitcoin. It is so much more than a way to transfer & hold wealth digitally.
So that is where we went wrong. What we have is a computer that can be accessed by anyone globally. But the language & structures that it uses is closer to something you would see at a bank.
Fix The Language. Fix The Experience.
One possible solution to this is to use language & mental models that relate more to HOW the system ACTUALLY works.
If it actually works like a shared, global computer. Let's use language that allows users to think of it as such.
We can keep WHAT happens the same. But change the way we explain it to our users.
Or Just Onboard Them...
Here's a thought. Why don't we just collectively come up with a service (DAO) or some other platform that easily tells people these things?
Let's just start talking and getting people aware.
Media is an incredibly scaleable medium so I suspect we can get tons of reach this way.
Something To Think About:
Certain choices were made to describe this system. But I think as a community we can choose different ways to describe pieces of web3.
The developers have a standardized language: that is code.
But for everyone else: language can be confusing.
So it's up to YOU, the reader, to carefully think through what is ACTUALLY happening and make your own conclusions.