Skip to content

Consider removing send_transparent() RPC and CLI command from release build. #819

@dan-da

Description

@dan-da

Background

Any "privacy coin" can have largely transparent sends if the sender publishes the information known to them, such as txid, amount, recipient address, and hash of confirmation block.

This is largely true even of Monero, which claims "privacy by default". Monero provides no built-in or standard way for the sender to publish such information.

note: Monero uses stealth addresses, so recipient is unknown even if sender publishes recipient address. However often a sender will know recipient's real-world identity anyway and could publish or reveal it.

Anon Set Size

The usefulness of a privacy coin depends on having a large anonymity set. In the worst case, if all other transactions are transparent and Sally makes a "private" send, then her tx is fully identifiable. In the opposite extreme, if all other tx are private, and Sally makes a private send, then her tx is indistinguishable from all the others.

So privacy aspects of the cryptocurrency are directly tied to the percentage of people performing private sends, with 100% being the optimal number.

Platform / Exchange Risk

Large nodes such as exchanges tend to perform a large number of transactions. If such a node decides to send all Tx as transparent, that can significantly reduce the anon set size and thus lower privacy for all network participants, including those using private sends.

Further, exchanges and other large nodes may be responding to external pressures that incentivize or require them to use transparent transactions, even if they might not otherwise.

Two Approaches

The path Monero has chosen is simply to not provide the transparent send as a built-in option. Now, it is true that an exchange could still publish the information they have using some ad-hoc fashion, but to my knowledge that has never actually happened. Instead they either perform sends privately (as intended) or do not support monero at all.

By contrast, ZCash does provide a transparent-send option. In the early years I believe over 90% of ZCash tx were transparent. Exchanges by far preferred to use the transparent method.

Eliminate the Option / Temptation

So to me then the Monero approach is superior, at least for now. By making it harder, unsupported, undocumented, and non-standard to send a transparent tx, the monero community has effectively quelched that behavior. That doesn't mean it is foolproof or will stand the test of time, but so far it seems to have worked.

As such, I suggest that neptune-core should consider removing transparent-send as a documented, supported feature.

Another axis for discussion would be: how can we ensure a large anon-set if the transparent send feature remains?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions