深入浅出区块链
陈浩
元界 CTO
40265 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 40 讲
深入浅出区块链
15
15
1.0x
00:00/00:00
登录|注册

第31讲 | 数字货币钱包服务

上一篇,我们谈到了“区块链即服务”的概念。实际上,区块链第一个需要解决的服务就是数字货币支付服务。如何将数字货币钱包集成到系统中,我认为这是区块链行业最为迫切的问题。
今天我们就来了解一下数字货币钱包,它面临了什么样的问题,这样的问题又需要什么技术才能解决,而数字货币平台想要定制自己的数字货币钱包服务,又应当如何集成。

数字货币钱包的分类

目前市面上的数字货币钱包有很多种,看起来似乎有些眼花缭乱,不过,我们可以将它们进行分类后,再快速了解。
下图展示了按照不同属性区分的区块链钱包。
左一是按照用户端平台划分的钱包,这种钱包实际是在服务端运行的,用户端的钱包实际上只是一个代理,所以用户不需要关心钱包的细节,使用起来十分方便,典型的例子是各种在线钱包。
左二是按照货币类型分类的钱包,主要是指这款钱包到底是否支持多币种,这里的多币种可以是基于以太坊 ERC20 Token 的同一个区块链上的多币种,也可以是集成了比特币和以太坊等不同区块链的多币种。
右二是按照私钥存储的方式来区分的钱包,实际上这里主要涉及了用户私钥是否被平台托管,如果不托管直接存储在用户端,也就是硬件、终端设备、纸质记录,这些都可以被称为 On-chain 的钱包;如果用户无法接触到私钥,私钥被托管在平台,那么这种钱包也被称为 Off-chain 的钱包。
右一是按照访问方式进行分类的钱包,例如可以多个人共同管理,同时它也是需要多重签名支持的钱包,否则就变成了个人私有的钱包。
以上的分类并不是绝对的,一个钱包可以兼具以上不同的属性,例如某个 Mobile 钱包是提供 On-chain 的,也提供多重签名、提供多币种的钱包,这种钱包通常就是业界比较流行的钱包类型。
但是,对于平台方来说,上述钱包类型可能不足以支持自己平台的需求,并发挥出最佳的功效。毕竟作为平台来说,对高可用、分叉检测、区块确认的要求是远远高于普通钱包的,这样的问题又是如何解决的呢?这就引入了一项新的技术。

扫描区块技术 Block scan

我们之前在深入区块链技术部分介绍过,构成区块链的四个核心技术是:P2P 网络协议、分布式一致性算法、加密签名算法、账户与交易模型。这四个技术对应到数字货币钱包中就是,P2P 网络、持久化存储、账户以及私钥管理、共识与交易验证四大模块。
其中,持久化存储模块是由全节点钱包自带的嵌入式数据库提供的,这里有 LevelDB、BerkerlyDB、SQLite3 等多种选择。
但是无论选择哪种嵌入式数据库,都面临了一个严峻问题,精细化的交易查询验证与性能不可兼具。换句话来说,任何全节点的嵌入式数据库都无法和服务器级别的数据库相媲美。
对于平台开发来说,显然选择服务器级别的数据库是更为合适的选择。那么这里就涉及了一个问题,如何把全节点钱包中的数据转换成为数据库服务器中的数据,这就需要用到一种扫描区块技术,简称扫块。
扫块,顾名思义,就是指扫描全节点钱包中的所有区块,然后将其解析后存储到数据库服务器的过程,这些数据库可以是 MongoDB,也可以是 MySQL,取决于你的业务需要。
我们可以举元界区块链扫块的例子,元界上的区块结构与比特币接近,你可以将其类比成比特币区块链。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出区块链》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(9)

  • 最新
  • 精选
  • 麋鹿在泛舟
    这里最难以处理的问题是保持 MySQL 中的区块数据与全节点数据的一致性 --- 这个是定期扫描么 还是时时刻刻有变更就扫

    作者回复: 取决于业务敏感性吧。一般是做分叉检测和控制入库高度,不过应该不是最优解决方案

    2
  • 沃野阡陌
    请问老师,从交易所提币出来到钱包自己保存,是不是就是您说的可以用区块链browser来看或验证是否已被打包成区块的过程?

    作者回复: 是的,完全正确。

    1
  • Geek_f26a61
    初次读关于区块链的文章,对于区块链要解决的问题一直困惑。数字货币在公链上发行如何匹配各国的货币发行,发行规模应于经济体总量相关。就象美元与黄金挂钩,支付宝钱包里的钱与实际货币挂钩。问题若不对或对区块链误解请见谅

    作者回复: 你好,同意的。但也未必是货币,也可以是其他有价凭证。

  • 朱显杰
    对区块链有写操作的应用,很难用微服务,因为是有状态的。而区块链的读服务或基于中心库查询的web服务,完全可以用微服务。
    6
  • 陈靖
    能不能直接撸代码,边撸边讲
    4
  • 绝露
    区块浏览器的查询功能好理解,但是验证是指什么,能解释下吗?
    1
    1
  • MarkTang
    您好老师,我对BIP44有几个个疑问 1. 就是我看很多文章 介绍说 address_index 官方建议,每个 account 下的 address_index 不要超过 20?这点我不是很明白,望老师解答。 如这篇:https://learnblockchain.cn/2018/09/28/hdwallet。但有的文字又说这个20是gap,这个20gap是指我遍历一个account下的address_index 20次如果都没有交易记录则不再进行后续地址和账户的遍历的意思吗? 2. 用户使用助记词导入钱包的时候,为了获得他的总余额数量,我是需要遍历他的所有收款地址账户和找零地址账户,再把所有金额加在一起得到总余额吗?这样如果地址数量很大的话,是不是加载就会很慢? 3. 交易的时候,如果用户A需要转给用户B 5个BTC,但是用户A没有一个地址上有5个BTC,都是分散开放的,那么这个时候是需要把他多个子地址的余额凑足5个之后分别都转到用户B的那一个地址吗?如果是的话这样是否每笔交易都会收取矿工费呢? 4. HDWallet 新创建钱包时,是否需要先创建 比如20个收款地址 20个找零地址呢? 他不够时又再新建20个, 这样设计是否合理?
  • 杨家荣
    极客时间第二期 21天打卡行动 29/21 <<深入浅出区块链31>>数字货币钱包服务 回答老师问题: 数字货币钱包服务可以应用到微服务架构中吗? 微服务治理,链路追踪,与这个功能相似; 今日所学: 1,数字货币钱包的分类; 2,扫描区块技术 Block scan; 3,构成区块链的四个核心技术是:P2P 网络协议、分布式一致性算法、加密签名算法、账户与交易模型。 4,扫描区块技术解决了所有区块链资产可视化、高并发查询的问题,所以它在一些大规模的数字货币交易所中也有应用。 5,区块浏览器:从技术上看,一个区块浏览器的主要工作就是把区块扫描到数据库服务器中,然后搭建一个 Web 访问服务,用户只需要输入交易哈希或者区块哈希,即可查询到交易是否已经被打包和确认。 6,数字货币钱包服务:实际上,大规模的区块链应用都需要搭建一个数字货币钱包服务,数字货币钱包服务为系统中的其他模块提供了可扩展的、统一的、安全的交易查询和验证服务。
  • 乔良qiaoliang
    有机会介绍一下infura.io就太好了
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部