朵朵钱包1.0(下)-this is just the beginning

巴比特 view 46 2015-3-18 02:34
share to
Scan QR code with WeChat

从丢币的交易所谈起

这段时间有件事情闹的沸沸扬扬,就是比特儿丢币了。丢币的原因也非常的离奇,就是他们没有用成熟的硬件钱包存储比特币,而是用老式的电脑方案,结果在联网的过程中,比特币被黑客盗走了。这个事情使得很多比特币硬件钱包厂家借此说事,然后宣传自己的硬件钱包如何如何的安全,暂且不一一评论。

笔者上网搜索了一下,《比特币钱包综述之一硬件钱包》一文对硬件钱包做了总结,由于目前虚拟币硬件钱包主要是比特币钱包,所以下面提到的都是针对比特币的:

第一代的典型代表是Pi-Wallet,其实说白了就是在树莓派上面装了一个比特币轻量钱包,然后Pi-Wallet通过PC端的Armory控制钱包和私钥。功能简单,方法单一。

朵朵钱包1.0(下)-this is just the beginning

目前大部分的产品都是第二代,基本功能就是硬件钱包存储秘钥,然后用过usb连接电脑进行操作。国内这方面技术很成熟,价格也越来越便宜。最便宜的才100多块钱。

朵朵钱包1.0(下)-this is just the beginning

目前正在开发的第三代,则功能更加强大,重点是可以脱离电脑的存在,直接进行线下交易。

那么我们问题来了,交易所为什么那么蠢,不用成熟的,而且便宜又好用的硬件钱包,而是用老式的电脑存储,以至于丢了币?不绕弯弯,一句话解决战斗,就是凭什么相信你的硬件钱包是安全的?你如何去证明你们的硬件钱包里面不会有木马,或者不会被第三方装入木马?

事实也证明了,丢了币的比特儿,仍然“固执”的没有选择具体某个厂家的硬件钱包,而是将冷钱包100%托管给合作伙伴做专业安全存储。

我这里还有一个例子,就是OKCoin公布的自己公司的比特币冷钱包解决方案,里面也同样提出,其使用的是离线电脑,而非某一个厂家的公开销售版的硬件钱包。

究其原因,其实就是没有任何一个大型交易所,敢把价值几千万甚至几亿元的虚拟币,放到一个没有经过专业安全机构检测过的硬件钱包里面。

闭源硬件钱包的优与劣

我们现在市面上见到的大部分都是闭源的硬件钱包,其优点就是外形好看,质量稳定,用户体验感优化。但我们不是买漂亮衣服或者好吃的吃,我们是在买一个黄金保险箱,而且闹心的是,我们并知道要买的这个保险箱是否有后门。

有些闭源硬件钱包厂家或许意识到了这一点,于是就号称源代码开发,有兴趣的人可以自己开发第三方程序。但其有意或者无意规避了一点,就是bootloader源码不开放且无法通过仿真器烧录(因为没有jtag接口)。

不搞嵌入式系统的人知道一点就可以,Bootloader跟我们电脑的bios差不多,也是一段启动程序,而且是最开始启动的,也就说,每次启动,都是首先执行bootloader这段代码,然后再执行其他程序。如果bootloader里面嵌入恶意代码,那么整个硬件钱包在恶意者面前就如同裸奔。

很多低端硬件钱包用的就是stm32芯片,所以这里放的是stm32的flash图示。

朵朵钱包1.0(下)-this is just the beginning

我们这里主要注意两部分,一部分是Main Memory:

该区域地址范围:0x08000000 - 0x0801FFFF,总大小为128K字节。

该区域的主要用途:存放STM32的代码段(用户程序)。

硬件钱包自身的bootloader和应用程序代码段一般都放在这里。

一部分是Information Block:

其中System memory为系统内存,该区域存放着STM32自身的bootloader,该bootloader是芯片出厂时就设置好的,主要用于通过UARTx下载程序到Main Memory中。这个一般是不可修改的。

一般的流程是先启动stm32自身的bootloader,然后进入代码区,启动硬件钱包的bootloader,最后再启动硬件钱包本身的程序,之前的两个bootloader任何一处嵌入恶意程序,那整个硬件钱包就如同在裸奔。

这样在大部分的小硬件钱包厂家面前就出现了一个两难的问题,源码不开放,不能完全深度制定,客户不敢用;源码开放,会有大批跟风抄板子的,没有利润。所以没有安全认证的闭源硬件钱包,做一个玩具还可以,真的较真起来,是无法进行大规模商业应用的。

免费开源的虚拟币硬件钱包

那么下一个问题来了,我们究竟需要什么样的虚拟币硬件钱包?

首先,应该是专门针对虚拟币开发那部分的软硬件都要开源而且是免费的。这样可以保证没有后门和木马。而且整个系统会有志愿者进行长期维护

其次,可以在没有电脑的情况下完成虚拟币的操作,包括显示,转账交易等等。这样可以避免操作电脑遭到入侵而带来的安全问题(比如偷偷修改发送地址,伪装真正交易的网站等等)

最后,方便制作和操作。如果设计过程跟做一架喷气式飞机那么麻烦,操作过程跟骑一匹烈马那么难受,那也很少有人会去用

那么我们对《比特币钱包综述—之一—硬件钱包》里面的三代钱包进行逐一分析。

第一代钱包Pi-Wallet符合第一条,就是针对虚拟币开发那部分的软硬件是开源的(当然,这里面没有专门的硬件,只有软件),但不符合第二条和第三条。没有屏幕,无法脱离电脑独立操作,同样也不能独立进行支付交易。

第二代钱包显然不符合第一条和第二条,但却非常容易操作,符合第三条。

第三代的钱包由于功能复杂,而且厂家处于利润考虑,很难进行完全的开源。退一万步考虑,即使软硬件完全开源,一般的个人用户,也无法做到很容易的制作,因此即使符合第一条,也不会符合第三条。

朵朵钱包就是在这个背景下产生的。

朵朵钱包1.0版的构成与功能

其实一开始这个是点点币中国社区几个朋友提出来的,目前点点币的已经有了基于树莓派的PoS挖矿节点钱包,但由于是基于网络命令行的,不安全也不方便,因此希望能做一个较为简单的点点币PoS挖矿钱包。按一下启动,按一下挖矿,按一下关机,可以显示一些信息这样。

因此我花了几周的事情做了朵朵钱包(其实大部分时间都是在做测试)。

朵朵钱包1.0(下)-this is just the beginning

从硬件组成上来看,朵朵钱包比早期的Pi-Wallet多了一个屏幕按钮模块和一个无线网卡

这就意味着,朵朵钱包不仅仅局限于有线网络的情况下,而可以工作在任何有wifi的地方(没有wifi的地方只要手机有信号,能建热点就行),而且也可以脱离电脑进行独立操作(本身带有屏幕按钮,还可以接键盘和u盘进行辅助操作。)这就解决了第二个问题,如何在没有电脑的情况下独立操作。而且由于使用了防火墙,将不用的端口屏蔽,因此也具有很高的安全性。

此外,朵朵钱包用到的都是非专门针对虚拟币的硬件,所以也不用担心硬件安全问题。同样软件部分,系统采用的是开源的linux系统,而朵朵钱包跑的软件也同样是免费开源的。这样第二个问题也解决了。

最后,制作方面,有专门的制作教程,笔者已经写完并且发布,供大家免费使用。而使用也是异常的简单,基本就是对着说明书和视频,点几个按钮就完事了。

 下一步的展望

本来打算多写点东西的,但想了想,感觉问题说清楚就好。所以不啰嗦,这里只说三部分,一个是朵朵钱包,一个是朵朵ATM,一个是朵朵系统智能设备自治问题研究

朵朵钱包

由于目前的比特币和下个版本的点点币都会支持离线支付的功能,因此考虑做真正意义的冷钱包。冷钱包通过双钱包实现,一个离线钱包完全不联网,只通过串口与在线的那个钱包进行有限的数据通讯,这样即使在线钱包完全被黑客攻占也毫无意义。在线钱包则实时查询状态,以及实现虚拟币的收发。同样也是免费开源,同时会支持一键支付,一键接收等功能。

不过由于开销比较大,需要较长的测试时间和做PCB板子什么的,由于本人没钱也没时间,所以目前没有打算做。如果有谁愿意资助这个项目请与我联系。

朵朵ATM

朵朵ATM是目前点点币中国社区支持的项目。由于笔者一向讨厌画饼,凡事都习惯用已经做出来东西的视频说话,因此朵朵ATM部分没法说更多内容。

目前只能透露给大家几个关键字:

多币种支持(除了比特币还有点点币,后期还有更多的币种,而且钱包是独立,从物理上隔离,不会出现一个感染,另一个也会跟着感染,有效解决闭源钱包可靠性问题);

支持热插拔(除了主模块以外几乎所有模块的热插拔,进而实现系统的模块化设计和实时的故障隔离);

低成本(可以进行双向兑换的ATM大概在一千美元级别,当然也不要指望能用到太好的纸币兑换模块,要是不算纸币兑换模块,其他成本大概在200美元那样);

完全软硬件免费开源(并提供完整教材);

多重报警机制(短信报警,断电报警,有线远程控制和震动报警)。

智能设备自治

目前没有太多可以透露的信息,只能说等朵朵ATM告一段落后,今年的全部重心都在这里。

所以简单一句话就是,对于整个朵朵系统来说,朵朵钱包1.0, this is just the beginning。

btcfans公众号

Scan QR code with WeChat

Disclaimer:

Previous: 揭秘模拟P2P网贷平台吸金骗局 Next: Juniper Research : 预计2019年比特币活跃用户为470万

Related