Cointime

扫码下载App
iOS & Android

探索比特币Schnorr签名背后的数学奥秘:提升隐私与扩展交易功能

个人专家

作者:cryptography. 编译: Cointime.com QDD

引言

比特币领域的许多文化文章都会吹嘘以下触目的话语:

Schnorr签名将改善比特币在多重签名交易中的隐私!

...然而,大多数人选择忽略使这个陈述成立的巧妙数学。这种数学并不令人费解。我们只需要对椭圆曲线密码学有基本的了解,Schnorr签名的好处很快就变得非常令人兴奋。

预备知识

让我们都了解一下:

符号 含义
G secp256k1曲线的基点。
m 我们要签名的消息(字节数组)。
H(x) SHA-256哈希函数。
n secp256k1曲线的阶。在曲线上有可能的有效非零点,加上“无穷远”点(也称为零点)。
X⬅Zn 从模中随机采样整数。请注意,在采样时我们排除零。
a II b 字节数组和的串联。

一般而言,大写变量如表示椭圆曲线上的点,而小写字母如表示普通自然数,称为标量。

弗兰肯斯坦登场

为了理解Schnorr签名对比特币开发者的重要性,我们需要将其与我们目前使用的ECDSA进行比较。如果您选择跳过这部分,我可以理解。

但为什么ECDSA这么糟糕呢?

首先,当签名时需要计算随机数的模乘逆,以及在验证时需要计算签名的模乘逆。糟糕。更准确地说,无聊。与其他离散数学运算相比,模乘逆运算非常慢。

此外,看看我刚才写出的步骤数量。它更像是一项手术过程,只是碰巧涉及您的私钥,而不是一个签名算法。

此外,ECDSA签名是可塑的。是一个有效的签名,但也是!这可能会对某些应用程序造成干扰,因为它们希望签名不会改变。遗留比特币P2PKH地址仍然容易受到这种影响 - 如果签名的值被反转,任何从P2PKH支出的交易的交易ID都可能会改变。

此外,ECDSA的安全性证明相当薄弱

再者,ECDSA(及其前身DSA)最早是在九十年代初发表的,以绕过Schnorr签名的专利,该专利在2008年到期。比特币自起源区块以来一直在使用Schnorr的仿制品。现在是时候升级到品牌名了。

Schnorr签名

与ECDSA相比,Schnorr签名以其优雅的简洁性为人称道。

1. 随机采样一个随机数。

r ←Zn

2. 将基点乘以。

R=rG

3. 使用随机数点、签名公钥和消息进行哈希以得到挑战。

e=H(R II D II m)

*如果您在其他网站上阅读有关Schnorr签名的内容,可能会看到挑战计算为。比特币中使用的变体称为前缀键Schnorr,其中挑战还与签名密钥相关联。

4. 使用私钥计算签名。

s=r+ed  mod n

最终签名是元组(R,s),其中是R曲线上的一个点,s是一个标量值。

验证Schnorr签名很容易。只需将上述等式的两边都乘以,并检查它们是否相等。

e=H(R II D II m)

sG=R+eD

验证者假定知道公钥D和消息m,否则他们在验证什么呢?验证与哈希一样快速,然后是两个点乘法运算和一个点加法运算。

通过简单地分解可以很容易地证明签名是有效的。

由于类似secp256k1这样的密码学安全的椭圆曲线的属性,要计算一个曲线点的离散对数是不可行的(尚未可行)。这就是为什么在不知道私钥的情况下无法伪造签名,但可以使用容易验证的。

但这些特定的等式为什么有效呢?

我无意逆向证明Schnorr的设计,但也许我至少可以指出每个步骤和每个变量在试图攻击该方案的人的角度来看都在做什么。

回顾一下Schnorr签名的定义。

请注意:

  • 和都是从模集合随机采样的,即。
  • 随机数在每个签名中都会改变,而私钥保持一致。
  • 可以由任何知道(可能是)公共参数的人计算得出。

当签名者将私钥与挑战相乘时,这会得到另一个标量值,签名者只有在知道的情况下才能计算出这个值。例如,只知道和的人无法计算。

那么添加的目的是什么?为什么不让签名成为?因为是公开的,所以任何观察者都可以通过求逆运算计算私钥。

d=s·e-1

这就是为什么必须保持秘密且均匀随机:这些特性防止观察者能够通过签名来计算签名者的私钥。

如果观察者知道签名中使用的值,他们可以计算签名者的私钥。

s=r+ed

ed=s-r

d=e-1(s-r)

另一个常见的问题是:必须对每个签名使用不同的。如果在两个不同消息上使用相同的随机数进行签名,那么由于可以通过解一个方程组来计算签名这两个消息所使用的私钥。

有趣的是,这种对的定义指示了一些令人意外的事情。是笛卡尔坐标系上连接点和之间直线的斜率,但仅在两个签名之间重用。

相反,如果我们在创建两个签名时使用了两个不同的随机数,观察者无法在不知道和的情况下解出。因为没有可用的方程组。

如果我们使用不同的随机数来对同一消息进行签名会怎样?这会导致任何问题吗?不会,因为请记住,挑战也与随机数相关联。

e=H(R II D II m)

如果随机数改变,也会改变。即使只是将其与和相关联,攻击者仍然需要知道或来计算。

但这为什么如此酷呢?

1. Schnorr更快。

2. Schnorr比ECDSA更简单实现。

3. Schnorr签名不可塑。

4. Schnorr具有非常可靠的安全性证明。

5. Schnorr允许线性签名聚合。

我在那里加粗了第五个功能,因为这个特性对比特币未来的潜力非常重要。

聚合器还是鳄鱼?

在ECDSA中,签名聚合几乎不可能。ECDSA门限签名是可以实现的,而且很方便,但是与Schnorr的线性签名聚合相比,它们既不容易也不快。而且,如果还不够强大,Schnorr甚至可以比ECDSA更好地实现门限签名。

当我说Schnorr签名是线性的时候,这意味着Schnorr只需要简单的标量加法和乘法运算。验证也是如此:只需要点加法和点乘法来验证签名。而ECDSA则需要模乘逆来进行签名和验证。

这个听起来有点晦涩的解释可以简化为一个非常重要的事实:

对于给定消息的一组Schnorr签名的总和是在生成这些签名的公钥的总和下的有效签名。

换句话说,如果一群不同的签名者合作签署相同的消息,这些签名可以相加以产生一个聚合签名。如果还将签署者的公钥求和以获得一个聚合公钥,那么聚合签名将在聚合公钥下是有效的。

简单示例

假设您有三个具有自己的私钥和公钥对的参与方。他们每个人都会采样自己的私人随机数。

姓名 公钥 私钥 随机数
Alice Da da ra
Bob Db db rb
Carol Dc dc rc

他们都希望签署相同的消息,并且自然而然地就基点G和哈希函数H(x)达成了一致。

1. 他们各自独立地计算自己的公共随机数点。

2. 他们就一个聚合随机数点达成一致。

3. 他们就一个聚合公钥达成一致。

4. 他们将消息与这个聚合随机数点和聚合公钥一起进行哈希。

5. 他们各自计算签名的份额。

6. 他们将彼此的值发送给对方,并通过将所有值相加进行聚合。

最终的聚合签名为(R,s)。

要进行验证,回想一下签名(R,s)中的公匙D在消息m中有效,如果:

对于我们的聚合签名来说,这将成立。回想一下Alice、Bob和Carol的聚合。

我们的验证是有效的,因为通过聚合签名,我们还聚合了个体的随机数和私钥(乘以)。然后我们可以因式分解,这意味着我们将其与一个聚合私钥相乘,并添加了一个聚合的秘密随机数,尽管参与者之间从未公开他们的私钥或秘密随机数。

因此,乘以和将满足等式。

然而

如果在对抗条件下(共同签署者不信任彼此)使用此示例作为多签名协议,它将存在一个隐藏的缺陷。您能看出是什么吗?

提示:攻击向量在聚合过程中非常早。

好处

Taproot结合使用,开发者可以将大量聚合公钥的任意组合嵌入到一个单一的调整公钥中,该公钥编码了一系列可能的花费条件,但在正常条件下看起来仍然像普通的公钥。

比特币开发者现在可以使用诸如MuSig的多签名签名方案和ROAST等门限签名协议,比以往使用ECDSA时具有更高的效率、安全性和隐私性。

现在任何给定的公钥都可以是大量子密钥、脚本、门限公钥等的聚合。

评论

所有评论

推荐阅读

  • 菲律宾央行批准Coins.ph试点菲律宾比索支持的稳定币PHPC

    菲律宾央行在监管沙盒下批准Coins.ph试点一种以菲律宾比索为后盾的稳定币。该试点将评估稳定币在“实际应用中”的效益。Coins.ph表示,菲律宾央行已批准其试点名为PHPC的菲律宾比索稳定币。该项目将在BSP的监管沙盒框架下进行,由Coins.ph在菲律宾银行账户中持有的现金和现金等价物支持。Coins.ph计划将稳定币整合到向菲律宾汇款的国家的汇款平台中。

  • Ripple提交寻求封存并修订部分SEC诉讼文件的动议

    5月14日消息,Ripple在5月13日的最后期限前提交了一项动议,要求对救济动议的简报和某些证据进行狭义的修订。该公司表示,其密封请求是合理的,并与法院在诉讼的简易判决阶段批准的密封请求一致。在周一提交动议之前,Ripple的律师与美国金融监管机构进行了磋商。美国SEC表示,其接受Ripple的一些请求,并可能对其他请求提出异议。 根据文件,Ripple试图编辑若公开披露可能对公司、无辜第三方和Ripple员工造成伤害的信息,寻求对包含其审计财务报表和相关文件进行狭义的修订。

  • 俄当局拟对在住宅公寓内运营的加密货币矿工处以高额罚款

    俄罗斯当局已提议对在住宅物业中运营的加密货币矿工嫌疑人处以巨额罚款。当局还可能考虑对《行政违法法典》(Code of Administrative Offenses)进行修订,对滥用电力者追究责任。

  • 5月14日午间要闻速递

    1.前SEC主席:Coinbase的"缺乏规范清晰性"论点是非常缺乏说服力的

  • TheoriqAI完成620万美元Super-Seed轮融资,Hack VC领投

    5月14日消息,模块化AI代理基础层TheoriqAI在X平台发文宣布完成620万美元Super-Seed轮融资,Hack VC领投,Foresight Ventures、HTX Ventures、Figment Capital、HASH CIB、Inception Capital、Antalpha Ventures、NewTribe Capital、Stateless Ventures、Bitscale Capital、Construct Ventures、Hypersphere、IOSG Ventures、LongHash Ventures、HashKey Capital、SNZ Holding、Chainlink等参投。

  • 比特币上每日蚀刻的新符文数量已降至250个以下

    过去六天,比特币上每日蚀刻的新符文数量已降至250个以下,周一蚀刻了157个符文,较4月底的峰值下降了99%。根据RUNES创建的Dune Analytics仪表板,在4月26日至30日期间,平均每天蚀刻14,700个新符文,其中4月26日蚀刻了创纪录的23,061个符文。 自Runes于4月20日推出以来,已向比特币矿工支付了总计450万美元的交易费,每天约为189美元。迄今为止,比特币上已刻有超过91,200个符文。

  • 前SEC主席:Coinbase的"缺乏规范清晰性"论点是非常缺乏说服力的

    前SEC主席John Reed Stark表示,美国证券交易委员会刚刚在Coinbase案的新法律备忘录中辩称,Katherine Polk Failla法官3月份的命令认定,美国证券交易委员会充分证明了Coinbase提供了证券,该命令应该成立。 另一方面,Coinbase认为,监管部门对什么是证券缺乏明确规定,这需要上诉审查。正如我上周作证时所说,Failla法官驳回Coinbase驳回SEC案件动议的命令(以及许多类似的命令,如Kik、Telegram、LBRY和Terra Form Labs等等)和数十年的法律依据,为Coinbase提供了监管清晰度和80年的法律先例。换句话说,Coinbase的"缺乏规范清晰性"论点是非常缺乏说服力的。

  • 巴塞尔银行监管机构将银行加密资产规则推迟至2026年

    巴塞尔银行监管委员会(Basel Committeeon Banking Supervision)的主管机构,央行行长和监管负责人小组(GHOS)将银行加密资产新规的合规期限推迟了一年。该项目的最晚日期改为2026年1月1日。

  • 香港比特币ETF昨日总赎回量519.5枚,连续3日呈现净赎回

    根据 SoSo Value 数据,香港比特币现货 ETF 昨日(5 月 13 日)单日净赎回比特币 519.5 枚,比特币持有总量为 3560 枚,单日成交额为 425 万美元,总净资产为 2.19 亿美元。目前香港比特币现货 ETF 连续 3 日呈现净赎回。资产规模方面,华夏 ETF 持有 1690 枚 BTC 排名第一,博时 Hashkey 以及嘉实分别持有 989.93 枚以及 881.18 枚 BTC。另外,香港以太坊现货 ETF 昨日(5 月 13 日)单日净赎回以太坊 2270 枚,以太坊持有总量为 13350 枚,单日总成交额为 72.6 万美元,总净资产约为 3912 万美元。资产规模方面,目前博时 Hashkey ETF 持有 6300 枚 ETH 排名第一,华夏以及嘉实分别持有 4670 枚以及 2390 枚 ETH。注:香港加密 ETF 支持现货申赎机制,净申购是指一定时间段内申购金额和赎回金额之差为正,即买入比卖出多,反之则为净赎回。

  • 荷兰法官将于5月14日就Tornado Cash开发者Alexey Pertsev案作出裁决

    5月14日消息,荷兰法官将于今日就 Tornado Cash 开发者 Alexey Pertsev 的案件做出裁决。31 岁的 Pertsev 被控参与通过加密货币混币器 Tornado Cash 洗钱 12 亿美元。如果 Pertsev 被判有罪,专家预计这将对全球开源社区产生「寒蝉效应」。开发人员可能会担心代码被滥用而不敢编写,投资也可能会减少。如果 Pertsev 被宣判无罪,那么法官将接受他的解释,即 Tornado Cash 核心技术——智能合约——是独立于人为干预而合法运行的。更重要的是,此类平台的管理者不对使用该技术的人负责。此案的裁决结果将改变加密隐私的发展方向。