What Do I Need To Know Before Creating A Blockchain Wallet?
The title is a question posted on Quora and the article below is based on my answer to it and added details and explanation.
The different choices of wallets are measured in several dimensions:
- popularity — from most to least popular
- easiness of use — from noting to install to running non-stop a node
- centralized or decentralized
- anonymity/privacy — from no anonymity to (almost) full anonymity
There are 3 types of crypto-wallets, listed in order of most used to least used :
A person needs to register on the specific exchange; no need to download and install software, web access; funds are kept in the exchange; supports all cryptocurrencies listed on the exchange; the wallet is centralized as all users of the exchange go through the single multi-user wallet maintained by the exchange funds on reputable exchanges or entire ‘scammy’ crypto-exchanges may disappear; however, if an exchange survives an event of funds disappearance it then usually upgrades its wallets to the highest security level at the time of upgrade; no-anonymity, as the user has to provide a passport/id card/driver’s license to register;
Need to register with a crypto-wallet provider site/company, then download and install software; Usually, crypto funds are kept locally on the user’s computer; there are variations in this way of keeping funds — kept in the wallet provider storage; the wallet is also centralized as it is only the crypto-wallet provider who runs nodes and maintains blockchains of all the supported cryptocurrencies; the wallet software of all users have to call the crypto-wallet provider to get balances and do send/receive of crypto-currency; support of multiple currencies depending on the provider; partial anonymity as the user may need to reveal some info — phone number, e-mail or more to register;
User needs to download and run a ‘daemon’ program for every crypto-currency they want to have; the program/s need to run non stop 24/7 and keep synchronizing with the specific blockchain; successful blockchains like Bitcoin/Ethereum require hundreds of megabytes of daily download, and tens of gigabytes in storage in ‘pruned/fast sync’ (headers only blockchain) mode; non ‘pruned’ (full blockchain) mode needs around 300Gb/BTC, 1Tb+/ETH; this type of wallet has the level of decentralization equal to the underlying blockchain; while least used this way of a crypto-wallet has the highest privacy/anonymity
3. Costs And Business Models
A wallet in the crypto-exchange is free for the user of the exchange. The crypto-exchange makes money through the commission of the buy/sell orders that the user places, and through the spread — the difference between buy and sell price of a crypto-currency pair.
While the provider of a commercial crypto-wallet may offer or claim it is free for users it has to monetize based on ads or premium services for its users. The provider of a commercial crypto-wallet has significant costs of running nodes and constant synchronizing of all the crypto-currencies that it supports. Usually the provider picks the model of charging users a recurring monthly fee.
It is a natural evolution that some of the providers of commercial crypto-wallets enter the area of business served by centralized crypto-exchages and claim to be decentralized crypto-exchanges. However if transactions posted by users actually arrive to the blockchain nodes run by the provider such a provider can not honestly claim of being a decentralized crypto-exchange.
In order for a user to maintain a private wallet the user usually has to dedicate a hardware system (x86 or ARM based) or rent one or more cloud CPUs with sufficient memory and disk space to hold one or more blockchains, and sufficient internet bandwidth for the constant non-stop synchronizing. While there is a one-time fee to get a dedicated hardware system the cloud CPUs have monthly recurring costs.
Blockchain technology is pretty cumbersome. If doubting the blockchain technology or curious on what a post-blockchain future may look like please check: