Skip to content

Sapling: don't rely on knowledge soundness of Output proofs to prevent diversified-address-linking oracle attacks #3719

@ebfull

Description

@ebfull

We decided here that the Output circuit would check that the corresponding epk was computed from a known esk w.r.t. the g_d used in the note. The intention of this is to prevent a diversified address linking attack in an interactive setting. This check is enforced under the knowledge soundness assumption of the zk-SNARK scheme (and discrete log of Jubjub, which is not interesting for this attack).

It would be better to send esk to the recipient (in the ciphertext) so that we don't depend on knowledge soundness. This is a pretty simple change that we should consider for Blossom.

There is some concern that including esk in the ciphertext would break the security proof because of some kind of key-dependent encryption thing, but I (personally) would much rather break the security proof and argue heuristically that this is correct than depend on knowledge soundness.

Metadata

Metadata

Assignees

Labels

A-cryptoArea: CryptographyI-privacyProblems and improvements related to privacy.NU4-canopyNetwork upgrade: Canopy-specific tasksspecial to Daira

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions