4月16日,《链接者谈》有幸邀请到了u盾首席架构师杨顺清,分享他在钱包开发方面的独家经验,学习他多年来在钱包开发方面的核心技巧。
主讲嘉宾Alex Yang
以下是问答内容:
主持人:什么是区块链钱包?
AlexYang :区块链钱包是指区块链科技开发的虚拟数字货币产品的管理工具,具有货币交易——收付的特性。可以通过收款生成一个符合连锁规则的有效地址,其他地址可以向这个地址转账;支付可以将地址内的资金转移到其他地址,这需要支付地址的私钥,而地址的私钥可以完全控制地址内的资金。
主持人:区块链钱包的发展状况怎么样?
AlexYang :区块链钱包的发展大致可以分为几个阶段:
当时在 萌芽阶段:,比特币作为区块链科技开发的第一个产品,只是作为一种新型技术被研究和学习,通过强制执行指令的方式,其流通也只限于技术人员;
为了降低初期阶段:,的门槛,比特币钱包诞生了。软件安装后,只需要同步数据,就可以生成地址,通过图形界面发送交易。
起步阶段的发展阶段:比特币钱包虽然解决了门槛问题,但受到数据同步的限制,同步后的数据往往面临磁盘空间过大、网络连接异常的压力,因此仍难以得到广泛应用。这时,一个团队开始研发轻钱包,不仅解决了数据同步的问题,而且支持创建多个比特币钱包,每个钱包还支持生成多个地址使用;
百花齐放阶段:'s轻钱包问世后,比特币进入了大众的视野。由于比特币钱包的开源,基于区块链技术开发的公链越来越多,如以太坊、柚子、波场、Ripple等。每种公链为了提升自己的发行量,都有自己的钱包,但是用户要安装管理各种钱包,造成了很多麻烦。在这种情况下,支持多链的钱包诞生了,这个阶段被称为百花齐放阶段;
应用阶段:所有公链被广泛认可后,每个人都关心如何应用和体现其价值。目前公链的价值在于数字货币,数字货币最大的应用场景是交易所。交易所运营中最重要的是数字货币的资产。如何保证其正常运行成为运营中首先要解决的问题。随着对产品和技术的不断考虑,针对交易所的区块链钱包逐渐形成了标准和规范。
主持人:如何去开发区块链钱包?
AlexYang :目前,个人钱包的技术已经成熟,在互联网上可以找到很多开源代码。这里不多说了。让我们来关注一下exchange wallet的发展。
交易所需要解决的是交易所用户收费和取款的问题。对于一个交易所的运营来说,核心是安全。第一,交易安全;第二,钱包安全。如果事务出现错误,技术人员也可以通过数据回滚、脏数据处理等方法进行处理。由于区块链技术的分散性,一旦钱包资产出现问题,资产将无法恢复。
在第一代exchange钱包中,我们通过rpc调用直接对钱包进行充值和提现。首先需要准备好服务器,部署btc、eth等节点。同步完成后,我们可以调用rpc接口生成地址并提供给exchange用户。然后开发一个服务处理交易所地址的充值数据,然后通知交易所;当用户取款时,他们可以调用开发的程序,在服务器上获得地址的私钥,建立签名并广播交易。这就是热钱包的概念。
这个热钱包的实现需要我们将私钥信息存储在服务器上或者通过网络传输。事实证明,这种方法逃不过黑客的攻击或者内部人员的暗箱操作。
基于以前的实现方法和存在的问题,我们开始了第二代交换钱包的研发。在这个版本中,我们将重点放在资金安全和用户操作体验上,经过几个版本的迭代,逐渐形成了我们现在的u盾企业钱包。
主持人:在开发优盾
钱包中遇到了哪些困难?AlexYang :
人才问题
在确认产品定位和技术选型后,随之而来实现阶段,我们遇到了最大困难――缺少专业人才。当时,想找到合适的人员真是太难了,最后我们只能买教材、上网查资料,自己进行研究。
技术问题
一是区块链底层实现。为保证安全,所有涉及私钥的地方都必须在客户端本地完成,不能触网。因此在各种链的底层研究、融合以及跨平台支持这块耗时很久。
二是数据处理这块,我们知道区块链上的数据是庞大的,而且还需要支持各种主流公链。在如何处理数据的完整性和及时性方面也困扰了我们很长一段时间。
财力问题
在解决技术上的问题后,又不得不面临一个非常现实问题――资金问题。在支撑开发和运行这样一整套系统上,我们需要用到各方面的技术人员和大量的服务器。这对我们当时毫无收益来源的研究团队来说是一个非常大的压力,我们是恨不得一个人当两个用。
维护问题
在我们0.1版本上线初期,就已经有不少客户在进行试用了。当时由于在很多方面处理的不太成熟,导致问题不断,我们运维和核心开发人员晚上都支持到好晚才敢睡。
主持人:优盾钱包实现原理是什么?
AlexYang :从结果来看,我们支持在客户端创建钱包并支持多币种,同时每个币种都可以有多个地址,支持客户端生成地址或通过调用API进行生成。而我们只需要保管好助记词即可,通过助记词导入钱包后就能使用钱包进行发送交易。
要实现这些:
首先:我们要在线上不同地区服务器上部署多套各种公链的全节点,防止出现服务器异常、网络异常、节点升级等突发状况;
其次:通过我们开发的UBDA系统,用来对各链的区块数据、交易数据进行搜集并且存储;
同时我们开发一套UKMA系统用来存储通过我们钱包生成的地址;
然后通过我们的BBCS系统,对区块链上的数据进行分析并转换,通过UKMA系统进行过滤出我们需要数据;
在得到我们需要的数据后,我们在将对应数据发往对应的网关服务器(BGS系统),各网关服务器对数据进行保存后再将消息推送到客户端,同时将消息通知到交易所。
对于发送交易,我们是在客户端进行操作,在客户端完成交易的构建和签名,将签名后的交易串发送到对应网关服务器,再通过网关发送到BBCS系统,最后在BBCS系统将交易广播到对应公链节点上,由此完成整个充提币的交易流程。
主持人:优盾钱包为什么能保证用户的资金安全?
AlexYang :主要体现在以下几个方面
底层技术实现
钱包助记词用户自持、保证私钥永不触网、通过授权码进行授权使用、交易离线签名然后在线进行广播交易等技术手段保证私钥的安全。
管理
在管理上我们实现多维度进行管理,包含多钱包、多员工、多资产、多权限等。
多钱包:我们支持创建多个钱包,每个钱包可以管理不同资产,这样可以对资产进行分散管理,同时也便于账单查询和对账;
多员工:我们支持创建多个员工账号,同时配合多权限,安排指定人员做对应的事,同时支持审核、复核、多签等流程。
风控
(1)新设备需手机验证码进行登录;
(2)可限制固定电脑使用;
(3)可限制固定IP使用;
(4)非授权钱包无法导入使用;
2022 接口
(1)采用https安全协议;
(2)请求接口白名单安全限制;
(3)支持多通道调用,一个线路出问题,可立即进行切换其他线路,保证系统正常运行;
(4)数据保存完整性,保证经过钱包的交易数据能够追源朔根。
主持人:优盾钱包如何支持新链?
AlexYang :理论上说只要符合接入安全标准的链我们都支持进行接入,主要体现在以下几点:
(1)代码全部或部分开源,要能支持地址及公私钥对生成、支持离线签名;
(2)提供安全的广播交易接口;
(3)提供查询区块及交易信息查询接口。
主持人:优盾钱包受众群体有哪些?
AlexYang :
1)已运营团队:对当前使用的钱包管理方案不放心的运营团队;
2)即将运营团队:需要接入使用或管理数字资产的运营团队;
3)开发者:对区块链应用感兴趣,但碍于底层技术和研究成本的限制;
4)开发团队:用于解决项目技术上或资产安全管理上的难题。
主持人:使用优盾钱包能给企业带来什么好处?
AlexYang:目前我们优盾钱包的客户注册量已超过400+,正常运营客户达到100+,上链交易日均有几百万USDT量。我们帮助企业节约运营成本,不需要准备多台服务器进行部署节点、不需要大量技术人员和运维人员;同时大大缩短上线周期,从接入到上线使用短则1天,多则一周。钱包安全和便捷的操作真正解决管理者的后顾之忧,不再担忧资金安全问题,专注于市场和运营。
主持人:来发展方向是什么?
AlexYang:
(1)用户体验:在保证安全使用前提下增强产品的用户体验;
(2)安全:在当前基础上增加硬件支持,这块我们已经开始研究,相信很快就能面世;
(3)风控:我们会针对一些异常交易或者大额交易进行监控、提醒及确认等操作,保证交易安全;
(4)应用:扩展更加丰富的区块链应用。
最终我们目标是要做一个全球性的虚拟数字货币“银行管家”。
标签: 2022