区块链 · 数字资产知识 · 行业资讯
文章库关于本站

技术原理

区块链非对称加密应用怎样区分|消息保密与交易签名不是同一任务

摘要

公钥和私钥并不意味着所有操作都在加密正文。以消息加密和交易签名为两个例子,分别看输入、输出和验证目标,理解为什么验签通过不代表内容保密,也不代表现实身份已获确认。

区块链非对称加密应用的科技主题配图

先明确想保护什么

阅读区块链非对称加密应用资料时,可以先提出两个问题:这段消息是否只希望指定接收方阅读?另一方是否需要核对消息与签名密钥的关系?前者关注保密,后者关注签名验证。两种需求可以同时存在,但不能因为都出现公钥和私钥,就把它们写成同一项功能。

一个便于理解的假设场景是:研究者希望私下发送一份草稿,同时让接收方核对附带说明的签名。草稿的读取范围与说明的验签结果,需要分别设计和描述。这里没有真实用户资料,也不是推荐某个通信产品,只是用两个不同目标帮助辨认文档里的术语。

加密流程输出的是密文

MDN的Web Crypto文档以RSA-OAEP展示公钥加密:加密接口接收原始数据并产生密文,对应解密示例使用私钥恢复明文。这里的关键是读取权限与加解密过程,不是给公开正文附上一段可核对的签名。RSA-OAEP只是文档示例,不能据此推断某条区块链或某款钱包采用了它。

检查一份方案说明时,可以分别记下待保护数据、预期接收方、密文保存位置和解密边界。若资料只写“使用非对称技术”,却没有交代保护对象,就还不足以判断哪些内容会隐藏。算法名不能替代完整的系统说明,概念介绍也不等于已经完成安全实现。

冷钱包公钥的科技主题配图

签名流程回答的是另一类问题

MDN把sign与encrypt列为不同方法。对于它列出的公钥签名算法,私钥用于签名、公钥用于验证,输出是签名而非密文。以太坊账户文档则说明,外部账户利用私钥签署交易请求,网络可以核对该请求的签名。这个例子展示的是授权相关的密码学机制,不是把交易正文藏起来。

因此,“能验证这份签名”与“只有某个人能读这段正文”不能相互代替。验签还不自动回答签名者现实中是谁、是否理解了内容,或消息陈述是否真实。例如,对一份存在事实错误的说明完成签名,并不会把错误变成事实;这些判断需要签名之外的证据。

阅读接口时避免把用途互换

遇到把签名简单说成“用私钥加密正文”的教程,应回到具体算法和接口定义,核对操作输入与输出。不同方案具有各自约束,不能任意交换公私钥用途,也不能把某个浏览器示例直接当成钱包实现。本文没有生成实际账户、请求钱包签名或运行链上交易。

MDN同时提醒,低层密码学接口容易误用,密钥管理和整体设计仍需专业审查。学习时先把保密、签名和验证的目标讲清楚,比背下一个算法名称更重要。涉及真实系统时应使用经过审查的方案;不要把真实助记词、私钥或敏感正文放进来历不明的演示页面。

← 返回全部文章

延伸阅读 · 相关栏目

区块链基础技术原理数字资产知识资料与核验