首页>>资讯>>产业

DappLink 一键发中心化钱包技术解决方案预览

2024-11-21 14:01:48 14

一. 概述


DappLink 一键发钱包业务平台支持中心化钱包、去中心化钱包以及托管系统的快速部署,项目启动至今,产品已基本成型,并已与多家社区和公司达成合作。目前,The Web3 社区将 DappLink 一键发钱包项目作为课程的实战部分教程,Parapack、Solid 和 FishCake 等项目方也选择 DappLink 一键发钱包解决方案作为其钱包底层基础设施。


DappLink 一键发钱包平台可服务于交易所、中心化钱包、HD 钱包以及 MPC 托管系统,为这些应用场景提供高效、便捷的一键式部署解决方案。项目由以下组件组成


签名机

MPC 网络

wallet-sdk

统一 gRPC 接口服务组件,包含第三方数据平台的接口


wallet-chain-account: 针对账户模型的链

wallet-chain-utxo:针对 utxo 的链


统一扫链服务


multichain-sync-account: 账户模型的统一扫链服务,含业务配置,地址导出,充值,提现,归集,热转冷,冷转热,交易回滚等业务流程

Multichain-sync-utxo: utxo 的统一扫链服务,含业务配置,地址导出,充值,提现,归集,热转冷,冷转热,交易回滚等业务流程


hailstone: 业务中台,和业务方对接的中间层服务


二. 服务组件

4.png

wallet-chain-utxo:  utxo 链的钱包 RPC 接口统一封装

wallet-chain-account:  account 链的 RPC 接口的统一封装

chain-data-api:  对接第三方平台的统一钱包 API,主要是给 HD 钱包使用的

key-locker: 链上密钥管理工具,目前对接 Ethereum, IFPS, Ar 等链

skeye: 统一行情服务,对接了 CEX 和 DEX

trade: 支持中心化钱包的闪兑,杠杠,期货和期权保险的项目,后面对接的是交易所

hailstone: 统一 API 和业务中台

tss 网络: MPC 网络

wallet-sdk:多链离线地址和离线签名的 SDK

wallet-sign-center: java, go, node

统一扫链服务:支持多租户,中心化钱包业务组件

API:支持第三方调度钱包业务的 API

Dapp 容器:支持各种 Dapp 和钱包进行交互

去中心化闪兑:调度 Aggregator API


1、统一签名服务

4.png

该服务部署在 TEE 环境,通常由业务方自己来部署, DappLink 提供技术支持。


1.1. 实现的gRPC接口


生成密钥对gRPC接口


请求参数

生成的密钥数量

算法类别

返回值

生成的公钥列表


交易签名 gRPC 接口


请求参数

待签名的交易的 32 位 Message Hash

公钥

返回值

signature


1.2.签名机器特性


多语言支持,目前支持以下开发语言


Node

Go

Java

Python


代码完全开源,项目方自行部署


2、MPC 网络

4.png

LinkLayer 多重质押协议:作为整个系统的顶层协议,负责协调 MPC 节点加入退出管理,通过质押模型和承诺签名来保证网络的安全和可靠。

MPC 节点层:由多个运行在 TEE 环境中的 MPC 节点组成,每个节点持有密钥的一个分片(key-slice)。

mpc-node-1 到 mpc-node-9:各节点运行在 TEE 环境下,密钥分片被分布式存储在各节点中,保证单个节点无法直接还原完整密钥。

TEE(受信执行环境):提供硬件级别的安全性,防止恶意行为对密钥分片的篡改或泄露。


P2P 通信网络


节点之间通过点对点通信网络协同工作。

支持密钥生成(keygen)和签名(signature)操作的分布式计算。


密钥生成:各节点协作生成密钥分片,并通过计算聚合公钥。

签名:各节点接收待签名消息,独立计算后将结果返回,最后聚合为完整签名。

MPC Manager:负责管理 MPC 操作,包括密钥生成和签名请求。


核心功能


keygen:触发密钥生成流程,返回生成的公钥(publicKey)。

Signature:接收待签名的 32 位消息(Msg),协调 MPC 节点完成签名过程并返回结果。


Wallet Service


面向业务层的服务模块。

与 MPC Manager 交互,发送密钥生成和签名请求。

提供钱包服务的核心功能,例如密钥管理和交易签名。


3、统一扫链服务


3.1.gRPC 服务组件

4.png

UTXO: 对接 UTXO 链的统一 RPC 服务

Account:对接 Account 模型的统一 RPC 服务


3.2.扫链业务组件

4.png

RPC GateWay 统一接口层。


wallet-chain-account:处理基于账户模型(如以太坊)的链交互。

wallet-chain-utxo:处理基于 UTXO 模型(如比特币)的链交互。


Sign Machine Services


wallet-sign-go / wallet-sign-node / wallet-sign-java:支持多语言的签名服务组件,分别用 Go、Node.js 和 Java 实现。

签名服务会接收业务方提供的 32 位 Hash 数据,执行签名操作并返回结果。


数据存储


db-dapplink / db-fishcake / db-parapack:针对不同业务方的独立数据库,存储与签名、交易相关的数据。

SaveDB:负责将签名或交易数据存入数据库。

notify-dapplink:通知服务,向业务方(如 DappLink)发送充值, 提现,交易状态和交易流水的更新通知。


核心处理流程


交易完成后,交易信息被保存至对应业务方的数据库(SaveDB)。

通知模块(notify-dapplink)发送交易结果给业务方,更新相关状态。

获取最新区块(getLatestBlock)和指定区块(getBlock)。

根据交易 Hash 或收据 Hash 查询交易信息(getTxByHash / getTxReceiptByHash)。

通过 gRpc Client 与区块链节点交互,完成交易的发送(sendTx)。

接收业务方的请求,将公钥匙生成地址(ConvertAddress)。

构建未签名交易(buildUnsignTx)。

完整交易的构建(buildSignedTx)。

构建交易接口层

区块链交互

数据存储与通知


核心特点


多语言支持:签名服务支持多种开发语言(Go、Node.js、Java),适应不同业务需求。

模块化设计:各模块独立分工(如签名服务、同步器、通知模块),方便扩展和维护。

多业务方支持:通过独立的数据库和通知系统为不同业务方提供定制化服务。


三.业务细节流程


1.商户 ID 分配


DappLink 业务中台给业务方分配商户 ID

4.png

业务方提交商户信息

DappLink 业务中台给业务方分配 Token 和商户 ID


2.业务配置

4.png

使用商户 ID 注册到我们 DappLink 钱包平台,内部会根据业务方进行分库分表

业务注册的时候需要把充值,提现,流水下发等相关回调接口一并提交到 DappLink 钱包平台


3.Token 配置

4.png

业务配置 token, 传入 token 名字,符号, 精度,最小最大归集和转冷金融等信息


4.地址生成

4.png

业务调度自己的签名生成密钥,私钥不会离开 TEE 或者 CloudHSM, 但是它会将公钥列表返回到业务方

业务方把公钥列表给到 multichain,multichain 调度 wallet-chain-account/utxo 根据公钥导出地址

把生成地址列表存到业务表里面,并且返回地址列表


5.充值

4.png

获取最新区块链

获取本地数据最高区块

链上的最新和数据库的最高区块进行比较

若本地数据块高 = 链上最新区块高度,等待最新区块出现

若本地数据块高 > 链上最新区块高度, 进行交易回滚

若本地数据块高 < 链上最新区块高度,

根据区块高度获取交易列表

解析交易之后


若 from 是外部地址,to 地址是内部用户地址,充值;调用回调接口通知业务方

若 from 地址是用户地址,to 地址是热钱包地址,归整;调用回调接口通知业务方

若 from 地址是热钱包地址,to 地址是外部用户地址,提现;调用回调接口通知业务方

若 from 地址是热钱包地址,to 是冷钱包地址,热转冷;调用回调接口通知业务方

若 from 是冷钱包地址,to 地址是热钱包地址,冷转热;调用回调接口通知业务方


6.提现

4.png

用户发起提现,业务方将提现交易发送 DappLink 钱包服务

业务方将交易发送到 multichain-sync-account/utxo  进行构建待签名的消息,multichain-sync-account/utxo 调度 wallet-chain-account/utxo 返回待签名的消息

业务方将待签名的消息发送给自己部署的签名进行签名

业务方将 signature 和 交易 ID 发送到你 multichain-sync-account/utxo ,multichain-sync-account/utxo  调度 wallet-chain-account/utxo 构建完整交易并发送到区块链网络,将完整交易和交易 Hash 返回给业务端

提现进程会去扫描这些交易发送到区块链网络

扫链部分参考充值模块


7.归集

4.png

检测用户地址资金是否大于最小归集金额, 如果大于最小归集金额,发起交易归集资金


8.热转冷


检测热钱包地址资金是否大于一定的转冷金额, 发起交易将资金转到零钱包,流程类似提现和归集


9.冷转热


热钱包金额小于一定数量,报警通知业务方

业务方手动操作向冷钱包转入一笔资金


10.交易回滚

4.png

四.服务部署方式


签名机:项目方部署


统一 gRPC 服务

wallet-chain-utxo: dapplink 提供服务

wallet-chain-account: dapplink 提供服务


统一扫链服务

multichain-sync-account: dapplink 提供服务

Multichain-sync-utxo: dapplink 提供服务

业务中台:dapplink 提供服务


五. DappLink 一键发钱包愿景


DappLink 的“一键发钱包”愿景旨在通过极简化的操作,为开发者和企业提供高效、安全且易用的钱包解决方案,助力 Web3 普及和创新。具体包括以下目标:


快速部署,降低门槛:提供一站式解决方案,让开发者无需深入研究复杂的底层技术,只需通过简单的界面或 API 调用,即可快速生成支持多链、多资产的钱包,覆盖从 HD 钱包到 AA 钱包的多种类型。


灵活可扩展:支持主流区块链和 Layer 2 解决方案(如 OpStack 和 Polygon zkEVM),同时开放插件化架构,便于定制和扩展,满足企业级和个性化需求。


高安全性保障:基于 DappLink 签名机的 CloudHSM 和 TEE 双模式,以及支持 ECDSA, EdDSA 和 BLS 等加密算法,确保密钥管理和交易签名的安全性,最大限度降低用户资产风险。


兼容 MPC 技术:集成多方计算(MPC)功能,提升钱包的安全性和灵活性,特别是对需要托管或分布式签名的场景提供支持。


面向未来的创新:结合账户抽象(Account Abstraction)技术,助力用户从复杂的区块链交互中解放出来,实现更智能化、自动化的交易流程,为 Web3 产品带来更友好的用户体验。


生态融合与教育:打通与其他 Web3 产品的对接路径(如 NFT、GameFi、DeFi 等),并通过 DappLink 技术培训体系,帮助更多开发者掌握钱包技术,推动整个生态的繁荣发展。


通过“一键发钱包”,DappLink 希望为 Web3 开发者、企业和最终用户带来更便捷的入口和更安全的保障,成为下一代区块链技术应用的基础设施推动者

声明:本网站所有相关资料如有侵权请联系站长删除,资料仅供用户学习及研究之用,不构成任何投资建议!