1024. imToken 致社区

1,069 阅读3分钟

开宗明义,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 奖励计划。

任何安全从业者或用户如果发现漏洞,可以通过漏洞平台或邮件的方式给予反馈,我们会给予丰厚的奖励;除此以外,imToken 将入驻更多的世界级安全平台,包括 Hackerone,接受来自全球开发者和白帽子的“检验”。

区块链是天生开放的行业,希望开源能够降低门槛,吸引更多的开发者和公司能够利用这套核心代码,找到更多加密货币的应用场景,加入 imToken 生态,也欢迎大家参与到 imToken 的开发者社区中。

致谢

  • CoreBitcoin
  • bitcoinj
  • ashchan

1024,致敬所有为此做出贡献的创造者,以此贡献给更多的创造者

1024,Let's make blockchain happen


Ben & imToken 团队