wallets: switch wallet address scheme

Summary

Switch wallet addressing scheme from pseudo-random generated strings to a more secure scheme.

Problem Definition

Coming from #9, currently, wallet addresses are generated randomly. I'm suggesting we switch to a more reliable addressing scheme.

With the current addressing pattern, node's will use up more compute power reading from disk to validate if a wallet address exists on the network, and there's no policy in place to check the validity of the addresses (regex can not fully mitigate this).

Proposal

Here are some wallet addressing schemes we can explore:

  • The Bech32 standard outlined in BIP 0173.
  • ed25519 private-public key sets Outlined Here

Benefits

  • Disk/DB I/O will be reduced since the integrity of an address can be validated based on the specified scheme.
  • Wallet address generation can be truly random and unique.

Would love to hear your thoughts on this!