前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何开发一款支持多币种的钱包?

如何开发一款支持多币种的钱包?

作者头像
申龙斌
发布2018-07-27 11:48:40
9230
发布2018-07-27 11:48:40
举报

除了炒币之外,比较有深度的介入区块链行业的一种办法是开发Dapp,即去中心化的应用。钱包就是一种非常重要的Dapp,可以说是币圈用户的刚需,如果说微信是移动互联网的一种流量入口,那么一款好用的钱包可以说是区块链世界的流量入口。

现在市面上可用的钱包软件已经非常多了,支持比特币的钱包最多,最经典的是Bitcoin Core,它是最早由中本聪开发的全节点比特币钱包软件,经过了9年的发展,一直集中于接收和发送BTC,以及查看交易记录等核心功能。

我虽然研究了一段时间的区块链技术,但并没有亲自动手做过一款钱包软件,发现这个领域的进入门槛还是挺高的,网上可以查到的一篇相关文章的链接是:https://www.blockchainappfactory.com/blog/category/wallet-development/ 。

在开发数字货币钱包之前,首先得知道什么是数字货币钱包。

普通用户对钱包有一个常见的认识误区,他们以为数字货币的那一串数字保存在钱包里,实际上,钱包里主要保存着私钥,用户所持有的数字货币全部记录在区块链里,钱包软件扫描区块链上的所有交易记录来更新账户的余额等信息,当区块链的节点数据未完成同步时,用户余额可能显示得并不正确。

以BTC为例,钱包软件记录着私钥信息,接收BTC时,钱包将私钥转换成公钥,也就是BTC地址,这样可以让别人向这个地址转账。发送BTC时,钱包根据交易记录,从里面找到未花费过的BTC(准确来讲是UTXO),生成一笔交易,并用私钥进行签名,再广播到区块链网络中。

所以,接收BTC、发送BTC、查询余额是钱包的主要功能,当然内部还要完成节点同步、区块链记录的缓存、私钥生成、公钥转换、数据签名等各种操作。

根据钱包是否接触网络,钱包可以分为冷钱包(或离线钱包)和热钱包(在线钱包),根据钱包所在的操作系统或媒介,还可以分为硬件钱包、桌面钱包、手机钱包、纸钱包等等。

开发一款钱包软件,要把安全特性放在第一位:把私钥加密保存在系统内部,不被第三方轻易窃取;时刻提醒用户私钥的重要性;提供keystore、助记词等多种私钥备份方案;提供助记词等恢复私钥的功能等等。

当钱包软件的主要功能完成之后,还可以给钱包增加许多特性:

  • 二次验证
  • 地址簿管理
  • 纸钱包生成
  • 币价查询
  • 二维码生成和扫码功能
  • 重要信息推送
  • 新闻资讯
  • 币币交易

而开发这样一款钱包软件,需要根据钱包软件运行的操作系统、开发团队掌握的编程语言,选择合适的开发类库,先学习开源的类似软件,然后一步一步完成自己的钱包软件,绝对是一个比较漫长的积累过程。

大家看到了国内钱包软件imtoken的光鲜一面,但从创始人的采访记录来看,该产品在很长的时期内一直在烧投资人的钱,并没有找到合适的赢利模式。由于钱包软件管理着私钥,如果开发团队没有信用背书,普通用户并不会使用你的产品,不会轻易地把手里的上万资产交给你来管理。所以说,不仅仅要考虑技术细节,如何在这个市场中建立信任,扩大用户规模,是创始团队需要提前考虑的主要问题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 申龙斌的程序人生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档