比特币的理想是构建一种金融社交网络,实现人类的金融民主。时至今日,比特币的基础技术架构仍有很大的提升空间。比特币交易平台、在线钱包等如何安全的保存大量比特币是整个行业面临的重要问题。
比特币的安全是基于比特币的核心加密算法和私钥的安全保存。密码学界认为比特币的密码学基础(SHA256和EDSA)在目前的解密技术能力下,是绝对安全的,比特币安全的主要问题就在于私钥的保存,所以业界通常采用冷钱包(绝对不接触互联网的钱包)来保存大量比特币。
但如何设计并运行一个真正安全的的冷钱包呢?OKCoin在长期的实践中总结出本方案,现将方案分享出来和大家一起探讨,我们可以帮助行业内没有条件的公司保存冷钱包,同时也在和国际的安全公司探讨比特币的托管事宜,我们希望和合作伙伴一起让比特币更透明、更安全。当然,也希望大家能给我们提出有效的建议,让我们在打造史上最安全、最易用、最便捷的比特币钱包道路上更进一步。
【我们的设计理念】
网络是不安全的,只要是接触网络的设备,就有可能被攻击。
U盘是不安全的,U盘可能会被植入病毒,被植入病毒的U盘可能会自动记录数据,在被插入有网络的电脑以后,通过网络把数据盗走。
单个人是不可信的,所有的授权必须要经过多个人做双重确认,才能确保安全。
每个人都有可能出现意外事件,因此掌握授权的人需要进异地备份以确保安全。
人可能被绑架,因此重要的数据需要保存在保安级别高的银行保险柜里,同时须本人亲自去银行才可取出。
【我们的设计方案】
( 一 ) 私钥产生和备份
在完全离线的电脑上生成10000个私钥和对应的地址。
在完全离线电脑上对私钥进行AES加密。
删除原始私钥。
AES密码由公司的两个分属异地的人掌握,OKCoin 的两位密码掌握人,一位在OKCoin办公室,一位在美国西部某城市。
掌握AES密码的两个人不得乘坐同一辆交通工具,避免出意外的风险。
把之前加密后的私钥和明文地址生成二维码加密文档。
通过二维码扫描完全离线电脑生成地址文档,用于日常使用,每次热钱包往冷钱包汇币,必须使用一个未使用过的地址,每个地址不可重复使用。
将二维码加密文档打印保存到保安级别高的保险柜,即使发生文档掌握人被绑架事件,也无法获取此加密文档,因为必须要文档掌握人本人亲自到银行才能获取此文档。
在异地银行保险柜对二维码加密文档进行备份,OKCoin有两份备份,一份在OKCoin办公室附近的银行保险柜,一份在美国东部某城市一家银行的保险柜内。
本地和异地银行保险柜必须由两个不同的人撑握。
掌握银行保险柜的两个人不得乘做同一辆交通工具。
本地、异地银行保险柜的控制人不得和AES密码的两个控制人相同。
( 二 ) 线上往冷钱包打币
从地址文档中取相应地址,根据安全级别,每个地址汇不超过1000B。
每个地址被使用一次后就不可再使用。
( 三 ) 从冷钱包取币
派人去办公室附近银行保险柜取出相应数量的未使用过的私钥密文,用扫描二维码的方式取回。
把私钥密文通过二维码扫描放入完全离线电脑。
掌握AES密码的人在完全离线电脑上进行解密,获得私钥明文。
通过二维码扫描把私钥明文导入另一台完全离线电脑。
在另一台完全离线电脑上进行签名交易,并把签名后的交易通过二维码或U盘同步至有网络的电脑广播交易。
( 四 ) 本方案要点
冷钱包的币采取分散存储方式,每个地址存确定数量的比特币。
所有私钥在完全离线电脑上存储。
确保私钥永远没有接触过网络或U盘。
私钥加密文档需在异地有备份,并且由在异地的不同人控制。
私钥的AES密码也须由异地的两个不同人控制,且不得与掌握私钥的人相同。
掌握私钥密文文档或私钥密码的两组人必须在分别在异地,最好是异国。
某个私钥一旦汇币到线上以后,即作废,永不再使用。
( 五 ) 本方案实现的结果
所有冷钱包比特币分散在多个私钥存储。
每个私钥的使用需要两个人双重授权。
私钥的双重授权有异国备份,即使出现自然灾害,也不会发生丢币。
私钥有一个授权保存在银行保险柜,即使掌握人被绑架,也无法被迫获取比特币。
每个私钥被使用一次(从冷钱包打币到线上),即作废。
借此机会我们回答一下很多人的疑问:OKCoin为什么不公布冷钱包地址?
OKCoin btc/ltc 的冷钱包地址有几千个,公布没有意义。那么OKCoin为什么不像某些网站一样把这些地址集中到某几个地址上呢?因为每家公司对安全的认知是不一样的。OKCoin的安全专家开玩笑说:黑客看到某些网站公布有上万个币的冷钱包地址并且洋洋得意的宣称自己很透明很安全,一定觉得很开心、很幽默。我们建议这些平台尽快升级安全方案,否则发生了冷钱包被盗就追悔莫及了。
前段时间,国内某网站冷钱包几千个比特币被盗,我们不清楚其中的技术细节,但是从安全技术的角度分析,这完全是有可能的,攻击的步骤大概如下:
黑客在全球部署20个比特币节点,每个节点上监控每笔交易来自哪个地址。如果此冷钱包发生了交易,就有非常大的概率被黑客部署的某一个节点第一次获取到冷钱包广播的交易;
根据交易信息定位到冷钱包IP;
冷钱包机器是否有漏洞,种入木马,即使冷钱包上没有私钥在离线电脑上签名,被中木马的机器也可以监控插入U盘,在U盘中植入另外一种木马,U盘去离线电脑上签名交易时,即把私钥记录,在U盘插入在线电脑时,把私钥通过网络发走;
假设冷钱包机器打了所有的补丁,没有任何漏洞。那么请去查一下什么叫0-day,去0-day的黑市看看吧,你会大吃一惊!还记得前两年报出的“极光”漏洞吗?被某国特殊部门用来获取某些人士的email;
总结一下,只要不是物理和网络隔绝的系统都有被攻破的可能性,只是看攻击的成本有多大,攻击成功的利益有多大。一般比特币交易平台的热钱包存币量都很小,不值得用0-day等手段去攻击,OKCoin的冷钱包方案同一时间最多有1000个币的私钥触网,没有人会花很大成本攻击只有1000个币的系统。
以上是摘录OKCoin交易所冷钱包技术解决方案,非博主所有。 后期会给出自己对企业级冷热钱包安全架构的一套解决方案。