ChainWallet - A way to prevent loss of funds by physical violence



Summary:

A proposal has been made for the creation of a new layer of protection for cryptocurrency wallets called ChainWallet, which involves creating a chain of hashes over your private key to generate a new wallet from it. The length of the chain can be easily memorized as an exponent such as 2^40 or 10^12, and if the chain is very long (billions or trillions of hashes), it will take a long time to be created. This can prevent coins being moved in an unplanned way, such as during a kidnapping. It is suggested that using SHA-256 is the most popular hash algorithm in the crypto community, but other algorithms could also be used. The idea is to add “time” as part of the puzzle, rather than increasing entropy.The proposed ChainWallet method is compared to BrainWallets with an added chain. BrainWallets have a bad reputation due to the possibility of a brute-force attack against them, but if a ChainWallet takes one second to be generated, this reduces the speed of an attack to one guess per second and makes a brute force attack practically impossible. ChainWallets are not immune to misuse, but a wallet implementation could solve this by forcing a minimum length for the chain and blocking commonly used words for the password. The major advantage of a ChainWallet is the ability to avoid theft. If a wallet takes a really long time to be generated and someone tries to force the user to give their private key, they would not be able to do it, even if they really wanted to.A ChainWallet could be used as an alternative to BIP39, where instead of keeping 24 words, a password and two numbers, a base and an exponent, would define the length of the chain. This is easier to memorize, so users do not need to write it down. It is important to note that the ChainWallet is not applicable in every case and should be considered as an additional option along with all others available in the crypto environment, such as multisig and smart contracts. A proof of concept for ChainWallet in C++ can be found on GitHub, while discussions about it can be found on various Reddit threads. The community has been testing the concept for a while and is currently running a challenge for solving it. When the day arrives that a user wants to stop hodling and transfer their coins to another location, they should re-generate their wallet in a planned way with the same original private key and length of the chain.


Updated on: 2023-06-13T21:51:58.989195+00:00