Friday, February 13, 2015

Thin wallets with Electrum


Electrum (https://electrum.org/) is an open-source, light-weight Bitcoin client, available on Windows, Linux, OSX and Android. This post aims to give the reader a quick introduction to its usage and features.

Full-node Bitcoin clients, like the official Bitcoin Core client, maintain a copy of the whole blockchain on the machine the client is installed on. By contrast, light-weight clients such as Electrum rely on a server to provide the transaction history for a wallet and to broadcast new transactions to the bitcoin network. This means that the client can skip downloading and synchronizing the whole blockchain (over 28GB at the time of writing), resulting in virtually no startup time and much, much lower space requirements.


To begin using Electrum, download the program from https://electrum.org/download.html. On first use, you’re prompted to either create a new Bitcoin wallet, restore an existing one from a seed or create a read-only copy of an existing one.


Choosing “create a new wallet” automatically generates a wallet from random data, and gives you a seed that can be used to restore the wallet in case of computer error. Write down the seed and store it in a safe place!

Electrum supports encrypting the private keys associated with a wallet using the AES-256-CBC algorithm. Create a password for the wallet if you wish to do so!


In the next step, you’re asked to either auto-connect to an Electrum server or to pick one yourself. Either choice should be fine, as the only place where the client has to trust the server is providing the transaction history. The server has no knowledge of the client’s private keys, so there’s no risk of a malicious server stealing a client’s bitcoins, though it theoretically possible (if unlikely) for the server to provide an incorrect history of previous transactions for the client.
As of 2015, LocalBitcoins hosts an Electrum server, electrum.localbitcoins.com, which is available using the SSL (port 50002) or TCP (port 50001) protocols.


After connecting to the server, you should get a window with your transaction history (empty in case of a new wallet) and a green light in the bottom-right corner. In case the light is red or the top-left corner reads “not connected”, click the light button and select another server.


And you’re all set go! Other features of Electrum include supporting multiple receiving addresses per wallet, synchronization between different computers and cold storage support. For a full list, and more details about the software, see https://electrum.org/.