For those that are fans of Ethereum (or merely find themselves using the protocol on a regular basis), you more than likely find yourself forced to use 3rd-party tools on an ongoing basis.
Some of those tools include, but are not limited to:
- 'MyEtherWallet' (one of the more egregious examples that all users should do their best to stay away from)
- Infura (directly or indirectly)
- Decentralized Exchange (yes, even a Decentralized Exchange; see: admin keys -- most of these platforms have a 'shut off switch').
This Ecosystem-Dependence is Not Your Fault
Before you stop reading, let me be clear in stating that this is not one of those grandiose, self-righteous security/privacy-advocacy pieces here to lecture you about how shameful your daily habits are while instilling a perpetual panic in the back of your head that all of your funds will be stolen by some 15 year old Russian hacker at any moment.
On the contrary, I think that most users will be okay (for the time being; but that's another conversation).
I actually want to use this opportunity to lament the shortcomings of the Ethereum ecosystem (and the false veil of user interactivity that has been perpetuated by modern blockchain crypto outlets).
Starting With Metamask
For those that use Ethereum, how many of you use Metamask?
All of us, right? Shit, I do. Its installed in my browser right now as we speak (again, this piece is not here to crucify you for using the only available options out there).
Metamask is Cool
If we take a step back for a second, Metamask represents one of the cooler facets of Ethereum, as a whole and it exists as a perpetual reminder of the kind of stuff that blockchain can be leveraged to either facilitate or implement.
The Issue isn't With Metamask, But Rather Our Reliance On it
Metamask, by itself, is fine. It is what it is and it doesn't promise to be any more or less.
My gripe is with our forced reliance on Metamask as a one-stop-solution for any and all things 'Web3' on the internet.
Sure, there are some alternatives, but neither of the viable ones in existing are as feasible, well-trusted, or widely used as Metamask (on any level).
And there's a reason for that.
Metamask Doesn't Connect Directly to the Ethereum Blockchain
Again, I don't believe that this is a design flaw in the function of Metamask, because it never promised us that it would be the ultimate wallet solution to service the Ethereum ecosystem for any and all use cases (and if it did, then I missed that crazy promotional campaign).
So, when taken by itself, I dont mind the fact that Metamask does not connect directly to the blockchain.
What Does it Communicate With in Order to Poll Blockchain Data Then?
This is a great question.
Even if you're not a tech wizard, you more than likely realize a few unequivocal facts about Metamask:
A) Its able to provide you with up-to-date gas price estimates on the network
B) Its able to keep your wallet in-sync and also tell you when your transaction has successfully completed itself on the protocol
C) It can perform various tasks (like authenticating an external DAPP) in response to external communication (Web3)
So, based on all of those characteristics, it must be communicating with something.
The question, though, is what?
Infura is the One-Size-Fits-All Solution That Provides That Connection
Ever heard of 'Infura'? I'm sure many reading through to this point have (its very popular).
But for those that haven't, let's take a second for a quick 'tour'.
Remember When I Said That Metamask isn't Connecting Directly to the Blockchain?
That probably sounded confusing, right?
Well confusion be gone - 'Infura' is the "secret" that allows Metamask to function without polling an Ethereum full node directly (i.e., like one would do for Bitcoin in a semi-comparable situation)
Essentially, Infura is an API Endpoint for the Ethereum Blockchain
In a nutshell.
So why is it so popular?
Reason #1 (above all else): its freely available.
Which is a hell of a lot better than being forced to erect one's own Ethereum full node in its stead.
Infura-Relevant Documentation RE: Metamask
From the Infura site (read below):
So What's the Hype About (For Infura)?
Referring back to the most recent screenshot that I published (showing the excerpt about Metamask in the Infura 'FAQs' page), you may have noticed where it stated that users could simply configure Metamask to point at their own personal nodes.
But hardly anybody actually does this because...
Running an Ethereum Full Node is Impractical
When I say 'impractical', I don't mean that its something that the "Average Joe" or your grandma down the street wont be able to do.
I'm talking about something that's so inconvenient, resouce hungry, and time consuming, not even Vitalik Buterin has a full, validating Ethereum node in deployment currently (although I personally think that this is mad dumb because the universe of ideas that he's able to contribute is limited by not having the practical day-to-day life experience of the pros and cons for users that do decide to run an Ethereum full node).
That aside, running an Ethereum full node is not for the faint of heart.
Numerous developers have attempted to climb this mountain, only to find themselves ruined by hard disk failure, excessive monthly VPS bills and un-restrainable impatience as they wait for well over a week for the full chain to sync (required for one to run an 'archival node').
At the time of writing (mid-August 2020), when taking DeFi / DEX platforms / Tether trnsactions into account...it would be reasonable to propose a conservative estimate of two-four weeks for the syncing of an Ethereum full archival node.
Mainstream Sources Corroborating the Absurd Barrier One Must Climb Just to Run an Ethereum Full Node
Let's start with a couple of excerpts from 'Chainstack' below, which detail the daunting task of running a full archival node for the Ethereum blockchain:
(keep in mind that this was published back in February 2020 ; well before gas prices started reaching unforeseen levels, coupled with crippling amounts of traffic and blockchain congestion slowing the protocol to a halt)
Is it possible that they're being slightly hyperbolic for the sake of their own interests (in promoting an alternative solution that essentially provides the same service as Infura ; antithetical to one attempting to run their own full node in any sense) --- sure.
But is the information wrong? No.
Check Out This Anecdotal Testimony From a Trustnodes Article That Chronicled One Community Member's Week+ Long Journey to Erect a Fully Archiving Ethereum Node
What About Running a 'Light Client'?
This used to be a viable alternative before the onslaught of 'Cryptokitties' in 2017 (remember those?).
souce = https://medium.com/vipnode/an-economic-incentive-for-running-ethereum-full-nodes-ecc0c9ebe22
Yeah, that last screenshot defines reality on the Ethereum network for light clients (and things have only gotten worse since).
Also, yes, those two factors (Light Node software swap + Cryptokitties) alone made Ethereum's blockchain state non-viable for Ethereum light clients (without specifically bootstrapping to specific Ethereum full node clients and, as we've covered, nobody runs an Ethereum full-node).
Solutions Like Infura Take Away Incentive to Run a Personal Full Node on Ethereum
What makes Infura so popular is the fact that its 'free tiered' plan provides more than enough firepower for your 'run-of-the-mill' Ethereum user that may only be considering running a full node for the sake of ensuring that one's funds are safe (by removing any and all 'middle men' / middleware clients between a wallet client like Metamask and the actual blockchain).
Ethereum's Ecosystem Has Given Rise to a Ironically Antithetical Reality
We've all heard the blockchain pitch before, right?
"Blockchain is a trustless and distributed, decentralized ledger, unlike banks, which are centralized, 3rd parties that serve as a 'single point' of weakness. Therefore, blockchains will cure cancer."
This may be true, in theory, when it comes to Ethereum - but in practice, not so much.
Ethereum's Current Ecosystem
Many users of Metamask will only ever authenticate against Infura, rather than the blockchain directly. This, of course, is in addition to the fact that Metamask, in itself, is a 3rd-party distribution (whether its open source or not ; if it isn't created, deployed, designed and/or distributed buy you - then you don't own it and it is thus, a 3rd-party solution).
Potential Solutions (Conclusion)
To be entirely honest, I have no clue.
That's supposed to be one of the things that 'ETH 2.0' is addressing (in the long-term), but I'm not sure what can really be done to alter the architecture of Ethereum in such a drastic way that the issue discussed in this paper would be mitigated to any noteworthy extent.
Fortunately, this is not our problem to figure out!
We'll wait and observe how Ethereum tackles this issue among numerous other issues plaguing its ecosystem currently.