随机性、签名脚本与交易不定形

互联网 阅读 424 2024-05-06 16:17:38

作者:ochekliye enigbe

来源:https://enigbe.medium.com/randomness-signature-scripts-and-transaction-malleability-51f4ee1c2cbd

隔离见证的激活带来了一系列的变更,包括对交易不定形(transaction malleability)的修复 —— 所谓交易不定形,就是交易的标识符(整个交易的 SHA256 哈希值)会在交易内涵没有变更的情况下改变。一个交易通常包含下面几个字段:版本、交易的输入(包含前序交易的哈希值、输出的索引号、签名脚本、sequence)、交易的输出(包含面额以及公钥脚本)以及 locktime(时间锁)。

这些字段除了签名脚本之外都不能改变,不然会使交易作废。在交易被哈希之前,包含解锁脚本的字段会被清空(因为一个签名不能签名自身),因此有可能改变解锁脚本而不使交易的其余部分作废。就因为因为这一点,不同的解锁脚本可以表示同一笔交易。这是为什么呢?

一开始,我以为这跟签名的计算方式有关;用来签名交易的算法中嵌入了随机性。

从我的角度看,理解签名过程的底层数学原理应该会有所启发。因此,在本文中,我会解释我对签名的基本数学的理解、为什么不同的签名(延伸来说是解锁脚本)可以用在同一笔交易上、为什么隔离见证能够修复交易不定形问题。

签名的基本数学

签名是一种证明签名者知晓(或者说拥有)一个秘密值(即私钥,记为 e)而无需公开这个值的方法。我们知道,在非对称密码系统中:

image.png

- 等式 1. 使用私钥和生成点计算公钥 -

这里的 G 就是生成点,P 就是 e 的公钥。

要签名一个交易哈希值时,需要选择一个随机数 k,使得:

image.png

- 等式 2. 计算签名 -

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

img

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

image.png

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

image.png

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

image.png

- 等式 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 结合成签名:

image.png

r 和 s 就构成了对该交易的一个有效的签名。

为什么不同的签名脚本可以用在同一笔交易上

由上可知,任何能够满足上述等式的 k(不能重复使用,对每个签名都是唯一的)、u 和 v 的组合都是对给定签名哈希值 z 的有效签名。从签名者的角度看,这当然很好。因为交易的签名者可以签名同一笔交易许多次,为同一笔交易生成不同的有效签名。签名会被嵌入到交易的签名脚本中,然后广播到网络中。

但是,网络中的一些恶意用户可以在收到广播过来的交易后,稍微改变它、创建出一笔新的、变形了的有效交易;新交易在本质上与被广播的交易没有什么不同,但却具有不一样的交易 ID。这些交易花费同样的输入、给同样的输出转移相同的价值,因此会相互冲突,只有其中一笔才能挖出、加入到账本中。如果变形了的交易被挖出了,原交易会因为花费同样的输入而无法上链。

那么交易可以怎么变形呢?恶意用户可以修改签名脚本的签名格式、为签名脚本加入额外的指令、在签名脚本上使用加密技巧(见 Rosenbaum(2019) )。基本上,改变了交易的签名脚本,就会改变交易的序列化形式,从而改变交易的标识符。

隔离见证与交易不定形的修复

隔离见证提议将签名脚本数据移到另一个字段 —— witeness 字段,并且该字段不会用于计算交易 ID,所以签名脚本字段的变化不会影响交易的标识符。

结论

随机性以及每个签名唯一的 k 的选取,让签名者可以让交易数据产生变化。他们可以为一笔交易生成不同的签名,虽然最后只有一个会嵌进解锁脚本中。在隔离见证实施以前,签名后的交易在广播过程中,用户可能会遭遇变形攻击:恶意用户可以修改广播交易的签名脚本字段,从而改变交易的标识符。而有了隔离见证,签名脚本的数据会移到一个不影响交易 ID 计算的字段中,从而消除了变形攻击界面。

如有任何反馈,不胜感激。不论是觉得本文有用,还是发现了事实性错误,请不吝在在我的推特 @engb_os 中留下评论。

参考文献

  1. Antonopoulos, A. (2017). Mastering bitcoin: Programming the open blockchain

  2. Song, J. (2019). Programming bitcoin: Learn how to program bitcoin from scratch

  3. Rosenbaum, K. (2019). Grokking Bitcoin

(完)


免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:比特币钱包如何备份?比特币钱包备份及恢复教程 下一篇:返回栏目

相关资讯

  • Farcaster/FT/UXLINK/Cyber,如何寻找Socialfi的北极星指标
    Farcaster/FT/UXLINK/Cyber,如何寻找Socialfi的北极星指标

    社交产品旨在帮助用户建立社交关系、传递信息和拓展社交网络。Web3的社交产品具有金融化特点,如何基于社交网络发行资产是其核心。本文分析了几款发展良好的SocialFi产品,如Farcaster、FriendTech、UXLINK和CyberConnect,探讨了它们的增长路径。其中,UXLINK是最火爆的区块链社交基础设施,活跃钱包数量高达729.5k。未来,可以关注基于熟人社交网络的资产发行。.....

    每日资讯 2024-05-19 11:01 188
  • 一览检查代币是否为诈骗的8种方法
    一览检查代币是否为诈骗的8种方法

    本文介绍了八种方法来识别区块链项目中的诈骗,包括验证代币合法性、检查代码、查看评论、比对黑名单、检查流动性和使用第三方工具。使用DEX时,要检查交易量、交易笔数和用户数量。使用第三方工具可以帮助评估代币的真实价值。遵循这些建议可以避免被骗取资金。.....

    每日资讯 2024-05-19 11:01 565
  • Farcaster:SocialFi板块领导者
    Farcaster:SocialFi板块领导者

    Farcaster是一个去中心化的社交网络协议,通过智能合约和混合存储技术实现用户之间的社交连接、内容分享和数据所有权。它的团队具有强大的行业背景,项目运行速度快,用户体验好。与其他SocialFi项目相比,Farcaster具有更多的能力和优势,使得用户更容易接受和使用。Farcaster的生态系统包括70%的代币分发给社区,15%分配给流动性池,剩余的15%将分配给团队、投资者和生态系统。Farcaster通过独特的框架和Frames插件,改变了传统SocialFi项目的数据存储方式,成为Social

    每日资讯 2024-05-19 11:01 954
  • Glassnode链上周报:跨多个时间框架识别卖方疲劳
    Glassnode链上周报:跨多个时间框架识别卖方疲劳

    长期投资者在牛市中获利,损失主要来自短期持有者。我们使用年龄分解指标来描述日交易者和每周-每月投资者群体中的卖方疲劳情况,并利用链上指标评估目标投资者群体的未实现和实现亏损。市场转折点从内向外展开,利用卖方疲劳框架识别修正和整合期间的转折点。通过评估MVRV比率、SOPR和实现亏损,我们可以识别卖方疲劳的时期。新发布的细分指标帮助我们隔离出个别投资者子集,并通过三个链上指标来识别微型投降点。该框架帮助我们思考在识别卖方疲劳点时应该看到的激励和行为。.....

    每日资讯 2024-05-19 11:01 217
  • 解码dYdXChain:去中心化衍生品交易的未来方向?
    解码dYdXChain:去中心化衍生品交易的未来方向?

    dYdX Chain是一家老牌去中心化衍生品交易平台,经历多次迭代后于2023年推出完全去中心化的区块链。其订单簿由60个活跃验证者管理,实现高吞吐量和可定制性。DYDX代币激励用户提供流动性和参与治理,已向质押者分配超过2000万美元的USDC。dYdX的成功案例展现了独立链的前景,但难以复制,稳妥的方案是在不断堆栈中优化。.....

    每日资讯 2024-05-19 11:01 96
  • BanktoBlock:解读区块链时代的「银行杀手」RWA
    BanktoBlock:解读区块链时代的「银行杀手」RWA

    区块链技术崛起改变了传统金融行业,打开了真实世界资产的数字化市场。RWA代表着一个32万亿美元的机遇,将加速DeFi的发展并弥合传统金融和加密资产之间的鸿沟。RWA的好处包括增加透明度、降低成本、提高流动性和市场效率。机构投资者对Token化产品的兴趣日益增加,预计未来会有更多大型参与者进入市场。RWA领域可以分为抵押借代和非抵押借代,预计抵押借代将是未来的主要增长来源。虽然面临挑战,但RWA作为数万亿美元的机遇,有望成为加密领域的下一个前沿。.....

    每日资讯 2024-05-19 11:01 1005
  • 一文速览2024年顶级加密AI项目
    一文速览2024年顶级加密AI项目

    Token Metrics Moon Awards是备受赞誉的加密货币行业奖项,旨在表彰对该领域做出重大贡献的平台、项目和创举。最新新增类别是《2024年顶级加密货币人工智能项目》,预计主导加密货币领域的最佳人工智能项目包括Token Metrics、Bittensor和Fetch.ai。这些项目通过创新的解决方案推动加密货币行业发展,但也存在投资风险。Token Metrics和Bittensor是领先的人工智能加密货币项目,提供全面的分析平台和数据API,并将于2024年采用Web3,支持去中心化并为

    每日资讯 2024-05-19 11:01 516
  • 潜在的Solana游戏龙头NyanHeroes
    潜在的Solana游戏龙头NyanHeroes

    Nyan Heroes是一款第三人称FPS射击游戏,使用虚幻5引擎,由Mechanism Capital领投。游戏代币$NYAN将用于奖励活跃玩家、交易稀有物品和皮肤,团队也可以从玩家身上赚钱。游戏团队来自知名游戏制作团队,Nyan将是游戏生态的核心。玩家可以通过市场交易获得收入,团队也可以从活跃玩家身上赚钱。Nyan有机会吸引更多的Web2玩家进来,估值可能在300M-500M之间。.....

    每日资讯 2024-05-19 11:00 516