Author Topic: Watcher keys - possible?  (Read 2087 times)

0 Members and 1 Guest are viewing this topic.

Offline monsterer

I need to embed order info in the memo as a hash.. Gui only gives me 19 bytes to work with so i do md5 with 19 chars length. I also need to unlock the wallet so the host wallet can find the transaction.. Aslong as it still works im fine... The memo must match.. No other data is to be present inthe memo when i query via rpc

The recent hard fork increased it to 51 bytes :)
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BitShares: arhag
  • GitHub: arhag
I need to embed order info in the memo as a hash.. Gui only gives me 19 bytes to work with so i do md5 with 19 chars length. I also need to unlock the wallet so the host wallet can find the transaction.. Aslong as it still works im fine... The memo must match.. No other data is to be present inthe memo when i query via rpc

I think with the latest changes (perhaps they are not yet updated in the client though) you should be able to have 51 characters to work with now instead of 19. Still, 19 is already more than enough considering the code only needs to be unique to your service and only needs to be unique for a narrow window of time (the time between when the order was created and when an unpaid open order expires). The likelihood of collision is incredibly low (but you shouldn't limit yourself to 19 hexadecimal characters only).

Also, just to be clear, the protocol I proposed would still require changes in the sender's, receiver's, and observer's clients. It just doesn't require the blockchain protocol to change or for the delegates to have to upgrade their clients to support the protocol.
« Last Edit: February 16, 2015, 04:03:34 am by arhag »

Offline jsidhu

  • Hero Member
  • *****
  • Posts: 1335
    • View Profile
What about those that use the memo for another purpose like the ecommerce plugins? Will they be affected

I'm not sure if this was directed at my proposal or not. But with the protocol I propose you could either have 18 characters to work with in the memo and the receiver could have an observer who they can pull relevant transactions from, or you could have the full 51 characters but the receiver could have no observer, meaning you would either have to send the funds to the receiver publicly or they would only be able to receive the transaction if they scanned the blockchain for TITAN transactions (this is ignoring the case where the transaction's existence could be notified to them by the sender through methods outside of the blockchain, e.g. BitShares mail).

If one is sending a TITAN transaction to an ecommerce service, we can expect that the service will be a full node scanning the blockchain for transactions meant for it. In that case, there is no need to register that account with an observer and therefore all 51 characters of the memo could be available to the sender for whatever purpose. If this is a transaction the ecommerce service is sending to the user of the service, then the service would only have 18 characters to work with in my proposed protocol (which seems like more than enough to generate a code that is unique for that service).

Of course this is all assuming we want to work within the constraints of the existing system instead of modifying it to give transactions the flexibility of specifying this observer information as additional metadata outside of the memo field.

I need to embed order info in the memo as a hash.. Gui only gives me 19 bytes to work with so i do md5 with 19 chars length. I also need to unlock the wallet so the host wallet can find the transaction.. Aslong as it still works im fine... The memo must match.. No other data is to be present inthe memo when i query via rpc
Hired by blockchain | Developer
delegate: dev.sidhujag

Offline arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BitShares: arhag
  • GitHub: arhag
What about those that use the memo for another purpose like the ecommerce plugins? Will they be affected

I'm not sure if this was directed at my proposal or not. But with the protocol I propose you could either have 18 characters to work with in the memo and the receiver could have an observer who they can pull relevant transactions from, or you could have the full 51 characters but the receiver could have no observer, meaning you would either have to send the funds to the receiver publicly or they would only be able to receive the transaction if they scanned the blockchain for TITAN transactions (this is ignoring the case where the transaction's existence could be notified to them by the sender through methods outside of the blockchain, e.g. BitShares mail).

If one is sending a TITAN transaction to an ecommerce service, we can expect that the service will be a full node scanning the blockchain for transactions meant for it. In that case, there is no need to register that account with an observer and therefore all 51 characters of the memo could be available to the sender for whatever purpose. If this is a transaction the ecommerce service is sending to the user of the service, then the service would only have 18 characters to work with in my proposed protocol (which seems like more than enough to generate a code that is unique for that service).

Of course this is all assuming we want to work within the constraints of the existing system instead of modifying it to give transactions the flexibility of specifying this observer information as additional metadata outside of the memo field.
« Last Edit: February 16, 2015, 03:19:32 am by arhag »

Offline jsidhu

  • Hero Member
  • *****
  • Posts: 1335
    • View Profile
What about those that use the memo for another purpose like the ecommerce plugins? Will they be affected
Hired by blockchain | Developer
delegate: dev.sidhujag

Offline fluxer555

  • Hero Member
  • *****
  • Posts: 749
    • View Profile
arhag, you've built up quite an anthology here...

Offline arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BitShares: arhag
  • GitHub: arhag
It may even be possible to implement something like this with the current multisig system, but I would have to look into that.

I am pretty sure it is possible to implement this with the current blockchain (no hard forks needed) without even needing multisig.

I discussed it here: https://bitsharestalk.org/index.php?topic=14116.msg184004#msg184004

Offline vikram

This might be possible with a new type of deposit that specifies a different key for the memo, but we have no plans to build anything like this. It may even be possible to implement something like this with the current multisig system, but I would have to look into that.

I did wonder about that - does multisig work for titan?

We don't support it but it still supports encrypted memos.

Offline monsterer

This might be possible with a new type of deposit that specifies a different key for the memo, but we have no plans to build anything like this. It may even be possible to implement something like this with the current multisig system, but I would have to look into that.

I did wonder about that - does multisig work for titan?
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline vikram

The point of stealth addresses is to never use the same destination key twice. So you cannot know which key to watch.

Is it possible to issue a different, read only, watcher key which would allow the recipient to see all transaction details, but not to actually spend any of the outputs?

This might be possible with a new type of deposit that specifies a different key for the memo, but we have no plans to build anything like this. It may even be possible to implement something like this with the current multisig system, but I would have to look into that.

Offline monsterer

As I understand it, the only way to confirm you own a titan transaction is to decode the memo with your private key?

Is it possible to issue a different, read only, watcher key which would allow the recipient to see all transaction details, but not to actually spend any of the outputs?

I know light wallets are supposed to make this semi redundant, but to me titan is a cool feature to lose. In addition something like this could enable developers to build hack resistant wallets because you could simply not store any private keys in the wallet at all, and sign all transactions only on demand, so even if the physical hardware containing the wallet was stolen, the funds are still safe.
« Last Edit: February 15, 2015, 08:08:51 pm by monsterer »
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads