什么是 Schnorr 签名?

news2024/9/22 13:42:20

在密码学中,Schnorr 签名是由 Schnorr 签名算法生成的数字签名。

与大多数区块链不同,BTC自其早期以来基本保持不变,大多数升级都是有限的,并旨在增强网络的效率而不是功能。BTC协议的更新是非常罕见的,并且通常用于技术增强,以确保网络的稳定性和安全性。

BTC有一个重要的升级是 Taproot,它引入了几个增强功能,其中包括 Schnorr 签名。相比于前一个用于密钥生成和验证的机制(ECDSA),Schnorr 签名提供了几个优势。

在本文中,我们将解释 Schnorr 签名是什么,以及它如何使 BTC 上的数字签名更快速和高效。

数字签名

数字签名是用于验证数字信息的真实性和完整性的数学方案。它们提供了一种证明消息是由特定发送者发送的(真实性)并且在传输过程中没有被更改(完整性)的方式。换句话说,数字签名与物理签名并没有太大的不同,发送者通过其独特的签名方式验证自己的身份和特定意图。

数字签名通常在软件分发、金融交易、合同管理软件以及许多其他需要检测伪造或篡改的情况下使用。

BTC中的数字签名的重要性在BTC白皮书中由中本聪(Satoshi Nakamoto)描述如下:

“我们将电子 coin 定义为一个数字签名链。每个所有者通过对前一笔交易的哈希和下一个所有者的公钥进行数字签名,并将其添加到 coin 的末尾来将 coin 转移给下一个所有者。收款人可以验证签名以验证一条链上的所有权。”

在 BTC 的情况下,数字签名用于验证与地址关联的私钥的所有者,而无需将私钥透露给网络。当一个交易被提交以被纳入一个区块时,BTC 网络上的节点会检查签名是否与消息匹配,并在匹配时接受该交易。

什么是Schnorr签名?

Schnorr 签名是一种数字签名方案,可以高效且安全地对交易和消息进行签名。它最早由克劳斯·施诺尔(Claus Schnorr)在 1991 年的一篇论文中描述。

作为一种利用椭圆曲线密码学的算法,Schnorr 被提议作为 BTC 技术路线图的一部分,用来替代椭圆曲线数字签名算法(ECDSA)。Schnorr 因其简单性、可证明的安全性和线性性而受到赞誉。由于 Schnorr 需要的计算量较少于 ECDSA,它被认为适用于 cryptocurrency 交易。

Schnorr 签名的优势

Schnorr 签名具有多种优势,包括高效性、增强的隐私性,同时保留了 ECDSA 的所有功能和安全假设。Schnorr 签名可以实现较小的签名大小、更快的验证时间,并且对某些类型的攻击具有改进的抵抗能力。

Schnorr 签名最显著的优势是密钥聚合(key aggregation)- 将多个签名聚合为一个签名,该签名对其密钥的总和有效。换句话说,Schnorr 使得多个合作方能够生成一个对他们的公钥总和有效的签名。

Schnorr-Sig-1.png
签名聚合使得多个签名者的签名可以合并为一个单一的签名。

密钥聚合能够降低交易费用并提高底层可扩展性,因为来自多签名设置的电子签名在区块中占用的空间与来自单方交易的签名相同。Schnorr 的这个特性可以用于减小多重签名支付和其他与多重签名相关的交易的大小,例如闪电网络通道交易。

Schnorr 签名的另一个重要特性是不可篡改性。在数字签名的背景下,篡改性是指攻击者能够修改有效签名,使得修改后的签名仍然有效,并认证不同于原始签名的消息。这可能对 cryptocurrency 应用造成严重问题,恶意攻击者可以修改交易签名以增加转移资金的金额或更改资金的接收者。

Schnorr 还提供了很多隐私优势。它可以让多重签名方案与传统的单一公钥无法从外部区分,Schnorr 使得观察者在链上活动中更难区分多重签名的支出和单一签名的支出。此外,在 n-of-m 多重签名设置中,Schnorr 使得外部观察者更难通过查看链上信息来确定哪些参与者在交易中签名,哪些没有签名。

Schnorr 在BTC中的应用

Schnorr 签名被实现在 BIP-340 中,作为 Taproot 软分叉升级的一部分,并于 2021 年 11 月 14 日在区块高度 709,632 上激活。与其他BTC升级提案一样,Taproot 被BTC矿工投票通过。Taproot 是一系列协议改进的集合,引入了几个新功能,改变了区块链上交易的处理方式,并开启了新的脚本能力。Taproot 被认为是自2017年采用隔离见证(Segregated Witness)以来BTC最重要的更新之一。

Schnorr 使BTC的数字签名更快、更安全、更易处理。值得注意的是,Schnorr 签名与BTC的密码学算法向后兼容,这样就可以通过软分叉升级引入它们。

Schnorr 签名与 ECDSA 的比较

正如前文所述,Schnorr 签名相对于 ECDSA 具有几个优势,包括更小的签名大小、更快的验证时间以及对某些类型攻击的改进抵抗能力。Schnorr 签名还允许进行签名聚合,这可以降低交易费用并提高可扩展性。

值得注意的是,虽然Schnorr 签名可能被认为更适合BTC,但 ECDSA 仍被广泛使用,并被认为是一种安全的签名方案。在选择 Schnorr 签名和 ECDSA 之间,可能会取决于具体的用例和安全要求。

欢迎关注 Chainlink 预言机并且私信加入开发者社区,有大量关于智能合约的学习资料以及关于区块链的话题!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/547297.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为云赋能云:聚焦产数融合,深化数字赋能

编辑:阿冒 设计:沐由 假如你是一家制造企业的老板,一定会觉得近期的日子不太好过:国家统计局最新公布的数据显示,4月份制造业采购经理指数(PMI)为49.2%,较上月下降了2.7个百分点。 市…

I/O控制方式

目录 一、程序查询方式 1.程序查询流程 2.程序查询接口结构 3.案例习题 四、优缺点 二、程序中断方式 1.中断的概念 2.流程图 3.案例习题 三、DMA方式 1.DMA传送过程 2.DMA与主存交换数据的三种方式 3. 与中断程序处理的区别 4.案例习题 一、程序查询方式 1.程序…

C++中pair用法

博主简介:Hello大家好呀,我是陈童学,一个与你一样正在慢慢前行的人。 博主主页:陈童学哦 所属专栏:CSTL 前言:Hello各位小伙伴们好!欢迎来到本专栏CSTL的学习,本专栏旨在帮助大家了解…

使用FFMPEG进行音频重采样

准备 1. ffmpeg 4.4 2. sdl2 3.一段原始的音频PCM数据 重采样流程 1.设置输入音频参数和输出音频参数 2.根据设置的参数初始化SwrContent上下文 3.创建一个输入buffer, 根据输入的音频参数(采样率,通道数,样本位深度)申请空间…

机器学习项目实战-能源利用率 Part-3(特征工程与特征筛选)

博主前期相关的博客可见下: 机器学习项目实战-能源利用率 Part-1(数据清洗) 机器学习项目实战-能源利用率 Part-2(探索性数据分析) 这部分进行的特征工程与特征筛选。 三 特征工程与特征筛选 一般情况下我们分两步走…

李彦宏一句“车水马龙”,中国AI的一幕天地宽广

“什么叫生成式?比如说,给我画一幅车水马龙的图片。这种东西,过去人们不觉得是人工智能应该做的事,现在可以做了。”5月18日,百度CEO李彦宏在天津举办的第七届世界智能大会上演讲时,说了这么一句话。 不了解…

保护你无价的数据 | 推荐一个开源备份工具,可去重、增量、压缩、还原到特定日期...

Borg 数据备份 Borg 的优势是 高效:BorgBackup 会将文件按数据块去重,只有改动的数据块才会被备份。一个 25 GiB 的虚拟机磁盘文件,只改动了 1 GiB,那就只会新增备份这 1 GiB 的数据;高速:核心算法使用 C 编…

5-《Kotlin》

5-《Kotlin》 1.kotlin基础: From Java To Kotlin2.Kotlin 的延迟初始化: lateinit var 和 by lazy1.lateinit var2.by lazy 3 Kotlin Tips:怎么用 Kotlin 去提高生产力(kotlin优势)Tip1- 更简洁的字符串Tip2- Kotlin中大多数控制结构都是表达…

[RapidOCRWeb] 桌面版使用教程

引言 说明:桌面版指的是可以直接解压,双击即可运行的版本。通俗来说,对rapidocr_web做了打包,将相关依赖全部放到一个zip包中,不需要本地有额外的环境,降低使用门槛。下面会以Windows版为例,作…

LeetCode 1373. 二叉搜索子树的最大键值和

【LetMeFly】1373.二叉搜索子树的最大键值和 力扣题目链接:https://leetcode.cn/problems/maximum-sum-bst-in-binary-tree/ 给你一棵以 root 为根的 二叉树 ,请你返回 任意 二叉搜索子树的最大键值和。 二叉搜索树的定义如下: 任意节点的…

pandas---数据处理(excel文件)

近期在弄一个项目的前期数据,所以总结了一下,内容如下(以下以csv文件为例) 1. DataFrame常用操作1.1 DataFrame去除空行(1)对于一般空行(2)对于列表式(list)空…

Redis(二)对事务进行操作及Jedis

系列文章目录 Redis入门笔记(一):Redis在Linux下安装和八大数据类型 文章目录 系列文章目录前言Redis对事务进行操作开启事务:multi执行事务:exec放弃事务:discard编译型异常(命令错误&#xf…

信息安全-数据安全-字节大数据平台安全与权限治理实践

导读:本次分享题目为字节跳动大数据平台安全与权限治理实践,文章会围绕下面四点展开: 字节大数据安全体系现状和难点 细粒度权限管控和治理 资产保护能力 数据删除能力 分享嘉宾|许从余 火山引擎 数据平台产品经理 编辑整理&#…

Spring 5 笔记 - 新功能

1. Spring 5 框架新功能 整个Spring 5 框架的代码基于Java8,运行时兼容JDK9,许多不建议使用的类和方法在代码库中删除。Spring 5.0 框架自带了通用的日志封装 (1)Spring 5 已经移除 Log4jConfigListener,官方建议使用…

立创EDA标准版指南1-原理图与封装库

立创 EDA 标准版 由于立创 EDA 新版本改了对应术语,这是对于的表格: 原理图库->符号 PCB 库->封装 PCB 3D 库->3D 模型 下面的全部讲述将依据旧版称呼,因为更直观,新版称呼模棱两可并且与 AD 的工程架构差别较大 这是…

数据分析11——Pandas中数据偏移/数据切分/数据结构转换

数据偏移: 1、shift函数: 在 Pandas 中,shift 函数用于将数组的数据向前或向后平移指定的步数。它可以应用于 Series 或 DataFrame 类型的数据中,并返回一个平移后的新数据结构,其中每个元素都被取代为原始序列中对应…

kubernetes根据podName获取对应的主机pid

获取指定的podName kubectl get pods -n demo -owide登录对应的主机执行docker命令,获取到容器的id docker ps | grep PODNAME拿到的容器id,执行如下命令 获取容器的长的容器id docker inspect container_id找到容器id后 执行 apt-get install jq cat /var/lib…

关于Word文档的处理【笔记】

关于Word文档的处理【笔记】 前言推荐关于Word文档的处理一、解压word如何恢复1 准备2 解压3 恢复 二、对word文档进行图片替换1 首先解压word文档2 进入word文档存放图片的路径3 批量给图片添加水印4 替换原来的media文件5 压缩为docx文件6 打开 最后 前言 2023-5-20 11:00:1…

uniapp 快手授权登录,发布、编辑、裁剪图片和视频,分享 Ba-Kwai

简介(下载地址) 快手授权登录,发布、编辑、裁剪图片和视频,一键智能裁剪,分享私信,打开用户主页,挂载小程序等。自带选择图片和选择视频方法。 抖音授权登录、发布、分享 Ba-Aweme&#xff08…

基于GitLab搭建DevSecOps流水线

本博客地址:https://security.blog.csdn.net/article/details/130734964 一、GitLab安装 GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建Web服务,可通过Web界面访问公开的或者私人的项目。它…