Wallet suggestion: Hide receive addresses until fully synced. #7235

issue dabura667 opened this issue on December 20, 2015
  1. dabura667 commented at 6:27 AM on December 20, 2015: none

    https://www.reddit.com/r/Bitcoin/comments/3xicpg/did_i_just_lose_all_my_bitcoins_please_help_new/

    This kind of new user confusion can be prevented by hiding receive addresses until fully synced.

  2. MarcoFalke commented at 7:55 AM on December 20, 2015: member

    The problem appears to be missing education about the network:

    "Synchronizing with network" don't know what this means, and it looks to be stuck, and I mean 5 hours stuck, at 10% done.

    Can we do a mouse-over text to explain why this takes so long?

  3. jonasschnelli commented at 9:40 AM on December 20, 2015: contributor

    No. I don't think this is a good idea. I would rathe try to make users more aware of what's going on during IBD,... how long it might take until they can receive coins...

  4. MarcoFalke commented at 10:16 AM on December 20, 2015: member

    Maybe also notify the user there was a transaction which is impossible to verify atm.

  5. luke-jr commented at 11:02 AM on December 20, 2015: member

    Maybe throw at the top of the transaction list a "Loading, please be patient... approximately N hours remaining." or something?

    People who know what they're doing may very well want to give an address to someone before the sync is done.

  6. jonasschnelli added the label Wallet on Dec 20, 2015
  7. LongShao007 commented at 2:45 PM on December 21, 2015: contributor

    Maybe show some prompt message in "File>Receiving Address" .

  8. dabura667 commented at 4:32 PM on December 21, 2015: none

    Maybe throw at the top of the transaction list a "Loading, please be patient... approximately N hours remaining." or something?

    Similar to this. I think also the client should not display 0 for balance while syncing... maybe "???" with last known balance somewhere in parenthesis or something. This would signal to users who instinctively click through any and all info messages without reading.

    Also, a pop up every time you click "File>Receiving Address" while not fully synced might help.

    "Remember, you're not synced yet, so don't freak if the bitcoin you thought arrived just now isn't there."

  9. MarcoFalke commented at 6:05 PM on December 21, 2015: member

    pop up every time

    I don't like this. Also it won't help if you already sent the address out (when synced) but fell back.

  10. dabura667 commented at 4:28 AM on January 4, 2016: none

    I'm going to go back on my previous compromise with this reasoning:

    Anyone who knows what they're doing and wants an address before initial sync is done can still get it through a single command in the command prompt under help.

    The UI is supposed to have default settings that prevent the user from doing anything unsafe.

    Not allowing them to see or send bitcoin until they download 60 gigs of data (which they were not educated about, and could put them at risk of running over bandwidth caps etc.) or run some complex commands to dump private keys (also not safe), while encouraging them to deposit bitcoin into the wallet, is not the kind of example we should be setting as an reference implementation.

    In lieu of a better solution (like dynamic SPV mode) I think hiding the addresses from the UI while syncing is the best way to protect users.

    Anyone disapproving, please explain how inaction on this issue is safer for the novice end user compared to my proposal.

  11. MarcoFalke commented at 11:49 AM on January 4, 2016: member

    Issue also reported on IRC:

    i have bitcoin core, and it generate me adress for income bitcoin, but in this moment i can this adress find, cant find money, anythink,,, just have link for block chain

  12. luke-jr commented at 2:06 PM on January 4, 2016: member

    @dabura667 There is no safety risk involved here... asserting there is doesn't make it so. Please explain how someone can lose bitcoins this way.

  13. dabura667 commented at 4:49 PM on January 4, 2016: none

    Please explain how someone can lose bitcoins this way.

    Simple: Sell them bitcoin, tell them to download Core to receive. Make it look like you sent them coins, show them fake block explorer etc. and convince them "don't worry, they'll show up in your wallet once you sync, go home and sync, buddy."

    Less Simple: Core not syncing. Bitcoins not arriving. Panic, ask online somewhere. Not understanding jargon. White Knight shows up with solution. Turns out it was scammer that just asked to send private keys, and did.

    Even Less Simple: dump private keys. import to Electrum or something. Continue using the same keys and forget that the private keys were copied to their memo app in the interim (or evernote or whatever) then someday coins get stolen.


    Basically, it seems like Core is saying "hmm, users understand all this stuff and we have no obligation to educate them... if they lose bitcoins it wasn't because of us, but rather them. They should have known not to trust coins without fully syncing, or to give someone private keys, or to copy paste dumped private keys to some cloud service with "password1234" as their password. Not our fault, their fault."

    However, I think that Core should rather say "Hey, you're the new guy around here. Here's a nice little tour of the place. We've got your addresses right here, but you don't need those yet, as we can't verify anything you did with them even if you tried. In order to do that, you need to wait x hours and download approx. y GB. If that doesn't sound cool, we could turn on SPV mode if you want. How about that?"

    Unfortunately, that kind of tutorial does not exist in the app itself, and the SPV mode is not there. So the very least that could be done rather quickly, is hide addresses from the UI.

    I don't understand why hiding addresses that have 0 use to a newbie (until he can see the transactions) is such a big deal?

    Anyone who's not a new person can just getaddress to their hearts content in the console.while syncing.

    Being aware of the problem at hand, and refusing to do anything about it is the same as implicitly stating "we want users to send large quantities of bitcoin into a Core address on their wallet so they are forced to either sync fully, or do unsafe things at the advice of internet forums."

  14. luke-jr commented at 4:52 PM on January 4, 2016: member

    Sounds like you're suggesting "break it worse" when "fix it" (adding a warning/explanation) is just as easy.

  15. dabura667 commented at 4:53 PM on January 4, 2016: none

    "break it worse"

    How would my suggestion be breaking anything worse?

  16. luke-jr commented at 5:01 PM on January 4, 2016: member

    Because people would now need to wait <however long> for the sync to finish before they could give their payer an address...

  17. MarcoFalke commented at 7:06 PM on January 4, 2016: member

    We already have a warning icon:

    screenshot from 2016-01-04 20-02-31

    Still, I agree that the warning needs to be more prominent as new users won't realize this little icon is something to worry about.

  18. dabura667 commented at 11:56 PM on January 4, 2016: none

    Because people would now need to wait for the sync to finish before they could give their payer an address...

    getaddress from the console.

  19. sipa commented at 12:00 AM on January 5, 2016: member

    How about showing a popup warning when creating a new address if in IBD saying "Warning: as you are not yet synchronized with the network, it may take a while before funds sent to this address will show up."

  20. dabura667 commented at 12:08 AM on January 5, 2016: none

    Still, I agree that the warning needs to be more prominent as new users won't realize this little icon is something to worry about.

    New users likely have tunnel vision: need an address right now.

    If they took their time to do the homework, they would know about the x GB y hour download, but in most cases, adoption is started by the notion "ok, I want bitcoin" and they see the word wallet, assume it's instant, then complain to reddit when they don't see their balance.

    The node packaged with the wallet should be an assistant. Helping the user fully verify their payments. But it feels like the wallet is basically a venus flytrap for newbs that traps them into a unique wallet that is difficult to transfer to other apps until they fully sync.

    If I didn't know better, I would think that it was intentionally made that way to inflate Bitcoin Core node counts by trapping them in the wallet.

    Luckily, I know better.

  21. sipa commented at 12:11 AM on January 5, 2016: member

    I totally agree this is a usability failure.

  22. luke-jr commented at 12:24 AM on January 5, 2016: member

    @MarcoFalke Hmm! That warning icon used to be text - and I don't recall users encountering this problem back when it was... maybe changing it to an icon was a terrible mistake. @dabura667 If normal users need to touch the console, something is terribly wrong. @sipa Creating a new address is already a pop-up; I agree adding a noticeable warning there would be an improvement.

  23. MarcoFalke commented at 12:26 AM on January 5, 2016: member

    @luke-jr Do you have the pull # at hand by chance?

  24. MarcoFalke commented at 12:27 AM on January 5, 2016: member

    Regardless, I agree to put a warning in the address pop-up.

  25. luke-jr commented at 1:14 AM on January 5, 2016: member

    It was part of #6110

  26. laanwj commented at 10:56 AM on January 5, 2016: member

    Because people would now need to wait for the sync to finish before they could give their payer an address...

    Yes, I think that's worse. You should be able to give out an address to pay while not synced. Users that do understand how things work would be inconvenienced by this proposal (one practical example: I have a node that I run only intermittently; every time I start it it has to catch up. Having to wait for it to catch up before being able to give out an address every time would be extremely frustrating).

    Making the "Not synced" warning more apparent makes sense, though. Agree with adding some text with what the implications of not being synced are "you will only see up-to-date transactions/balance when catched up with the chain".

  27. dabura667 commented at 12:20 PM on January 5, 2016: none

    If normal users need to touch the console, something is terribly wrong.

    Every user that comes running to reddit gets an ear-full of "oh, go into the console to free your bitcoin from the trap you didn't see coming at all by dumping your private keys and sweeping them with blockchain.info."

    Having to go to the console to dump private keys and then send them to bc.i is 1000 times more of a failure than having to get an address while not synced from the console.

    Making the "Not synced" warning more apparent makes sense

    I would agree with this if "more apparent" means huge red flashing lights and a warning in 20 languages saying that any bitcoins sent to an address right at the beginning of syncing may as well be sent to a black hole for 5 hours - weeks depending on your connection speeds and bandwidth caps. Also tell them not to send any goods to anyone until they're done syncing. As they can not verify payment until fully synced.

    I seriously think people here are underestimating the ability of some people to ignore pop ups and messages. You need to scare people to get them to read anything... so if a little blue triangle is consensus for "warning" then I can only imagine the speed at which people will click through a more apparent warning. (probably fast)

    Rather than scare, I say remove the option all together. Addresses are only good to you if you can verify the transaction as it comes to you in a block or as a 0 conf. If you're waiting for a day, no one should be acting upon funds received this way.

  28. laanwj commented at 1:05 PM on January 5, 2016: member

    A novice versus expert mode paradigm may work here: a start has been made with the option to disable/enable coin control. The novice mode could include some other hand-holding features as well.

  29. dabura667 commented at 1:54 PM on January 5, 2016: none

    A novice versus expert mode paradigm may work here.

    +1 This is reasonable. I think that my original proposal (hiding addresses during syncing) would be good to have for the novice mode default. Then let them choose expert mode to do coin control and mess with addresses during sync. Novice mode being default.

  30. Xekyo commented at 9:44 PM on January 27, 2016: member

    We just had another panicking asker on Bitcoin.stackexchange.com that was worried he had lost an incoming payment, because he freshly installed Bitcoin Core and directly requested some funds to be sent before the wallet was synchronized.

    Judging from the number of times this comes up (e.g. as a question on our site), I feel that a more visible warning would be a useful improvement.

    Rather than hiding the clients receiving addresses as suggested above, there should be a pop-up warning shown when the "Receive Tab" is opened for the first time, and then another, if "Request Payment"/"Show address" is used before synchronization is finished. The warning should have a very visible and short title along the lines of "CANNOT RECEIVE YET", then should explain that payments will only show up and be spendable after synchronization, as well include an indication that this may take hours to days.

    Disabling this for an expert mode sounds great. Is it hard to add such a warning? I'd be willing to invest a few hours.

  31. laanwj added the label GUI on Feb 19, 2016
  32. laanwj commented at 10:00 AM on February 19, 2016: member

    Rather than hiding the clients receiving addresses as suggested above, there should be a pop-up warning shown when the "Receive Tab" is opened for the first time,

    Or rather: any time the client is 'out of sync'. When you've left the wallet closed for a year, the same problem happens. Not so sure about a popup, you could just put a warning at the top with big red letters.

    Is it hard to add such a warning? I'd be willing to invest a few hours.

    No, should be easy to do, as GUI changes go.

    (writing this after receiving a panicked Ukrainian mail about the same thing)

  33. laanwj added the label Easy to implement on May 16, 2016
  34. paveljanik commented at 7:29 AM on September 24, 2016: contributor

    After merging #8371, can we mark this as fixed?

  35. MarcoFalke commented at 8:05 AM on September 24, 2016: member

    Jup, everything is hidden below the overlay. Should be hard to miss now.

  36. MarcoFalke closed this on Sep 24, 2016

  37. laanwj commented at 11:07 AM on September 25, 2016: member

    Thanks @jonasschnelli for addressing this

  38. DrahtBot locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-13 21:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me