网站直播用php怎么做的/网站排名优化服务公司

网站直播用php怎么做的,网站排名优化服务公司,免费舆情信息网站,测试网站怎么做的数字签名是区块链技术的信任基石,它像区块链世界的身份证和防伪标签,确保每一笔交易的真实性、完整性和不可抵赖性。本文会用通俗的语言,带你彻底搞懂区块链中的数字签名! 文章目录 1. 数字签名是什么?从现实世界到区块…

数字签名是区块链技术的信任基石,它像区块链世界的身份证和防伪标签,确保每一笔交易的真实性、完整性和不可抵赖性。本文会用通俗的语言,带你彻底搞懂区块链中的数字签名!

在这里插入图片描述

文章目录

    • 1. 数字签名是什么?从现实世界到区块链
      • 现实中的签名 vs 区块链中的签名
      • 核心三要素
    • 2. 数字签名如何工作?手把手拆解流程
      • 场景模拟
      • 第一步:生成签名(小明操作)
      • 第二步:验证签名(矿工操作)
      • 文字版流程图描述
    • 3. 区块链为什么离不开它?四大核心作用
      • 作用1:身份认证——证明“你是你”
      • 作用2:数据完整性——内容未被篡改
      • 作用3:不可抵赖性——无法否认交易
      • 作用4:防止重放攻击——杜绝“复制粘贴”
    • 4. 技术细节:ECDSA、哈希函数与代码实现
      • 为什么用椭圆曲线(ECDSA)而不是RSA?
      • 代码演示:生成并验证签名
    • 5. 常见问题
      • 问题1:量子计算机能破解数字签名吗?
      • 问题2:私钥丢失或被盗怎么办?
    • 6. 总结与未来展望
      • 总结
      • 未来趋势


1. 数字签名是什么?从现实世界到区块链

现实中的签名 vs 区块链中的签名

  • 现实签名:在合同上签字 → 证明同意内容 → 但可能被伪造。
  • 区块链签名:用数学算法生成唯一标识 → 无法伪造 → 还能验证内容是否被篡改。

核心三要素

要素作用类比现实世界
私钥生成签名的密码钥匙个人印章
公钥验证签名的公开钥匙印章的官方备案
哈希函数把任意数据变成唯一指纹文件的唯一编号

2. 数字签名如何工作?手把手拆解流程

场景模拟

小明用比特币向小红转账1 BTC,如何保证这笔交易真实有效?

第一步:生成签名(小明操作)

  1. 准备交易数据

    发送方:小明的地址  
    接收方:小红的地址  
    金额:1 BTC  
    时间戳:2024-10-01 10:00:00  
    
  2. 生成数据指纹(哈希)

    • 将交易数据输入SHA-256哈希函数 → 得到64位的指纹(例如a1b2c3...)。
    • 哈希的作用:
      • 长数据变短指纹,方便处理。
      • 任何微小改动都会让指纹彻底变化(如金额改成1.1 BTC,指纹变为d4e5f6...)。
  3. 用私钥加密指纹

    • 小明的私钥(类似密码)对哈希值加密 → 生成数字签名(如0x3f7a...)。
  4. 广播交易

    • 小明将原始交易数据和数字签名一起发送到区块链网络。

第二步:验证签名(矿工操作)

  1. 拿到小明公钥

    • 小明的公钥是公开的(如比特币地址1A1zP1...)。
  2. 解密签名得到原始指纹

    • 用小明的公钥解密签名 → 得到a1b2c3...(若解密失败,签名无效)。
  3. 重新计算交易指纹

    • 对收到的交易数据做SHA-256哈希 → 生成新指纹a1b2c3...
  4. 对比两个指纹

    • 一致 → 交易有效!
    • 不一致 → 交易被篡改或伪造!

由于部分平台对Mermaid流程图的支持有限,以下提供两种替代方案供您选择:


文字版流程图描述

1. 小明写交易 → 2. 生成交易哈希 → 3. 私钥加密哈希 → 4. 广播交易和签名  ↓  
5. 矿工接收 → 6. 用公钥解密签名 → 7. 得到原始哈希 → 8. 重新计算哈希  ↓  
9. 对比哈希是否一致?  ├─ 是 → 交易合法,打包进区块  └─ 否 → 交易无效,丢弃  

3. 区块链为什么离不开它?四大核心作用

作用1:身份认证——证明“你是你”

  • 案例:比特币地址1A1zP1...对应小明的公钥。
  • 逻辑:只有用小明私钥签名的交易才能被公钥验证通过 → 确保交易发起者身份。

作用2:数据完整性——内容未被篡改

  • 场景:黑客篡改金额为10 BTC → 哈希值变化 → 验证失败 → 交易被拒绝。

作用3:不可抵赖性——无法否认交易

  • 类比:亲手签名的合同无法抵赖。
  • 区块链体现:交易签名被全网验证 → 小明无法否认转账。

作用4:防止重放攻击——杜绝“复制粘贴”

  • 攻击方式:黑客截获交易并重复广播。
  • 防御:每笔交易包含唯一编号(Nonce),重复交易被识别并拒绝。

4. 技术细节:ECDSA、哈希函数与代码实现

为什么用椭圆曲线(ECDSA)而不是RSA?

ECDSA(区块链)RSA(传统Web)
密钥长度256位2048位
签名速度快(适合高频交易)
资源消耗低(适合去中心化网络)

代码演示:生成并验证签名

from ecdsa import SigningKey, SECP256k1
import hashlib# 生成密钥对
private_key = SigningKey.generate(curve=SECP256k1)  # 私钥(绝密!)
public_key = private_key.get_verifying_key()       # 公钥(公开)# 准备交易数据
transaction = "小明给小红转账1 BTC"# 生成交易哈希
tx_hash = hashlib.sha256(transaction.encode()).hexdigest()# 用私钥签名
signature = private_key.sign(tx_hash.encode())# 矿工验证过程
try:public_key.verify(signature, tx_hash.encode())print("验证成功!交易合法")
except:print("验证失败!交易可疑")

5. 常见问题

问题1:量子计算机能破解数字签名吗?

  • 现状:ECDSA理论上可被量子计算机破解,但需数十年发展。
  • 防御方案:
    • 抗量子算法(如XMSS)。
    • 分层安全(定期更换密钥)。

问题2:私钥丢失或被盗怎么办?

  • 案例:QuadrigaCX交易所因私钥丢失,1.9亿美元资产冻结。
  • 解决方案:
    • 多重签名(需多个私钥授权)。
    • 硬件钱包(离线存储私钥)。

6. 总结与未来展望

总结

数字签名通过密码学实现:

  • 身份认证 → 私钥签名证明身份。
  • 数据可信 → 哈希对比确保完整。
  • 不可抵赖 → 签名全网验证。

未来趋势

  • 更高效:聚合签名(如BLS)减少存储开销。
  • 更隐私:零知识证明(如Zcash)隐藏交易细节。

延伸学习

  • 动手实验:区块链演示工具
  • 论文推荐:比特币的ECDSA实现

如有疑问,欢迎在评论区交流!

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

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

相关文章

【文生图】windows 部署stable-diffusion-webui

windows 部署stable-diffusion-webui AUTOMATIC1111 stable-diffusion-webui Detailed feature showcase with images: 带图片的详细功能展示: Original txt2img and img2img modes 原始的 txt2img 和 img2img 模式 One click install and run script (but you still must i…

hive之lag函数

从博客上发现两个面试题,其中有个用到了lag函数。整理学习 LAG 函数是 Hive 中常用的窗口函数,用于访问同一分区内 前一行(或前 N 行)的数据。它在分析时间序列数据、计算相邻记录差异等场景中非常有用。 一、语法 LAG(column,…

【软考-架构】1.3、磁盘-输入输出技术-总线

GitHub地址:https://github.com/tyronczt/system_architect ✨资料&文章更新✨ 文章目录 存储系统💯考试真题输入输出技术💯考试真题第一题第二题 存储系统 寻道时间是指磁头移动到磁道所需的时间; 等待时间为等待读写的扇区…

盛铂科技PDROUxxxx系列锁相介质振荡器(点频源):高精度信号源

——超低相位噪声、宽频覆盖、灵活集成,赋能下一代射频系统 核心价值:以突破性技术解决行业痛点 在雷达、卫星通信、高速数据采集等高端射频系统中,信号源的相位噪声、频率稳定度及集成灵活性直接决定系统性能上限。盛铂科技PDROUxxxx系列锁…

【文献阅读】The Efficiency Spectrum of Large Language Models: An Algorithmic Survey

这篇文章发表于2024年4月 摘要 大语言模型(LLMs)的快速发展推动了多个领域的变革,重塑了通用人工智能的格局。然而,这些模型不断增长的计算和内存需求带来了巨大挑战,阻碍了学术研究和实际应用。为解决这些问题&…

如何在Github上面上传本地文件夹

前言 直接在GitHub网址上面上传文件夹是不行的,需要一层一层创建然后上传,而且文件的大小也有限制,使用Git进行上传更加方便和实用 1.下载和安装Git Git - Downloads 傻瓜式安装即可 2.获取密钥对 打开自己的Github,创建SSH密钥&…

kafka-web管理工具cmak

一. 背景: 日常运维工作中,采用cli的方式进行kafka集群的管理,还是比较繁琐的(指令复杂?)。为方便管理,可以选择一些开源的webui工具。 推荐使用cmak。 二. 关于cmak: cmak是 Yahoo 贡献的一款强大的 Apac…

数据结构:八大排序(冒泡,堆,插入,选择,希尔,快排,归并,计数)详解

目录 一.冒泡排序 二.堆排序 三.插入排序 四.选择排序 五.希尔排序 六.快速排序 1.Lomuto版本(前后指针法) 2.Lomuto版本的非递归算法 3.hoare版本(左右指针法) 4.挖坑法找分界值: 七.归并排序 八.计数排序…

【商城实战(2)】商城架构设计:从底层逻辑到技术实现

【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配&#xf…

Mac mini M4安装nvm 和node

先要安装Homebrew(如果尚未安装)。在终端中输入以下命令: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 根据提示操作完成Homebrew的安装。 安装nvm。在终端中输入以下命令&#xf…

FOC无感开环启动算法

FOC无感开环启动排除掉高频注入这种直接识别当前转子dq轴的位置直接闭环启动,大部分的常规启动方式就是三段式启动,对齐-强拖-观测器介入-观测器误差稳定后平滑过渡-闭环。 这里就只写出I/F(V/F)启动的角度输出的代码&#xff0c…

Android 自定义View 加 lifecycle 简单使用

前言 本文是自定义view中最简单的使用方法,分别进行 ‘onMeasure’、‘onDraw’、‘自定义样式’、‘lifecycle’的简单使用,了解自定义view的使用。 通过lifecycle来控制 动画的状态 一、onMeasure做了什么? 在onMeasure中获取view 的宽和…

《挑战你的控制力!开源小游戏“保持平衡”开发解析:用HTML+JS+CSS实现物理平衡挑战》​

📌 大家好,我是智界工具库,致力于分享好用实用且智能的软件以及在JAVA语言开发中遇到的问题,如果本篇文章对你有所帮助请帮我点个小赞小收藏吧,谢谢喲!😘😘😘 博主声…

【无标题】FrmImport

文章目录 前言一、问题描述二、解决方案三、软件开发(源码)四、项目展示五、资源链接 前言 我能抽象出整个世界,但是我不能抽象你。 想让你成为私有常量,这样外部函数就无法访问你。 又想让你成为全局常量,这样在我的…

给定计算预算下的最佳LLM模型尺寸与预训练数据量分配

给定计算预算下的最佳LLM模型尺寸与预训练数据量分配 FesianXu 20250304 at Wechat Search Team 前言 如果给定了计算预算 C C C,如何分配LLM的模型尺寸 N N N和训练的数据量 D D D,才能使得模型的效果 L L L最好呢?笔者在此介绍一篇经典的文…

青训营:简易分布式爬虫

一、项目介绍 该项目是一个简易分布式爬虫系统,以分布式思想为基础,通过多节点协作的方式,将大规模的网页抓取任务分解,从而高效、快速地获取网络数据 。 项目地址:https://github.com/yanchengsi/distributed_crawle…

任务9:交换机基础及配置

CSDN 原创主页:不羁https://blog.csdn.net/2303_76492156?typeblog 一、交换机基础 交换机的概念:交换机是一种网络设备,用于连接多台计算机或网络设备,实现数据包在局域网内的快速交换。交换机基于MAC地址来转发数据包&#x…

YOLOv8改进------------SPFF-LSKA

YOLOv8改进------------SPFF-LSKA 1、LSAK.py代码2、添加YAML文件yolov8_SPPF_LSKA.yaml3、添加SPPF_LSKA代码4、ultralytics/nn/modules/__init__.py注册模块5、ultralytics/nn/tasks.py注册模块6、导入yaml文件训练 1、LSAK.py代码 论文 代码 LSKA.py添加到ultralytics/nn/…

[Lc(2)滑动窗口_1] 长度最小的数组 | 无重复字符的最长子串 | 最大连续1的个数 III | 将 x 减到 0 的最小操作数

目录 1. 长度最小的字数组 题解 代码 ⭕2.无重复字符的最长子串 题解 代码 3.最大连续1的个数 III 题解 代码 4.将 x 减到 0 的最小操作数 题解 代码 1. 长度最小的字数组 题目链接:209.长度最小的字数组 题目分析: 给定一个含有 n 个 正整数 的数组…

安卓binder驱动内核日志调试打印开放及原理(第一节)

背景: 经常有学员朋友在做系统开发时候,有时候遇到binder相关的一些问题,这个时候可能就需要比较多的binder相关日志,但是正常情况下这些binder通讯的的内核日志都是没有的打印的,因为经常binder通讯太过于频繁&#…