如果使用了多重签名,烤猫失联你还急么?
企业管理比特币是一个“痛点”,虽然各个比特币企业的管理者们往往会当局者迷、痛不自知,但真暴漏出安全问题的时候,那可就真“痛”了。
在 Bitstamp 丢币事件发生之后,小太曾在巴比特论坛做过一期题为《您的企业会管理比特币吗?》的交流活动,希望能引起大家对于安全的重视。那次交流之后,行业内比特儿、存钱罐又先后报出黑客盗币事故,传奇人物“烤猫”又失联了,这接二连三的事件,让国内外不少比特币用户都遭受了财产损失,所有这些都再一次敲响了警钟,比特币安全,刻不容缓。
关于安全,之前聊过实在是太多,而且,之前提到的那些要点,大部分企业至今仍未做到,这就是行业现状,一时半会也很难得到解决。
今天我换个角度,给大家说说,基于比太钱包的技术解决方案,比特币企业应怎样搭建满足自己需求的比特币管理系统。
问题与现状
先提几个问题:
1、您的企业会让两个不同的个体掌握同一个私钥吗?
2、您企业的冷钱包真的“冷”吗?
3、如果您的企业提供存币服务(如交易所或理财平台等),平台的入金地址是冷、还是热呢?
4、您的企业能合理的使用多重签名技术来满足特定的管理需求吗?
这几个问题看是简单,却很重要,大部分企业的大部分丢币问题或多或少都与此有关,我们甚至可以说,能回答好这几个问题的企业,可以算是很安全了。
比如说,如果有企业在问题1上没做好,那在比特币被盗时,如何断定是 A 偷的?还是 B 偷的呢?如果该企业又没做到“冷”,潜在的盗币者还得再加上个黑客,那现在得问题就变成了,这么多人都有可能盗币,到底是谁干的?
再比如说,问题2,我们会发现,无论是比特儿,还是存钱罐,虽然这些企业在没出问题时反复强调自己的冷钱包解决方案是优秀的、可靠的,但事实情况是,他们的冷钱包真的不“冷”,也没“冷”过。
继续,关于问题3,Bitstamp 的入金地址就是热的,这在遇到问题是往往会放大风险,Bitstamp 用真金白银的比特币给大家上了一课,那其他企业到底又是怎样的呢?据小太了解到的情况,基本上所有平台的入金地址都是热的,作为用户,您又知道这件事吗?
关于问题4,当前能正确使用多重签名技术来合理的管理比特币的企业其实并不多,小太明确知道的国内使用 2/3 多重签名来管理冷钱包中大额比特币只有一家交易所(在这里,我就不具体说是哪家企业了,有兴趣的童鞋可以通过区块链数据分析出来哈),关于其他企业是否使用了多重签名,是否能使用的正确、合理,小太就不太清楚了。
这里得夸下巴比特:他们给小太稿费的地址是多重签名的,果然不愧为技术氛围浓厚的社区哈。
基于比太钱包的技术解决方案
好了,经过上面的讨论,大家应该能明白对于企业来说,比特币安全的重点都有哪些了。那基于比太钱包的技术解决方案,企业又该如何去做,才能更好的回答这些问题呢?
同样的,比特币作为一种现金资产,企业应保证企业内的任何一个比特币,都是“冷”的存放在某个“确定”的企业员工手里,就像是企业内的一张百元人民币钞票,应明确的在某个确定的人手里(这一百元不会同时在A和B手里,这很重要),而且,要绝对保证不会被黑客偷到(人民币现钞黑客的确偷不到,比特币想不被黑客偷到,那就只能靠冷了)。
那么,用比太钱包如何做到这一点呢?
很简单,让每一个企业员工,都持有一个由该员工自己管理的、自行备份的、保证离线断网的冷钱包手机,这个手机可以公司统一购买,也可以由员工自行准备(安卓手机的成本实在是够低,这不难做到)。
做到这一点,我们就能保证,如果因工作原因需要让某个员工阶段性的管理一定数量的比特币时,分配比特币跟分配现钞的方式是一样的,分配给该员工的比特币,只在该员工手里(没有别人有控制权),不会被黑客偷(因为是冷的)。现在,通过这种方式,我们终于做到了让比特币和人民币现钞一样的安全。如果这部分比特币丢了,责权利是清晰的,不用怀疑其他人,也不用冤枉黑客。
关于如何做到真的“冷”,这里小太得再说一次,不少企业都是基于 bitcoin-qt/core 来二次改造出自己企业内部钱包的,这的确不是真正意义上的“冷”钱包哈。在“冷”这个字上,血泪教训实在是太多,我就不再赘述了。
关于入金地址,对于存币平台来说,入金地址很重要,把入金地址设计成“冷”的,虽然从系统架构上会复杂一些,但换来的是安全,从性价比角度上讲还是非常值得的。
“冷”的入金地址,可以考虑基于比太钱包-桌面版来实现,准备好一台离线断网的电脑,运行比太冷钱包,批量的生成出企业所需的比特币地址,把这些地址作为企业存币平台的入金地址池,每次有用户新注册,就从该地址池中取出一个地址分配给这个用户,作为他的入金地址。
批量生成的入金地址,可在另一台联网的电脑上运行比太热钱包,把这些监控起来,实时监控这些地址上的资金动向。同时,如果需要转移一部分资金时,也可以在这两台电脑(冷和热)之间通过离线签名的方式来完成资金转移工作。
另外,可能会有人问,比太的 SPV 轻钱包模式能支持那么多个地址吗?我们的平台需要的地址数量是几十万、上百万个,这也是为什么我们会自行改造 QT 的原因。
关于这个问题,小太的回答是:
1、比太冷钱包只管理私钥,只做离线签名,因此,从逻辑上讲,有多大空间,就能管理多少个私钥,几十万、上百万个都不是问题,甚至更多都不是问题;
2、SPV 轻钱包模式的确是无法支持太多地址(全节点模式其实也不行),对于海量用户的企业,可以使用比太钱包桌面版的企业版本(基于比太方案搭建的企业内部的中心化区块链查询服务来满足监控和支付需求),同样的,几十万、上百万个地址,甚至更多都不是问题。
好了,采用这种方案后,现在我们把企业存币平台的入金地址都做到了“冷”,这样,企业丢币就赖不到黑客头上了,对企业是好是坏,见仁见智吧。
又有人可能会问,我们企业还需要准备一定比例的热钱包,来满足用户实时提币需求,这又该怎么办呢?
其实,也很简单,定期的根据冷入金地址上的余额情况,按企业需求,提取部分比特币到热地址上,满足实时提币需求,这都不难做到。
企业热钱包的签名交易、广播消息等,也可以使用更轻量级的比太钱包桌面版的企业版本来实现,对于中小企业来说,比起运行完整的 bitcoind,成本要低得多。
从安全的角度,上述的“先冷后热”方案当然要优于当前各个企业普遍采用的“先热后冷”,至少,在类似 Bitstamp 事故发生时,“先冷后热”能保证损失处于可控范围,“先热后冷”则有可能因为用户后续的存币行为导致更大的损失,Bitstamp 最终的损失还是超过了19000个比特币,也是这个原因。
再谈多重签名
多重签名,是很好的技术,能很好的帮助个人和企业满足一些特定的比特币管理需求,并且还能在一定程度上提高安全性。
但(记住,这里一定有一个“但”字),多重签名要用的合理、正确,不合理、不正确的使用多重签名技术,往往是事倍功半,甚至反而会降低安全性。
合理的、正确的使用多重签名,有这么几个要点:
1、多重签名的多把钥匙,都是在哪里生成的?都是怎么管理,由谁来管理的?
比如说,A 在某台自己控制的设备上生成了三把钥匙,把其中的两把交给了 B 和 C,然后告诉 B 和 C,咱们三个人现在是 2/3 的多重签名了,咱们的比特币终于安全了。大家觉得呢?显然,A 在欺骗 B 和 C,B 和 C 手里的钥匙,A也有,这个多重签名是没有意义的。
因此,想要正确的使用多重签名,想要得到多重签名所能带来的好处,您应该也必须明白这么一个道理,那就是,每把钥匙的安全程度是由“生成该钥匙的场所”及“管理该钥匙的方式”来决定的。
2、n/m 中的 m 和 n 到底应该选择怎样的数才是合理的呢?
别纠结了,大部分情况下,企业和个人都应使用 2/3 的多重签名,既考虑了安全(同时使用两把钥匙才能花钱),又有一定的容错性(丢一把钥匙钱还在)。
3、我的企业有三个股东,A 占 50%,B 占 30%,C 占 20%,如何用多重签名来保证我们的资产控制权跟股权一致?
多重签名管不了比例。
这个例子中,可以不用多重签名技术,让 A 自己拿着 50%,B 自己拿着 30%,C 自己拿着 20%,都放在普通的、非多重签名的地址上,也没问题。
或者自行商议哪些比例的钱由A、B、C三人控制,放到多重签名的地址上,哪些比例由三人分开控制自行管理,这也没问题。
归根结底,多重签名是一项技术,能帮助人们拥有更多的选择,但怎么选,还是大家自己的事情。
那作为多重签名的扩展形态,比太钱包的 HDM 模型在帮助企业管理比特币方面又能做哪些事情呢?
比太 HDM 标准模型(冷、热、服务器)其实只是 HDM 模型的一种具体实现方式,让普通用户能比较简单的使用多重签名技术,但其安全性并不一定就高于传统的冷钱包,因此标准模型并不是为企业应用所设计的。
企业可以定制 HDM 标准模型,自行搭建属于自己企业的 HDM 服务器,来满足特定的企业内部比特币的存储和管理需求。当然,这要看具体企业是否有明确的此类使用方式的需求,再自行决定。
小太在这里给大家举另一种扩展的 HDM 模型(冷、冷、冷),在企业内部比特币管理方面的潜在用途。
我们前面讲到了,让每一个企业员工,都持有一个由该员工自己管理的、自行备份的、保证离线断网的冷钱包手机,这样的好处非常多,如果扩展到 HDM 模型,好处则就更多了。
比如说,每个员工的冷钱包手机上,都准备好一把 HDM 的冷钥匙(冷种子),这个冷钥匙可以有如下用途:
1、作为该员工在企业内的唯一标识,替代工号等,当员工登录企业内部系统,不再需要输入用户名、密码,而是掏出冷钱包,扫下二维码,即可,这就是 BitID 的解决方案;
2、当企业内部需要让某员工与其他成员一同参与到一部分资产的管理时,该员工所需使用的,仍然是 HDM 冷钥匙,与其他成员一同创建出1个或多个多重签名(HDM)的地址,将这部分资产存入相应的地址上,几名成员的热钱包上都监控着这个地址,安全、方便且责权利清晰;
3、我们假设,企业内有三名成员A、B、C,用他们三人的 HDM 冷钥匙生成了 2/3 的 HDM 模型,这样生成的多个地址,都是A、B、C三人中两个人同意即可花钱,企业内部可根据具体的需求来分配和管理资产,而且,每笔花费都是清晰的,A和C花的钱,是A和C签名出去的交易,区块链上可以清楚的查出资金流向与B无关,责权利非常清晰;
4、A可以拿着自己的 HDM 冷钥匙与B、C构成一个HDM,当然还可以与D、E再构成另一个HDM,这些组合都可以很灵活,满足企业内部不同资产的不同管理方式;
多重签名与烤猫失联事件
如果企业内部资产采用了上述扩展的 HDM 模型来进行管理,通过合理的设计,就可以有效的避免一些极端情况带来的潜在风险。
比如说,“烤猫”失联(论坛讨论),健康运转的企业,应该有一部分资产基于责权利由相关人等协同管理,烤猫如果之前就分配好了一部分比特币给企业内多个相关成员的多重签名地址上,2/3 的好处就是,1个失联了,另外两个人还能够决定是否要支出这部分资产,这样,可以有效避免单点故障。
我们假定 AMHASH 项目涉及了比特币数量为 3000 个,假设烤猫的个人资产十倍于此,即 30000 个比特币,并不是说烤猫要把全部的比特币(30000个)拿出来与其他人联合进行多重签名管理,而只是把项目相关的这 3000 个比特币管理到 2/3 的多重签名的地址上(甚至还可以利用 HDM 的特性分配到多个地址上,满足不同的使用需求),这样,烤猫、小强、大威各拿一把钥匙,即便是烤猫失踪了,小强和大威仍能将 AMHASH 项目的比特币兑付给投资者,可以有效避免一人失联项目瘫痪的问题。
当然,从小强贴出的部分比特币转账记录来看,无论是烤猫还是小强,两家企业并没有使用任何的多重签名地址来管理部分资产,这与行业内当前的现状还是吻合的。
好了,说了这么多,从问题一直说到了解决方案,希望本文能对一些企业和个人有所帮助。
谢谢!
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场