开宗明义,imToken今天正式宣布开源!
为什么 imToken 选择开源?
截止至 2018 年 10 月,imToken 在全球 200 多个国家和地区拥有超过 700 万用户,钱包已经成为加密货币世界里重要的基础设施,但这个快速发展的新兴行业却没有所谓的“标准”可言。
imToken 2.0 作为多链钱包,已经支持以太坊,比特币及 EOS,非常多优秀的公链和 DApp 希望通过我们接触到更广泛的用户。
imToken 是一家公司,如果想要完成某项功能(支持某个公链/DApp),我们选择自己开发可能更快更有效;但我们清晰的意识到:一个人,可以走得快;但是一群人,才能走得更远。
我们需要更多优秀的区块链开发者的支持,我们希望能获得来自社区的贡献,吸引更多公链可以与 imToken 共同参与开发钱包。
更重要的是,作为区块链应用的先行者,imToken 真心希望能够将已有的经验分享,让这个行业的开发者少走弯路,共同制定行业技术标准。
我们开源了哪些有价值的代码?
在此之前我们实际上已经开放了以下功能的源码
- EOS 投票工具 StakeVote
- 去中心化交易所功能的 Tokenlon SDK
本次开源的部分我们称为 TokenCore;属于在 imToken 应用中对钱包私钥进行管理维护的部分。这部分代码的可靠和稳定性已经在生产环境上获得超过 700 万用户的检验,包含 iOS 和 Android 两个平台的原生代码,目前这部分代码已经开放在 Github。
作为去中心化钱包,钱包私钥只存储在用户客户端本地。私钥由随机数产生,并使用用户输入的密码进行加强保护,加密后的 Keystore(私钥存储文件) 存储在沙盒文件系统。只有私钥签名的场景下 Keystore 才会配合密码的输入解开得到对应私钥。
TokenCore 中包含具体功能模块列表如下
-
加密的私钥存储
- 来自以太坊社区的单私钥存储规范 V3 格式
- 可以存储助记词的自研加密格式
-
ETH
- V3 Keystore
- 基于助记词的私钥推导
- 交易签名
-
BTC
- 基于助记词的私钥推导
- 传统及隔离见证模式的签名
-
EOS
- 基于助记词的私钥推导
- 交易签名
-
Identity
- 多链账户私钥的推导体系
- 虚拟身份维护个人数据,并存储至 IPFS
-
不同区块链的序列化方式
在开源之前,我们反复做好安全代码审计
Given enough eyeballs, all bugs are shallow. – Linus’s Law
秉着对用户负责,对代码质量负责的角度,我们已经邀请慢雾团队以及 Cure53 团队进行多轮代码安全审计。并在多个安全平台上发布了 Bug Bounty 奖励计划。
Cure53 的审计报告:
慢雾区上的 Bug Bounty Program:
https://slowmist.io/en/imtoken/index.html?utm_source=index&utm_medium=cpc&utm_campaign=imtoken
任何安全从业者或用户如果发现漏洞,可以通过漏洞平台或邮件的方式给予反馈,我们会给予丰厚的奖励;除此以外,imToken 将入驻更多的世界级安全平台,包括 Hackerone,接受来自全球开发者和白帽子的“检验”。
区块链是天生开放的行业,希望开源能够降低门槛,吸引更多的开发者和公司能够利用这套核心代码,找到更多加密货币的应用场景,加入 imToken 生态,也欢迎大家参与到 imToken 的开发者社区中。
致谢
- CoreBitcoin
- bitcoinj
- ashchan
1024,致敬所有为此做出贡献的创造者,以此贡献给更多的创造者
1024,Let’s make blockchain happen
Ben & imToken 团队