spesmilo / spesmilo/electrum

Implementing Keyfiles

Open
#8,397 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
8.6k
Forks
3.5k
Avg merge
2d 8h
Merged PRs (30d)
61

Description

Feature Request: Keyfiles

About

Keyfiles are files that contains a password. If used correctly (i.e. a long and secure key generation is implemented correctly), keyfiles can improve the security of Electrum users by preventing instances of brute forcing and having the need of manually keying in passwords (if only keyfiles is used). There are some apps out there that have already implemented keyfiles like Keepass and Veracrypt

Demo app: https://github.com/0xLiquidGlass/unnamed/releases/tag/v1.0.0-mainnet

The demo app is a wallet built on Algorand by me using Python. The app has implemented a keyfile feature and I would like everyone to have a try on how the keyfile feature works. Just set up the wallet, then generate a new address where you will have the option to choose on whether to use passwords, keyfiles, or both (i.e 2FA). If you like the keyfile feature, we should then implement it on Electrum

Requirements

  1. External storage device (e.g. Hard disks)

Advantage

  1. You get to have a long, secure password
  2. No typing of password (only if keyfiles are used)
  3. 2FA (if used alongside password)
  4. Harder to brute force
  5. No need to remember password (only if keyfiles are used)
  6. Can generate new keyfiles with ease, encouraging rekeying of wallet

Disadvantage

  1. User has to keep keyfile in safe location
  2. Keyfiles can be stolen or compromised by malware
  3. Strong entropy must be used (e.g. os.urandom)
  4. Wallets encrypted with keyfiles can still be brute forced although harder

As you can see, there are more advantages than disadvantages. For this reason, Electrum should implement keyfiles to make wallets more secure.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No Electrum files, tests, or entry points are named. Start by reviewing the wallet-security requirements and the linked demo app's keyfile behavior, then identify the affected wallet encryption flow and relevant tests. Done means an agreed implementation covering password-only, keyfile-only, and combined use, with secure key generation and clear security behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
authentication, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.