数字货币钱包概述
数字货币钱包,不是传统的钱包,用来装现金资产的,也不是电子钱包(支付宝,微信零钱包),用来存放电子货币资产的,而数字货币钱包的核心是用来存储和管理自己私钥的应用。当然私钥有很多种类型,包括助记词、明文的私钥,还有加过密的keystore等。
数字货币钱包资产管理,就是通过钱包保存的私钥进行交易签名后,对自己在区块链上的资产进行查询,转账。
以下是数字货币钱包常用的几个名字,做一下解释
密码:密码不是私钥,密码可以进行修改或重置。它主要用途有两个,一是转账时候的支付密码,二是用 keystore 导入钱包时需要输入的密码,用于解锁keystore。
私钥:私钥由64位长度的十六进制的字符组成,一个账户只有一个私钥且不能修改,谁拥有私钥就能够掌控该账号的数字货币。通常一个钱包中私钥和公钥是成对出现的,有了私钥,我们就可以通过一定的算法生成公钥,再通过公钥经过一定的算法生成地址。
助记词:私钥是64位长度的十六进制的字符,不利于记录且容易记错,所以用算法将一串随机数转化为了一串12 ~ 24个容易记住的单词,方便保存记录
Trustwallet
Tustwallet是一款代码开源,使用方便、安全,兼容多币种的钱包,在整个区块链应用中也有很多进行二次开发的产品。
Trustwallet业务流程
Trustwallet是一个可以实现pc端和移动端互联签名,并有移动端签名pc端发起交易的便捷钱包,下图是具体的业务流程说明
1,移动端安装钱包后可以导入和创建钱包,创建钱包时,移动端通过加密算法生成私钥,钱包地址,助记词等信息,并直接调用服务器api接口在区块链上进行开户。
2,移动端通过私钥签名后的交易直接通过服务器api发送到区块链网络中,对自己的账户进行查询和转账操作。
3,pc端开发好网站并做好区块链业务后,生成二维码,有移动端扫描进行连接,长连接建立后,pc端所有需要签名的业务都可以发送到手机端进行签名,将签好名的信息再返回给PC端,PC端通过服务器api调用区块链做相应的业务。
Trustwallet 技术架构
trustwallet开发社区将所有的技术功能模块拆分并以单个项目的形式开源在gitbub上。以下是trustwallet的基本技术架构图。
我们从上到下的顺序,来分析这些模块:
WalletCore:walletcore是一个实现了多种区块链底层加密钱包功能的跨平台库。它的大多数代码都是 C++ 和一套严格导出的 C 接口。 Wallet Core 为其所有支持的语言提供原生了接口(现在有为 iOS 提供的 Swift、为安卓提供的 Java、为桌面应用提供的 TypeScript)。
Trust-android: 是一个给予trustwallet组件的安卓钱包app,嵌入了walletCore模块,实现了钱包秘钥数据的运算和保存。
Trust-ios: 是一个给予trustwallet组件的苹果钱包app,嵌入了walletCore模块,实现了钱包秘钥数据的运算和保存。
Dappbrowser: trustwallet开发的浏览器,可以嵌入到app中。
TrustProvider:为dapp开发人员创建多链应用程序提供了一个简单的api。目前,我们的API允许您获取iOS和Android的任何区块链的帐户和签署交易。
Blockatlas: Block Atlas 是一款干净而且轻量的跨链API,用于查看各种区块链信息,如交易、代币、代币质押验证人等,目前支持的币种有:
WallectConnect: 使用 WalletConnect,并通过端到端的加密与任何桌面 DApp 交互,不需要牺牲助记词或是私钥的安全性。您会直接从移动设备中收到所有交易批准/拒绝请求的即时通知。
实现1.0.0websocket协议。
Assets: assects 是Trust Wallet使用的图像源,包括:eth,ETC,poa,dex等。
应用demo
trustwallet 提供的安卓demo应用,编译通过调试正常,并打包成测试app,下载地址:http://share.collect-star.com/wallet/trustwallet.apk