随机性、签名脚本与交易不定形
作者:ochekliye enigbe
来源:https://enigbe.medium.com/randomness-signature-scripts-and-transaction-malleability-51f4ee1c2cbd
隔离见证的激活带来了一系列的变更,包括对交易不定形(transaction malleability)的修复 —— 所谓交易不定形,就是交易的标识符(整个交易的 SHA256 哈希值)会在交易内涵没有变更的情况下改变。一个交易通常包含下面几个字段:版本、交易的输入(包含前序交易的哈希值、输出的索引号、签名脚本、sequence)、交易的输出(包含面额以及公钥脚本)以及 locktime(时间锁)。
这些字段除了签名脚本之外都不能改变,不然会使交易作废。在交易被哈希之前,包含解锁脚本的字段会被清空(因为一个签名不能签名自身),因此有可能改变解锁脚本而不使交易的其余部分作废。就因为因为这一点,不同的解锁脚本可以表示同一笔交易。这是为什么呢?
一开始,我以为这跟签名的计算方式有关;用来签名交易的算法中嵌入了随机性。
从我的角度看,理解签名过程的底层数学原理应该会有所启发。因此,在本文中,我会解释我对签名的基本数学的理解、为什么不同的签名(延伸来说是解锁脚本)可以用在同一笔交易上、为什么隔离见证能够修复交易不定形问题。
签名的基本数学
签名是一种证明签名者知晓(或者说拥有)一个秘密值(即私钥,记为 e)而无需公开这个值的方法。我们知道,在非对称密码系统中:

- 等式 1. 使用私钥和生成点计算公钥 -
这里的 G 就是生成点,P 就是 e 的公钥。
要签名一个交易哈希值时,需要选择一个随机数 k,使得:

- 等式 2. 计算签名 -
我在这里假设了 G 在椭圆曲线上,R 也在椭圆曲线上,因此,可以用曲线上的两个点(以及加法)得出 R 的位置(加法在一个有限域中是封闭的)。这样的点 (u, v) 可以由签名者选出,如下图所示:

- 图 1. 椭圆曲线以及曲线上的 uG、vP 和 kG 点 -

- 等式 3. 离散对数问题 -

已知 eG = P,则可以转化为:

- 等式 4. 签名的目标 -
等式 4 可以理解为离散对数问题(discrete log problem)的另一种形式,因为要么你知道 e,可以选出 k 使得 (k - u) / v = e (从而解出 eG = P),那么你就只能用暴力尝试的办法来找出成立的 (k, u, v) 数组。
在为一笔交易生成一个有效的签名 S(r, s) 之时,我们需要:
得出交易的哈希值 z —— 注意,需要清空解锁脚本并添加适当的签名哈希标签
选出一个随机数 k
计算 kG = R(r, y) 并取出其 x 坐标值 r
计算 s,使得交易的哈希值 z 与私钥 e 可以通过下面的方式选出的 u 和 v 结合成签名:

r 和 s 就构成了对该交易的一个有效的签名。
为什么不同的签名脚本可以用在同一笔交易上
由上可知,任何能够满足上述等式的 k(不能重复使用,对每个签名都是唯一的)、u 和 v 的组合都是对给定签名哈希值 z 的有效签名。从签名者的角度看,这当然很好。因为交易的签名者可以签名同一笔交易许多次,为同一笔交易生成不同的有效签名。签名会被嵌入到交易的签名脚本中,然后广播到网络中。
但是,网络中的一些恶意用户可以在收到广播过来的交易后,稍微改变它、创建出一笔新的、变形了的有效交易;新交易在本质上与被广播的交易没有什么不同,但却具有不一样的交易 ID。这些交易花费同样的输入、给同样的输出转移相同的价值,因此会相互冲突,只有其中一笔才能挖出、加入到账本中。如果变形了的交易被挖出了,原交易会因为花费同样的输入而无法上链。
那么交易可以怎么变形呢?恶意用户可以修改签名脚本的签名格式、为签名脚本加入额外的指令、在签名脚本上使用加密技巧(见 Rosenbaum(2019) )。基本上,改变了交易的签名脚本,就会改变交易的序列化形式,从而改变交易的标识符。
隔离见证与交易不定形的修复
隔离见证提议将签名脚本数据移到另一个字段 —— witeness 字段,并且该字段不会用于计算交易 ID,所以签名脚本字段的变化不会影响交易的标识符。
结论
随机性以及每个签名唯一的 k 的选取,让签名者可以让交易数据产生变化。他们可以为一笔交易生成不同的签名,虽然最后只有一个会嵌进解锁脚本中。在隔离见证实施以前,签名后的交易在广播过程中,用户可能会遭遇变形攻击:恶意用户可以修改广播交易的签名脚本字段,从而改变交易的标识符。而有了隔离见证,签名脚本的数据会移到一个不影响交易 ID 计算的字段中,从而消除了变形攻击界面。
注:
如有任何反馈,不胜感激。不论是觉得本文有用,还是发现了事实性错误,请不吝在在我的推特 @engb_os 中留下评论。
参考文献:
Antonopoulos, A. (2017). Mastering bitcoin: Programming the open blockchain
Song, J. (2019). Programming bitcoin: Learn how to program bitcoin from scratch
Rosenbaum, K. (2019). Grokking Bitcoin
(完)
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
您可能感兴趣
-
官方首次对稳定币定性,稳定币的幻想可以结束了
也意味着行业从此不需要再围绕“灰色可能性”反复试探。来源:曼昆区块链法律服务这是28日的一场会议,重要程度远超新闻标题本身。公安部、网信办、中央金融办、两高、外管局、证监会、金融监管总局等一整套“国家
-
Hotcoin Research |本轮牛市结束了吗?深度解读比特币四年周期的“变”与“不变”一、引言:周期规律的“变与不变” 比特币每隔约四年减半一次供应增量,这一机制也塑造了加密市场的周期起伏。然而,自2024年4月完成第四次减半以来,比特币价格和整个加密市场的表现却呈现出不同以往的新特点
-
当市场陷入极度恐惧,谁在逆势抄底?Hotcoin Research | 2025 年 11 月 24 日-28 日加密市场表现 当前,加密货币总市值为 3.09 万亿美元,BTC 占比 58.5%,为 1.8 万亿美元。稳定币市值为 3061 亿美元,最近7日增加 1.08%,稳定币数量在本周逆转,开始出现正增长
-
BiFinance币汇将捐赠100万港元,驰援香港大埔火灾救援及重建工作BiFinance紧急启动公益援助计划,将捐赠100万港元 用于救助与慰问,支持受困群体的生活安置、应急需求及基本物资保障,以确保援助与关怀能够直达最需要帮助的人。 在救助的同时,BiFinance也
-
央行首次重磅定调稳定币,市场将向何处去?作者:蔡鹏程,钛媒体 编辑:刘洋雪,钛媒体11月29日,中国人民银行官方发布文章《打击虚拟货币交易炒作工作协调机制会议召开》,对于虚拟货币及稳定币进行了最新论述。 文章对稳定币进行了最新定调,“稳定币
-
Cobie:长线交易文章作者:Thejaswini M A 文章编译:Block unicorn前言 2012 年,乔丹·菲什(Jordan Fish),也就是 Cobie,当时有 200 美元和一个难题。 他当时是布里
-
钱志敏带走的 400 亿比特币,能归还中国吗?
“我们的核心诉求非常明确——物归原主,也就是归还中国受害者。”来源:中国新闻周刊“钱志敏”,这个名字葛秋已经有好几年没看到了,围绕这个名字以及背后的蓝天格锐投资案,讨论已逐渐沉寂。直到近两个月,她所在
-
难怪巴菲特最后押注了谷歌
“谷歌把全链条攥在自己手里。它不依赖Nvidia,拥有高效、低成本的算力主权。”作者:马泪泪来源:吴晓波频道CHANNELWU巴菲特曾说,“永远不要投资一家你无法理解的企业”。然而在“股神时代”即将谢
- 成交量排行
- 币种热搜榜
OFFICIAL TRUMP
泰达币
比特币
以太坊
USD Coin
First Digital USD
Solana
瑞波币
币安币
大零币
狗狗币
莱特币
Sui
波场
Avalanche
FIL
OKB
LUNC
SHIB
ZEN
DOT
UNI
ETC
CAKE