This decreases the ring size observed by the recipient,
but not the ring size observed by another observer.
The more data, the greater the ring size reduction.
CLSAGs can carry a maximum of 252 bits per value (one
bit is used as a flag, the rest as data payload), and
there are 15 such values per ring. At close to full
capacity, the real spend will be known to the recipient
(though not to an observer, who will not even be able
to tell whether a transaction includes embedded data
or not).
Thanks to kayabaNerve for pointing out how to use s
for this.
There are quite a few variables in the code that are no longer
(or perhaps never were) in use. These were discovered by enabling
compiler warnings for unused variables and cleaning them up.
In most cases where the unused variables were the result
of a function call the call was left but the variable
assignment removed, unless it was obvious that it was
a simple getter with no side effects.
- fix integer overflow in n_bulletproof_amounts
- check input scalars are in range
- remove use of environment variable to tweak straus performance
- do not use implementation defined signed shift for signum