公私钥密码学用一对相关密钥完成授权验证:私钥生成数字签名,公钥帮助网络验证签名。私钥控制权通常决定账户控制权,但公钥不能反推出私钥。
区块链转账主要使用公钥密码学证明谁授权了这笔交易,公开账本上的内容不会因此被全部加密隐藏。

私钥通常由安全随机数生成,是必须保密的核心数据。公钥通过椭圆曲线等数学运算从私钥导出。区块链地址往往再由公钥或脚本经过哈希与编码得到,但不同网络的派生规则并不相同。
这条关系通常是单向的:可以从私钥计算公钥,却无法在现实计算条件下从公钥倒推出私钥。地址比公钥更适合展示和校验格式,但地址本身不是账户密码。地址格式与收发币核对方法可继续阅读什么是钱包地址。
钱包先根据交易字段构造待签名消息或其哈希,再用私钥生成签名。节点拿到交易、签名和相应公钥信息后,就能验证两件事:签名是否对应这把密钥,以及签名后数据是否被改动。

签名有效不代表交易一定会成功。节点还会检查余额、UTXO、nonce、合约条件、费用和共识规则。签名也不能证明现实世界的签名人是谁,除非地址与身份之间另有可信绑定。
数字签名提供完整性、来源授权和一定程度的不可否认性;加密则用于隐藏内容。公有链交易通常可以被任何人读取,即使交易带有有效签名。
哈希也不是加密。它常用于先生成交易摘要,再交给签名算法处理。三者的关系可简单理解为:哈希生成数据指纹,私钥为指纹签名,公钥验证签名。哈希的具体性质可见什么是哈希算法。
钱包是管理密钥、地址和签名流程的工具,资产记录仍在区块链账本上。删除钱包应用不会销毁链上资产,但丢失唯一的密钥备份可能永久失去控制权。
助记词通常用于确定性生成一组密钥。知道助记词的人往往可以恢复多个账户,因此它的敏感程度不低于私钥。钱包密码常用于保护本地文件或设备,不能替代助记词备份,也不能让泄露的助记词重新安全。
硬件钱包可以隔离私钥,但屏幕上显示的签名内容仍需人工核对。多签和门限签名可减少单把密钥失效的风险,同时会增加成员协作、备份和恢复复杂度。
公钥的设计目标就是可公开验证,正常情况下不会因此泄露私钥。不过,地址复用会让不同交易更容易被关联,隐私风险与密钥破解风险不是一回事。
部分网络在首次花费前只公开公钥哈希,花费时才披露公钥。未来量子计算对现有算法的影响仍取决于硬件能力、协议设计和升级进度,不能据此宣称当前公钥已经可以被直接破解。
公私钥只是区块链技术的一部分。交易怎样从签名进入确认,可查看区块链如何工作。
不能一概而论。部分协议或脚本会直接使用公钥,常见钱包地址则经过哈希、版本和校验编码。应使用钱包为目标网络生成的地址格式。
如果新设备用同一助记词和相同派生路径恢复,就可能生成相同密钥与地址。若钱包采用不同账户类型或派生路径,显示的地址也可能不同。
单纯在本地签署登录消息通常不上链,也不消耗网络费用。但需要区分消息签名、授权交易和合约调用,后两者可能改变链上状态或授予资产权限。
传统多签通常由多把独立私钥共同满足阈值,例如三把中需要两把签名。门限签名则可能把签名能力分成份额,二者在链上表现和恢复流程上不同。


