type
Post
status
Published
date
Dec 10, 2023
slug
blockchain-wallet
summary
私钥、公钥、地址、签名、助记词这些名词的解释及生成原理。
tags
Wallet
Ethereum
Bitcoin
区块链
推荐
category
程序人生
icon
password
私钥→公钥
椭圆曲线
满足椭圆曲线公式的,二维平面的点的集合(按x轴上下对称)

加法操作

R = P + Q
- 作 P 和 Q 两点的连线,与椭圆曲线的第三个交点为 R,再按 x 轴取对称点,即为 R
- 当 P 和 Q 为同一个点的时候,则作该点与椭圆曲线的切线,与椭圆曲线的第二个交点为 R,再按 x 轴取对称点,即为 R
- 椭圆曲线是有限域(Field):相加后的点仍在集合中,即交点 R 一定存在
乘法操作
K = k * G

- 通过提前算好 2^n^G 来加速计算过程
- 已知 K 和 G 的情况下,无法算出 k
k是私钥, K是公钥。正着好算,反着几乎算不出来

公钥→地址
Bitcoin

Ethereum

签名

目的
- 证明拥有地址的私钥且不暴露私钥
- 证明私钥持有者同意了交易内容
签名的Message:唯一的交易
签名算法
- ECDSA:最基础,不支持签名聚合,多签的时候必须依次验证
- Schnorr(Bitcoin Taproot):支持聚合签名,但有一些不足,主要是signer要进行交互
- BLS(Filecoin、ETH2):支持聚合签名,解决signer交互问题
助记词
BIP-39
助记词生成seed

BIP-32
HD Wallet(Hierarchical Deterministic Wallet,分层确定性钱包)
- 如何从一个seed,生成多层的私钥
- 没有seed的情况下,私钥之间互相不能推导

BIP-44
- 约定path的使用规范,即HD Wallet中私钥的选取规范


- SLIP-0044:不同链的path约定,新链需要注册
小结
- 助记词是随机生成的,根据助记词可以获得大量的私钥,然后按照约定的规则选取其中的部分私钥使用,在保证安全性的前提下简化了整个多链多地址钱包的保管和恢复
- 对于符合以上标准的钱包,助记词是互通的,即可以通过助记词恢复出所有钱包内的地址和对应的私钥
- 作者:ruofei.wang
- 链接:https://blog.ruofei.wang/article/blockchain-wallet
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。





