Merkle Trees
Merkle trees
In development on testnet
Introduction
Pantherβs Shielded Pool architecture includes the following Merkle trees:
Bus processes UTXOs collectively by batching them
Taxi processes UTXOs individually
Ferry manages UTXO data in the multi-chain Panther ecosystem
In the dApp, users can choose between batched processing (taking the bus) and fast processing (taking the taxi) from the toggle available under the Fee section when submitting a transaction.
Bus tree
Within the βBusβ tree, each leaf is a commitment to:
An βassetβ UTXO representing a zAsset (or zNFTs) (essentially an βIOUβ for the corresponding underlying collateral locked on the Panther Vault)
βzAccountβ UTXO, a record that keeps information about the owner of a zAccount
The name Bus Tree refers to the UTXOs being committed to the tree in batches of up to 64 UTXOs rather than individually. To get on the βbusβ, a UTXO needs to be queued and wait until a zMiner processes that queue.
The βbusβ approach makes the process more cost-efficient as all UTXOs in a queue share processing costs. As such, the individual cost for a transaction per user is much lower. On the other hand, users are dependent on the zMiner to process the queue. Just as users of a blockchain incentivize miners to pick up their transactions by defining how much they are willing to pay for βgasβ, Panther Protocol users define the reward (denominated in $zZKP) that they are willing to pay to the zMiner who processes their UTXOs.
Taxi tree
Taxi tree has been released with Stage 5 of the testnet dApp.
To avoid "waiting for the bus," the Taxi tree allows UTXOs to be processed individually to enable near-instant spending. This removes the wait time required to process a batch, with an extra cost tradeoff.
Last updated