细分数字货币钱包的不同种类

news/2025/2/23 1:48:39

文章目录

  • 一、中心化钱包
    • 1.1 中心化钱包架构
    • 1.2 中心化钱包业务细节流程
  • 二、去中心化钱包(HD 钱包)
    • 2.1 去中心化钱包架构
    • 2.2 去中心化钱包细节业务流程
  • 三、硬件钱包
    • 3.1 硬件钱包架构
    • 3.2 硬件钱包细节业务流程
  • 四、MPC 托管钱包
  • 五、多签钱包

  • 中心化钱包 :钱包私钥一般管理在中心化服务器上,代表项目为交易所钱包;例如 Binance 交易所钱包,okx 交易所钱包和 bybit 交易所钱包等。
  • 去中心化钱包(确定性分层钱包) :钱包私钥一般管理在用户的设备上,代表项目为 TP, ImToken, MetaMask 等。
  • 硬件钱包 :钱包私钥管理在离线的硬件设备上,代表项目 ledger, onekey 等。
  • 交易所 Web3 钱包: 一般的交易所 Web3 钱包集成了,中心化钱包,去中心化钱包(确定性分层钱包)和硬件钱包的功能。
  • 托管钱包: 一般为 MPC 算法,每个节点有一个密钥片,网络中没有完整的私钥出现过, N-M 的签名方式,总节点为 N 个,M 个节点签名交易即有效。
  • 多签钱包: EVM 链一般使用 gnosis safe 多签,其他使用传统密码学方式多签。
  • 社交恢复钱包: 密钥分片备份和守护者恢复。
  • EVM 链 AA 钱包: ERC4337 协议独有特性。

一、中心化钱包

1.1 中心化钱包架构

交易所使用的钱包一般都称为中心化钱包,原因是交易所钱包私钥一般管理在中心化服务器上,不同的交易所的私钥管理方式也不一样。

最简单的方式莫过去将私钥做一层 DES 加密之后存储在数据库或者 wallet.data 数据文件中,其次是使用 KMS 环境保存加密的私钥,不管是使用数据文件或者 KMS 保存私钥,交易签名的时候都需要解密私钥之后进行签名,私钥暴露的风险最大,团队成员作恶也非常容易。

其次是 Tee 环境,Tee 环境虽然是一个安全的执行环境,但是私钥也是加密之后存储在这个环境的数据库或者文件里面,每次签名也要在这个环境中解密私钥进行签名,私钥暴露的风险也很大,团队成员想拿到私钥也很容易,只需要签名前传人私钥是打一个日志就行。

最安全和最专业的做法是使用 cloadHSM 或者多节点备份的小型签名机,私钥不会离开设备,需要签名的时候,传入待签名的报文,cloadHSM 或者小型签名机签名结束之后返回签名报文,然后整理签名交易报文发送到区块链网络。

不管是使用数据库、数据文件、 KMS、TEE,还是 CloadHSM,安全级别也是相对的,有一句话说得好: “外贼易挡,家贼难防”,这句话用在钱包管理上真的是太正确了。不管用什么方案,即使是 CloadHSM 或者小型机方案,“家贼也是很难防”,家贼完全可以模拟一笔合法的交易让 CloadHSM 或小型机方案签名,然后把钱盗走。为了防止家贼,正常的交易所钱包都要做链路风控体系。

从上面的架构图中,我们可以看到, 对于交易所钱包来说,通常有这些业务流程:

  • 批量地址生成
  • 充值
  • 提现
  • 归集
  • 热转冷
  • 冷转热
  • 链路风控

很多公司钱包开发,一般就是一个人负责整条链钱包的调研(离线地址生成,离线交易签名和扫块出入金),开发(含充值,提现,归集,热转冷等功能开发,甚至含链路风控的一部分代码)和测试。当然,也有的公司分为三到四团队,调研和离线签是一个团队,扫链出入金,归集和转冷等功能是一个团队,链路风控是一个团队,测试是一个团队。不管怎么分,运维和开发是隔离的,这样做才能做大限度做到人为风控。

1.2 中心化钱包业务细节流程

批量地址生成: 交易所钱包为了性能和快速响应用户,所有交易所钱包都会有一个地址池,地址池里面每次生成成千上万的地址,当用户注册到交易所的时直接给用户分配地址,而不是去生成;当地址池里面的地址少于一定数量时就会去新生成一批。

充值: 扫链服务扫区块链,解析区块里面的交易数据,当交易数据里面的 to 地址是系统里的用户地址时,就说明有用户充值;充值这个过程除了钱包充值扫块之外,还会和风控一起联合,只有风控系统和钱包都认可这笔交易,才会通知业务层;解析的时候需要注意有人构造恶意交易,有的链是可以构造交易攻击的。

提现: 客户端用户输入要提现的地址,金额,链;这些数据将进入交易所业务层,业务层提交数据给钱包,并建立签名参数风控;钱包拿到交易数据之后先验证是否能过风控,没有问题的去链上获取签名参数,组织交易之后生成待签名的交易报文,将交易报文递给签名机,签名机签名之后返回签名的交易报文,钱包服务组织交易之后发送到区块链网络。交易发送完成之后,定时任务需要不断获取这笔交易在链上的详情,然后验证风控,通过之后通知业务层提现成功,上报交易 Hash 等信息。

归集: 归集功能是把用户地址里面的资金全部归集到一个其它地址里面去,归集是一个批量转账的过程,和提现的逻辑比较类似,就是业务类别不一样。

转冷: 将归集地址里面的资金转到一个冷钱包,归集是一个单笔转账的过程,和提现的逻辑比较类似,就是业务类别不一样。

冷转热: 从冷钱包将资金转到热钱包,手动操作的过程。

交易回滚: 交易回滚是指区块链网络的区块回滚或者重组,需要将钱包系统中的交易处理掉的过程,比方说:现在有一条链区块一下从 1000 个块回滚到 500 个块,那么钱包系统里面存储的 500-1000 个块的交易就是无效交易了,需要处理在这个块范围的所用用户的交易。

钱包风控: 钱包风控在整个项目中占据重要的角色,不管是充值,提现,归集,转冷,冷转热中的每一笔交易,业务层和钱包底层都应该建立完善的风控体系。

清结算系统: 负责钱包平台内用户资金的转移、资产划拨及交易结算,确保资金流动的准确性与合规性。

对账系统: 钱包系统与业务层对账,钱包系统实时资产负债表等。

二、去中心化钱包(HD 钱包)

2.1 去中心化钱包架构

去中心化钱包的私钥是管理在用户设备中的,除了用户本人和牛逼的黑客,没有人接触得到。一般的去中心化钱包都是确定性分层钱包;先生成助记词,助记词导出主私钥,主私钥扩展子私钥和公钥匙的方式,公钥再导出地址。

确定性分层钱包(HD钱包)通过一个单一的种子短语(通常是12-24个单词)生成所有密钥和地址。它采用层次化结构,使得每个钱包可以生成多个账户和子地址,而不需要为每个账户单独管理私钥。种子短语是恢复钱包的唯一凭证,极大简化了备份和恢复的复杂度。

关键特点

  1. 种子短语:一个种子短语可以恢复钱包中的所有私钥和地址。
  2. 层次化结构:通过BIP-32标准,钱包内部采用树状结构管理密钥,每个父密钥可以派生多个子密钥。
  3. 隐私保护:每次生成新的地址,避免地址重用,增强交易隐私。
  4. 多币种支持:支持不同币种的管理,通过不同的派生路径(如BIP-44)生成多个币种的地址。
  5. 备份和恢复简便:只需保存种子短语,即可在任何设备上恢复钱包,无需记录每个私钥。

总结

HD钱包通过集中管理种子短语,提供安全、方便的密钥管理方式,且支持多个账户和币种,具有较强的隐私保护和备份恢复优势。

去中心化钱包的私钥一般是加密之后存储在本地设备 sqlite (一种嵌入式关系型数据库管理系统)或者数据文件里面,当要签名交易的时候,需要用户输入密码解密私钥之后再签名。

去中心化钱包一般有以下几个业务流程:

  • 收款
  • 转账
  • 转账记录
  • 闪兑
  • Dapp 浏览器

去中心化钱包比较出名的有 Tp,ImToken,MetaMask 等。

2.2 去中心化钱包细节业务流程

  • 收款:查询本地设备数据库把地址展示到界面上。

  • 转账:用户在去中心化钱包中输入转账信息,包括:收款地址(对方的钱包地址)、转账金额、交易费用(Gas费),钱包创建交易参数后,用户输入解密私钥的密码,在本地对交易参数进行签名,然后发送签名交易到区块链网络中,区块链网络返回交易状态,随后钱包在界面显示转账状态。

  • 转账记录:根据地址查询交易记录和根据 Hash 查询交易详情

  • 闪兑:钱包里面的闪兑一般对接 1inch (去中心化聚合交易所)或者其他的 aggrator (DeFi 聚合器)实现兑换功能

  • Dapp 浏览器:Dapp 浏览器是指 Dapp 可以在里面运行,能够正常的和钱包进行交互,有以下几种主流的实现方式Web View 中包裹 Dapp, 通过 Js 注入 Windows 对象的方式通信,一般钱包开发直接使用这种方式Websocket 进行 Dapp 和钱包之间的通信

三、硬件钱包

3.1 硬件钱包架构

硬件钱包主要是把私钥管理在离线的硬件设备中,在硬件设备中集成钱包签名算法,一般使用蓝牙,NFC 或者串口通信进行通信。

硬件钱包一般有以下几个业务流程:

  • 地址生成:硬件中集成 BIP,生成助记词和密钥对,使用公钥导出钱包地址;
  • 离线签名:组织交易生成 32 位的 Msg Hash, 将签名消息摘要传给硬件,硬件签名之后返回,组织交易发送到区块链网络。

3.2 硬件钱包细节业务流程

硬件钱包和去中心化钱包相比,最不相同是私有的管理方式,硬件钱包私钥和助记词管理在硬件中,下面一离线地址生成和离线签名为例说明:

  • 离线地址生成:发不地址生成的指令给硬件,硬件会生成助记词和私钥等信息,并将私钥和助记词编码加密之后存储在硬件中,吐出公钥匙,钱包界面端用公钥匙生成地址。
  • 离线签名:用户端组织编码交易报文,发送给硬件签名,签名回来的交易报文再次组织,然后发送到区块链网络。

四、MPC 托管钱包

托管钱包和其中心化钱包相比,不相同的地方也是密钥的管理方式,在托管系统中,一般使用 MPC 网络,一共有 M 个节点,其中 N 节点签名交易就有效。每个节点掌握一个密钥片,在整个网络中没有出现过完整的密钥; 下面也地址生成和交易签名为例说明:

  • 地址生成: 业务端发出 Keygen 指令,MPC 网络经过多轮共识之后各自产生密钥片,并吐出聚合公钥,业务端使用公钥导出地址。
  • 离线签名: 业务端发出 Sign 指令, 并携带待签名的交易报文到 MPC 网络,MPC 网络经过多轮签名成公共,返回签名串给业务端,业务端将交易发送到区块链网络。

五、多签钱包

多签钱包有点像 MPC 钱包的工作机制,但又完全不一样。多签钱包的工作机制涉及多个密钥和 M-of-N 签名的概念。在 M-of-N 设置中,只有 N 个密钥中的 M 个对交易进行了签名,才能授权该交易。例如,在 2-of-3 多签钱包中,存在三个私钥,至少需要两个私钥才能授权交易。


http://www.niftyadmin.cn/n/5862904.html

相关文章

contes服务器配置IP地址

第一步: nmcli device status插入和拔出网线执行上面的命令,找出插入网线的网口(enp26s0f0) 第二步: 比如配置的操作如下: IP:10.218.231.84 子网掩码:255.255.255.0 网关&#xff…

一些时间方法

1.禁用之前的时间 <el-date-picker:picker-options"disableBeforePicker"disableBeforePicker: {disabledDate(time) {return time.getTime() < Date.now() - 8.64e7;}, }, 2.选择开始时间之后&#xff0c;结束时间为开始时间之后的120分钟&#xff0c;他们的…

(网络安全)渗透测试

1、渗透测试种类 2、网络安全渗透测试分类 1&#xff09;网络安全渗透测试&#xff0c; 根据事先对测试目标系统信息的了解程度&#xff0c;可以分为 a.黑盒测试&#xff1a; 只知道要测试的目标系统&#xff0c;但系统内部的任何信息&#xff0c;都不清楚。这种测试最真实&am…

我的世界1.20.1forge开发教程(6)——自定义燃料,熔炼规则、配方

配方篇 在Minecraft中,配方代码是用于定义合成配方的一种数据格式。在开发者的角度,配方代码通常以JSON格式编写,包含了合成所需的原料、合成产物以及合成方式等信息。 在1.12版本之前,开发者需要通过修改游戏的源代码来添加自定义配方。这通常需要对游戏的Java代码进行修…

【.NET全栈】.NET包含的所有技术

文章目录 前言一、基础框架与语言1、.NET Framework2、编程语言 二、Web开发技术1、ASP.NET2、Blazor3、SignalR 三、桌面与移动开发技术1、Windows Forms&#xff08;WinForms&#xff09;2、Windows Presentation Foundation&#xff08;WPF&#xff09;3、Xamarin4、.NET MA…

AI提示词进阶:RTGO与CO-STAR框架实战指南

掌握提示词设计是解锁AI生产力的关键。本文将深入解析两大顶尖框架RTGO与CO-STAR&#xff0c;通过程序员视角拆解技术原理&#xff0c;配合真实案例演示如何根据场景精准选型。 一、框架定位与技术特性对比 维度RTGO框架CO-STAR框架架构四层递进式结构六维网状结构响应速度0.8…

go 反射 interface{} 判断类型 获取值 设置值 指针才可以设置值

内容包括 1. 用interface{}接收值 2. 判断interface{}的类型 switch 3. 打印interface{}的类型 4. 通过字符串对结构体&#xff0c;interface{}等进行设置值、获取值处理 示例代码 package mainimport ("fmt""log""reflect" )type Student…

MYSQL-数据库-DDL-DML-DQL-DCL-基础学习

MySql概念&#xff1a; 建立在关系模型基础上&#xff0c;有多张相互连接的二维表组成的数据库 SQL通用语法&#xff1a; 1.SQL语句可以单行或多行书写&#xff0c;以分号结尾 2.SQL语句可以使用空格/缩进来增强语句的可读性 3.MySQL数据库的SQL语句不区分大小写&#xff0c;关…