-
bitcoin $80983.718195 USD
-2.88% -
ethereum $2363.938053 USD
-5.54% -
tether $0.998790 USD
-0.01% -
bnb $717.610948 USD
-3.20% -
xrp $1.305281 USD
-4.72% -
usd-coin $0.999943 USD
0.00% -
solana $102.093135 USD
-4.89% -
tron $0.330976 USD
-0.21% -
hyperliquid $79.564118 USD
-2.87% -
zcash $1095.109590 USD
-12.52% -
dogecoin $0.079794 USD
-5.68% -
monero $536.493608 USD
-2.23% -
chainlink $12.045088 USD
-6.39% -
unus-sed-leo $9.028000 USD
0.09% -
cardano $0.220158 USD
-6.35%
加密钱包如何生成私钥和公钥?
Crypto wallets generate a 256-bit private key from secure entropy, derive a public key via secp256k1 elliptic curve multiplication, then hash and encode it into a Base58Check address.
2026/06/30 11:20
密钥生成过程
1. 加密钱包通过在特定有限域内生成加密安全随机数(对于 Bitcoin 和以太坊来说通常是 256 位整数)来启动密钥生成。
2. 该整数成为私钥,表示为 64 个字符的十六进制字符串或通过 BIP-39 标准编码的 12 或 24 字助记词短语。
3. 然后将私钥输入椭圆曲线乘法函数(特别是 Bitcoin 和以太坊的 secp256k1),以导出相应的公钥。
4. 公钥经过 SHA-256 哈希处理,然后经过 RIPEMD-160 哈希处理,产生 160 位输出,构成钱包地址的基础。
5. 在 Base58Check 编码将结果转换为最终的人类可读地址格式之前,附加版本字节和校验和。
椭圆曲线密码学基金会
1. secp256k1 曲线定义了主要区块链使用的数学结构:在质数域上模 p = 2²⁵⁶ − 2³² − 977 上的 y² = x³ + 7。
2. 私钥是应用于该曲线上固定生成点 G 的标量乘数。
3. 公钥作为标量乘法后的结果点 (x, y) 坐标出现——此操作计算效率高,但如果没有暴力方法,则不可逆。
4.离散对数问题确保以当前的计算能力从公钥推导出私钥仍然是不可行的。
5. 每个有效的私钥都精确地映射到一个公钥,但多个私钥在标准派生路径下不能产生相同的公钥。
钱包地址推导
1. 钱包获得未压缩的公钥(65字节)后,应用SHA-256将其压缩为32字节的摘要。
2. 该摘要通过 RIPEMD-160 生成 20 字节哈希值——链上交易中使用的核心标识符。
3. 特定于网络的前缀(例如,Bitcoin 主网为 0x00,测试网为 0x01)添加到 RIPEMD-160 输出之前。
4. 双 SHA256 校验和计算前四个字节,附加到前缀哈希。
5. 完整的二进制有效负载经过 Base58Check 编码以生成旧版 P2PKH 地址,例如1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa 。
助记词整合
1. BIP-39 使用从 128-256 位熵生成的 12 或 24 字种子短语引入了确定性密钥派生。
2、从固定2048词词典中选词;每个字编码 11 位,从而能够精确重建原始熵。
3. 校验和在单词映射之前扩展了熵——确保手动输入期间的拼写错误。
4. PBKDF2-HMAC-SHA512 进行 2048 次迭代,从助记词和可选密码短语中导出 512 位种子。
5. 该种子用作 BIP-32 分层确定性 (HD) 钱包算法的输入,允许从单个根派生出无数密钥对。
密钥生成的安全影响
1. 弱熵源(例如可预测的系统时钟或低熵操作系统 RNG)可能会产生统计上有偏差的私钥,容易被重建。
2. 在多个链或上下文中重复使用相同的私钥会增加暴露面积,但没有加密优势。
3. 硬件钱包将密钥生成隔离在安全元件内,防止创建或签名操作期间发生泄漏。
4. 如果实施不当,仅依赖基于浏览器的 Web Crypto API 的软件钱包可能会将熵的生成暴露给定时侧信道攻击。
5.缺乏真正的随机性会使整个加密保证失效,甚至使数学上合理的曲线对目标恢复无效。
常见问题解答
问:两个不同的钱包可以生成相同的私钥吗?统计上可能,但实际上不可能——有 2²⁵⁶ 个唯一值,使得碰撞概率小于 10⁷⁷ 中的 1。
问:为什么有些钱包同时显示压缩和未压缩的公钥?压缩密钥通过仅对 x 坐标和奇偶校验位进行编码,将存储需求减半;两种形式在散列时都会产生相同的地址。
问:使用开源工具离线生成密钥安全吗?是的——如果环境是气隙的,熵源得到验证,并且在生成过程中没有网络堆栈处于活动状态。
问:更改 BIP-39 钱包中的密码是否会改变派生私钥?是的,密码在 PBKDF2 中充当盐,产生完全不同的种子,从而产生不同的密钥层次结构。
免责声明:info@kdj.com
所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!
如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。
- XRP 新闻随着人工智能支付里程碑而飙升,交易者关注 Pepeto 的预售潜力
- 2026-10-16 08:35:01
- 众议员布莱恩·斯泰尔面临威斯康星州选举,《清晰法案》悬而未决
- 2026-10-16 05:25:01
- Vitalik Buterin 宣布 zkEVM 速度竞赛结束,敦促开发者优先考虑安全
- 2026-10-16 05:15:02
- 中国、比特币、DOGE:三大洲加密货币难题揭开
- 2026-10-16 05:10:01
- XRP 价格预测、XRP 社区和以持有者为中心的实用程序:新的叙述出现
- 2026-10-16 05:00:02
- Zcash ETF 流出和 ZEC 价格波动:纽约市的情况
- 2026-10-16 05:00:01
相关百科
如何使用 BlueWallet 通过闪电网络发送 Bitcoin
2026-10-16 04:20:16
了解 BlueWallet 中的闪电网络集成1. BlueWallet 支持具有内置闪电网络功能的非托管 Bitcoin 钱包,可实现即时、低费用的链下交易。 2.钱包在底层使用LND(闪电网络守护进程),允许用户在不运行完整节点的情况下打开通道、接收发票和路由支付。 3. 用户必须先在 BlueW...
如何在 Talisman 中检查不同网络上的代币余额
2026-10-15 23:19:32
了解Talisman的多链地址识别1. Talisman 钱包将每个区块链视为独立的账本层,但在 Polkadot、Kusama、Ethereum 和 Moonbeam 等网络上维护统一的地址管理接口。 2. 由于不同的代币标准和合约部署,单个公共地址可能代表不同链上的不同资产,例如 Polkado...
如何在Eternl钱包中查看权益池委托
2026-10-16 03:40:14
了解 Eternl 中的权益池委托1. Eternl 是一种非托管卡尔达诺钱包,支持通过本机委托到权益池的权益功能。与托管钱包不同,Eternl 不持有或控制用户的私钥——所有签名操作都在设备本地进行。 2.卡尔达诺的委托是无需许可且可逆的。用户始终保留其 ADA 的完全所有权,并且授权不涉及将资金...
如何将现有帐户导入 Petra 钱包
2026-10-16 09:39:48
Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少了新进入流通的 BTC 数量。 3. 截至 2024 年减半,矿工每区块获得 6.25 BTC,低于 2020 年的 12...
如何将自定义代币添加到 Sui 钱包
2026-10-15 19:39:42
了解自定义令牌集成1. Sui钱包不会自动检测或显示Sui区块链上部署的所有代币。 2. 代币必须使用其链上标识符(称为代币类型的对象 ID)显式注册在钱包的代币列表中。 3. 币类型遵循严格的格式: 0x[address]::[module]::[struct] ,其中每个段均源自 Move 包部...
如何在两个 Sui 钱包账户之间转移 SUI 代币
2026-10-15 22:59:57
了解 SUI 令牌传输机制1. SUI 代币作为 Sui 区块链上的单独对象存在,而不是作为账户余额。每个硬币都有自己的唯一标识符和版本号。 2. 转账SUI需要引用特定的币对象ID,而不是简单地指定余额池中的金额。 3. 发送者必须拥有所传输货币对象的完全所有权——标准传输不允许共享或委托控制。 ...
如何使用 BlueWallet 通过闪电网络发送 Bitcoin
2026-10-16 04:20:16
了解 BlueWallet 中的闪电网络集成1. BlueWallet 支持具有内置闪电网络功能的非托管 Bitcoin 钱包,可实现即时、低费用的链下交易。 2.钱包在底层使用LND(闪电网络守护进程),允许用户在不运行完整节点的情况下打开通道、接收发票和路由支付。 3. 用户必须先在 BlueW...
如何在 Talisman 中检查不同网络上的代币余额
2026-10-15 23:19:32
了解Talisman的多链地址识别1. Talisman 钱包将每个区块链视为独立的账本层,但在 Polkadot、Kusama、Ethereum 和 Moonbeam 等网络上维护统一的地址管理接口。 2. 由于不同的代币标准和合约部署,单个公共地址可能代表不同链上的不同资产,例如 Polkado...
如何在Eternl钱包中查看权益池委托
2026-10-16 03:40:14
了解 Eternl 中的权益池委托1. Eternl 是一种非托管卡尔达诺钱包,支持通过本机委托到权益池的权益功能。与托管钱包不同,Eternl 不持有或控制用户的私钥——所有签名操作都在设备本地进行。 2.卡尔达诺的委托是无需许可且可逆的。用户始终保留其 ADA 的完全所有权,并且授权不涉及将资金...
如何将现有帐户导入 Petra 钱包
2026-10-16 09:39:48
Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少了新进入流通的 BTC 数量。 3. 截至 2024 年减半,矿工每区块获得 6.25 BTC,低于 2020 年的 12...
如何将自定义代币添加到 Sui 钱包
2026-10-15 19:39:42
了解自定义令牌集成1. Sui钱包不会自动检测或显示Sui区块链上部署的所有代币。 2. 代币必须使用其链上标识符(称为代币类型的对象 ID)显式注册在钱包的代币列表中。 3. 币类型遵循严格的格式: 0x[address]::[module]::[struct] ,其中每个段均源自 Move 包部...
如何在两个 Sui 钱包账户之间转移 SUI 代币
2026-10-15 22:59:57
了解 SUI 令牌传输机制1. SUI 代币作为 Sui 区块链上的单独对象存在,而不是作为账户余额。每个硬币都有自己的唯一标识符和版本号。 2. 转账SUI需要引用特定的币对象ID,而不是简单地指定余额池中的金额。 3. 发送者必须拥有所传输货币对象的完全所有权——标准传输不允许共享或委托控制。 ...
查看所有文章














