Veil-Project / veil

Veil-Project
MIT License
118 stars 91 forks source link

Feature request: Change GUI wallet first run to include generating a basecoin address #1006

Open seanPhill opened 2 years ago

seanPhill commented 2 years ago

Following discussions with newcomers to the Veil community in Discord, and despite clear instructions within the wallet while the "You're new here" window is available, users, old or new, do not read that, and then they use the SV address from the front of the wallet to try to withdraw on exchanges that will not send to a stealth address, only causing inconvenience for themselves, and for exchange support desks, and for Veil support too!

We can possibly alleviate this problem without removing the default privacy, with a bit of a design change.

We can modify the GUI wallet so that it can automatically generate a basecoin address right after it generates the initial stealth address. Bear in mind that these will be generated before the wallet is encrypted, so someone restoring a seed phrase to the veild/cli wallet, encrypting it, and then generating both a stealth and a basecoin address will not get the same addresses. Bear in mind also that basecoin addresses cannot be created in the GUI, but a user has to create it in the Debug Console. The automatic initial basecoin generation should therefore be equivalent to: getnewbasecoinaddress "Basecoin, NON-private address. Only use for receiving if sender will not send to Stealth Address" This length displays fine in the My Addresses window.

The basecoin address should be labelled "Basecoin, NON-private address. Only use for receiving if sender will not send to Stealth Address" and if possible we should add a third choice when clicking on it (additional to the existing 'Copy' and 'Edit' choices) "show basecoin address warning". This should display THREE statements,

  1. reiterating the warning about being publicly viewable and auditable on the blockchain, not private, and the other, until we don't have zerocoins anymore, to provide a link to the minting page, or instructions to get there, and
  2. for them to choose their preferred zerocoin denomination size before giving the basecoin address to a sender.
  3. for reasons of Veil's priority for privacy it is not possible to create a basecoin address here. It is necessary to open the Debug Console and type something like getnewbasecoinaddress "XYZ Exchange Veil withdrawal", or getnewbasecoinaddress "Payment from change-resistant organisation!"

Any additional suggestions are welcomed!

This is not intended to override our desire that exchanges allow withdrawals to stealth addresses, but in the short term at least we should expect that not all will.

seanPhill commented 2 years ago

After adding some basecoin addresses to the My Addresses screen (via the Debug Console), whichever address is selected in My Addresses, is displayed with the barcode on the front (bottom left hand side), AND the description. As the default address's label is simply "stealth" it was not obvious that this was a label. Maybe we could do just one change here, to make the text "Receiving address" appear as a clickable link (underline) and change the mouse pointer to a finger or something like that, when hovering over it, and responding to a click by taking the user to the My Addresses screen. The label I specified above should be a reasonable warning, but maybe the default initial "stealth" address label can be changed to "Stealth address. Use a basecoin address if sender will not send to stealth." This surely this will be enough to satisfy the newcomers?! ... They will click "Receiving address" and be transported to the My Addresses screen where a basecoin address has already been created for them, with an appropriate warning!