Understanding view tags in the v15 update

overview of the update and view tags for anyone not already familiar:

The Monero v15 hard fork update has been successfully implemented as of 13th August 2022, or block 2,688,888. The changes in this update are:

  • Increasing of ring size from 11 to 16
  • Implementation of Bulletproof+
  • Addition of view tags

A view tag is a single byte prepended to a transaction to serve as an identifier. This identifier allows the wallet syncing process to ignore any transactions that don't have a matching view tag/byte.

The byte can be any number 0-255 (two-digit hex number) and only transactions with a matching number have to be checked; meaning only 1/256 transactions have to be checked in the sync process as opposed to having to check all of them. Huge computational savings here, love that.

my questions (let me know if my assumptions in these thought processes are incorrect):

  1. How do we know which view tag values to look for?

Your wallet is syncing and must check the transactions since the last sync to see which your wallet is involved with as the recipient or the sender. The view tag is a shared secret key between sender and recipient, but your wallet only knows of itself as either the sender or recipient. How do you know the counterparty in the transaction in order to generate that secret key/view tag? aka how do you generate the value to know what you're looking for? I'm assuming this must be done with every unique address interacted with

  1. Is there a loss of anonymity with this process?

To what degree does this expose patterns of transactions and reduce anonymity? I suppose it doesn't make a difference when looking at one individual transaction – but is it relevant at scale with multiple transactions between addresses of the shared secret is used to hash multiple times giving the same identifier every time? Do one-time-public-keys fix that? I imagine the process to create the secret key must be deterministic so it can be repeated but then you're dealing with the same secret key value every time between the same two wallets.

submitted by /u/redhigher
[link] [comments]

Leave a Reply

Your email address will not be published. Required fields are marked *