钱包开发工程师应该掌握的知识
钱包是区块链的入口,不管是交易所,还是去中心化的应用,钱包都做为一个基础的功能而存在;我们都知道,钱包分为中心化钱包,去中心化钱包(含 AA 钱包和社交恢复钱包),硬件钱包和托管钱包(包含多签钱包和 MPC 钱包);四种钱包的区别主要是私钥的管理方式不一样。
中心化钱包钱包一般供给交易所使用,将完整的私钥加密之后管理在中心化的环境中,常见的管理方式有 TEE, KMS 和 CloadHSM。
去中心化钱包私钥加密之后存储在用户设备中,一般钱包私钥丢失无法找回。社交恢复钱包分为两种,密钥分片备份和守护者恢复,密钥分片技术是将用户的私钥使用门限共享秘密算法将私钥分成 N 片加密之后分发给不同的朋友存储到设备中,一旦密钥丢失,通过社交加验证的方式从朋友哪里获取 M 个密钥分片,使用 N-M(密钥拆分成 N 分,拿大其中 M 份可以恢复出完整的密钥) 逆门限共享秘密算法恢复出完整的私钥。守护者社交恢复主要是针对 EVM 系列的社交恢复钱包,由一个合约来管理整个钱包,一旦密钥丢失,发起社交恢复,由多个守护者签名一笔交易进行钱包合约的私钥替换,完成恢复的过程。
硬件钱包主要是把私钥管理在离线的硬件设备中,在硬件设备中集成钱包签名算法。
托管钱包有两种,团队资金共管钱包,一般使用多签钱包;EVM 链比较成熟的方案是 gnosis 多签,其他链还是使用多签算法实现;企业资管一般使用 MPC 钱包,MPC 是资管解决方案里面用得最多的密码学算法,运行 N 个 MPC 节点,节点之间通过多轮交互之后生成密钥片,节点与节点之间互相不知道对方生成的密钥片是什么,当需要发交易时,只需要其中 M 个节点签名交易就有效。
上面说了这么多,如果想找一份还不错的钱包开发的工作,您应该掌握哪些知识呢?我们将在下面做详细的探讨。
1.密码学算法基础
- 公钥密码学基础
- DES 算法深入
- RSA, GPG, ECDSA 和 EDDSA 算法深入
- BLS 算法深入
- 单向函数算法深入
- 门限共享密码算法深入
- MPC 算法深入
2. 通信协议
- 蓝牙通信协议
- 串口通信协议
- NFC 通信协议
- P2P 通信协议
3. 离线签名(含硬件钱包)
- 主流公链的交易签名前后数据组织编码细节与代码实现
- Tee, Kms 和 CloadHSM 等集成环境的密钥对生成和签名调度
- 通过各种通信协议调度硬件生成密钥对和交易签名等
4. 中心化钱包
- 主流公链 RPC 接口,能快速组织接口扫链支持钱包出入金
- 充值,提现,归集,热转冷,冷转热和链路风控等钱包业务流程
5. 去中心化钱包(含硬件钱包)
- 熟悉 BIP 协议簇
- 能快速组织主流公链 RPC 接口支持钱包转账,交易记录等
- 钱包和主流 Dapp 交互过程开发(Dapp 浏览器)
6. 托管钱包
- Gnosis Safe 多签钱包流程
- MPC 底层算法实现机制
- 使用 MPC 开发托管钱包
7. 推荐学习社区
- The web3: https://github.com/the-web3
- 密码学教程:https://github.com/the-web3/cryptography…
- 钱包教程:https://github.com/the-web3/blockchain-wallet…
以上两个教程目前在完善中,欢迎大家参与共建......
版权声明
本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。