Safecoin Wallet requirements brainstorming

I think I understood your discussion with @neo, so I hope I don’t bring it back to square one with this.

I was thinking that perhaps in order to receive coins you can decide to share 1) just a public key, the pk to be set as the owner of the coin, 2) a public name/ID, any name/string you choose which doesn’t necessarily links to your account or to you as a person/individual:

  1. A public key (pk) which the sender’s app just uses to set the new owner of the coins to tansfer.
  2. A public name/ID could be chosen by the user, the wallet app creates a MD with a XoR name based on it, exactly the same way as the email demo app does it today (although I think this could/should be handled now with the publicNamesContainer so you can also decide which app has access to read/write it).
    This MD contains a list of public keys that the user decided to publish to receive coins. This list is administered by the user thru the wallet app itself, so it can add/remove keys as he/she wishes, or he/she can decide to throw the whole MD away and create new ones with a new public names/IDs.
    The sender’s wallet app, can use this public name/ID to fetch (thru the publicNamesContainer) any of the public keys published there and send the coins.
    This MD can also include some metadata to describe preferences or purpose each key shall be used for, as a hint for the sender’s wallet app when choosing one of them (if there were more than one key in the list of course).

In either case, we can have both the wallet MD’s and messages MD’s XoR names to be based on the public key (perhaps with some predefined or deterministic prefix/suffix). This way just based on the pk the recipient’s wallet app knows where to store the list of coins’ IDs owned by that pk, and both the sender’s and recipient’s wallet apps know where the messages shall be exchanged for a tx.

1 Like