他山之石丨硬核讲解比特币签名如何一步步缩短


技术的突破是推动区块链行业前进的引擎,binance中国区块链研究院与链闻 ChainNews 同为密切关注区块链与密码学等领域技术发展前沿的组织,故而联合推出「他山之石」专栏,向中文世界读者介绍全球范围最值得关注的区块链技术进展,以及在金融等产业最新的应用分析与动态,以期为中国的区块链行业「攻玉」提供借鉴和思考。

本文介绍了 BIP-340 提议使用的 Schnorr 签名与 ECDSA 签名相比,缩短了 6 到 9 个字节,可节省更多区块链空间。

撰文:0xB10C,比特币开发者
翻译:Chen Bo Yu、Hsu Tzu Hsiu

数字签名是比特币协议中的重要构件,占区块链上存储数据的很大一部分。这篇文章详细介绍了已编码的椭圆曲线数字签名算法(ECDSA)签名大小在过去几年中是讲解持续的降低,以及对新提出的 Schnorr 签名与目前使用的 ECDSA 签名的长度进行了比较。

在比特币协议中,没有使用隔离见证 (Segwit)的交易,数字签名存放于 UTXO 中 input 的 SigScript 栏位,而使用隔离见证的交易则会存放于 Witness 栏位。一个数字签名由编码过的 r 和 s 值以及说明了对交易的哪一个部分进行了签名的 SigHash 标志组成,其中 r 和 s 值都是 256 比特(32 字节)的整数。

比特币客户端自第一个版本以来,都是依靠 OpenSSL 进行签名验证和编码。ECDSA 签名采用 ANS.1 编码规则中定义的唯一编码规则(DER)进行编码。虽然 DER 编码只允许字节序列以唯一的一种方式表示签名,但 OpenSSL 库会将由 DER 标准所衍生的其他编码同样视为有效的。而当 OpenSSL 库中这一特性发生变化时,会导致一些使用较新 OpenSSL 版本的节点拒绝来自使用旧版本库的节点的链。为此,BIP-66 提出了一个软分叉(Soft fork)的提案,只有严格遵循 DER 编码的签名才会被接受。

一个 DER 编码的 ECDSA 签名以一个 0x30 标识符开始,标识一个复合结构。下面的是一个长度字节,表示结构的长度,然后是复合结构本身。复合结构包含 r 和 s 的整数值,这些值用会将用来表示整数的 0x02 标识符放在开头,后面是一个长度字节,定义各自的值的长度。

他山之石丨硬核讲解比特币签名如何一步步缩短-第1张图片-binance下载比特币中 DER 编码的数字签名格式

然而 ANS.1 编码规则中使用的是有符号整数(Signed),而 ECDSA 中的 r 值和 s 值是无符号整数(Unsigned),因此当 r 值或 s 值的第一个比特被设置为 1 时数值会被错误的判断。为了解决这个问题,在数值前加上了一个 0x00 字节,让无符号整数被编码为一个正整数。在原始的 r 值与 s 值中,若第一个比特为 1 则我们称它为高的,否则被称为低的。

他山之石丨硬核讲解比特币签名如何一步步缩短-第1张图片-binance下载由高的 r 与高的 s 所组成的 73 字节比特币 ECDSA 签名

r 值和 s 值的产生是随机的,当两个值都为高时(两个值的第一个比特都为 1),它们都需要在开头加上一个 0x00 字节。加上了两个额外的字节以及 SigHash 标志,签名的总长度为 73 字节。可以发现到在同一个签名中,r 与 s 两个值都为高的概率是 25%。直到 2014 年初,在比特币区块链上的签名可以观察到大约 25% 为 73 字节、50% 为 72 字节和大约 25% 为 71 字节的分布。在 72 字节的签名中,两个值中一个是高的,另一个是低的,而在 71 字节的签名中,两个值都是低的。

2014 年 3 月 Bitcoin Core v0.9.0 发布后,具有高 s 值的签名比例开始减少。这个版本包含了对 Bitcoin Core 钱包的修改,让钱包只创建低 s 值的签名。随着 2015 年 10 月 Bitcoin Core v0.10.3 和 v0.11.1 的发布,高 s 值的签名被认定为非标准签名,以彻底消除可变动性向量。这就禁止了高 s 值的交易被转发或用于挖矿。从 2015 年 12 月开始,在比特币区块链上几乎所有交易的签名中的 s 值都为低的。

他山之石丨硬核讲解比特币签名如何一步步缩短-第1张图片-binance下载由高的 r 与低的 s 所组成的 72 字节比特币 ECDSA 签名

2015 年 12 月至 2018 年初,区块链上的签名几乎平均长度在 72 和 71 字节之间。 72 字节的签名中有一个高的 r 值和一个低的 s 值,并且需要一个预置的 0x00 字节。而 71 字节的签名是由低的 r 值和低的 s 值组成。

2017 年 8 月底,隔离见证(Segwit)软分叉激活。隔离见证将包含签名等内容的 SigScript 移入 Witness 栏位中。虽然在计算交易的大小时,隔离见证交易的签名将不列入计算,但区块链上的签名大小实际上是不变的。

他山之石丨硬核讲解比特币签名如何一步步缩短-第1张图片-binance下载由低的 r 与低的 s 所组成的 71 字节比特币 ECDSA 签名

2018 年 10 月发布的 Bitcoin Core v0.17.0 版本包含了对 Bitcoin Core 钱包的改进,只产生 71 字节的签名。通过用不同的 nonce 重新签署交易,可以产生新的 r 值,直到找到一个低的 r 值。该技术已被其他项目采用,如 NBitcoin 库和 Electrum 比特币钱包。

BIP-340 为比特币引入了 Schnorr 签名,而 BIP-341 提出了基于 Schnorr 签名、Taproot 和 Merkle 分支的第一个版本的 SegWit 输出类型及其支出规则。与 ECDSA 签名不同的地方是,Schnorr 签名不是 DER 编码的。

他山之石丨硬核讲解比特币签名如何一步步缩短-第1张图片-binance下载Schnorr 签名的格式

Schnorr 签名包含 32 字节的 r 值和 32 字节的 s 值。最常用的 SigHash 标志 SIGHASH_ALL 是默认的,不需要明确设置,而其他的 SigHash 标志被放在 s 值之后。使用默认 SIGHASH_ALL 标志的 Schnorr 签名的长度正好是 64 个字节,使用不同的 SigHash 标志的签名长度则为 65 字节。

他山之石丨硬核讲解比特币签名如何一步步缩短-第1张图片-binance下载一个 64 字节的 SIGHASH_ALL 比特币 Schnorr 签名

与 ECDSA 签名相比,Schnorr 签名缩短了 6 到 9 个字节。这些节省来自于被移除的编码开销和默认的 SigHash 标志。在 Schnorr 签名采用率为 20% 的情况下,假设每天花费的 800,000 个 UTXO input 中都只包含一个签名,那么每天可以节省 1MB 上面这些的区块链空间。

相关阅读

A Layman’s Guide to a Subset of ASN.1, BER, and DER – An RSA Laboratories Technical Note – 1993Create the shortest transaction – Eternity Wall Blog – 2017Exact probabilities of obtaining a DER encoded signature of a certain length – Eternity Wall Blog

来源链接:b10c.me

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
标签:
上一篇2025-08-18

相关推荐

  • 中国投资资讯网邮币卡 中国投资资讯网邮币一尘网交易网

    投资收藏界的新宠——中国投资资讯网邮币卡近年来,投资收藏市场风起云涌,各类藏品层出不穷,邮币卡作为一种具有传统文化底蕴和较高投资价值的藏品,吸引了越来越多投资

    2025-08-18 11:56:47
    2082
  • 十大知名虚拟货币币圈免费行情软件app 细数十大币圈免费行情软件appapp排行榜

    在数字货币市场日益火爆的今天,许多投资者都在寻求优质的行情软件,以便实时了解市场动态,市面上的币圈行情软件层出不穷,质量参差不齐,为了帮助大家更好地选择适合自己

    2025-08-18 11:56:47
    2007
  • 2300欧元是人民币多少钱_2300欧元是人民币多少钱啊

    c罗转会费是多少2300万欧元北京时间8月31日,尤文官方消息,与曼联就C罗转会达成完全协议,转会费1500万欧 800万欧附加。据英媒报道,曼联正在申请向让C罗穿回7号球衣。

    2025-08-18 11:56:47
    2006
  • yfv币今日行情_yfi币今日行情

    【yfv币今日行情】随着数字货币市场的不断发展,越来越多的加密货币开始受到投资者的关注,YFValue(YFV)币作为近期市场上的一种新兴加密货币,也逐渐吸引了众多投资者的

    2025-08-18 11:56:47
    2005
  • 当前usdt价格_usdt交易价格

    USDT(Tether)是一种与美元挂钩的稳定币,其价格通常接近1美元,市场价格可能会受到供需、市场波动等因素的影响,导致其价格出现波动,由于我无法提供实时数据,要获取当前USD

    2025-08-18 11:56:47
    2005
  • 量子币现在的价格多少钱

    你们好,今天我要跟你们聊一聊最近备受关注的量子币,也许你们在各大媒体、论坛甚至是朋友口中都听说过这个词,但对于量子币现在的价格以及其背后的原理,你是否真的了解

    2025-08-18 11:56:47
    2005
  • 基金协会咨询电话_基金业协会咨询电话

    向基金业协会进行投诉?大家知道怎么弄吗如果您想向基金业协会进行投诉,可以按照以下步骤进行:首先,收集相关证据和文件,包括投资合同、交易记录和沟通记录等。然后,访问

    2025-08-18 11:56:47
    2004
  • 私募基金研究员学历_私募基金研究员学历要求

    量化研究员好不好量化研究员前途好。一般大型金融机构对量化岗位的学历要求都在硕士以上,外资机构就不用说了门槛更高,国内公募资管和顶尖的量化私募,尤其是管理数十

    2025-08-18 11:56:47
    2004