Cardano如何使用密钥演化签名

How is Key-Evolving Signature used in Cardano? | Cardano Explorer (cexplorer.io)

密钥演化签名方案是卡尔达诺用来保护账本不变性的一种数字签名方案。 用于签署区块的私钥会定期轮换。 旧密钥被删除,因此它们不能用于锻造过去生产的块。 让我们仔细看看这个机制。

了解前向安全性
传统的签名方案是验证数字消息或文档的真实性和完整性的方法。 它允许发送者将一串数据(称为签名)附加到消息中,任何人都可以使用发送者的公钥进行验证。

让我们解释一下传统的签名方案是如何工作的,以便您更容易理解前向安全性。

签名方案通常由三种算法组成:密钥生成算法、签名算法和验证算法。

发送者(消息的作者)生成一组私钥和公钥。 他必须小心保管私钥,并将公钥提供给每个想要验证消息的人(验证者)。 发送者使用私钥对消息(通常是消息的摘要/散列)进行所谓的签名。 所有验证者都可以通过公钥验证其真实性和完整性。

消息的接收者(验证者)确信它是由作者(私钥的所有者)生成的并且消息没有被更改。 安全性基于私钥不被泄露的假设。

在下图中,您可以看到Alice和Bob之间通过互联网(危险区域)安全发送消息时加密密钥的所有过程和使用。 Alice 小心翼翼地保存了生成的私钥,并与 Bob 共享了公钥。 然后她签署了该消息并将其发送给鲍勃,鲍勃可以通过公钥对其进行验证。

所有加密货币用户都应该熟悉所描述的原则,因为在签署交易并将其提交到区块链网络时会发生类似的情况。

想象一下,Bob 是验证 Alice 是否可以花费数字资产的区块链网络。 如果是这样,网络将交易写入区块链(通过区块),其他人就有权使用资产。 如果Alice保护好她的私钥,世界上没有其他人可以花掉她的数字资产。

传统的数字签名方案依赖于秘密密钥永远不会被对手泄露或窃取的假设。 然而,由于硬件故障、软件错误、恶意软件攻击或人为错误等多种因素,这种假设在现实中可能并不成立。 如果对手获得了传统数字签名方案的密钥,他们就可以伪造任何过去或未来消息的签名,并使所有签名消息的真实性和完整性失效。

密钥演化签名方案(KES)是一种旨在提供前向安全性的数字签名方案。

前向安全意味着,如果签名者的密钥在某个时间点被泄露,则该点之前生成的签名仍然有效且不可伪造。 这是通过将签名者的生命周期划分为多个时间段并为每个时间段使用不同的密钥来实现的。 每个时期的密钥都是从前一个时期导出的,然后在使用后删除。 公钥在所有时期都保持不变。

KES 可以防止对手获得密钥,从而可以伪造任何过去或未来消息的签名。 在这种情况下,攻击者可以使所有签名消息的真实性和完整性失效。

KES 将每个密钥的范围限制在特定时间段内,并确保旧密钥被删除且不可恢复。 因此,即使对手获得了某个时期的密钥,他们也只能伪造该时期的签名,而不能伪造任何先前或未来时期的签名。

在下图中,您可以看到时间分为 5 个时段。 在第一阶段,签名者(发送者)生成私钥1和公钥1。他与验证者(接收者)共享公钥1。 在周期 2 中,生成了新的私钥 2,然后删除了私钥 1。 这在周期 3 中重复,其中生成了新的私钥 3,并删除了私钥 2。

注意,所有周期的验证者总是使用相同的公钥1来验证所有消息。

周期 3 处于活动状态,只有私钥 3 可以用于对消息进行签名。 私钥KEY 1和KEY 2已被删除,因此消息1和2无法伪造。 如果对手成功获得私钥 3(这是当前唯一存在的私钥),他就无法更改过去的消息,即消息 1 和 2。他只能更改第 3 时段的消息。如果对手无法生成密钥 对于未来的时期,他也无法更改未来的消息。

KES方案在卡尔达诺中如何使用
卡尔达诺必须确保区块链的不变性。 ES 方案用于权益池运营商对区块进行签名。

为了矿池的安全运行,需要生成多个密钥。 在本文中,我们将仅关注 KES 密钥。 要充分理解该主题,有必要了解整个密钥生成过程、证书的创建以及所有密钥的使用。

权益池运营商需要拥有三种类型的密钥:权益池密钥(也称为运营商密钥)、KES 密钥对和 VRF 密钥对。 密钥对是配置池节点(热存储中必须有签名 VRF 和 KES 密钥)和创建证书的先决条件。

权益池密钥是一个离线密钥对(存储在冷存储中),用于标识权益池(更准确地说,它是密钥的哈希值)。 签名权益池密钥用于签署证书。

KES 密钥对是一个在线密钥对(签名 KES 密钥存储在节点上的热存储中),用于对区块生产者进行身份验证并随着时间的推移而演变。 验证KES密钥用于验证矿池新生成的区块的签名。

VRF 密钥对是另一个在线密钥对,用于私人抽签(时隙领导者选举),并证明在给定时隙中铸造区块的权利。 在本文中,我们将重点关注 KES 密钥。

首先,权益池必须通过注册权益池证书进行注册。 该证书除其他外还包含验证权益池密钥 (ID) 和验证 VRF 密钥。 池注册不需要定期更新。 操作密钥证书用于更新 KES 密钥。 正如您稍后将看到的,该证书会定期更新。 两个证书都必须由签名权益池密钥签名。

通过使用签名权益池密钥(冷存储)对操作密钥证书进行签名,池运营商将签名区块的权利转移给 KES 密钥。

操作密钥证书包含两个验证(公共)密钥:权益池密钥和 KES 密钥。 此外,还有证书计数器和有效期。 有效期表示证书的有效时间段(或时段)。 操作密钥证书提交到网络并存储在区块链上。

所有节点都会跟踪验证所需的信息。 VRF 密钥和计数器证书是节点无需搜索区块链即可立即获得的信息。

所有矿池运营商必须创建操作密钥证书并将其提交到区块链。 操作密钥证书代表操作员的离线密钥和操作(热)密钥之间的链接。 该证书包含验证 KES 密钥,并且必须由签名权益池密钥(冷存储)签名。 新块必须由签名 KES 密钥(热存储)签名。

证书允许网络中的所有节点通过验证KES密钥来验证区块的真实性和完整性。

在下图中,您可以看到操作密钥证书的创建。 主要注意使用签名权益池密钥(操作员密钥)对证书进行签名。 如果热私钥被泄露,对手仍然无法访问运营商冷存储的私钥。

如果操作员发现私钥(热)已被泄露,则只需创建并提交具有增加的证书计数器的新操作密钥证书即可。 这将使之前的证书失效。

在下图中,您可以看到块 N+1 包含一个操作密钥证书,其计数器的值为 N。矿池运营商决定提交一个新的证书,其计数器的值为 N+1。 事情发生在N+5街区。 旧证书现已失效。

正如我们已经说过的,所有证书(在这种情况下,权益池注册证书和操作密钥证书)都存储在区块链中,因此它们可供网络中的每个完整节点使用。 这对于验证节点从网络接收的块非常重要。

要在给定槽中签署区块,区块生产者需要使用 KES 私钥。 在此之前,节点将 VRF 输出和 VRF 证明插入块头(以及其他一些内容)。 签名 KES 密钥用于生成签名,任何人都可以使用操作证书中相应的验证 KES 密钥来验证该签名。 新创建的区块和证书(包含 KES 密钥)之间的链接是权益池密钥 (ID) 的哈希值。 ID也是块头的一部分。 因此节点很容易从块头中取出ID并使用它在本地证书集中找到相应的证书(验证KES密钥)。

VRF 函数用于生成任何人都可以使用权益池注册证书中的公共 VRF 密钥进行验证的证明。 证明表明区块生产者已被选举通过基于提供的输入的 VRF 函数:槽 ID、随机数、签名 VRF 密钥和池的总权益(VRF 输出与基于权益计算的阈值进行比较)。

在下图中,您可以看到新区块的铸造和验证。 权益池注册证书和权益池(区块生产者)的操作密钥证书已经在区块链中,并由签名权益池密钥(冷存储)签名。 图中区块链中只有一个区块。 验证者节点拥有验证其本地状态的块所需的所有验证密钥和数据。 在铸造区块之前,从存储在区块链中的证书中检索密钥和数据。 区块生产者节点将池 ID(验证权益池密钥)、VRF 输出和证明以及其他用于验证的数据插入到区块中。 然后它使用签名 KES 密钥对块进行签名。 验证者节点可以通过检查 VRF 数据和 KES 签名(以及其他东西)轻松验证区块。 请注意验证者节点如何从区块链中存储的数据创建必要的本地状态。

为了将 KES 密钥更新到下一个时间段,区块生产者需要使用一种预定义的算法,从旧密钥中派生出新的 KES 密钥,然后删除旧密钥。 这样,任何时候都只存储一个KES私钥,并且不能用于伪造之前时期的签名。 KES公钥保持不变,因此无需更新操作证书或在区块链上重新注册。

密钥将在每个 129,600 个时隙(一天半,在此期间大约产生 6,500 个区块)之后自动演化,并且在需要更新之前最多可以演化 62 次。 换句话说,一个周期持续 129,600 个时隙(秒)。 操作密钥证书的有效期为 90 天,之后将失效。 它鼓励矿池运营商定期轮换其运营密钥。

在下图中,您可以看到如何每个周期定期生成新的 KES 密钥,并在 3 个月后生成新的操作密钥证书。 卡尔达诺节点可以根据权益大小在每个时期铸造多个区块。

在卡尔达诺中使用KES方案的优点是在密钥泄露的情况下提供更强的安全保证。 如果对手获得了区块生产者的 KES 私钥,他们只能伪造当前时期的签名,而不能伪造任何先前或未来时期的签名。 此外,他们无法重写历史或创建分叉,因为他们无权访问 VRF 密钥或操作员密钥。 因此,使用 KES 方案可以降低失去对权益池的控制或损害其声誉的风险。

KES 方案确保卡尔达诺区块链的历史是不可变的。 安全性基于这样的假设:矿池运营商遵循协议并删除旧的 KES 密钥,并且网络高度去中心化,即存在尽可能多的矿池运营商。 运营商(签名者)越多,他们相互合作危害网络的风险就越小。

如果矿池运营商没有按预期删除以前的私钥,那么他们可能会将其出售或泄露给对手,然后对手可以使用它们来伪造过去添加的区块的签名。 这将破坏该方案的前向安全属性,并允许对手篡改签名区块的历史记录。

如果活跃矿池运营商不删除并保留私钥以供以后使用,那么他们出于经济动机会保护 KES 私钥。 停业(并出售所有 ADA 币)的运营商不再有经济动力来保证 Cardano 网络的安全,并且有可能出售旧的 KES 密钥。 值得注意的是,来自一个操作员的密钥只允许覆盖一小部分区块,具体取决于操作员的权益以及他生成区块的时间。 为了覆盖区块链的历史,对手必须获得一半以上的旧密钥。

数十个最大的运营商或数百个较小的运营商将不得不违反协议规则并为此故意保留密钥。 这似乎不太可能。

未来,甚至可以通过所谓的一次性签名加密技术来消除这种风险。 这允许私钥仅用于单个签名。 随后,可以发布私钥,而不会对其所使用的数字签名造成任何损害。

结论
KES 和 VRF 加密技术使卡尔达诺能够以有效的方式确保区块链的不变性和时隙领导者(有权在给定时隙中生成区块的节点)的随机选择,即无需使用证明 -工作量(PoW)。 PoW 本质上满足了我的角色。 在 PoW 网络中,第一个找到复杂密码任务解决方案的节点将挖掘该块(随机选择节点)。 挖掘区块需要花费大量的能源,这从本质上防止了区块链的历史被覆盖。 只要再次消耗相同的能量并且对手链成为最长的链,就有可能重写历史。

通过现代密码学在确保账本的随机选择和不变性方面实现更高的效率是一项重要的技术进步,特别是在网络的长期经济可持续性和环境保护的背景下。