Since funds are going to Arbitrum, why does hiding the destination address matter?
this doesn’t need a partial note. In fact it doesn’t need a note at all.
User already knows all the data so creating a partial note just for bridge information is a waste of DA and gas.
User approves bridge to take 50 USD from its address (authwit)
User calls bridge contract’s private function which transfers their private 50 usd to public to themselves and then proceeds to do your public function execution.
I.E your partial note creation does nothing.
Since it is a public functio, every validator can just see it all the details- this doesn’t leak privacy because the details are going to be public knowledge anyway (“like someone wants to deposit 50 usd to arbtirum and they have added 50 usd to our bridge contract” )
Again since arbitrum is public, the threshold encryption work is not needed - all of this data is gonna be public anyway.
On arbitrum → aztec
Using stealth address is a good idea. It may not be always needed especialyl because aztec is private already so knowing your address doesn’t give me any info.
Though in some cases very nice -
we have been playing with an elegant way of doing stealth address that I’d point you to - What is msg_sender when calling private->public? (Plus a big foray into Stealth Addresses)
the problem is aztec doesn’t have a generic public key - instead like zcash we have several key pairs and account abstraction so simply doing r*G would not help here.
is the threshold signature more like gathering attestations? And once you have attestations your bridge is ok?
For completeness, there is a way to do it without having any aztec destination address at all - just use a secret hash instead and on Aztec anyone with the pre-commitment can claim it.