Blockchain technology and smart contract platforms such as Ethereum enable a computing paradigm termed decentralized applications (DApps). In contrast to traditional web applications that rely on a centralized backend or web server, the idea behind DApps is to have applications that are censorship-resistant and do not rely on a single point of failure. The Ethereum Mist was intended to facilitate the attainment of this vision.
Instead of using centralized servers, DApps replace the backend with blockchain-deployed smart contracts. The frontend code that is executed in the user’s browser can be distributed through decentralized storage solutions, such as the Interplanetary Files System (IPFS), which stores content on a peer-to-peer (P2P) network.
The purest way of running DApps is for users to load the front-end code of the DApp from a decentralized filesystem, or use their own local copy, and connect to the blockchain-based smart contract backend using their own node software. This was the philosophy of the now deprecated Ethereum Mist wallet and browser, which enabled users to interact with Ethereum-based DApps.
The Ethereum Mist Browser
Mist is an Ethereum wallet implementing the full DApp stack. It was envisioned as a wallet software covering all types of Ethereum DApps. In fact, Ethereum Mist treats the cryptocurrency wallet as one type of DApp, amongst many others. As a DApp browser, Mist is a standalone application with a graphical user interface that allows syncing to the blockchain. It also provides an easy way for users to create their own DApps and deploy tokens and other smart contracts in a non-technical way.
To achieve all this Ethereum Mist provides the following components:
- A full node implementation syncing to the Ethereum blockchain. In fact, Mist bundles the Go Ethereum software.
- A web application layer that allows visualizing web-based user interfaces for DApps.
- The web3.js library, allowing web interfaces to interact with the blockchain and smart contracts.
- A set of standard DApps that can be deployed through Mist.
Ethereum Mist’s goal was to bring DApps to the end-user in a user-friendly way while maintaining a philosophy of full decentralization. The project failed to achieve this and development was finally frozen, in favor of other approaches.
Reasons for Deprecation
In 2019 the developers of Ethereum Mist took the decision to abandon the project and deprecate the browser. There are a number of reasons behind this decision, as outlined by the developers themselves. However, one reason for the failure of Mist resides in a fundamental problem of the fully decentralized DApp approach, namely the fact that running a full blockchain node to interact with the Ethereum network is not viable for most users.
Blockchain networks, in general, scale badly with current technology and running a blockchain node is extremely resource-intensive. In its pure form, Mist needed to be constantly synced to the Ethereum blockchain to be used, requiring Gigabytes of storage, and most importantly, very high-speed disk IO. Simply syncing a new installation to the current state of the network may take days, and keeping up to date requires around-the-clock connectivity and places a large strain on disk write activity. These drawbacks essentially mean that current technology does not support a fully decentralized philosophy for DApps in a convenient and user-friendly way.
Alternatives to Ethereum Mist
While the current model is clearly more efficient, it means that DApps can at best be considered partially decentralized. While providers, such as Infura, probably act with good intentions, they are still centralized points of failure, which break the fully censorship-resistant model. By not running their own nodes, end-users of DApps lose the ability to verify transactions themselves, and the network itself becomes less distributed and resilient.
The deprecation of Ethereum Mist has shown that there still is a long way to go to make the philosophy of a decentralized web fully viable.