当前位置: 首页 > news >正文

区块链签名种类


1. eth_sign

  • 简介:最早实现的签名方法,用于对任意数据进行签名。
  • 签名内容:直接对原始消息的哈希值进行签名。
  • 特点
    • 安全性较低,因为签名的消息没有明确的上下文或结构。
    • 很容易被滥用,攻击者可以伪造签名内容。
  • 适用场景:早期应用,但不推荐用于重要场景。
  • 风险:容易被用作重放攻击,因此通常被认为是不安全的,这种千万不要用,应该被禁用。

2. personal_sign

  • 简介:改进的签名方法,专门为以太坊钱包实现。
  • 签名内容
    • 对消息前添加一个前缀("\x19Ethereum Signed Message:\n" + message.length),然后进行签名。
    • 这个前缀使得签名与交易签名区别开,防止重放攻击。
  • 特点
    • eth_sign 更安全。
    • 广泛用于钱包签名消息,例如用户登录验证。
  • 适用场景:个人签名、验证身份等。

3. signTypedData 和变体

这些方法用于签名结构化数据,与 EIP-712 标准相关联。它们允许对特定格式的复杂数据进行签名,提供更高的安全性和可读性。

signTypedData_v1
  • 简介:初始版本,实现较为简单。
  • 签名内容:签名 JSON 数据的字符串形式。
  • 特点
    • 签名的内容是字符串化后的数据,而不是结构化数据本身。
    • 可读性差,容易出错。
  • 状态:很少被使用,已被后续版本替代。
signTypedData_v3
  • 简介:基于 EIP-712 的第一个广泛实现版本。
  • 签名内容
    • 使用 EIP-712 定义的数据结构。
    • 签名前将数据结构编码为更紧凑和可读的形式。
  • 特点
    • 更安全,数据结构明确。
    • 兼容 MetaMask 等钱包,但 UI 提示可能不够友好。
  • 适用场景:签名复杂的结构化数据,例如智能合约交互。
signTypedData_v4
  • 简介:最新实现,完全符合 EIP-712 标准。
  • 签名内容
    • 支持更复杂的数据类型,例如数组和嵌套结构。
    • v3 更灵活和强大。
  • 特点
    • 用户在签名前可以更清楚地看到要签名的内容。
    • 广泛支持于现代钱包中。
  • 适用场景:高级用例,例如链上治理、DeFi 协议交互。

4. 核心区别总结

方法安全性签名内容主要用途状态
eth_sign较低原始消息哈希值早期签名,已不推荐不推荐
personal_sign较高添加前缀的消息哈希值身份验证、个人消息签名常用
signTypedData_v1中等JSON 字符串化数据结构化数据签名(初版)很少使用
signTypedData_v3EIP-712 数据结构结构化数据签名,智能合约交互常用(兼容性好)
signTypedData_v4最高完整 EIP-712 支持支持复杂数据类型的结构化签名最新、广泛支持

推荐使用

  • 身份验证、消息签名personal_sign
  • 智能合约交互、复杂数据签名signTypedData_v4(优先)或 v3

对于开发者,建议始终选择安全性较高的 signTypedData 系列方法,同时确保用户界面能清晰地展示签名内容,避免用户在不明情况下授权。

http://www.lryc.cn/news/499465.html

相关文章:

  • 【062B】基于51单片机无线病房呼叫系统(+时间)【Keil程序+报告+原理图】
  • 突破空间限制!从2D到3D:北大等开源Lift3D,助力精准具身智能操作!
  • 【pyspark学习从入门到精通24】机器学习库_7
  • Echart折线图属性设置 vue2
  • LabVIEW-简单串口助手
  • Linux下,用ufw实现端口关闭、流量控制(二)
  • C#开发-集合使用和技巧(九)Join的用法
  • Dockerfile容器镜像构建技术
  • Github 2024-12-01 开源项目月报 Top20
  • Spring Boot 3项目集成Swagger3教程
  • NISP信息安全一级考试200道;免费题库;大风车题库
  • Android ConstraintLayout 约束布局的使用手册
  • 在网安中什么是白帽子
  • 软件专业科目难度分级 你输在了哪里?
  • 微信小程序实现图片拖拽调换位置效果 -- 开箱即用
  • 关于“浔川AI翻译”使用情况的调研报告
  • 《芯片:科技之核,未来之路》
  • ️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南20241206
  • 使用Tomcat搭建简易文件服务器
  • 《C++赋能:构建智能工业控制系统优化算法新引擎》
  • node.js中跨域请求有几种实现方法
  • Node.js新作《循序渐进Node.js企业级开发实践》简介
  • 常见排序算法总结 (四) - 快速排序与随机选择
  • Doris的基础架构
  • python录制鼠标键盘操作循环播放
  • 标书里的“废标雷区”:你踩过几个?
  • centos下使用acme来自动获取免费通配符ssl证书,并发布到nginx服务,(DNS服务为阿里云)
  • 基于协同过滤的图书推荐系统 爬虫分析可视化【源码+文档】
  • Hyperf jsonrpc
  • 计算机毕业设计Spark股票推荐系统 股票预测系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI