什么是公钥密码学?
公钥密码学是一种密码学系统,使用一对在数学上相互关联的密钥:公钥和私钥。
公钥可以分享,私钥则必须保密。
NIST 术语表对非对称密码学的定义是:使用两个不同密钥的密码学,其中一个密钥可用于加密或对数据进行数字签名,另一个密钥可用于解密数据或验证数字签名。
公钥密码学也称为非对称密码学,因为两个密钥承担不同的作用。
在加密货币领域,公钥密码学是钱包所有权、交易签名、地址生成、自托管、区块链验证、多重签名安全和许多身份系统的基础。
加密钱包存储加密货币的方式,并不像实体钱包存放现金那样。
加密钱包存储或控制的是私钥,这些私钥可用于授权区块链上的交易。
官方Ethereum 账户文档解释称,外部拥有账户由一对密码学密钥组成,其中一个是公钥,另一个是私钥。
该文档还说明,私钥用于签署交易,并控制与账户关联的资金。
理解公钥密码学最简单的方式是:私钥用于证明控制权,公钥则帮助他人验证这一证明。
公钥密码学为何对加密货币很重要
公钥密码学很重要,因为区块链需要一种无需用户名、密码、银行或中心化账户管理方即可证明所有权的方法。
用户发送加密货币时,网络必须确认交易已由合法的密钥持有者批准。
网络无法依赖信任、个人身份或客服流程。
它依靠用户私钥生成的数字签名。
无需泄露私钥,其他人也可以使用公钥信息验证签名。
这样,区块链便能验证来自世界各地陌生人的数百万笔交易。
公钥密码学还支持自托管,因为用户可以通过私钥直接控制资产。
这一机制很有用,因为用户无需获得中心化服务的许可,就能签署有效交易。
但它也有风险,因为用户需要自行负责保护私钥和恢复短语。
如果私钥被盗,攻击者通常可以转移相关资产。
如果私钥丢失且没有备份,相关资产可能会永久无法访问。
公钥密码学的工作原理
公钥密码学从生成密钥开始。
钱包或密码学系统会使用强随机数生成私钥。
随后,系统会使用特定的密码算法,从私钥推导出对应的公钥。
这种关联关系经过设计,只能朝一个方向使用。
从私钥生成公钥应该很容易,但在当前的经典计算机条件下,几乎不可能从公钥反推出私钥。
用户想要授权交易时,钱包会使用私钥生成数字签名。
节点或验证者可以使用公钥信息验证该签名。
如果签名有效,网络就可以确认交易已由正确的密钥持有者授权。
私钥不应离开钱包或签名设备。
这正是公钥密码学适用于去中心化网络的核心原因。
用户可以证明自己拥有控制权,而无需暴露赋予其控制权的秘密。
公钥与私钥
公钥是密码学密钥对中可以分享的部分。
私钥是同一密钥对中需要保密的部分。
NIST 公钥术语表将公钥描述为非对称密钥对中可以公开的部分,通常用于验证签名或加密数据。
在加密钱包中,私钥赋予用户支出权限。
公钥有助于证明签名来自匹配的私钥。
绝不能向任何人分享私钥。
在许多系统中,公钥可以分享,不过用户通常分享的是钱包地址,而非完整公钥。
这一区别对安全至关重要。
分享收款地址是正常的。
分享私钥就相当于交出相关资金的控制权。
公钥与钱包地址
钱包地址并不总是等同于公钥。
在许多区块链中,钱包地址是对公钥进行哈希处理、编码或格式转换后推导出来的。
用户通常会分享钱包地址来接收加密货币。
公钥则属于更深层的密码学系统,用于验证签名。
例如,用户收款时可能会复制 Ethereum 地址或 Bitcoin 地址。
发送者不需要接收者的私钥。
发送者甚至可能不需要接收者的完整公钥。
区块链会在验证未来的支出交易时使用相关密码学信息。
这一区别很重要,因为新手有时会认为地址、公钥和私钥都是同一回事。
它们彼此相关,但作用不同。
Bitcoin 中的公钥密码学
Bitcoin 使用公钥密码学控制谁可以支出 Bitcoin。
Bitcoin Developer Guide 的钱包文档解释称,钱包程序会生成公钥来接收聪(satoshi),并使用对应的私钥支出这些聪。
Bitcoin 钱包收到资金时,区块链会根据与地址或脚本相关的条件记录可支出的价值。
钱包支出这些资金时,会提供有效签名,证明所有者拥有正确的私钥。
Bitcoin 节点可以验证签名,并确认交易符合支出条件。
正常支出过程中不会公开私钥。
系统只会提供所需的签名和公开数据。
这使 Bitcoin 无需银行逐笔审批付款,也能支持点对点价值转移。
Bitcoin 用户应牢记,控制密钥就意味着控制资产。
丢失 Bitcoin 私钥可能意味着永久失去与该密钥关联的 Bitcoin。
Ethereum 中的公钥密码学
Ethereum 的外部拥有账户同样依赖公钥密码学。
外部拥有账户由私钥控制,而不是由智能合约代码控制。
Ethereum 用户发送 ETH、转移代币、批准智能合约或与去中心化应用交互时,钱包都会签署交易。
官方Ethereum 交易文档将交易描述为账户发出的、经过密码学签名的指令。
Ethereum 网络会验证交易是否由正确的密钥持有者签署。
验证通过后,如果交易有效且已支付所需费用,就可以改变 Ethereum 的状态。
这种模式允许用户通过密钥直接控制账户。
这也意味着签署不安全的交易可能带来危险。
私钥不只用于授权简单转账。
它还可以授权代币授权、合约调用、治理投票和其他操作。
公钥密码学与数字签名
数字签名是公钥密码学在加密货币领域最重要的用途之一。
数字签名可以证明消息或交易已由私钥持有者批准。
它还有助于证明签名后的数据未被篡改。
如果交易中的任何重要部分发生变化,签名就不应再能通过验证。
这可以保护交易完整性。
在区块链中,被签名的内容通常是交易数据。
钱包会在本地生成签名。
网络会在接受交易之前检查签名。
这样,网络就能在不知晓私钥的情况下验证授权。
正是数字签名使公有区块链能够在保密支出密钥的同时实现开放验证。
公钥密码学与加密
公钥密码学也可以用于加密,但加密和签名并不是一回事。
加密用于隐藏数据,使其只有指定接收者才能读取。
签名用于证明私钥持有者批准或创建了数据。
Cloudflare 非对称加密指南解释称,非对称加密使用两个密钥而非一个密钥,有助于实现安全的互联网通信。
在加密钱包中,公钥和私钥最常见的用途是签署交易,而不是加密普通交易。
大多数公有区块链交易对网络参与者可见,因为透明性是共同验证所必需的。
因此,用户不应因为加密货币交易使用了密码学技术,就认为交易是私密的。
交易经过密码学签名后,仍然可能是公开的。
隐私需要额外的工具、协议设计或加密系统。
签名回答的是“谁授权了这项操作?”
加密回答的是“谁能读取这些内容?”
公钥密码学与助记词
助记词是一种备份,可用于生成钱包中的多个私钥。
公钥密码学应用于密钥对层面,而助记词通常用作多个密钥对的根备份。
这意味着助记词可能比单个私钥更敏感。
如果有人获得助记词,就可能重新生成钱包并访问多个相关账户。
除非用户有意将钱包恢复到从官方来源获取的可信钱包软件中,否则绝不能在声称可以验证、恢复、迁移或保护钱包的网站上输入助记词。
用户不应将助记词存储在截图、云端备忘录、电子邮件、聊天应用或纯文本文件中。
即使公钥密码学再强大,也无法保护将助记词直接交给攻击者的用户。
助记词保护不仅是密码学问题,也涉及用户安全意识。
私钥在数学上可能非常安全,但不良的备份习惯仍可能导致资产全部损失。
公钥密码学与自托管
自托管是指用户自己控制私钥,而不是依赖托管方控制私钥。
公钥密码学让自托管成为可能,因为用户无需依赖中心化账户服务提供商,就能证明所有权。
自托管让用户直接控制资金。
同时,用户也要直接承担安全责任。
自托管钱包通常无法重置丢失的私钥。
区块链通常也无法撤销由已泄露密钥签署的有效交易。
因此,自托管需要谨慎备份、保护设备、防范网络钓鱼并审查交易。
持有重要资产的用户应考虑使用硬件钱包、多重签名、离线备份,并根据不同风险等级使用不同钱包。
公钥密码学赋予用户控制权,但并不意味着可以忽视运营纪律。
公钥密码学与托管账户
托管账户在基础设施层面仍会使用公钥密码学,但用户可能无法直接控制私钥。
在托管模式下,公司或服务会控制钱包,并代表用户签署交易。
用户可能通过密码、双重身份验证和账户恢复工具登录。
对于新手来说,这种方式可能更简单。
但它也会带来第三方风险,因为用户需要依赖托管方的安全措施、政策、偿付能力和诚信。
自托管和托管属于不同的安全模式。
自托管由用户保护私钥。
托管则由服务提供商保护私钥。
公钥密码学支持这两种模式,但它们的信任假设截然不同。
在判断谁控制资产之前,用户应先了解谁控制密钥。
公钥密码学与多重签名
多重签名使用多个密钥授权一笔交易。
例如,2-of-3 多重签名钱包要求 3 个获准密钥中的任意 2 个提供签名。
这可以降低单个密钥丢失或被盗就导致整个钱包安全性失效的风险。
DAO、团队、基金和高级用户经常使用多重签名保护财库。
公钥密码学使每位签名者都能使用单独的私钥证明自己已批准交易。
钱包或智能合约可以验证是否收到了足够数量的有效签名。
多重签名可以提升安全性,但也会增加复杂性。
用户必须保护多个密钥、规划备份、明确签名者的职责并制定恢复流程。
如果丢失的密钥太多,资金可能无法访问。
如果足够数量的密钥遭到泄露,资金仍可能被盗。
公钥密码学与智能合约钱包
智能合约钱包通过可编程账户规则扩展了基础密钥对模式。
智能合约钱包可能支持多重签名审批、每日限额、社交恢复、会话密钥、支出策略或自定义签名方案。
这可以让钱包安全机制比单一私钥更加灵活。
不过,智能合约钱包仍然依赖密码学授权。
仍然需要某个密钥或一组密钥来证明某项操作已获准。
不同之处在于,智能合约可以制定更高级的规则,决定是否接受签名。
这对账户抽象、机构托管、游戏钱包、DAO 财库和后量子迁移规划都很重要。
智能合约钱包可以改善用户体验,但也会带来智能合约风险。
如果钱包合约存在漏洞,即使签名密钥安全,资产仍可能面临风险。
优秀的钱包设计需要兼顾密码学安全和代码安全。
公钥密码学与公钥基础设施
公钥密码学与公钥基础设施(Public Key Infrastructure)并不相同。
公钥密码学是使用公钥和私钥的数学系统。
公钥基础设施(PKI)是一种信任框架,用于管理数字证书,并将公钥与域名、组织、用户或设备等身份绑定。
加密钱包可以使用公钥密码学,而无需证书颁发机构批准钱包地址。
不过,加密网站、API、钱包下载、托管门户和机构系统通常依赖 PKI 来实现安全通信。
这一区别很重要,因为区块链可以验证钱包签名,而无需知道用户的真实身份。
浏览器连接网站时,通常需要基于证书的信任系统来验证网站是否为该域名使用有效公钥。
公钥密码学是底层工具。
PKI 则是围绕该工具组织信任的一种方式。
公钥密码学与哈希函数
公钥密码学和哈希函数在加密领域都很重要,但它们是不同的工具。
哈希函数会将数据转换为固定长度的输出,并且该输出难以反推,也难以预测。
公钥密码学使用密钥对进行签名、验证、加密或解密。
区块链通常会同时使用这两者。
交易可能会在签名前先进行哈希处理。
公钥可能会经过哈希处理,以生成较短的钱包地址。
区块头可能会使用哈希将区块连接成链。
哈希函数有助于确保数据完整性,并生成简洁的标识符。
公钥密码学有助于确认所有权和授权。
了解这两种工具,有助于用户理解区块链为何能够做到透明、可验证且难以伪造。
公钥密码学与零知识证明
零知识证明不同于普通公钥签名,但同样属于更广泛的密码学领域。
零知识证明让一方能够在不披露所有底层信息的情况下,证明某个陈述属实。
公钥密码学通过密钥对证明对私钥的控制权,或保护数据。
零知识系统可以在有限披露信息的情况下,证明关于数据、计算、余额、身份或交易的事实。
加密应用可能使用公钥密码学进行钱包授权,并使用零知识证明实现隐私保护或扩容。
例如,Rollup 可以使用证明高效验证大量交易。
隐私工具可以使用证明,在隐藏某些交易详情的同时验证交易有效性。
这些系统可能会相互配合,但不能互换使用。
公钥密码学用于回答所有权和授权相关问题。
零知识证明用于回答选择性证明相关问题。
公钥密码学中的常见算法
公钥密码学使用多种算法体系。
RSA 是较早出现且广为人知的公钥系统之一。
椭圆曲线密码学广泛应用于加密货币领域,因为与较早的方法相比,它能以更短的密钥提供强大的安全性。
Bitcoin 和标准 Ethereum 账户使用基于 secp256k1 曲线的椭圆曲线密码学生成签名。
其他区块链系统可能会根据自身设计使用 EdDSA、BLS 签名、Schnorr 签名或不同的椭圆曲线。
在一些系统中,签名聚合方案可以将多个签名合并,或提高验证效率。
Diffie-Hellman 和椭圆曲线 Diffie-Hellman 等密钥协商系统有助于双方建立用于加密的共享密钥。
开发者不应为投入生产的加密系统自行设计密码学。
他们应使用经过充分审查的算法、经过审计的库和现行标准。
密码学实现中的一个小错误就可能导致严重的安全失效。
公钥密码学与后量子风险
公钥密码学面临来自量子计算的长期风险。
大型容错量子计算机可能破解一些现有公钥系统,包括许多基于 RSA 和椭圆曲线假设的系统。
NIST 后量子标准公告指出,FIPS 203、FIPS 204 和 FIPS 205 已完成最终定稿,以支持旨在抵御未来量子攻击的密码学技术。
Ethereum 后量子路线图指出,ECDSA 账户签名、BLS 共识签名、KZG 承诺和应用层证明系统都需要进行后量子规划。
这并不意味着当前钱包正在遭受大规模量子计算攻击。
这意味着去中心化网络必须在量子攻击变得可行之前做好准备。
随着威胁和标准变化,公钥密码学一直在不断发展。
后量子迁移是这一演进的下一个重要阶段。
对用户来说,正确的应对方式是冷静准备,并留意钱包和协议的官方更新。
对开发者来说,正确的应对方式是实现密码算法敏捷性,也就是设计能够升级密码学算法而不影响用户的系统。
公钥密码学的优势
公钥密码学的第一项优势是去中心化授权。
用户可以证明自己控制资产,而无需请求中心化机构批准每笔交易。
第二项优势是保护私钥机密性。
用户可以证明所有权,而无需泄露私钥。
第三项优势是开放验证。
任何人都可以使用公钥信息验证有效签名。
第四项优势是自托管。
用户可以通过控制私钥直接持有资产。
第五项优势是安全通信。
公钥方法支持加密通信渠道、安全 API、钱包下载和基础设施身份验证。
第六项优势是可编程性。
智能合约和钱包可以验证签名,并构建复杂的授权系统。
第七项优势是互操作性。
标准化的密码学工具让钱包、节点、应用和硬件设备能够协同工作。
公钥密码学的风险与局限
第一项风险是私钥被盗。
如果攻击者获得私钥或助记词,通常就能控制资金。
第二项风险是私钥丢失。
如果所有者丢失密钥且没有备份,可能无法恢复。
第三项风险是网络钓鱼。
攻击者可能诱骗用户泄露助记词或签署恶意交易。
第四项风险是实现不当。
随机性不足、有缺陷的库或不安全的签名代码都可能破坏安全性。
第五项风险是用户误解。
许多损失源于用户混淆地址、公钥、私钥、授权和签名。
第六项风险是未来的量子压力。
一些现有公钥系统可能需要迁移至后量子替代方案。
第七项风险是过度自信。
强大的密码学无法保护用户免受所有骗局、虚假网站、恶意合约或不谨慎备份习惯的影响。
公钥密码学如何支持区块链信任
公钥密码学通过让交易可以独立验证来支持区块链信任。
每个节点都不需要知道每位用户的真实身份。
每个节点只需要验证交易是否具有有效签名,以及是否符合协议规则。
这形成了一种最大限度减少信任需求的系统。
相比中心化运营者,用户更信任数学、公开规则和网络验证。
公钥密码学还支持假名化,因为用户可以在许多公有网络上生成新的密钥对,而无需登记法定身份。
假名化并不等同于完全隐私。
地址和交易仍可能公开可见,并且可以相互关联。
公钥密码学赋予用户控制权,但隐私取决于额外的设计选择和用户行为。
因此,区块链信任并非仅仅建立在保密性之上。
给用户的最佳实践
用户绝不能分享私钥、助记词或恢复词。
用户应了解,公钥和钱包地址并不等同于私钥。
用户应从经过验证的官方来源使用钱包软件。
用户应离线抄写助记词,并妥善保存备份。
用户应避免将私钥保存在截图、云端备忘录、电子邮件或聊天应用中。
对于重要的长期持仓,用户应考虑使用硬件钱包。
对于共享财库或高价值资产,用户应考虑使用多重签名。
用户应在签名前阅读交易提示。
用户应定期检查代币授权,并撤销不再需要的权限。
随着后量子迁移计划逐步制定,用户应关注网络和钱包的官方指引。
给开发者的最佳实践
开发者应使用经过审计的密码学库,而不是编写自定义密码学原语。
开发者应在生成密钥时使用安全的随机数。
开发者应将签名密钥、加密密钥、管理密钥、API Key 和验证者密钥分开。
开发者应清楚编写钱包提示,让用户知道自己签署的是转账、授权、消息还是合约调用。
开发者应设计能够在必要时轮换密钥的系统。
开发者应避免将秘密存储在公开代码仓库、前端代码、日志或未加密配置文件中。
开发者应仔细测试签名验证,因为微小错误可能导致未授权操作。
开发者应关注标准发展,并构建具备密码算法敏捷性的架构,为后量子迁移做好准备。
开发者应记录每个密钥的具体用途。
良好的密码学需要优秀的工程实践和用户体验。
关于公钥密码学的常见误解
一种误解是公钥可以用于支出资金。
公钥可以验证签名或支持加密,但控制资金的授权是由私钥生成的。
另一种误解是钱包地址始终等同于公钥。
钱包地址通常由公钥数据推导而来,但通常并不是公钥本身的完整内容。
另一种误解是加密货币交易会自动保护隐私。
许多加密货币交易经过签名,但仍然公开可见。
另一种误解是强大的密码学可以让骗局不再发生。
用户仍可能因网络钓鱼、虚假应用、恶意授权和社会工程攻击而损失资金。
另一种误解是区块链可以恢复私钥。
大多数公有区块链无法恢复丢失的私钥,因为没有中心化机构控制密钥恢复。
常见问题
公钥密码学是什么意思?
公钥密码学是指使用公钥和私钥组成的密钥对来支持数字签名、加密、验证和安全通信。
公钥密码学为何对加密货币很重要?
它很重要,因为用户可以借此证明自己控制钱包并授权交易,而无需泄露私钥。
公钥密码学与非对称密码学相同吗?
是的。公钥密码学通常也称为非对称密码学,因为它使用两个不同但彼此相关的密钥。
什么是私钥?
私钥是一种需要保密的密钥,在某些系统中可用于生成签名、解密数据,并控制相关加密资产。
什么是公钥?
公钥是一种可以分享的密钥,根据密码学系统的不同,可用于验证签名或加密数据。
钱包地址是公钥吗?
不一定,因为许多钱包地址是通过哈希处理和格式转换等步骤由公钥推导而来的。
有人仅凭公钥就能盗取加密货币吗?
在目前的正常情况下,仅凭公钥通常无法盗取加密货币,因为支出需要匹配的私钥或有效的授权路径。
区块链交易经过加密吗?
大多数公有区块链交易默认并未加密,因为网络参与者必须能够查看交易,以便进行验证。
签名和加密有什么区别?
签名用于证明授权或真实性,而加密用于隐藏数据,避免未经授权的人读取。
私钥可以重置吗?
在大多数自托管钱包中,如果私钥丢失,公司或区块链都无法为其重置。
公钥密码学可以防范网络钓鱼吗?
不能。即使密码学很强大,也无法保护将助记词交出去或签署恶意交易的用户。
量子计算机会影响公钥密码学吗?
未来的大型量子计算机可能会威胁一些现有公钥系统,因此目前已在规划向后量子密码学迁移。
结语
公钥密码学是让加密货币成为可能的核心技术之一。
它使用户能够生成密钥对、接收资产、签署交易、验证所有权、保护通信并构建自托管系统,而无需依赖中心化账户管理方。
公钥可以分享或用于验证,而私钥必须保密,因为它赋予控制权。
Bitcoin、Ethereum、智能合约钱包、多重签名财库、验证者系统、去中心化应用和安全的加密基础设施,都以不同方式依赖公钥技术。
对用户来说,最重要的一点很简单:务必保护好私钥和助记词。
对开发者来说,最重要的一点同样简单:正确使用经过审查的密码学,并设计能够随着威胁变化而演进的系统。
公钥密码学功能强大,但并非无所不能。
它本身无法阻止网络钓鱼、不良备份习惯、恶意授权、薄弱软件或未来的密码学迁移挑战。
理解加密货币中的公钥密码学最简单的方式是:它让任何人都能验证控制权证明,同时隐藏控制权背后的秘密。
您可能也喜欢
反恐融资(CTF)
框架
波动性爆发
热门
目前热门备受市场关注的加密货币
最高成交量
按交易量计算交易量最大的加密货币

