IOHK官网博客:Mithril:可提高效率的更强大、更轻的区块链

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

IOHK开发的新协议充当基于权益的阈值签名方案,允许透明、安全和轻量级的权益使用

在 2021 年卡尔达诺峰会上,IOHK 研究人员 Pyrros Chaidos 和 Roman Oliynykov 介绍了 Mithril 的设计和目标——IOHK 开展的新研究和工程工作。 Mithril 将提供一种基于权益的阈值签名方案,该方案可以作为解决区块链应用程序中的链同步、状态引导和信任问题的协议来实现。

秘银是中土世界中一种虚构金属的名称——一种具有延展性的材料,重量很轻,但像“三重钢”一样坚固,不会失去光泽或变暗。因此,该名称象征着安全性和开发协议的轻量级方法方面的优势。

利用权益进行签名聚合

让我们从一些背景信息开始,了解 Mithril 对开发区块链解决方案的好处。

Cardano是一个 PoS 区块链,因此共识算法会根据节点持有的权益随机选择节点成为区块生产者。对于某些消息或操作,特定数量的利益相关者提供他们的加密签名很重要。共识协议决定了各个节点如何评估账本系统的当前状态,并具有三个主要职责:

• 执行领导检查并决定是否应该生产一个块

• 处理链选择

• 验证生成的块。

为了在区块链环境中实现更大的可扩展性,必须解决以对数方式依赖于参与者数量的关键操作的复杂性。这意味着参与者的数量越多(假设有很多),有效地聚合他们的签名就变得越复杂。在基本场景中,为了假设一个代表大多数利益相关者的签名,每个利益相关者都需要签署适当的个人消息。尽管这是可能的,但在可扩展性和速度方面效率低下。

考虑到验证特定消息所需的时间以及链同步期间的资源使用情况,提供一种能够在不影响安全功能的情况下快速有效地进行多重签名聚合的解决方案至关重要。

Mithril协议设计

Mithril协议旨在:

• 利用权益获得更高的效率

• 确保透明设置,同时不需要增加信任设置

• 利用尺寸和效率之间的权衡,这是由模块化组件设计保证的。

Mithril在公共环境中工作,在这种环境中签名者不需要与其他签名者进行交互来生成有效的签名。聚合器将所有签名合并为一个,这个过程相对于签名的数量是对数的,这导致 Mithril 聚合的亚线性性能。例如,当应用于 Daedalus 等全节点客户端时,Mithril 可以提升全节点数据同步,确保速度并减少资源消耗。

为了代表总权益的很大一部分,Mithril 使用基于权益的阈值设置。此行为与标准设置不同,在标准设置中,需要给定数量的参与者来验证特定消息。在基于权益的阈值设置中,协议需要总权益的一小部分来验证给定的消息以生成正确的签名。

Mithril还在去信任的环境中证明了共识。这意味着它不包括任何额外的信任假设。有可能达成共识证明除了权益证明中已经存在的假设之外,不包括任何其他假设。例如,它可以在钱包即服务中工作,移动客户端将使用从 Mithril 节点获得的证书。通过高级安全设置,这样的过程可能比 SPO 区块链验证更有效。

最后,为了确保快速链状态引导,签名方案允许不同的利益相关者仅验证链的给定检查点。利益相关者不需要查看给定状态的整个交易历史——他们只需要通过检查点来验证最终的权益是否有效。这对于需要在没有全链同步的情况下快速工作的轻客户端应用程序是有益的。 Mithril 签名也可用于轻量级计数验证或加密货币治理决策。

怎么运行的

Mithril通过持有多个单独的彩票 (M) 并认为一个消息是有效的,如果该消息已由多个不同的中奖者 (K) 签署,从而实现多方签名。因此,每个用户都尝试对消息进行签名,然后通过被视为彩票功能的功能传递其签名。此功能允许个人用户检查他们的签名是否有资格成为彩票中奖者,并无需等待即可输出。这与标准设置不同,在标准设置中,插槽领导者需要等到他们的插槽处于活动状态才能参与。一旦在不同的彩票上有案例签名,它们就可以聚合成一个单独的Mithril签名。

阶段

Mithril的设计包括三个阶段:
image

图 1. Mithril 操作的阶段

参数设置

要设置 Mithril 协议,用户需要:

• 修复进行加密的组设置

• 选择指数范围 M,即他们将举行的选举次数

• 设置法定人数K,这是需要签署签名才能被接受的选举获胜者的数量。

为证明系统提供参考字符串也很重要。这以透明的方式是可能的,并且不需要任何高度信任的假设。

初始化

在这个阶段,用户应该更新状态分布。这让每个利益相关者都知道他们持有什么权益。然后,每个利益相关者负责注册他们的密钥。这可能发生在链上或链下。

最后,用户需要分配权益并压缩他们的测试密钥,这是使用 Merkle 树完成的。此函数允许针对代表该 Merkle 树的单个哈希验证 Mithril 签名。因此,验证签名所需的状态大小可以保持较低。

操作

在使用链时,用户可以生成、聚合和验证 Mithril 签名。生成签名涉及用户尝试检查他们生成的签名是否实际上是并行举行的其中一个彩票的中奖者。如果为真,用户将广播他们的签名。如果有足够多的签名支持不同彩票上的特定消息,则可以将它们聚合为单个 Mithril 签名。然后,任何人都可以仅使用证明系统的参考字符串和股权分配的非常短的 Merkle 树哈希来广播和验证它。

例如,单个用户可以使用 Mithril 创建签名,如下所示:
image

图 2. Mithril 签名创建

首先,用户将检查他们持有的权益数量,并通过一个评分函数来获得他们的分数阈值 T。然后,他们将尝试产生一个候选人签名 S。对于每个指标,他们将评估他们是否持有候选人的签名。与他们刚刚签署的消息配对。他们正在检查的彩票的索引号也应该产生一个小于他们的阈值 T 的分值。如果这是真的,那么他们产生的候选签名实际上已经赢得了该特定索引号的彩票。如果没有,他们将进行下一次尝试。

在尝试了所有可能的索引之后,用户可能会拥有一个或多个其签名 S 有效的索引。对于这些索引中的每一个,他们可以输出一个单独的签名,其中包括他们的候选签名、其有效的索引号以及验证他们的分数与注册股份一致的证明。

网络架构

在 Cardano 上实现 Mithril,我们可以将软件交互表示如下:
image

图 3. Mithril 网络架构

围绕权益池运营商 (SPO) 的软件的高级表示包括其与 Cardano 点对点 (P2P) 网络的连接、Mithril 节点的 P2P 网络,以及连接到 SPO 运行的节点的 Mithril 客户端。

SPO平台上的 Mithril 节点访问其在本地存储的经过验证的区块链并运行协议以生成保存在 Mithril 的 Mithril 证书贮存。生成的 Mithril 证书可以在整个网络中可验证地同步。因此,SPO 可以共享完整的 Cardano 区块链和有效的 Mithril 证书列表。当 Mithril 客户端连接到网络时,它会请求一个 Mithril 证书列表,并且只询问 Cardano 区块链的最长链。

多个 SPO 也可以参与这样的设置。然后 Mithril 客户端将验证证书完全确认获得的 Cardano 区块链。整个过程是轻量级的,不需要大量网络存储或计算资源的参与。此外,Cardano 全节点同步和与 Mithril 程序的快速同步并不相互排斥——它们可以并行运行。 Mithril 快速同步将在稍后由全节点同步确认。

用例

让我们来看看 Mithril 适用性非常有益的用例。

Mithril提高了全节点客户端或 Daedalus 等应用程序的效率。它确保了全节点数据的快速安全同步,显着缩短了时间和所需的资源,包括计算、网络交换和本地存储,同时保持高级别的安全保证。

Mithril也适用于轻客户端和移动应用程序,确保一种去信任的方法。另一个显着优势是使用 Mithril 签名来运行侧链。主区块链可以连接到不同的侧链,甚至可以有不同的共识协议。 Mithril 在轻量级区块链状态验证方面具有优势,因此,证书可以以安全的方式验证特定区块链的当前状态以及正向和反向传输的正确性。

最后,无论投票协议的复杂程度如何,基于权益的投票应用程序和治理解决方案都可以使用 Mithril。 Mithril 签名可用于安全和轻量级的计数验证。当利益相关者通过去中心化的决策过程并以简单且可验证的方式提供最终结果时,这在治理中也很有用。

实现

几家公司已经对在其区块链解决方案中实施 Mithril 感兴趣。 Galois 是一家专注于形式化方法、密码学和硬件的先进研发公司,将根据 IOHK 的研究实施第一个 Mithril 原型。由于其快速原型设计功能,Galois 将在 Rust 编程语言中实现 Mithril。他们计划首先使用 BulletProofs 提供较小的签名,然后是生产就绪的实现,最后是正确性的正式证明。

Idyllic Vision是另一家专注于构建基于零知识证明的自主身份协议、组织凭证管理系统以及支持不同社会解决方案之间互操作性的最终用户移动钱包的公司。他们正计划实施 Mithril 节点的概念证明。在接下来的几个月中,他们将开始创建解决方案架构蓝图,定义一些应该开发并有机集成到现有基础架构中的系统组件。这包括与 Mithril 加密库和 Cardano 节点的集成,以及用于节点之间通信的网络层。此阶段的结果应集成到 Cardano 中,以实现节点的快速引导并支持轻量级客户端等额外功能。

要了解更多信息,请阅读 Mithril 研究论文并观看 Cardano 峰会演讲。

原文链接:Mithril: a stronger and lighter blockchain for better efficiency - IOHK Blog