Threshold ECDSA——web3.0开发中的门限签名

news2025/1/18 10:53:19

多重签名

1.联名账户,任何一个密钥都能打开账户。
在这里插入图片描述
2.储蓄账户,需要所有密钥才能打开账户。
在这里插入图片描述
3.级联账户,可以使用部分密钥做部分功能,需要所有密钥才能执行全部功能。
在这里插入图片描述

4.在加密货币中,多重签名通过创建一个多重签名路径来运作,并且在创建多重签名路径时,要指定与该路径关联的密钥以及签署交易需要多少把密钥。当创建了一个交易,有人用密钥对其进行签名,之后就可以给定的密钥进行验证签名。
比如创建了具有三把关联密钥的多重签名地址,并且至少需要两把密钥才能提供签名。

5.使用哪把密钥来履行交易的信息是公开的。对于某些应用场景来霁,这可能是一种优点,但是对于其他一些需要更大匿名性的场景来说,则可能是一种缺点。另外,在可以使用多少把密钥上也有一些限制。一旦创建了多重签名路径,安全策略就固定下来了。因此,则不能在一段时间之后改变策略,比如对原本要五把密钥想改成三把,它需要创建一个有着新安全环境的新多重签名路径,并把所有资金转移过去。

6.在以太坊中的运作方式有些不同,因为以太坊没有多重签名的概念。以太坊上总要有一个地址来签署一笔交易并花费 gas。但是,有一些多重签名钱包,它们基本上是智能合约,能够存储代币并且要求发起的交易需要接受某些要求,包括特定的签名配置。
注:以太坊的Gas(中文直译:气体),是以太坊上衡量工作量的计量单位,类似于每小时用了多少度电用kilowatt/hours, 千瓦/小时。以太坊上产生的各种交易、存储等活动都是需要Gas来推动的,Gas好比是燃料,推动以太坊虚拟机(EVM)来工作。

7.多重签名机制是依赖于多方单独而唯一的密钥的,在使用这些密钥来对一笔交易进行签名,签名者一个接一个地提供其签名。当验证者想要验证交易时,则需要分别检查每个签名。

在这里插入图片描述

门限签名

1.对于门限签名,情况有所不同,门限签名只有一把公钥,一把秘钥和一个签名。在上图中,左侧有一组签名者。每个签名者都有相同的公钥和私钥的一个唯一部分。签名者使用一种特殊的通信协议进行协作,该协议不会为了生成签名而暴露密钥,并且只会生成一个签名。现在,验证者只需检查一个签名即可确定交易是否正确。
在这里插入图片描述
2.门限签名有哪些不同,避免了基于契约的多重签名。有了门限签名,就可以让多方签署交易,而无需将代币锁在智能合约钱包中。其次,门限签名在链上是不可区分的。

3.在验证方面,门限签名交易比多重签名交易更便宜。多重签名需要为每个签名者创建一个新的签名,并且成本随着签名者数量的增加而增加。对于门限签名来说,只有一个签名,因此在验证方面的成本是固定的。

4.门限签名需要签名者保持在线状态。对于多重签名来说,你可以提供你的签名,然后下线,同时,其他人来了,提供了一个签名,交易就被接受了。对于门限签名,签名者需要合作(至少是一定数量的合作)才能产生签名。

T / N 门限签名方案

1.N个参与者中的任意T人(门限值),就可以计算签名。
拉格朗日插值,少于t个信息不能重构t-1次多项式,且都是普通运算,适合搬到有限域。

2.任意参与者都不知道(组内共享)私钥本身的内容。

3.参与者拥有的是私钥碎片(share of the secret)。
3.1 碎片并不是对原私钥的切片分割。
3.2 N个共享一个私钥,每个人都拥有一部分的私钥
在这里插入图片描述

4.计算人数少于门限T则无法构造签名。

5.如果部分碎片丢失(小于T值),私钥仍可恢复。

与多重签名的区别

1.参与签名的是私钥碎片而不完整的私钥。
2.没有也不需要在计算前先恢复私钥。
3.计算结果与直接用私钥签名没有区别。从外部接收的签名无法推断出是完整私钥签名出来,还是使用门限碎片签名出来的。
4.完整的私钥没有人知道但确定存在。

优势

1.没有单点故障。
2.遇到特殊情况仍可恢复私钥。
3.方便集成。
4.隐私保护。
4.1 传统的多重签名,比如三个用户共同控制一笔资源,当拥有两个及以上的用户就可以使用这笔资源,处理的过程中会使用A的公钥,B的公钥,A的签名,B的签名。
4.2 多重签名是可以查看到参与签名公钥。
4.3 门限签名是组内N个人中T个人参与了签名,而计算结果与直接用私钥签名没有区别,是查到签名参与者。

ICP Threshold ECDSA

1. 公钥生成

1.1 在门限签名中,密钥是以N共享方式来生成的,使得若少T方则无法知悉该密钥信息。所有方生成相同的公钥,而各自不同的密钥共享。
1.2 隐私:任意参与者都不知道(组内共享)私钥本身的内容。

2.签名

2.1 多方交互完成签名。若有N方对同一消息签名,则最终会生成一个签名。而若少于T方参与签名,则无法生成相应的签名。
2.2 各方的输入为:同一消息和各自的私钥碎片,最终的输出为签名。

3. 验签

输入为公钥、消息和签名,输出为True/False。

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

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

相关文章

超详细从入门到精通,pytest自动化测试框架实战-fixture多样玩法(九)

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 在编写测试用例&…

uniapp开发小程序:使用webview 跳转外部链接

一、使用uniapp开发小程序时,要跳转外部链接,实现的效果如下: 二、实现的步骤: ①先在自己uniapp项目pages.json中建一个页面webview.vue {"path" : "pages/webview/webview","style" : …

(详细)带你运行ShanghaiTech数据集预训练模型——人群计数算法

写在前面 ShanghaiTech数据集是现有的人群计数领域比较常用的训练测试数据集,该博客将详细讲述如何跑通ShanghaiTech官方提供的预训练版本。 由于全部跑完ShanghaiTech数据集需要一定的时间,今天只以其中的ped2数据集(体量最小)…

linux_回收子进程(何为孤儿进程、僵尸进程、wait函数、waitpid函数)

接上一篇:linux_exec函数族-execl函数-execlp函数-execle函数-execv函数-execvp函数-execve函数 今天来向大家分享几个有趣的知识点,一个是孤儿进程,一个是僵尸进程,hhh,是不是很有趣,另外再来看看怎么去回…

Kubernetes集群调度增强之超容量扩容

作者:京东科技 徐宪章 1 什么是超容量扩容 超容量扩容功能,是指预先调度一定数量的工作节点,当业务高峰期或者集群整体负载较高时,可以使应用不必等待集群工作节点扩容,从而迅速完成应用横向扩容。通常情况下HPA、Cl…

链表与邻接表|栈与队列|kmp

目录 单链表(邻接表) 双链表 数组模拟栈、队列 单调栈 单调队列(滑动窗口) KMP 一、KMP算法基本概念与核心思想 二、next数组的含义 三、匹配的思路 四、求next数组 单链表(邻接表) #include &…

Linux操作基础(系统安全及应用)

文章目录一 、账号安全基本措施1.1 系统账号清理1.2 密码安全控制1.21 设置密码有效期1.3 命令历史限制1.31 修改history命令条数1.32 清空history的方式1.33 设置终端自动注销二 、使用su命令切换用户2.1 限制使用su命令切换用户2.2 sudo命令—提升执行权限三 、系统引导和登录…

OpenCV:介绍 SURF(加速稳健特征)以及其使用

我们将了解 SURF 的基础知识 我们将了解 OpenCV 中的 SURF 功能 理论 在上一章中,我们学习了 SIFT 用于关键点检测和描述的方法。但它相对较慢,人们需要更快速的版本。2006年,Bay, H., Tuytelaars, T. 和 Van Gool, L 发表了另一篇论文 "SURF: 加速稳健特征",介…

机器学习:多项式拟合分析中国温度变化与温室气体排放量的时序数据

文章目录1、前言2、定义及公式3、案例代码1、数据解析2、绘制散点图3、多项式回归、拟合4、注意事项1、前言 ​ 当分析数据时,如果我们找的不是直线或者超平面,而是一条曲线,那么就可以用多项式回归来分析和预测。 2、定义及公式 ​ 多项式…

《花雕学AI》哪种技能5年10年后还会被市场需要? 该如何提高这些能力?

随着AI人工智能、ChatGPT等新的技术革新的发展,未来职业场景确实会发生变化,一些传统的职业可能会被取代,而一些新的职业可能会出现。根据世界经济论坛所发布的《未来就业报告》,一半的劳动力需要在2025年之前完成技能重塑。那么&…

Harmony OS 开发指南——DevEco Device Tool 安装配置

本文介绍如何在Windows主机上安装DevEco Device Tool工具。 坑点总结: 国内部分网络环境下,安装npm包可能会很慢或者超时,推荐使用国内npm源(如淘宝源、华为源等);serialport这个npm包安装的过程中需要编…

C/C++笔记-记录一次对qmake生成的Makefile的分析(2023-02-07)

如下Qt代码&#xff1a; ConsoleDemo.pro QT core QT - guiTARGET ConsoleDemo CONFIG console CONFIG - app_bundleTEMPLATE appSOURCES main.cpp main.cpp #include <QCoreApplication> #include <QDebug>int main(int argc, char *argv[]) {QCoreApplic…

安装Kafka 基础命令

目录 解压 改名 修改配置文件 创建目录用于存放日志 创建修改myid 添加环境变量 刷新环境变量 测试 启动zookeeper 启动kafka 关闭kafka kafka基础命令 查看消息队列 创建消息队列 查看队列详情 查询指定队列消息数量 生产者消费者 生产消息 消费消息 解压 …

简单分享婚庆小程序开发怎么做

婚庆行业的服务范围不再仅限于婚纱照、婚礼主持等服务&#xff0c;消费者希望在婚庆服务商获得更多的服务&#xff0c;导致行业服务范围不断扩大、服务类目越发丰富&#xff0c;而商家在此基础上&#xff0c;更需要考虑提高服务质量与效率&#xff0c;合理利用资源提供服务。小…

Jmeter5.1的安装

1.由于&#xff0c;jmeter 是用纯java开发的一个可跨平台的绿色软件&#xff0c;所以&#xff0c;我们在使用jmeter之前&#xff0c;必须要安装基于Windows下的jdk环境。下面安装jdk,检查是否安装jdk方法&#xff08;cmd运行输入java -version&#xff09;&#xff0c;如下图显…

81.qt qml-Canvas深入学习之好看的水纹波自定义控件V2

界面如下所示(外观参考ECharts 源码通过QML控件实现): 效果如下所示: 支持自定义颜色、自定义波峰数量、增幅、速度、水平偏移等 1.介绍 在我们之前38章38.qt quick-QML水纹波进度条_诺谦的博客-CSDN博客 写过一个简单的水纹波: 所以本质差不多. 2.QianRippleChartPage代码 该…

webgl-矩阵、旋转、平移、缩放

关键代码 旋转 /* * [ * cosB, -sinB, 0, 0, * sinB, cosB, 0, 0, * 0, 0, 1, 0, * 0, 0, 0, 1 * ] * * 矩阵本该是这个但是由于webgl的矩阵行和列是颠倒的所以我们传入的矩阵也需要倒置 */ rotationMatrix [ cosB, sinB, 0, 0, -sinB, cos…

[Python工匠]输出③容器类型

在Python中&#xff0c;最常见的内置容器类型有四种&#xff1a;列表、元组、字典、集合。 列表&#xff08;list&#xff09;是一种非常经典的容器类型&#xff0c;通常用来存放多个同类对象&#xff0c;比如从1到10的所有整数&#xff1a; 元组&#xff08;tuple&#xff09;…

phpstudy本地环境搭建图文教程

作者&#xff1a;Eason_LYC 悲观者预言失败&#xff0c;十言九中。 乐观者创造奇迹&#xff0c;一次即可。 一个人的价值&#xff0c;在于他所拥有的。可以不学无术&#xff0c;但不能一无所有&#xff01; 技术领域&#xff1a;WEB安全、网络攻防 关注WEB安全、网络攻防。我的…

chatgpt VS 文心一言使用对比实测

chatgpt VS 文心一言使用对比实测 什么是文心一言 文心一言&#xff08;英语&#xff1a;ERNIE Bot&#xff09;是由百度公司开发的聊天机器人&#xff0c;能够与人交互、回答问题及协作创作。该产品被传媒称为国际著名聊天机器人ChatGPT的中国版及其竞争对手[1][2]。目前已开…