不少朋友头一回碰到imToken钱包, 都会对其背后究竟是怎样的技术团队、利用啥软件打造出来的感到好奇。简而言之, imToken是一款依循区块链技术的去中心化数字钱包应用, 由杭州时戳信息科技有限公司予以开发, 关键之处在于运用Java和Kotlin语言编写安卓端, 运用Swift和Objective-C编写iOS端, 底层接入以太坊、比特币等公链的协议库, 融合了安全硬件加密以及开源代码框架。
itoken最先被杭州时戳信息科技有限公司于2016年推出, 此公司着重进行区块链底层技术探究, 团队里诸多工程师往昔于阿里巴巴、网易等大厂工作过;他们并非随意找个模板套用就上线, 而是从无到有搭建钱包架构;安卓版本借由Android Studio开发, 搭配Java与Kotlin混合编程;iOS版本运用Xcode开发, 主力语言为Swift。因要兼容不一样的区块链资产, 所以他们自行编写了多链协议层, 并非直接取用别人的开源项目修改一下就算完成了。
钱包里, 私钥管理模块属于最核心的部分, imTeam采用了硬件级别的安全芯片加密方案, 并非简单的软件加密, 开发期他们参照比特币BIP32、BIP39这些行业标准协议, 自行编写了一套密钥派生算法, 整个钱包的UI界面是运用React Native编写的, 如此安卓和iOS能够共用一部分代码, 然而底层核心逻辑是由原生语言编写的, 并非纯H5套壳。你所打开的imToken, 其中能望见资产列表、转账页面之类的交互层, 实际上是由React Native予以渲染呈现的, 然而真正可称得上签名动作、连络节点的这些重型操作, 全部是在原生底层达成的。
按照技术选型的角度而言, imToken所运用的这些软件框架以及语言, 皆是历经大量验证得出的。Java属于成熟的企业级开发语言, Swift也同样是成熟的企业级开发语言, React Native亦是Meta开源的主流跨端框架。最为关键之处在于,他们并非完全依赖第三方库来实施安全防护。举例来说, 于私钥存储方面, 他们未曾采用系统自带的Keychain或者SharedPreferences, 而是自行封装了一层加密存储, 并且配合指纹以及Face ID来进行二次验证。
围绕代码层面而言, imToken 将核心签名模块单独抽取出来, 放置于名为 Secure Enclave 的安全区域当中运行, 安卓端运用的是 TrustZone 技术, 其这部分代码是得以开源的, 任何人均能够前往 GitHub 上查看其具体编写方式, 在开发进程里其运用的持续集成工具是 Jenkins, 每当提交代码时便会自动运行安全扫描以及单元测试, 可以说钱包里的助记词生成逻辑, 采用的是 BIP39 标准的随机数算法,并非自行胡乱编写的。
但是话又说回来, 哪怕是再好的软件框架, 倘若使用它的人不在意安全习惯, 那同样有可能出现问题的。imToken团队在进行开发之际, 已然是尽力把安全设法做到极致程度了, 举例来讲, 在转账之前, 会去校验地址、校验Gas费, 而且还会给出合约调用风险的提示。他们用于开发的软件自身是正规的, 然而最终的安全性, 还是要依靠你是否妥善保管好了助记词、是否下载了官方正版。要是你是从百度搜索出的山寨链接去下载的话, 那所使用的是何种软件制作的就不好说了, 说不定是钓鱼团队随意利用WebView套壳制作出来的假钱包。所以认准官方渠道比研究它用什么软件更重要。