钱包开发
- 多链钱包开发经验
- 自己有私钥 就走链
- 如何直接连链
- 自己没有私钥 就走钱包
- 一般是直接连 还是通过walletConnect
- 直接发http请求,还是用
- 自己有私钥 就走链
- 熟悉多链钱包的私钥/助记词的生成、存储、加密及恢复,有隐私安全经验。
- bip 32 39 44 (绝大部分)
- 如何存储
- 了解多个主流区块链(如 Bitcoin、Ethereum、Solana、Cosmos等网络)的共识,网络Gas计算和优化,交易广播机制。
- 熟悉主流区块链的密码学相关算法,能设计交易签名流程。
- 了解链上开发经验,熟悉链上各种交易方式,兑换,跨链等等。
- 了解Dapp浏览器或walletConnect的工作原理和实现优化方案。
- 硬件钱包或对接硬件钱包
-
链抽象,集成 MPC(多方计算)或智能合约钱包(如 Safe、Argent),探索账户抽象(AA)等前沿方案设计经验。
-
假如我说 我在交易所做项目,还需要 说那些知识
- 整体业务介绍
- 账户管理
- 创建/获取账户
- 余额展示
- 交易
- 签名
- 账户管理
- 具体业务实现
- 密码登录的逻辑
- 底层算法介绍
- 私钥加签,公钥验签
- 椭圆曲线的点乘 单向性
- 简化理解 s = k + z + d -> s1 = r + z1 + Q 签名 = 随机数 消息摘要 私钥 随机数点乘值 公钥
- 乘法、逆元、模运算
- 普通扩展
- 私钥生成私/公钥
计算公钥 父私钥通过椭圆曲线标量乘法
生成hash种子(父链码,父公钥字节 + 索引字节)
HMAC-SHA512(key = c_par, data = K_par_bytes || i_bytes)
拆分哈希结果 IL = I[0…31] (前32字节,作为派生因子) IR = I[32…63] (后32字节,作为子链码) 计算子私/公钥 (IL(转换为整数)与父私钥 k_par 相加,再对曲线阶 n 取模) k_child = (IL_int + k_par) mod n K_child = (IL_int × G) + K_par 如果派生因子或者父链码泄漏,可能导致子私钥推导出父私钥
- 私钥生成私/公钥
计算公钥 父私钥通过椭圆曲线标量乘法
生成hash种子(父链码,父公钥字节 + 索引字节)
HMAC-SHA512(key = c_par, data = K_par_bytes || i_bytes)
- 强化扩展 生成hash种子(父链码,父私钥字节 + 索引字节) HMAC-SHA512(key = c_par, data = k_par_bytes || i_bytes)
- 主私钥生成过程 生成随机熵 128~256位 熵→助记词 2048个助记词 - 2 的11次 /11 = 12 ~ 24 个 助记词→种子(PBKDF2 参与) 2048次循环 种子→私钥
- 私钥加签,公钥验签
- 协议
- Bip协议
32/39/44
- 32 描述了从种子 ->master key -> key tree 的过程 描述了增强扩展和普通扩展的方法 说明了公钥生成私钥的方法 每次派生有2^ 32种可能性 10亿级别 扩展私钥/公钥 包含链码,层级等信息
- 39 补充了从随机数-> 助记词 -> 种子的过程 PBKDF2 - HMAC-SHA512
-
44 细化了树为5层,3层强化扩展,2层普通扩展 5层的含义。第二层coin_type汇总 账户发现规则(是否存在交易)
- 39 随机数 + 校验和 4~8 => 助记词 不推荐非英文助记词
-
44 在metamask中是不是只使用了account0
- sec p256 k1 私钥生成公钥算法 Standards for Efficient Cryptography 基于256位的质数 y2≡x3+7(modp) 有限集约束p (p = 2^{256} - 2^{32} - 2^9 - 2^8 - 2^7 - 2^6 - 2^4 - 1) 大的质数,是公钥中x,y的最大值 生成点G 曲线阶 n(约 (1.157 \times 10^{77})),是私钥的取值上限
- HMAC-SHA512 两次异或,拼接,hash 内部哈希 = SHA-512( (密钥 ⊕ 内部填充) || 数据 ) HMAC-SHA512(密钥, 数据) = SHA-512( (密钥 ⊕ 外部填充) || 内部哈希 )
- 地址生成规则 以太坊 : 以太坊地址生成: 取未压缩公钥(65 字节,0x04 + x + y); 对其进行 KECCAK-256 哈希,得到 32 字节结果; 取哈希结果的后 20 字节,即为以太坊地址(如0x71C7656EC7ab88b098defB751B7401B5f6d8976F)
- Bip协议
32/39/44
讲什么 描述了从种子 ->master key -> key tree 的过程 主要作用 方便保存跨链的成百上千甚至更多的账户 权限管理更灵活,可以分配部分账户权限或部分公钥和地址信息 实现路径(一个私钥派生另一个私钥的方法) HMAC-SHA512,增强扩展和普通扩展,链码 I = HMAC-SHA512(Key = “Bitcoin seed”, Data = S) sec p256 k1 实现私钥签名,公钥验签