Skip to content

Hydra Protocols Overview

Sebastian Nagel edited this page May 4, 2021 · 1 revision

Hydra is a suite of protocols to generalize multi-party state channels on Cardano in an isomorphic fashion. Here is a very short overview of each of the protocols:

Head

The Hydra Head is the foundation to the other protocols and is formed by a group of online and responsive participants. They open a Head and commit UTxOs to it, perform transactions evolving those outputs while "open" and later can close the final state back to the main chain. Any participant can close the head, when for example another party misbehaves or stalls and there is a mechanism to contest the final state on the main chain. Various flavors exist and differ in how the transactions are sent between the peers and how snapshots are done to avoid or settle conflicting transactions. The full protocol also allows for incremental commits and decommits.

Tail

In a head, all participants must be online - a symmetric construction. In contrast to that, tails are asymmetric: there is a server, which is always online and responsive, with many clients, which are typically offline (e.g. apps on smartphones). The challenge of the tail is, that servers could cheat on the clients (especially when they are offline). The Hydra Tail protocol tries to solve this using two mechanisms: (1) the server needs to put a collatoral on the mainchain, which he could lose when he cheats and (2) a Challenge-Response-Protocol on the mainchain with which clients can dispute claims by a server.

Cross-Head communication

Hydra Heads do generalize payment channels by allowing more than two participants per channel (and support smart contracts). For bitcoin, there is the lightning network, which is based on pairwise lightning channels. The idea of Cross-Head-Comm is to realize such a network for Hydra Heads. This apparently also includes routing across Heads and may even allow to establish Sub-Heads or Meta-Heads, consisting of multiple sub groups of existing Heads. This paper is done in the same spirit: https://eprint.iacr.org/2018/320.pdf

Head-Tail communication

When multiple Tail servers form a Hydra Head together, we can enable clients of one Tail to communicate with clients of another Tail.

Clone this wiki locally