本文介绍了适应性签名(Adaptor Signature)的基本理论,包括其在Schnorr签名和ECDSA签名中的应用。文章详细解释了适应性签名的构造、单签名者与双签名者场景下的应用,并探讨了其在不同场景中的实现方式。
适配器签名系列
1. 适配器签名 - Schnorr 签名和 ECDSA - 2. 适配器签名在 Schnorr - 跨链原子交换 - 3. 适配器签名在 Schnorr - 闪电网络 - 4. 适配器签名在 ECDSA 5. 适配器签名在 ECDSA 的离散对数合约中
在2017年宣布的 无脚本脚本 的背景下,有很多关于“无脚本合约”的讨论(这个术语在本博客中指的是一般的非脚本支付条款)。无脚本合约基于适配器签名。在本博客中,我们将解释适配器签名的一般理论。
条件,如多重签名和时间锁,可以使用比特币脚本创建。这些条件(脚本)在区块链上是可见的,任何第三方都可以查看。有些情况下,用户希望不公开该条件。此外,脚本的大小还会使主链拥堵。
比特币使用 ECDSA 签名。Schnorr 签名并没有被采用为比特币签名方法,因为它直到2008年才解除专利。让我们比较 ECDSA 和 Schnorr 的签名公式。以下 红色字母 是秘密值,黑色字母 可以与对方共享。
Schnorr 签名的方程仅包含线性项,这使得通过简单地将它们加在一起来创建多方签名成为可能。另一方面,ECDSA 签名方程中的 r-1 项阻止我们这样做。
请注意,尽管 Schnorr 签名的线性特性简化了多重签名协议的构建,但仍然必须采取一些预防措施,例如防止恶意密钥攻击。Mu-Sig 协议包括防止此类攻击的步骤。详细信息请参见 这里。
从高层次来看,适配器签名是一种加密签名 s’,可以证明可以解密为消息 m 的签名 s。加密可以使用秘密密钥 t 或公钥 T。一般来说,如果进行加密的一方知道 t,则使用 t 来加密;如果他们不知道 t,则选择使用 T 来加密。在此适配器系列中,我们将前一种方法称为 “私钥调整”,后一种方法称为 “公钥调整”。
适配器签名可以用于单签名者上下文或两个参与方上下文。让我们首先探讨单签名者的情况。
3–1. 单签名者 Schnorr 适配器签名 在单签名者的情况下,创建签名的一方,例如 Alice,想要向另一方 Bob 提供只能通过秘密 t 解密(因此可以使用)的签名。然而,即使不知道 t,Bob 也可以验证解密后的签名将在给定消息 m 上有效。
适配器 Schnorr 签名通过在签名计算中引入 t 或 T 来创建(称为“调整”)。通过从适配器签名中添加(或减去) t 来完成签名。签名验证无需使用如 p, r,_ 和 t 之类的私密信息。
3–2. 双方适配器签名
在双方适配器签名的情况下,Alice 和 Bob 参与一种多重签名协议,使 Alice 能够获得 Bob 的签名部分,同时保证 Bob 在 Alice 使用(公开)多重签名时,会了解秘密 t(并且没有人能知道这个秘密)。
在本章中,我们讨论了适配器签名的构建及其变体。在接下来的章节中,我们将采用这些概念,看看我们可以用它们实现什么。
参考: 无脚本脚本(2017年5月,Andrew Poelstra) 简单的 Schnorr 多重签名及其在比特币中的应用(2018年,Gregory Maxwell,Andrew Poelstra,Yannick Seurin2,Pieter Wuille) 快速安全的双方 ECDSA 签名(2017年,Yehuda Lindell)
- 原文链接: medium.com/crypto-garage...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!