IOHK官网博客:实施 Hydra Heads:迈向完整 Hydra 愿景的第一步

image
原文来自IOHK Matthias Benkort, 由卡尔达诺大使陈哲Anson翻译

Hydra Head 是一套协议中的第一个,是 Cardano 扩展之旅的重要元素。让我们看看它如何融入更大的愿景,它也许打破一些神话。

我们已经完成了科学和理论。我们为可扩展、多功能和高吞吐量的区块链奠定了基础。现在是稳定增长和系统增强的时候了。卡尔达诺的目标是创建一个优化的生态系统以支持和促进去中心化应用程序 (DApps) 的开发,目前处于 Basho 阶段的山脚下。有了智能合约,Basho 就致力于扩展和网络优化。 Hydra协议是这方面的关键组件。

我们之前讨论过 Hydra。 Hydra 是一组旨在解决网络安全性和可扩展性功能的第 2 层解决方案。它最初是在 Ouroboros 研究团队的工作中构思出来的,实际上自最初的论文发表以来已经形成了一条独立的道路。 Hydra 提供更高的吞吐量、最小的延迟和经济高效的解决方案,而无需大量存储。 Hydra Head 协议早在 2020 年就已经形成,从那时起,我们的想法得到了发展——特别是在这个早期实施和概念验证阶段。在最初的想法的基础上,Hydra Head 协议成熟为概念验证,并且随着我们朝着更明确的测试网 MVP 实现迈进,并继续这样做。

我们已经看到了很多兴奋(太好了!)以及误解和不理解(不是那么好)。其中大部分来自想法陈述,而不是实际的协议实现,我们早期的一些博客可能导致了这些误解。但是 Hydra Head 协议不仅仅是关于 SPO 的实施,而是与理论上的“100 万 TPS”一样——需要注意并更好地解释。

在本文中,我们(Hydra 工程团队)概述了我们当前的进展、方法以及近期和长期路线图。我们将揭开一些误解的神秘面纱,阐明好处并反思发展挑战。

Hydra Head简述

让我们首先重新介绍 Hydra Heads,它不仅涉及P2P之间的强大网络层和集成的 Cardano 分类帐,还涉及驱动 Hydra Head 生命周期的几个链上脚本(智能合约)。

Hydra Head 是可证明安全的同构状态通道。简而言之,它是一组受限参与者之间的链下迷你账本,其工作方式与链上主账本类似(尽管速度要快得多)。

首先要了解的是,通道是两个或多个对等点之间的通信路径。成为负责人的一部分意味着成为这些同行中的一员。通道形成孤立的网络,可以与主网络并行发展。在这些替代网络上,参与者遵循不同的、更简单的共识算法:每个人都需要就所有通过的交易达成一致。这样做的结果是,作为参与者,我不能输掉我没有明确同意输的钱。为什么?因为任何有效的交易都需要我的明确批准。

组成负责人时,参与者可以向其投入资金。这意味着将链上的资金转移到一个脚本地址,该地址根据特定规则锁定它们。该脚本保证了链上协议的安全执行,特别是参与者不能互相欺骗。然而,在任何时候,任何参与者都可以决定通过关闭它来退出 Head。在这种情况下,所有参与者都带着他们同意在他们的并行网络上脱链的最新状态离开。

将 Heads 视为“私人扑克桌”,参与者带着自己的筹码玩游戏。参与者可以玩多久就玩多久。如果有人不玩,那么游戏就不会进行。然而,参与者仍然可以自由地拿走他们的筹码。如果他们这样做,游戏将以当前的财富分配结束。

image

图 1. Hydra Head(简化)生命周期

桌上的庄家(链上脚本)确保人们遵守规则,不作弊。最后,出的筹码和进的筹码一样多,但它们可能在游戏过程中被重新分配。虽然最终结果在表外是已知的,但游戏期间发生的所有动作的历史只有参与者知道。

该协议是我们通常称为“Hydra”的一整套协议之一。当前的工程工作重点是实现 Hydra Head 协议,如 Chakravarty 等人在 Hydra: Fast Isomorphic State-Channels 中发表的。

大约在 2021 年底,Maxim Jourenko、Mario Larangeira 和 Keisuke Tanaka 在 Hy 上发布了一个迭代dra Head 称为 Interhead Hydra:两个head比一个好。此迭代定义了一种将两个 Head 互连在一起的方法,从长远来看,可以创建互连的 Hydra Head 网络。以前,有人提到过其他协议,如“Hydra Tail”。然而,这些仍在研究中,以及来自 Hydra Head 协议最近工作的新想法。

对Hydra的误解

最近,我们看到很多评论将 Hydra 定位为 Cardano 可扩展性的“终极”解决方案。可以肯定的是,Hydra Heads 为为 Cardano 构建可扩展性层奠定了坚实的基础。它们是一个重要的构建块,它利用扩展的未使用交易输出 (EUTXO) 模型的强大功能在顶部启用更复杂的解决方案。它们是可扩展性之旅的关键要素,但它们不是最终目的地。

可扩展性不是大约一百万 TPS

在讨论可扩展性指标之前,让我们先澄清一些关于每秒交易数 (TPS) 的事情。在所有可用的指标中,TPS 可能是作为比较手段考虑的最没有意义的指标。交易有不同的形式和大小。虽然这对卡尔达诺来说是正确的,但在比较两个截然不同的系统时更为重要。

想想高速公路和车辆。可以查看高速公路在两点之间可以处理多少“每秒车辆数”(VPS)。然而,如果对于什么是车辆没有统一的定义,那么将 10 VPS 与 100 VPS 进行比较似乎毫无意义。如果示例中的 10 辆车辆指的是大型货运卡车,那么将它们与 100 辆踏板车的交付能力进行比较是否有意义?这同样适用于交易。携带数百个本地资产和输出的交易当然与两个参与者之间的单个 ada 支付不同。

使用 TPS 作为同一上下文中的指标(例如,比较两个版本的 Cardano 节点)是有意义的。将其用作区块链之间的比较手段并非如此。

考虑到这一点,我们建议不仅要考虑吞吐量,还要考虑最终性和并发性作为考虑和讨论可扩展性的重要指标:

• 吞吐量:系统在给定时间内处理的数据量

• 最终性:某个动作的结果对系统中的每个人都变得不可变和真实所需的时间

• 并发性:不同参与者可以在不相互阻塞的情况下完成的工作量

Hydra Heads 擅长在 Head 内实现近乎即时的终结。设置和关闭 Head 的过程可能需要几个块,但一旦建立,交易可以在协作参与者之间快速流动。由于 Hydra Heads 也使用 EUTXO 模型,它们可以同时处理不冲突的交易,再加上良好的网络,可以优化使用可用资源。早在 2020 年对 Hydra Head 协议的首次模拟就表明了非常有希望的“1000 TPS”。我们现在正在根据吞吐量和最终确定性对实际实现进行基准测试。

一个警告:Hydra Head是一小群参与者中的一个非常本地化的构造。这些组最初将是独立的,因此,将其各个指标的总和视为一个整体是具有误导性的。由于组是独立的,并且可以随意独立创建,因此只需将它们相加即可轻松得出任何数字:十、一千、一百万、十亿等。

因此,虽然 Hydra Head 协议的第一个版本将允许小型参与者以低成本扩大他们的流量,但它不会立即为全球消费者对消费者(微)支付或 NFT 销售提供解决方案。为什么?因为 Head 内部的共识要求每个参与者对每笔交易做出反应。并且单个头部不会随着参与者的数量而无限扩展,至少在没有一些额外的工程努力的情况下不会。例如,Hydra Heads 的互连为更大的参与者网络铺平了道路,有效地将本地 Heads 转变为全球网络。我们正在探索其他几个想法来扩展 Hydra Head 协议,以扩大它可以涵盖的用例集。我们将在接下来的部分和未来的更新中详细讨论这一点。

用例和 SPO 的作用

那么Heads什么时候有用呢?当一小群​​参与者需要处理许多快速交互时,Hydra Heads 会发光。想象一下,例如,按使用付费的 API 服务、银行到银行的专用网络,或卖方和一小群投标人之间的快节奏拍卖。用例很多,形式多样。其中一些可能是持续数月的长期领导,而另一些可能更短,只持续几个小时。

我们在 2020 年最初的 Hydra 研究表明,权益池运营商 (SPO) 可能是运行 Hydra Heads 的候选人。然而,由于 Hydra Head 协议已被研究作为概念证明,我们可以坚定地说,说只有 SPO 应该运行 Hydra Head 以确保账本的可扩展性是一种误解。事实上,SPO 在没有理由进行交易(例如,小费或交易 NFT)的情况下,在彼此之间打开 Heads 并没有内在的兴趣。在某种程度上,就 Hydra Head 协议而言,SPO 就像任何其他参与者一样。他们可以成为参与者并与其他同行一起打开 Heads,但任何感兴趣的人都可以。

诚然,SPO 擅长运营基础设施,并且可能是第一批运行 Hydra Head 协议实例的用户。尽管如此,这只允许参与的 SPO 相互交易,这限制了最终用户的用例。只有像 Interhead Hydra 协议这样的高级第 2 层系统设计才需要中介来运行基础设施以使最终用户受益。事实上,我们预计 Hydra Heads 的一种可能设置是为用户提供管理的 Hydra Heads 即服务 (HaaS)。我们可以通过代表最终用户运行基础设施而无需放弃资金保管来实现这一目标,这些最终用户通常既没有兴趣也没有技术技能来维护此类基础设施。

这与目前轻钱包和轻钱包提供商的运营模式非常相似,从长远来看,它们更有可能运行 Hydra Heads。想象一个由 Cardano 生态系统中的顶级轻钱包提供商组成的网络。然后,此类提供商可以促进其用户之间的即时和廉价支付,同时确保整体信任。

我们还设想,面向开发人员和 DApp 提供商的服务可能会成为运行 Hydra Heads 的候选对象。事实上,DApp 开发人员需要访问链上信息。为此,开发人员可能会依赖提供足够接口并通常按月收取使用费的在线服务。 Hydra Heads 可以通过服务提供商和 DApp 开发人员之间的按使用付费 API 调用来改进这一流程,从而实现更加去中心化的商业模式。

路线图

作为一组将随着时间的推移交付的协议,并且将涉及在 Hydra Head 协议之上更精细的第 2 层系统设计,我们经常与 Cardano 生态系统的开发人员接触至关重要。这不是关于“大爆炸”的发布,而是一个迭代的发布周期。我们需要了解开发人员面临的挑战,确保满足他们的需求,并最终确保我们正在构建有用的东西。这就是我们将 Hydra Head 开发为开源 GitHub 项目的原因,从去年的早期概念验证开始。为了实现定期且频繁的发布节奏,我们在 9 月发布了初始开发者预览版 (0.1.0),随后在圣诞节前发布了第二次迭代 (0.2.0)。下一个增量 (0.3.0) 将在 2 月推出。我们遵循语义版本控制,并且每个预发布版本 (0.x.0) 添加了可供我们的合作伙伴和早期采用者在私有和公共 Cardano 测试网上进行测试的功能。

我们很高兴地宣布,我们的路线图现在也可以在 Github 上找到!作为与我们的开发人员社区互动并公开我们开发工作过程的一种方式,您可以在 Hydra Head 存储库中找到功能问题、里程碑和项目板。

虽然我们的重点是创建有意义且功能丰富的版本,因为我们在 1.0.0 版本中沿着测试网和后来的主网成熟度前进,但路线图还包括暂定日期。这些预测源于迄今为止完成的工作和我们对未来工作的估计。我们将以敏捷的方式定期反思内容和日期,以使路线图尽可能准确。

社区反馈至关重要

与 Cardano 主网相比,我们将通过 Hydra Heads 中运行的流量来衡量我们的成功。这意味着如果没有社区,我们就无法实现我们的目标,而 Hydra 只有对当前和未来的 Cardano 用户有用,才能取得成功。

根据您的时间、技能和专业知识,我们欢迎您与我们互动以分享问题、反馈或为开发工作做出贡献。这是一个绝佳的机会,可以一起为 Cardano 构建一个完整的第 2 层解决方案生态系统。 Hydra Head 协议将成为未来许多高级解决方案的第一个构建块。在 IOG,我们已经开始研究其中的一些,但有些将不可避免地(幸运的是!)由我们社区的成员构建,我们期待支持。

我们将在 2 月中旬的开发更新中更详细地讨论 Hydra Heads。订阅我们的 Youtube 频道,加入我们吧!

我要感谢 Sebastian Nagel、Olga Hryniuk、Mark Irwin 和 Tim Harrison 在准备这篇博文时的投入和支持。

原文链接:Implementing Hydra Heads: the first step towards the full Hydra vision - IOHK Blog