仅供教育参考,不构成安全或投资建议。区块链交易可能无法撤销。绝不要泄露私钥或恢复短语,并在签名前核对每笔交易。
直接答案
公钥与私钥构成一种非对称密码学关系,用于授权和验证区块链操作。私钥是创建数字签名的秘密数据。对应的公钥可以公开,使他人能在不知道私钥的情况下验证签名。
区块链地址通常由公钥、脚本或账户规则派生,并非在所有网络上都等同于公钥。派生方式和地址格式取决于具体网络。地址标识目的地或账户,而控制权通常取决于能否满足该网络的支出或授权规则。
持有私钥不代表代币存放在钱包里。资产或可支出输出记录在账本上,密钥让持有人能够授权有效的状态变更。取得密钥的人可能以持有人身份签名,而唯一可用密钥一旦丢失,自托管资产可能永久无法访问。
工作原理
基本签名流程如下:
- 钱包软件用密码学安全的随机数生成私钥,或按照规定方案从钱包种子派生私钥。
- 单向数学运算派生对应的公钥。在算法和实现安全时,从公钥反推出私钥在计算上应不可行。
- 网络规则从公钥派生地址、脚本或账户,或将其与公钥关联。不同网络可能使用不同的曲线、哈希函数、编码和账户模型。
- 钱包用私钥对特定交易或消息签名。签名只对应精确编码的数据;数据一经改变,签名即失效。
- 网络参与者在接受获授权操作前,依据公钥和协议规则验证签名。验证过程不会泄露私钥。
恢复短语与私钥不是同一个对象。在许多分层确定性钱包中,恢复短语表示用于重建种子的熵,再由种子派生多个密钥和地址。因此,知道该短语的人可能控制所有派生账户。钱包密码通常只用于加密或解锁本地钱包文件;它不能取代底层密钥,也不能单独恢复密钥。
公私钥控制也不能描述所有区块链账户。例如,以太坊外部账户由密钥对控制,合约账户则由已部署代码控制,并可能实施多重签名、时间延迟或恢复规则。
示例
Alice 把收款地址交给 Bob。Bob 的钱包检查网络和地址格式,构造付款,并要求 Bob 确认收款人、金额和手续费。钱包在本地用 Bob 的私钥为这笔确切交易签名,再广播已签名交易;私钥本身从不发送给 Alice 或网络。
节点验证签名和相关支出规则。有效签名表明所需密钥授权了该交易,但不能证明 Bob 的法律身份、Alice 值得信任,或交易在经济上合理。如果 Bob 为错误网络、收款人或合约操作的数据签名,正确的密码学仍可能授权错误结果。
风险
- 泄露: 钓鱼、恶意软件、云备份、截图、浏览器扩展或假冒客服都可能暴露私钥或恢复短语。应将二者都视为具有完整控制权的材料。
- 丢失: 设备损毁、遗忘附加密码、备份不完整或派生设置不兼容都可能阻止恢复。应在不暴露秘密的前提下测试有文档说明的恢复流程。
- 不良随机数或软件: 可预测的密钥生成、有缺陷的签名代码、供应链入侵或恶意钱包会破坏原本可靠的密码学。使用持续维护的软件和信誉良好的签名设备。
- 签名含义不清: 签名可能授权转账、代币批准、订单、登录或其他消息。阅读人类可理解的意图,并独立核对编码详情、网络、地址和金额。
- 操作集中: 一把密钥控制全部资产会形成单点故障。适当分离余额和职责,尽量减少联网暴露,并为高价值用途考虑硬件签名、多重签名或受策略控制的账户。
如果私钥或恢复短语可能已经暴露,应假定其已被攻破。在干净设备上创建独立生成的新钱包,核验其备份,并在安全时转移剩余资产和必要权限。不要把旧秘密输入声称可以检查或修复钱包的网站。
常见误区
误区 1:私钥只是钱包密码
密码可以保护本地应用或加密密钥库。私钥用于授权签名,重置应用密码不能重建丢失的私钥或恢复短语。
误区 2:地址和公钥始终相同
地址构造取决于协议。许多地址编码的是哈希、脚本或账户规则,而不是原始公钥;某些合约地址根本没有私钥。
误区 3:公开公钥会让别人算出私钥
安全的公钥系统本就允许公开公钥和签名。实际威胁是薄弱随机数、有缺陷的实现、秘密泄露以及密码学未来可能被破解,而不是正常的验证过程。
误区 4:有效签名能证明签名者是谁
它只能证明所需密钥按照协议规则授权了已签名数据。要把该密钥与真人或组织关联,还需要独立的身份证据。