zcash / zips

Zcash Improvement Proposals
https://zips.z.cash
MIT License
270 stars 155 forks source link

What carries value in transparent pools? #800

Open zancas opened 4 months ago

zancas commented 4 months ago

The following sentences are excerpted from https://zips.z.cash/protocol/protocol.pdf#overview paragraph two:

"Transfers of transparent value work essentially as in Bitcoin and have the same privacy properties. Value in a shielded chain value pool is carried by notes 2 , which specify an amount and (indirectly) a shielded payment address,"

This is confusing because the name of the carrier of value for the "Bitcoin-like" (transparent) protocol is not explicitly stated. To properly implement this protocol, naming that value carrier is essential.

Are transparent value carriers "notes" are they "transaction outputs"?

A simple fix would be to add the name of the value carrier in the "Bitcoin like" pool:

E.G. "Transfers of transparent value work essentially as in Bitcoin and have the same privacy properties. Value in transparent chain value pool are carried by SPLARNDUNKLES, which specify SPAMS and HAMS."

zancas commented 4 months ago

The librustzcash implementation defines a TransparentOutput which seems to be roughly analogous to a TxOut and/or to a Transaction Output.

str4d commented 4 months ago

Colloquially we've referred to transparent outputs as "coins" (following Bitcoin) and shielded outputs as "notes" (following the Zerocash paper IIRC). Notes have defined types in the type system of the Zcash protocol spec, due to having several additional requirements; transparent outputs are functionally simpler and don't have this (in part because the Bitcoin protocol was never specified to the same depth as we have specified the shielded Zcash protocol, and we haven't had the time or resources to specify the transparent protocol ourselves).