Multi-Asset Shielded Pools
In their technical build, Panther's Shielded Pools are essentially a collection of append-only Merkle trees, where each leaf is a commitment to a UTXO representing a number of zAssets (or zNFTs) –essentially an IOU for the corresponding collateral deposited by a user and locked in the Panther Vault.
This protocol allows the non-interactive transfer of zAssets, where the only prerequisite is that the sender knows the recipient’s public keys. This is achieved using the homomorphic properties inherent to elliptic curve cryptography.
In an elliptic curve setting, let a be a private key, and P = a · G be the corresponding public key, where G is a point (generator) on a curve and a belongs to the scalar field of the curve. Then r · P = (r · a) · G for any R in the scalar field of the curve.
That is, given a public key P, if a public key PM is defined as PM = r · P, then the corresponding private key will be r · a. A consequence of this is that if a Sender modifies the Receiver’s public key P_R as PM_R = r · P_R, then the Receiver can compute the corresponding private key as r·a providing that they know r. To enable the establishment of r, a variant of ElGamal encryption can be used to transport r from the sender to the recipient.