Frequently asked questions
What is Hydra?
When Hydra?
What is the difference between layer 1 and layer 2?
Is the Hydra Head protocol secure?
So what’s this I have heard about ‘1M TPS’?
Can anyone use the Hydra Head protocol?
When is the Hydra Head protocol a good fit?
The Hydra Head protocol is well-suited for situations where a known set of participants know each other well enough to agree on building a network but don’t trust each other enough to manage funds without securing their assets. This security is backed by the possibility of settling disputes on layer 1.
Can I run Plutus scripts inside a head?
Yes! Transactions running between head participants are fully developed Alonzo transactions. They carry scripts and spend UTXOs in the same manner as layer 1 transactions. Each Hydra node runs a Cardano ledger and maintains a ledger state.
Can a third party run a Hydra node on behalf of wallet owners (eg, running managed Hydra heads)?
Totally! This is similar to Phoenix in Bitcoin Lightning: a non-custodial managed lightning node. As an end-user, you retain full control over your keys and funds, but the underlying infrastructure is managed on your behalf (with associated fees). However, this setup requires some level of trust in the service provider to handle contestations and head closures properly.
What is the relationship between Hydra heads and Hydra nodes?
It is (at least*) a one-to-many relationship. Each Hydra head consists of several Hydra nodes. We currently aim for up to 100 nodes per head as a stretch goal. Heads are independent and form isolated networks, allowing for infinitely many heads to run in parallel.
(*) It is possible for Hydra nodes to support multiple heads, creating a many-to-many relationship.
Is the Hydra Head protocol a sidechain?
No, it isn't. There are two crucial reasons why Hydra heads are not considered sidechains:
There's no guaranteed data availability in Hydra. Transactions are (a) only known to head participants and (b) typically forgotten once processed. There are no blocks in a Hydra head, and participants have no incentive to keep the history or make it available to users outside the head.
A head network is static; new participants cannot join and must be decided upfront. The network is isolated and private, accessible only to a set of well-known participants.
If the Hydra Head ledger is configured with a non-zero transaction fee, where do the paid fees go?
Setting protocol parameters with fee > 0
ensures that Hydra Head (layer 2) transactions consume more than they produce. On layer 1, the UTXO remains unchanged, and the difference accrues. Currently, when settling an agreed state from layer 2 on layer 1 during fanout, this difference becomes spendable by the head participant who posts the fanoutTx
.
Is it possible to use different protocol parameters in the Hydra head?
Yes, the ledger used for layer 2 transactions in a Hydra head is configurable, allowing for the same or different protocol parameters as those used in layer 1. However, there is an important caveat to consider:
If UTXOs are snapshotted on layer 2, they must be fanned out on layer 1 exactly as they were recorded in the snapshot.
Examples
Minimum UTXO value (
minUTxOValue = 0
):- Outputs with no 'ada' on layer 2 would be disallowed on layer 1, preventing their fanout. This restriction makes direct fanout impossible for such outputs. Even using partial fanout, as considered in this feature, would not permit the fanout of affected UTXOs.
Maximum transaction execution units (
maxTxExecutionUnits(L2) > maxTxExecutionUnits(L1)
):- Outputs directed to scripts, which are too costly to validate on layer 1, can still be fanned out but will become unspendable due to exceeding the allowable execution limits on layer 1.
Remember, with great power comes great responsibility. It is crucial to carefully manage and align the layer 1 and layer 2 settings to ensure seamless operability and avoid unintended consequences in transaction processing.