一次性签名如何加强Cardano的安全性

How One-shot Signatures Will Strengthen Cardano’s Security | Cardano Explorer (cexplorer.io)

除其他外,卡尔达诺通过使用密钥演化签名(KES)方案来保护账本的不变性。 KES 方案提供所谓的前向安全性。 如果 SPO 的签名密钥遭到泄露,则无法利用它们来覆盖账本历史记录。 这是因为卡尔达诺的协议包含一种机制,其中用于签名块的密钥会被轮换并删除旧密钥。 安全假设之一是质押池运营商 (SPO) 删除旧密钥。 一次性签名(OSS)系统将通过在签署每个新块后使签名密钥自毁来增强卡尔达诺的安全性。 无法再次对区块进行签名,因为没有密钥可以这样做。

前向安全和 KES
前向安全性是加密系统的一项属性,可确保当前密钥的泄露不会因为使用了其他密钥而危及过去会话的保密性。

换句话说,即使对手能够获得解密密钥,他们也无法使用它来解密过去的通信。 这是因为每个会话都使用唯一的密钥,该密钥在使用后会被删除或更新。

卡尔达诺中也使用类似的原理来签署区块。

如果 SPO 的密钥在某个时间点被泄露,则该点之前生成的签名仍然有效且不可伪造。

这是通过将签名者的生命周期划分为多个时期并为每个时期使用不同的密钥来实现的。 每个时期的密钥都是从前一个时期导出的,然后在使用后删除。 公钥在所有时期都保持不变。

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

如果对手获得单个操作员的签名密钥,他只能覆盖该操作员在密钥有效期间铸造的那些区块。 这可以是相对较少数量的块。 老虎机领导者是根据他们的赌注随机抽取的。 卡尔达诺网络中有大量的 SPO。 对手要想有机会攻破卡尔达诺,他不仅需要获得单个密钥,还需要从大量 SPO 中获得许多密钥。

获取签名密钥的一种方法是从 SPO 窃取它们。 如果 SPO 删除旧密钥,它们就不会被盗。 但是,不能强制删除密钥。 SPO 理论上可以保留旧密钥。

OSS系统可以防止攻击的执行,因为不会有可能被滥用的密钥。 每个新块都将使用唯一的密钥进行签名,该密钥仅为一次性签名而创建。

一次性签名
在上一篇文章中,我们解释了一次性签名的基本原理。 这种量子密码学具有巨大的应用潜力。 我们将研究如何使用它来增强卡尔达诺的安全性。

一次性签名可用于实现有序签名,即可以确定一系列消息或块的有效性的特定机制。

OSS系统是一种签名类型,任何密钥都可以用于仅签署单个消息,然后自毁。 这个概念在区块链技术的背景下特别有用,在区块链技术中,维护区块的完整性和顺序至关重要。

区块的顺序至关重要,因为它决定了区块链在任何给定时间点的状态。 如果块的顺序改变,就会导致区块链的不同状态。

数字签名在维持这一秩序方面发挥着关键作用。 当创建一个新块时,它由该块的创建者签名。 该签名充当印章,验证区块的真实性及其在链中的位置。

为每个签名使用唯一的密钥可以提供额外的安全层。 由于每个密钥只能使用一次,因此不可能重复使用密钥来签署不同的块或更改现有块的顺序。 使用 OSS,不可能覆盖卡尔达诺账本的历史。

因此,从本质上讲,有序的一次性签名序列可以帮助用户确定性地识别哪些区块是有效的,哪些是无效的,从而保证区块链的完整性和有序性。

您可以将有序签名视为一系列上锁的盒子,每个盒子都包含一把唯一的钥匙。 这些盒子按特定顺序排列。 每个盒子中的钥匙只能使用一次来解锁该系列中的下一个盒子,然后它会自毁。 这意味着每个秘密密钥(或盒子中的唯一密钥)只能用于签署一条消息。 签名的顺序由框的顺序决定。

在 KES 的上下文中,有序签名可以看作是按特定顺序用于签名的密钥序列。 该序列中的每个键只能使用一次,然后就会自毁。 这意味着即使在同一时期内,也会使用不同的密钥来签署不同的区块。 不仅仅是像今天这样的特定时期的单一钥匙。

这一变化可能会增强卡尔达诺网络的安全性,使其更能抵抗某些类型的攻击。 例如,它可以帮助防止远程攻击,攻击者试图使用旧密钥重写区块链的历史记录。

让我们解释一下有序签名如何工作的基本概念。

当一方签署消息时,他还指定了一个标签 t。 签名密钥允许对任何消息进行签名,但要求消息只能按照 t 递增的顺序进行签名。 也就是说,一旦在标签 t0 处对消息进行签名,就不可能在过去的标签 (t1 < t0) 处对消息进行签名。 因此,每条消息都根据标签 t 进行签名。

公钥将是一次性签名方案的公钥。

要在标签 t 上对消息进行签名,需要构造一个新的一次性签名公钥和私钥对,并将其委托给新的公钥。 签署委托时,签署整个公钥/标签/消息三元组。

签名由原始公钥到最新公钥的整个签名链组成。

验证需要验证签名链以及链中的标签按升序出现。

这个想法是产生新签名的唯一方法是将其附加到签名链中。

因此,一旦对手在标签 t0 处生成签名,他就承诺了他将在标签 t1 < t0 处生成的所有签名。 如果他尝试在 t1 签署不同的消息,这将构成链中的分叉,违反一次性安全属性。

OSS 如何防止对卡尔达诺的攻击?
目前,尚不清楚如何实施 OSS 系统的详细信息。 尽管如此,还是可以假设这样的系统如何工作。

如上一节所述,系统可以使用标签。 标签可以定义块的序列号。 签署新块时,需要增加标签(序列号)。

当一个块被签名并且一个标签被递增时,就会生成一个唯一的标识符。 该唯一标识符与块(块可以由散列表示)、签名和标签的特定组合相关联。

让我们尝试用一个简化的例子来解释它。

想象一下,您正在与朋友(您是 SPO)玩积木游戏。 你们每个人都有一组独特的方块,并且你们正在一起建造一座塔。 每个区块代表一组交易或一条数据,塔代表区块链。

一次性签名就像独特的贴纸,当您将其添加到塔中时,每个人都会将其贴在您的块上。 这个贴纸非常特别,只能使用一次,然后就会消失(钥匙自毁)。 它是使用密钥制成的,就像一根魔杖。 但这里有一个问题 - 魔杖只能创造一张贴纸,然后它就会破裂。

现在,假设您想确保块(或交易)以正确的顺序添加到塔(或区块链)中。 这就是标签和唯一标识符发挥作用的地方。

您用魔棒(或密钥)创建的每个贴纸(或签名)都有一个唯一的标签或标识符。 该标签可以是每个贴纸都不同的数字或代码。 当您将积木放在塔上时,每个人都可以看到贴纸上的标签并准确知道它在序列中的位置。

因此,如果有人试图移动方块或在错误的位置添加方块,您就会知道,因为贴纸上的标签会乱序。 这就是有序签名如何帮助确保区块链中区块的正确顺序的方式。

那么魔杖(或秘密钥匙)呢? 好吧,当您使用魔杖创建贴纸后,它会破裂(或自毁)。 这意味着即使有人找到了你破损的魔杖,他们也不能用它来制作新的贴纸或打乱塔中方块的顺序。

您可以询问是什么阻止某人使用不同的魔杖(钥匙)来构建具有相同或相似的块顺序(标签序列)的不同塔(区块链)。

创建一个与原始区块链的顺序相匹配的不同区块链并不像听起来那么简单。

每个魔棒(钥匙)都是独一无二的,只能为特定块创建贴纸(签名)。 因此,对手不能只使用不同的魔杖为已有的块创建贴纸。

在远程攻击中,对手试图从过去的某个时间点开始创建不同的区块链。 这就像尝试从中间开始建造一座不同的塔。 但请记住,过去区块的贴纸(签名)已经存在并且无法更改。 因此,对手不能只是用新的替换它们。

在区块链中,区块的顺序由缺点决定保障机制。 这就像我们游戏中的一条规则,塔中方块的顺序由所有玩家共同决定。 因此,对手无法自行更改区块的顺序。

结论
一旦OSS在卡尔达诺中实施,安全保障将显着提高。 进行远程攻击几乎是不可想象的。 对手无法在签署区块后立即获得自毁的密钥。