网络安全 频道

比特币网络的交易及存储安全

  比特币相信关注IT趋势的人多少都了解一些,特别是近来比特币又异常的火爆。但火爆市场的背后,比特币的安全也成了大家关心的问题。9月12日乌云安全峰会,火币网技术副总裁、快钱包CEO张健还来了《比特币网络的交易及存储安全》主题演讲。

  以下是张健的演讲全文:

  谈到比特币,首先大家认为比特币是货币,或者说是互联网金融的一个范畴,为什么和安全会有如此大的关系呢?其实我想说,比特币的诞生可能50%是属于安全的范畴,有50%属于互联网金融的范畴。我第一章从比特币本质讲起。

  我现在想做一个小的调查,就是台下的各位有没有没听说过比特币的人?应该是没有。第二个调查,谈一下有多少人现在不去查,知道现在比特币大概在什么价格?第三个问题,有几个人知道驱快店这个词?

  这样的话我就第一章讲长一点,但是如果大家不知道比特币是什么的话,这个安全就无从谈起。第一点,数字货币化和数字货币。其实数字的货币化不是一个将要发生的事,它是一个已经进展很深入的事。就是我们现在所用的大部分的交易,特别是大的交易,其实很少用到现金,我们用的都是银行转帐或者信用卡,合适这些根本不涉及到真正的实物的,就是钞票的交流,就是数字。

  比如我转帐给你,只不过是在我的银行户头上减了这个数字,在你的银行户头上加了这个数字而已,这个现在是非常大的趋势。但是为什么还要提数字货币这个概念?就目前的数字货币化其实非常不彻底,它是支付上的,而不是本质上的数字化。其实这个问题在很久以前,在上世纪七十年代、八十年代就有人不断地提出,是否货币可以数字化?为什么呢?因为货币从本质上讲它就是起到了信息的中介,可以这么认为吧,所谓的一般等价物,它本质上其实是中介,它本身不需要有任何价值。

  比如说你现在拿的一百块钱钞票,它本身就是印刷价值,这个成本可能非常少,是谁赋予它的价值,这是很深刻的问题。人类社会经历了太多经济危机,经历了太多波动,但是它的根源跟货币都有绕不开的关系,因为没有人知道现实社会中究竟需要多少钱,我们先不去揣测发钞者他可能会有一些恶意的成分,比如某些国家的政府,它有可能会超发的情况,即使它是想让整个货币体系和金融运行的更加稳定,它也不能够知道究竟需要多少货币。

  这个其实在经济界就有很大的争论。不知道《货币战争》这本书大家看到过没有,里面提到了金本位,就是它要回归到金本位,因为现在的钞票可以随便印的,这个思想其实是完全不可行的,因为黄金有一个最大的问题,就是它根本不能够用于现代的支付。我不可能说我买东西切块黄金给你,这是已经早已被淘汰的东西。

  我顺着刚才的话题讲,其实货币数字化的根基是帐单,我刚才举的例子,我给你转帐一万块钱,其实只是银行系统的数字改变了一下,在我的帐单上减去了这一万块钱,在你的帐单上加了一万块钱,所以说比特币其实本质上就是一个帐单。但是想实现这样的帐单有很多困难,下一章我会讲到,就是如何实现全球优异无中心节点的数字化帐单。

  当然中心节点这个问题可以稍微提一下,就是如果有任何一个服务器或者组织,或者个人,或者政府,它拥有这样中心化的权利,那它就违背了我们发行的公平,等一会儿我会讲到。

  第二个,全球优异,这点也非常难。大家可以想像,一个数字或者一段数字,如何能够成为货币?因为数字是可以任意复制的,所以说这个是一个下面要解决的,就是比特币要解决的核心问题,或者说数字货币要成功,要具备的基本条件。第一,发行问题。如何发行和如何保证公平?

  第二,造假问题。如何解决重复花费的问题,和如何保证帐单不可篡改。这个问题比特币是通过驱快店完美地解决了上述两个问题。解决的方法就是驱快店是什么?我花几分钟讲一下,驱快是什么概念?如果把驱快理解为全网的帐单,驱快就是这帐单的一页,这一页不停的往上加,它为什么会成为链条。

  这要谈到密码学,下面我会讲。但是驱快的,谁来增加一页帐单?谁能够为这个帐单记上一笔记录?这个是要通过算例来竞争的,这是比特币最初的设定。也就是说,如果是,比如说你是一个村子,你要发行一个,我们随便举一个例子,一个组织要发行内部的货币系统,如果这个组织的负责人可以记这个帐,他就有动机篡改这个帐单,所以无法保证发行公平的问题。

  所以我说为什么区快店完美解决了两大问题,第一你要取得记帐权就要通过算例来竞争。第二,如果你竞争到这个区快的记帐权,你就可以获得一定比例的奖励,这就是货币的发行。所以说它把记帐和货币的发行完美地通过区快店的方式集成在一起,这是比特币能成功的基本保障。

  谈到密码学,第一就是公钥密码学,前几天的有人黑了宗本聪邮箱,但是现在身份没有暴露,可以肯定他在密码学方面造诣非常深的人,当然不仅仅是密码学,还有金融学,他完美通过数字的方式模拟了黄金的属性,又避免了黄金的最大的缺点,我刚才讲到的就是支付根本不方便。公钥密码学是这样,比特币采用的是公钥密码学中的算法,就是你通过私钥的方法,公钥可以验证,但是公钥不能签这个名。

  这是一个数字签名算法的一个特性,所以它能保证P2B中交易的真实性,就是我能完全确定你这个交易是拥有CELL的人签名发出来的,如果没有签名,马上会被比特币网络拒绝。第二个特性,就是通过公钥推算出私钥,这个在理论上是可行的,但是在计算上是不可行的,比如要花人类一万年甚至十万年时间这个其实可以认为计算上是不可行的,这是公钥密码学,它是比特币的根基之一。

  还有哈希算法,就是这个链条是如何形成的?其实每一个区快它的发行值是有记忆的,它记忆了从比特币区快店诞生,就是第一笔交易到现在所有的信息,都在那一个值里体现出来,这个就是通过不断地哈希,所以它不会漏掉任何一个信息,你试图去更改一个帐单,不管是一个月前,甚至几前年,任何一个字节都会导致整个区快店的失效。

  第二,生成新区块的工作证明,这个值是比特币非常创新的一个概念,刚才我提到的如何能够,就是谁有这个权利记这个帐单,特别最货币来说这是一个至高无上的权利,但是如何不让这个权利被滥用。宗本聪发明了一个方法,就是工作量证明。

  就是这个方法最初源于垃圾邮件的防范。当时垃圾邮件是长期存在的问题,后来有一个人提出了解决方案,让发送正规邮件的人要计算一个数字,比如说计算一个哈希值,其实对普通的PC机计算这个值非常快,你感受不到,但是对滥发邮件的人这个运算量是很大的。

  所以这个想法是源于垃圾防范,它非常完整的保证了比特币的公平和安全。公平可以很好理解,因为谁提供的算例最多,谁就能优先算出这个值。这个值哈希函数一个特点,就是正着算很简单,倒着算不可能。所以说打包区块,或者说竞争新区块的算法是什么呢?

  就是暴力破解一个值,这个值只是我规定的一个特定的值,比如小于某个值,你只要试出来了,你就拥有这次记帐权,你就可以赢得一个区块,打包一个比特币。现在比特币算例非常非常强大,特别是经历了去年价格暴涨之后,现在它的算例应该在200的P,P的概念我不知道大家熟不熟悉?

  就是每秒钟大概要运算200的P的SH256哈希运算。这个算例其实是一个天文数字,大家有兴趣的话可以算一下这个数字有多大。

  下面回顾一下比特币发生的安全事件。其实比特币虽然诞生于安全,诞生于密码学,但是同样在那方面非常非常脆弱。这里面丢失的比特币数量应该都是上万的,还有上十万的。在我展示的七八笔事件中,丢失的比特币数量就高达一百多万,我没有仔细算,大概有120万左右,现在比特币发行的数量是1300万,就是我记录的这几个事件占了全网比特币事件的10%。

  但是真实的丢失,虽然这上面有一些不一定真实,但是真实的丢失应该远远不止如此,我估计在20%以上,包括丢掉,包括被盗,所以这反映了一个非常严重的问题,就是比特币很难伪造,却不难窃取,可能这个话题大家比较感兴趣。

  就是比特币非常难于伪造,不仅仅是我刚才讲到的两个,一个是公钥的数字签名算法,还有哈希值在保证从公钥推算私钥不可行,但是一旦泄露,你的比特币就会被一扫而光。也就是说你存在银行的钱可能没这么容易丢失,但是你放在机器上的比特币,有可能在你不经意间就丢掉了。

  不知道大家看到这个图有没有什么特别的想法?虽然这是一个窃取的图,但是我想说的是这是一个新闻,这个新闻说的是,美国的一个大学安全方面的教师发现有一些黑客黑掉了很多类似于这样的摄象头,用于比特币的挖矿,这个事挺多逗的,摄象头能挖多少矿?

  现在进入案例的分享。第一,自己弄丢,这是一个最简单的丢的方式,但是这种方式占的比例相当大,我没有一个具体的统计,比如说这个交易所在2011年的时候,它由于升级自己的,就是它把服务器放在亚马逊,由于提示资源不够,它升级自己的系统,结果不知道,因为什么方式,设置被改了,造成文件全部丢失,而且它还没有备份,结果损失了17000比特币,导致这个交易所直接关门,造成这些比特币直接出售。

  可能有一些人已经知道这个事情,就是最后这一条,一个公司破产的时候,它宣称丢掉了75万个用户的比特币和10万个自己的比特币,加起来超过4亿美金,这是一个非常惊人的数字。

  第二,黑客攻击。这个案例挺有意思,这个交易所在一年四个月的时间内被人黑了三次,每一次黑的数量都挺大,第一次是4.3万个,第二次是1万8千个,第三次是4万个,加起来差不多有10万个,而且每次黑的方式不同,第一次黑的托管商,第二次闯入帐户通过电子邮件,第三次稍候我会讲一下。

  刚才我问大家比特币价格的时候,不知道有几个人查了,它价格现在人民币不到三千元。这个交易所很有意思,它第三次被盗的时候,在它被盗的前一天,这个交易所创始人在QQ群里大量出售他的LR和B CORN,而且说要多少有多少。

  所以说很多人怀疑这是监守自盗,因为被黑了很多次,不在乎自黑一次,然后彻底关门。因为我一个朋友在这个事件中丢失了500个比特币,所以他要求我一定提下这个人,这个人叫周彤。

  案例三,攻击服务托管商。刚才那个交易所第一次被黑是黑了它的托管商,这个托管商出的事太多,其中一个跟比特币有关,就是超级管理员密码泄露,因为不费工夫就可以更改用户的密码,因为他是一个相当于后台客户服务的帐号被泄露,这个黑客拿到了超级管理员权限之后就扫描所有程序,最后只选择了攻陷八台

  就是因为这八台上运行了比特币程序,也就是说这个黑客就是冲着比特币来的,这八台中出现了这三个人,就是刚才的那家交易所,还有一个矿石,它应该是排第三、第四的,还有一个比特币当时的首席科学家,这个人居然也丢失了50个比特币。所以这个事件给我们的启示,千万不要把私钥放在云平台,即使你没有问题,他可能黑掉你的上级。

  域名劫持,这也是一个挺典型的案件,黑客利用公开的信息,获得了这个拥有者的出生地点和母亲婚前姓名,说服注册商交出了域名和控制权,进而又控制了他的电子邮件,最后进入他在一个交易平台的帐户,然后把这个交易平台全部侵了。

  虽然得逞的原因因为公开的这些情况,可能跟他并没有直接关系,但是他没有开启双边验证,这是一个安全上的漏洞。但是这个公司也挺有故事的,其实这里面每个公司都挺有故事的,这些公司的创始人也是在今年初,因为洗钱被FBI逮捕了,现在应该还在FBI那儿。

  这个事件是今年六月份一个挺有意思的事情,因为今年六月份美国发行局组织了对丝绸之路的比特币拍卖,丝绸之路是当时一个非常大的比特币,卖东西的,应该是电商网站,但是它卖的东西都是毒品之类的,枪支弹药的,所以最后通过FBI的钓鱼把这个人抓了,扣押了它所有的比特币有一个人有14万个,当时是余额最大的比特币地址,就是FBI扣的丝绸之路地址。

  美国发行局不慎泄露了拍卖的名单,这个攻击者就伪造的,也不是伪造,就是发一个采访的文件,只是带了一个木马而已,发给了一个竞拍的公司,这家公司是澳大利亚的一家比特币的公司,这个剩下的事情就比较简单了。

  这个案例体现在安全上的问题,就是即使他侵入了你的系统并不一定拿走你的比特币,所以刚才猪猪侠提到的一个事情,就是很多安全方面的大漏洞不在于你在后的方法做了多少,而在于里最薄的方面是不是犯了非常愚蠢的错误,所以说其实你只要不犯错误,可能就不会出现这样的问题。

  下个案例是最新,刚刚发生的一个案例,就在上个月,国内的一家平台,这个不是比特币,但是也是比特币的衍生货币,我们统称为山寨币,这个币也值点钱,被盗了5100万个。

  被盗的过程几乎是全公开的,可能黑客不愿意暴露自己的地址,直接在他们的地址上谈判,这是我贴出来的黑客在论坛里说的话,他说,CEO90%的服务用了同一个密码,所以这是一个挺有意思的事,如果大家没有了解的话可以去看一看,因为这个事件完整地曝光了。

  也就是说开始谈判过程中,比特儿可以强硬的取款,但是后来因为种种的担心,其实他内心比较心虚的,后来逐渐被黑客掌握了谈判的主动权。所以这个NXT事件还有另外一个原因,就是这个山寨币不能做冷钱包,冷钱包是什么意思?就是把私钥可以放在自己家里。这样的话黑客就无法侵入。

  下面我总结一下比特币在交易和存储方面面临的安全风险。第一,存储的风险。这分两大块:第一,私钥文件损坏,或者比特币丢失,就是私钥直接丢失了。

  合适这个刚才我也提到了,这个造成的丢失不在少数,包括最大的一个丢失事件,门头沟那个事件,85万个比特币,有部分人怀疑私钥是管理不善,就是没有备份的后果是灾难性的。应该有三四个人找过我,其中一个人相当典型,他属于本地的私钥损坏了,把钱包发给我,问能不能恢复,说恢复的钱分我一半。

  我经过很多次尝试后真的不能恢复。所以这样的情况下,不管你有多少资产,很快就丢掉了,就是说没人能花这笔钱,就是它永远的丢掉了。其实丢掉这些钱让比特币整体的数量稍微减少了一些。

  第二种情况,就是私钥被盗,这个也是非常普遍的。可能每个月,甚至每周都在发生,这个对安全性要求非常高,包括企业,我们公司也会采用冷钱包的存储架构去做这样的安全防范。

  也就是说,因为你要用比特币进行支付,所以你必须在业务的层面保证有一定的私钥或者有一定的逼债,所以你不能百分之百冷存储,所以现在很多交易所将大部分币冷存储,一旦黑客侵入,而且侵入的级别比较深,拿到这些私钥也不会损失在线下冷钱包的钱,这是一个现在普遍的一个架构。

  其实交易安全风险,比特币还是做的非常好,这也是比特币安全性一方面,叫双发攻击,因为比特币是P2P的架构,什么意思呢?就是每花一笔钱,这笔交易是通过这个结点性质广播给全网,就是说全网不同节点接受这个交易的节点时间是不同的,所以有可能你可能同时广播两个交易,一个交易是发给交易的商家,另一个交易是发给自己,通过不同的节点广播,一旦出现了,假如说你又同时掌握了比较大的算例

  你就可以通过自己的算例优先确认你广播发给自己的这笔交易,而推翻发给商家的那笔交易,所以商家会误认为收到这笔钱,但是后来事实上这笔钱消失了,这就是双发攻击。避免这个攻击的方法非常非常简单

  因为这个攻击的成本非常之高,所以说只要在发送大额交易的时候,比如说几千个或者上万个,等待足够多的确认数量就可以避免这个攻击,因为攻击程度概率随确认数量的增加呈指数级下降的。

  谈到比特币私钥容易被盗,它的脆弱性问题,其实所有人都认识到这个问题,包括比特币核心开发团队,所以在2012年采访中,比特币首席科学家说正在添加一个新的特性,这个特性可以降低比特币钱包受到攻击后的脆弱性,这个特性叫多重签名交易。

  什么意思呢?简单讲一下,就是传统的私钥被盗,相当于这个地址商的钱全部被人拿走,但是通过多重签名交易生成,就是多个私钥共同生成这个地址,然后有M个私钥签名这个地址上的交易,然后M和N都可以自定义,只要M小于N就可以,这就造成了安全方面的特性

  不仅仅对存储,还有交易,就是对不同的角色赋予不同的私钥,保证比特币本身的安全性。比特币第一次从技术层面上实现了真正的可执行的担保交易,比如说支付宝的担保交易,它是用支付宝信誉担保的,买卖双方都相信支付宝平台,但是通过多重签名技术,步入说三把私钥生成一个地址,只要其中两把私钥同意才能动这个私钥的钱

  我们有一个买方、卖方和担保方,平常正常的交易,就是我们可以把币打到这样多重签名的地址,如果买方、卖方都同时同意,这笔交易完成,这笔交易就不需要中间方或者仲裁方介入,一旦出现纠纷,仲裁方可以决定这笔钱归给谁,但是仲裁方没有可能能把这笔钱拿给自己。

  所以说买方和卖方也不能单方向把钱拿给自己,这就造成了一个从技术层面上杜绝了担保交易互相不可信的问题。

  最后做一下广告,快钱包是国内第一家采用多重签名的比特币钱包,我们采用了两把私钥,一把私钥是保存在我们的服务器上,另一把保存在用户,本地,从本地生成,我们也不存。这样任何一笔交易都要有两私钥签名才能发出去,这种情况下是彻底避免了单点的风险。

  也就是说,其实你很难保证一个系统是没有任何漏洞的,所以说我们希望做到在严重的情况发生的前提下,我们仍然能保证资产安全。当然不代表我们做就是降低我们服务器的安全。只是说我们在根本上杜绝了单点的风险。

  所以说我们的安全方案是远远优于本地的钱包和普通的在线钱包的。企业级就是我刚才讲的,我们可以为不同的角色,因为企业级我们可以分配更多的角色,包括审核员、管理员、发起者,所以可以定制更加安全的钱包解决方案。

0
相关文章