如何构建无助记词加密钱包?
构建无助记词加密钱包,并不是删除所有密码学密钥,而是让用户不需要抄写、保存和输入传统的十二个或二十四个单词助记词。底层交易仍需通过私钥签名、多个密钥分片共同签名,或者由智能合约账户验证其他密码学凭证。
开发团队首先需要决定签名能力由谁控制、钱包是否属于自托管、用户更换设备后怎样恢复,以及服务商中断时资产能否迁移。只有解决这些问题,移除助记词才是安全架构,而不只是隐藏私钥操作的用户界面。
常见实现包括多方计算、智能合约账户、通行密钥、嵌入式钱包和服务器端签名。它们都能提供无助记词体验,但在资产控制、恢复方式、多链支持和供应商依赖方面存在明显差异。
什么是无助记词加密钱包?
无助记词加密钱包,是不要求用户使用传统助记词创建、备份和恢复钱包的数字资产钱包。用户可以通过以下方式访问和控制钱包:
- 设备本地凭证;
- 生物识别或设备个人识别码;
- 通行密钥;
- 多因素身份验证;
- 多方计算密钥分片;
- 社交恢复或指定恢复人;
- 企业身份和多人审批;
- 智能合约账户验证规则;
- 经过加密的云端备份;
- 离线恢复设备。
“无助记词”描述的是用户体验和恢复方式,不代表底层没有私钥或签名材料。判断钱包安全性时,需要确认谁能生成有效签名,而不能只看用户是否收到助记词。
构建无助记词钱包可以选择哪些架构?
| 架构 | 怎样授权交易 | 用户是否管理助记词 | 多链适配 | 主要风险 |
|---|---|---|---|---|
| 多方计算或门限签名 | 多个密钥分片共同生成标准签名 | 通常不需要 | 通常较容易 | 分片集中、恢复滥用和节点依赖 |
| 智能合约账户 | 合约按照可编程规则验证操作 | 不一定需要 | 取决于网络支持 | 合约漏洞、升级权限和网络兼容性 |
| 通行密钥加智能账户 | 智能账户验证通行密钥授权 | 不需要传统助记词 | 主要取决于合约账户支持 | 恢复、设备同步和合约成本 |
| 嵌入式钱包 | 应用程序在后台管理创建和签名流程 | 通常不需要 | 取决于供应商 | 用户不清楚真实托管关系 |
| 服务器或硬件安全模块签名 | 密钥在服务器或安全硬件中使用 | 用户不需要 | 可以支持多链 | 基础设施集中和平台托管 |
| 混合架构 | 结合设备分片、服务器和智能合约规则 | 通常不需要 | 取决于具体组合 | 信任边界和故障关系复杂 |
不同架构也可以组合。例如,钱包可以使用通行密钥完成身份验证,通过多方计算生成区块链签名,再使用智能合约账户设置消费限额。但组件越多,开发团队越需要明确每一层能够做什么,以及某个组件被攻击后会影响哪些资产。
多方计算怎样支持无助记词钱包?
多方计算可以把签名能力分散到多个密钥分片中。参与方使用各自的分片共同计算区块链可以验证的签名,不需要把所有分片组合到同一设备。
一套面向个人用户的结构可以包括:
- 用户手机上的设备分片;
- 开发商服务器上的联合签名分片;
- 用于设备恢复的备用分片。
机构钱包则可以把分片分配给:
- 企业业务服务器;
- 独立风险控制服务器;
- 财务或管理人员的设备;
- 不同地区的数据中心;
- 离线灾难恢复环境。
安全的分布式密钥生成流程可以让各参与方分别生成自己的分片,完整私钥不需要以完整形式出现在单一设备中。交易签名同样由多个参与方共同完成。
但多方计算不会自动形成安全钱包。如果两个达到门限的服务器分片由同一个管理员控制,或者恢复管理员可以重新生成全部分片,系统仍然存在单点风险。
智能合约账户怎样提供无助记词体验?
传统外部账户通常由一个私钥控制。智能合约账户则可以把验证和执行逻辑写入合约,使钱包支持更灵活的授权方式。
ERC-4337 账户抽象标准允许账户通过智能合约代码定义验证逻辑,并使用用户操作对象提交操作。根据具体实现,智能账户可以支持:
- 通行密钥验证;
- 多设备控制;
- 社交恢复;
- 消费限额;
- 临时会话权限;
- 批量交易;
- 网络手续费代付;
- 指定恢复人;
- 延迟执行;
- 紧急冻结。
智能合约账户可以避免用户直接处理助记词,但不会消除密码学凭证。设备密钥、通行密钥、恢复模块或其他签名材料仍然决定谁能控制账户。
开发团队还需检查合约升级权限、恢复模块、费用代付服务、交易打包服务和目标应用兼容性。账户抽象的支持方式会因区块链和应用而不同,不能假设一套实现可以直接覆盖所有网络。
通行密钥可以直接控制钱包吗?
通行密钥是一种基于公钥密码学的认证凭证。根据FIDO 联盟的说明,通行密钥可以与特定设备绑定,也可以在用户设备之间安全同步。用户通常通过设备解锁、生物识别或个人识别码授权使用。在钱包中,通行密钥可能承担两种不同角色:
- 登录认证:通行密钥只负责登录钱包应用,区块链交易由后台多方计算节点、服务器私钥或托管平台签名;
- 交易验证:智能合约账户直接验证通行密钥对某项操作的授权。
两种方式具有不同的资产控制模型。如果通行密钥只负责登录,后台签名系统可能在用户设备之外拥有更高权限。如果智能账户直接验证通行密钥,则需要处理设备更换、凭证同步、合约成本和链上恢复等问题。
因此,开发团队不能只写“支持通行密钥”,还要说明通行密钥保护的是登录、交易审批,还是最终链上执行。
构建无助记词钱包需要哪些系统层?
用户与设备层
这一层负责注册、登录、设备绑定和本地授权,可能包括通行密钥、生物识别、设备个人识别码和多因素身份验证。
用户登录成功不应自动代表任何交易都可以执行。查看余额、创建交易、转移资产和修改恢复设置应使用不同权限。
密钥与签名层
这一层负责密钥分片生成、保存、签名、刷新和恢复。根据架构,它可能使用多方计算、门限签名、硬件安全模块、可信执行环境或智能合约验证。
策略与风险控制层
这一层判断交易和恢复请求是否符合规则,例如:
- 单笔和每日金额限制;
- 允许使用的资产和网络;
- 地址白名单;
- 新地址等待期;
- 合约交互范围;
- 异常设备或位置检查;
- 高价值交易人工审批;
- 自动化程序权限;
- 恢复频率限制。
交易编排层
这一层负责选择网络、构造交易、估算手续费、管理交易序号或未花费交易输出、广播交易及监控确认状态。
交易编排服务不应自动拥有无限签名权限。即使该服务被攻击,其他签名参与方仍应检查地址、金额、网络和交易类型。
区块链连接层
这一层连接自建节点或外部节点服务,获取余额、交易状态、费用和区块确认信息。高价值业务可以通过多个独立来源核验关键链上结果。
运营与数据层
这一层处理地址管理、充值识别、提现、资产归集、网络手续费补充、对账、审计日志和异常任务,并与企业业务系统连接。
怎样一步步构建无助记词钱包?
第一步:确定资产控制模型
开发前需要明确钱包属于哪种模式:
- 用户独立控制;
- 用户与平台共同控制;
- 企业自托管;
- 平台托管;
- 智能合约账户控制;
- 多种模式并存。
最重要的问题是:平台能否在没有用户或企业参与时生成有效签名?如果可以,即使用户看不到助记词,该钱包仍可能属于托管或高度依赖平台的结构。
第二步:确定支持的区块链和账户类型
开发团队应列出:
- 目标区块链;
- 签名算法;
- 外部账户或智能合约账户;
- 代币和智能合约交互;
- 地址派生方式;
- 原始消息签名;
- 交易最终确认要求;
- 手续费支付方式;
- 交易替换和加速方式;
- 链重组处理要求。
如果产品需要覆盖多条区块链,多方计算生成标准链上签名通常较容易保持相似的钱包地址体验,但不同网络的交易构造、费用和最终性仍需分别开发。
第三步:选择签名门限和参与方
采用多方计算时,需要确定使用两分片共同签名、三分片中任意两分片签名,还是其他门限。
参与方可以包括用户设备、业务服务器、独立风险控制节点和恢复设备。它们应处于相互独立的控制范围,不能只是同一管理员管理的多个程序进程。
门限过低可能让单一参与方获得过大权限,门限过高则可能使设备丢失或节点中断后无法签名。
第四步:实现分布式密钥生成
钱包创建时,各参与方应通过经过验证的协议生成本地分片。开发团队需要确认:
- 随机数来源是否可靠;
- 完整私钥是否曾在单一设备出现;
- 每个参与方只能获得自己的分片;
- 分片是否绑定钱包和协议版本;
- 公钥和地址怎样生成及核验;
- 钱包创建失败时临时材料怎样删除;
- 同一创建请求是否可能重复产生钱包。
钱包创建完成后,还应向业务系统返回不可重复的钱包标识、公钥、地址、网络和创建状态。
第五步:保护设备和服务器上的分片
移动应用应使用系统安全存储或硬件支持的密钥库保护本地材料。开放式网络应用安全项目的移动端密钥存储指南建议优先使用硬件支持的系统密钥库,而不是普通配置文件、公共存储或写入程序代码的固定密钥。
服务器端分片可以放入隔离进程、硬件安全模块、可信执行环境或专用签名节点。数据库、日志、监控和崩溃报告中不应出现原始分片或完整私钥。
第六步:分开登录认证与交易授权
邮箱、社交账号、通行密钥或企业单点登录可以验证用户身份,但不能自动证明交易地址和金额正确。签名前,钱包应显示并检查:
- 目标地址;
- 区块链网络;
- 资产和数量;
- 网络手续费;
- 合约地址;
- 方法和参数;
- 代币授权额度;
- 交易产生的实际资产变化。
高风险交易还可以要求第二台设备、独立人员或风险控制节点确认。
第七步:建设交易政策
不同交易不应使用完全相同的控制。钱包可以按照风险设置:
| 操作 | 控制示例 |
|---|---|
| 查询余额 | 登录后允许 |
| 白名单内的小额转账 | 设备确认并受每日限额约束 |
| 新地址首次转账 | 增加等待期或额外身份验证 |
| 大额转账 | 多人或多设备批准 |
| 智能合约授权 | 显示合约方法、参数和授权额度 |
| 修改恢复方式 | 使用比普通转账更严格的验证 |
| 添加新设备 | 通知原设备并设置等待期 |
| 应急退出 | 最高门槛、隔离环境和人工复核 |
交易政策不能只存在于用户界面。最终签名参与方也应验证关键条件,避免被攻击的前端绕过限制。
第八步:在上线前设计恢复
无助记词钱包不能依赖“以后再增加恢复”。设备丢失发生后,团队已经无法重新设计原来的密钥分布。常见恢复方式包括:
- 加密分片备份;
- 三分片中任意两分片恢复;
- 新旧设备共同确认;
- 指定恢复人;
- 智能合约账户更新验证凭证;
- 企业多人审批;
- 离线恢复;
- 应急资产迁移。
恢复流程的权限不应高于日常交易门限。如果单个客服人员、管理员或身份服务可以重置所有签名能力,恢复就会成为新的单点风险。
第九步:实现安全的程序接口
钱包后端通常需要通过应用程序接口创建地址、查询充值、发起交易和获取状态。接口设计应支持:
- 独立的服务身份;
- 最小权限;
- 唯一业务编号;
- 防止重复执行;
- 地址、资产和金额限制;
- 请求签名和时间戳;
- 回调来源验证;
- 防止回调重放;
- 交易替换关系;
- 每分钟和每日限额;
- 完整策略和签名日志;
- 高风险操作转入人工审批。
程序接口凭证不能直接获得修改钱包成员、降低签名门限或重置恢复机制的权限。
第十步:验证恢复后的钱包关系
恢复完成后,系统应检查:
- 公钥是否与恢复前一致;
- 钱包地址是否正确;
- 区块链网络是否正确;
- 地址派生路径是否一致;
- 新分片版本是否同步;
- 旧设备和旧分片是否已经处理;
- 临时解密材料是否已经删除;
- 受限测试签名是否成功;
- 用户和管理员是否收到通知。
如果完整私钥可能已经泄露,仅恢复或刷新分片并不能撤销攻击者手中的私钥。此时通常需要创建新钱包并迁移资产与合约权限。
两分片和三分片钱包应该怎样选择?
| 对比项目 | 两分片共同签名 | 三分片中任意两分片签名 |
|---|---|---|
| 日常签名 | 两个参与方都必须在线 | 任意两个有效参与方可完成 |
| 设备丢失 | 通常依赖加密备份或外部恢复 | 可以使用另外两个分片执行恢复 |
| 系统复杂度 | 相对较低 | 相对较高 |
| 参与方容错 | 较低 | 可以容忍一个参与方不可用 |
| 分片管理 | 数量较少 | 需要保护三个独立分片 |
| 恢复风险 | 备份和解密授权可能集中 | 恢复参与方可能被同时控制 |
| 适用场景 | 流程简单的消费级钱包 | 需要更高可用性的个人或机构钱包 |
三分片结构不一定自动更安全。如果备用分片与服务器分片保存在相同云账户中,攻击者仍可能控制达到门限所需的多个参与方。
无助记词钱包怎样实现设备恢复?
一种基础的设备恢复流程可以是:
- 用户在新设备登录;
- 系统验证身份并识别设备变化;
- 创建唯一恢复请求;
- 原设备和安全系统收到通知;
- 系统执行等待期或额外核验;
- 新设备读取经过加密的恢复材料;
- 其他签名参与方独立批准恢复;
- 执行备份还原或分布式恢复协议;
- 将新分片写入设备安全存储;
- 验证钱包公钥和地址;
- 处理旧设备、旧分片和旧备份;
- 恢复正常交易权限。
不能假设设备丢失后旧分片会自动失效。钱包需要通过分片刷新、版本控制、服务器拒绝旧分片或资产迁移处理风险。
怎样避免恢复机制成为后门?
恢复流程至少应考虑:
- 多因素身份验证;
- 新设备验证;
- 独立恢复参与方;
- 恢复等待期;
- 原设备通知;
- 高价值钱包人工审核;
- 恢复频率和地区限制;
- 禁止客服单人重置;
- 恢复政策变更需要更高审批;
- 恢复完成后刷新相关分片;
- 记录旧分片的处理状态;
- 定期执行恢复演练;
- 服务商不可用时的独立退出路径。
如果恢复只依赖一封邮件、一个短信验证码或一个云端管理员账户,攻击者可能绕过原有签名门限。
怎样处理交易内容和盲签风险?
移除助记词可以改善用户体验,但不会防止用户批准恶意交易。钱包需要把原始区块链数据转换为用户可以理解的内容。签名页面应尽量显示:
- 交易类型;
- 发送和接收资产;
- 目标地址;
- 实际数量;
- 网络手续费;
- 智能合约名称和地址;
- 调用方法;
- 关键参数;
- 代币授权额度;
- 可能发生的余额和权限变化。
如果应用无法解析交易,应清楚提示风险,并对高价值钱包阻止无法识别的合约操作。仅显示哈希值或“合约交互”无法帮助用户判断交易是否正确。
多链无助记词钱包需要处理什么?
同一套登录和界面不能消除不同区块链之间的技术差异。开发团队需要分别处理:
- 不同签名算法;
- 外部账户与智能合约账户;
- 交易序号和未花费交易输出;
- 地址格式和网络识别;
- 代币合约;
- 网络手续费估算;
- 手续费补充;
- 交易加速与替换;
- 区块确认和最终性;
- 链重组;
- 消息和原始数据签名;
- 合约解析;
- 地址派生;
- 服务商停止支持后的迁移。
多方计算可以为多种签名算法提供相似的分布式控制方式,但每条区块链的交易编排和风险检查仍需要单独实现。智能合约账户则通常具有更明显的网络依赖。开发团队需要验证账户工厂、验证合约、费用代付、交易打包服务和目标应用是否在相应网络上可用。
无助记词钱包有哪些主要风险?
把无助记词误认为没有密钥
底层仍存在密钥分片、设备凭证、服务器私钥或合约验证权限。忽略这些材料可能导致存储和访问控制不足。
平台实际拥有完整控制权
部分钱包只是隐藏助记词,但平台可以独立签名或重置用户账户。用户体验是无助记词的,资产控制却仍然集中。
恢复权限过大
如果单个管理员、客服系统或身份服务可以恢复全部钱包,攻击者可能通过账号接管或内部权限完成资产转移。
多个分片处于同一控制范围
分片可能部署在不同程序中,但仍由同一个云账户、服务器管理员或凭证库控制。
通行密钥只保护登录
用户可能以为生物识别直接保护链上交易,但通行密钥实际上只负责登录,后台签名系统仍可绕过用户设备。
智能合约漏洞
验证模块、恢复模块、升级权限、费用代付和会话权限都可能形成新的攻击面。
软件开发工具包供应链风险
恶意更新、被篡改的依赖程序或错误版本可能改变地址生成、交易内容或密钥处理逻辑。
服务商退出困难
如果钱包地址、分片格式、恢复工具和交易记录无法迁移,企业可能长期依赖单一供应商。
怎样保护客户端密钥材料?
客户端开发可以重点检查:
- 是否使用系统安全存储;
- 是否尽可能使用硬件支持的密钥保护;
- 应用调试信息是否包含敏感数据;
- 崩溃报告是否上传钱包材料;
- 剪贴板和屏幕截图是否泄露信息;
- 设备备份是否复制未加密分片;
- 越狱或取得最高权限的设备怎样处理;
- 应用完整性怎样验证;
- 本地数据库是否加密;
- 生物识别变化后凭证是否需要重新绑定;
- 旧版本应用是否仍可调用签名;
- 退出登录是否会错误删除必要的恢复材料。
敏感分片不应写入普通浏览器存储、配置文件、公共目录、源代码或可直接导出的应用日志。
无助记词钱包怎样证明属于自托管?
开发团队可以使用以下问题检查控制权:
- 平台能否在用户不参与时完成签名?
- 用户是否控制达到签名门限所需的材料?
- 平台中断后,用户能否继续控制资产?
- 恢复是否必须经过用户控制的参与方?
- 平台能否修改签名或恢复门限?
- 身份服务被攻击后,交易是否仍需独立授权?
- 用户能否验证钱包的实际签名结构?
- 离线恢复是否依赖平台在线服务?
- 钱包是否能够迁移到其他基础设施?
- 用户能否导出必要的钱包和交易数据?
“非托管”“自托管”“无私钥”和“无助记词”都是产品描述。最终应根据签名、恢复、升级和退出权限判断资产控制权。
无助记词钱包应该保存哪些日志?
| 日志类型 | 需要记录的内容 |
|---|---|
| 钱包创建 | 用户、设备、公钥、地址、网络和协议版本 |
| 身份验证 | 使用的凭证、设备和验证结果 |
| 交易创建 | 地址、资产、数量、网络和业务编号 |
| 策略判断 | 适用规则、允许或阻止的原因 |
| 审批 | 审批人、时间和结果 |
| 签名 | 参与方、分片版本和完成时间 |
| 广播与确认 | 交易哈希、区块和最终状态 |
| 设备变更 | 新旧设备、绑定和撤销记录 |
| 密钥恢复 | 恢复原因、参与方、结果和旧分片处理 |
| 权限变更 | 成员、门限、策略和恢复设置 |
| 系统异常 | 超时、失败、重试和人工处理 |
| 数据导出 | 导出人员、范围、时间和文件哈希 |
日志不能包含原始分片、完整私钥、解密密钥或可以直接重建签名材料的数据。
上线前应该测试哪些场景?
开发团队不应只测试创建钱包和发送一笔代币,还需要覆盖:
- 新用户注册和钱包创建失败;
- 同一请求被重复提交;
- 用户设备离线;
- 用户手机丢失;
- 加密备份损坏;
- 恢复参与方不可用;
- 身份账户被接管;
- 两个恢复任务同时执行;
- 服务器分片节点离线;
- 应用升级后分片不兼容;
- 交易序号冲突;
- 未花费交易输出重复使用;
- 区块链网络拥堵;
- 交易替换或链重组;
- 错误网络和错误合约;
- 无法解析的合约签名;
- 费用代付服务中断;
- 数据库恢复到旧版本;
- 主数据中心不可用;
- 钱包服务商停止运行;
- 离线恢复和资产迁移。
测试还应证明攻击者不能通过修改前端、重复回调、降低限额或滥用恢复流程获得签名能力。
Safeheron 怎样支持无助记词钱包开发?
Safeheron 的多方计算节点开发文档介绍了两分片共同签名和三分片中任意两分片签名的无助记词钱包架构。
在示例流程中,应用与开发商服务器分别生成并保存密钥分片。恢复分片可以加密后保存在用户控制的云存储中。用户更换设备并完成多因素身份验证后,应用读取恢复材料,并根据钱包结构还原原分片或与服务器共同执行多方计算恢复协议。
Safeheron MPC Node Suite提供服务器端多方计算节点组件,以及面向浏览器和移动端的开发能力,可以作为钱包服务商构建无助记词多方计算钱包时的候选基础设施。根据官方说明,该方案还支持自定义门限、密钥分片恢复、私有化部署、隔离冷钱包和应急退出等场景。
开发团队仍需自行建设用户、区块链、交易编排、风险控制和钱包管理系统,并通过自己的业务流程验证分片分布、身份认证、交易策略、恢复和供应商退出是否满足要求。
选择无助记词钱包技术方案时应该检查什么?
- “无助记词”具体通过多方计算、智能账户、通行密钥还是平台托管实现?
- 谁能够生成有效区块链签名?
- 完整私钥是否曾在单一设备或服务器出现?
- 密钥分片由哪些人员、设备和系统控制?
- 一个云账户被入侵后会影响多少个参与方?
- 用户认证和交易签名怎样连接?
- 通行密钥用于登录还是直接验证交易?
- 是否支持所需的区块链、算法和账户类型?
- 怎样显示智能合约方法、参数和资产变化?
- 是否支持金额、地址、资产和时间策略?
- 用户换设备后怎样恢复钱包?
- 旧设备和旧分片怎样停用?
- 恢复权限能否绕过正常签名门限?
- 身份服务不可用时怎样恢复?
- 软件升级后旧钱包是否仍可使用?
- 程序接口能否防止重复交易和回调重放?
- 是否保存交易、签名、恢复和权限变更日志?
- 服务商中断后能否离线恢复或迁移资产?
- 密码学代码、智能合约和客户端程序库是否经过独立评估?
- 是否完成真实设备、并发交易和异常恢复测试?
最终选型不应只根据登录体验或钱包创建速度决定。企业需要使用自己的目标网络、代币、合约、恢复场景和业务峰值完成概念验证。
常见问题
无助记词钱包完全没有私钥吗?
通常不是。底层仍然存在私钥、密钥分片、通行密钥凭证或智能合约验证逻辑。无助记词主要表示用户不需要保存传统助记词。
无助记词钱包是否一定属于自托管?
不一定。如果平台可以独立生成签名、重置权限或阻止用户迁移资产,钱包仍可能属于托管或高度依赖平台的结构。
多方计算是否是构建无助记词钱包的唯一方式?
不是。智能合约账户、通行密钥、嵌入式钱包和服务器签名也可以提供无助记词体验,但它们具有不同的控制和恢复模式。
通行密钥可以代替钱包私钥吗?
取决于架构。通行密钥可以只用于登录,也可以由智能合约账户直接验证。它不会在所有区块链上自动成为交易签名私钥。
用户丢失手机后怎样恢复钱包?
可以使用加密备份、备用分片、其他多方计算参与方、指定恢复人或智能合约恢复模块。具体方法必须在钱包创建时预先设计。
无助记词钱包是否更安全?
它可以减少助记词钓鱼、抄写错误和备份泄露,但也会引入身份系统、设备同步、恢复权限、智能合约和服务商依赖等风险。安全性取决于整体架构。
无助记词钱包可以支持多条区块链吗?
可以,但需要分别支持相应签名算法、交易模型、地址格式、费用机制和合约交互。使用统一界面不代表底层链上逻辑完全相同。
结语
构建无助记词加密钱包的核心不是隐藏助记词输入页面,而是重新设计密钥生成、交易签名、身份认证和设备恢复之间的关系。开发团队可以选择多方计算、智能合约账户、通行密钥或混合架构,但必须明确谁能控制资产、恢复是否会绕过签名门限、旧设备怎样停用,以及服务商中断后用户能否迁移资产。
Safeheron MPC Node Suite 可以作为开发无助记词多方计算钱包时的候选基础设施,通过分布式密钥生成、门限签名、密钥分片恢复以及客户端和服务器组件支持钱包开发。最终安全性仍取决于开发团队怎样实施设备保护、身份验证、交易策略、合约解析、多链编排、异常处理和独立恢复流程。