为什么建议比特币每笔交易都使用新地址

作者: , 共 1103 字

最近看到一篇文章Satoshi』s Genius: Unexpected Ways in which Bitcoin Dodged Some Cryptographic Bullets,国内有人翻译过(中本聪的天才:比特币以意想不到的方式躲开了一些密码学子弹)。里面说的第一个就是天才的中本聪并不是将公钥而是将公钥两次 HASH 之后作为比特币账户的地址,这可以让比特币系统抵抗量子计算机的攻击。

这个观点基于如下理由:虽然比特币所使用的公钥体系 ECDSA 可被量子计算机破解(量子计算机可在短时间内从公钥推导私钥,从而冒充持有人签名交易),但用户公钥并不在网络上可见。网络可见的地址只是公钥的两次 HASH 值。要从 HASH 值推导到公钥再倒推回私钥,面临 HASH 和 ECDSA 两重密码学困境,这几乎是一件不可能的事情(备注:此处结论是基于一种被大家认可的信念。在理论上, HASH 算法的逆推复杂性未得到证明,把 HASH 和 ECDSA 结合是否增加破解的复杂性也是未知的)。

不过上述假设条件「用户公钥并不在网络上可见」并不一定成立。情况如下:

  • 其它人无法在公开网络中获取未对外支付过的比特币账户的公钥。
  • 但对外支付过的比特币账户的公钥在网络上公开的。这是因为当一个地址进行支付时,它必须提供签名以及公开公钥,以验证交易的确由该地址而不是他人冒充发出。

大多数人只知道 ECDSA 无法抵抗量子计算机,但实际情况更糟。目前大家还不知道这类公钥密码体系在传统计算机体系下是否保险,理论计算机界还未证明它的可靠性。这也意味着,也许某些专家或者国家机构已经发明了使用传统计算机的破解方法(由于该破解带来的重大经济和军事意义,破解方法秘而不宣是完全可能的)。

基于上述理由,唯一的建议是,尽量保证比特币的地址的公钥未在网络上泄漏过(亦即,该地址从未对外支付过)。一个简单的方法是,每次支付时,将支付余额转到一个新的账户,废弃旧账户。这也是比特社区推荐的做法。

上面提及的密码学破绽的世纪可能性极低,可实际应用的量子计算机遥不可及,真正能破解 HASH 和公钥密码体系的人也看不上比特币那么点资产。比特币最主要的安全风险还是来源于钱包(保存私钥,从私钥可快速生成公钥)被盗的风险,而这又依赖于操作系统和个人使用习惯,非密码学体系可解决。由于使用时间越长的账户,私钥泄漏的可能性越大,上述不断使用新地址的方法也可降低因私钥被盗导致的风险。

当然并不是所有账户都能这么做。比如接受公开捐赠的账户,总不能变来变去。其实这不符合正常的用户习惯。这是为了获取安全性(比特币社会认为还有私密性)的一种妥协。

Q. E. D.

类似文章:
IT » 比特币
最近 bitcoin 很火,我也是最先从云风那里了解到的,后来发现李笑来&霍炬对其都有涉及。不过他们对其具体技术原理的描述还是不够细致,所以我自己把bitcoin wiki又重新看了一遍。 看完之后,疑惑挺多,我对这个体系远没有前面三位这么乐观。诚然,它会成为"Geeks "手中的玩物甚至灰色交易的工具,但要说的达到「一出天下反」的程度,那还需要解决一些技术和金融方面的问题。
IT » 比特币
最近比特币兑美元的持续上涨,而上涨带来的新闻媒体报道又带来更多人的关注,导致比特币上涨速度越来越快,终于在 4 月 10 号摸高到了 260 美元。
IT » 比特币
上篇大致描述了 bitcoin 的技术原理,只想说明一件事情: bitcoin 的协议是可靠的,它保证了 bitcoin 虚拟货币的信用问题,别人不会偷走我的 bitcoin ,我拿到的 bitcoin 也是真实可靠的。使用 bitcoin 交易有很多好处,可以轻易列出一大堆:
比特币协议里使用了 ECDSA (椭圆曲线签名算法),我之前以为它和基于大数分解的 RSA 公钥密码体系差不多。这两天看了下维基百科,才发现它们之间的差异挺大。
IT » 比特币, 套利交易
最近国内比特币突然大火,国内某交易所的成交量跃居世界第一。但让我倍感迷惑的地方是,目前国内的价格大大高于境外的价格。如下图所示:
IT » 比特币
今年 6 月份,我在bitcoin 的技术和金融缺陷一文中提出了Bitcoin的一些技术上和金融上的缺陷,其中一条是认为 Bitcoin 并不完全是匿名的:
想起比多中心的匿名投票协议,有一种很简单的使用盲签名的投票协议,可以做到匿名投票。
密码学是理论计算机的一个很大的方向。之前准备先写密码学概论再提在 hash 函数破解上做出重大贡献的王小云教授的工作,不过前两天新闻报道《王小云获得求是杰出科学家奖以及 100 万奖金》,在媒体上又掀起了一轮宣传狂潮,但是有些报道极端弱智,错误百出,所以我趁机纠正一下,并介绍密码学的一个组成部分——hash 函数,以及王小云老师在这上面的工作。
英文是 communication complexity ,不知道该翻译成通信复杂性,还是通讯复杂性呢。这里先用通讯复杂性吧。这是一个理论计算机的子领域,在过去 30 年衍生了很多东西。它是我的研究的主要内容,这里简略介绍一下。
2007 年,我们讨论过一个算法问题, perfect shuffle ,据称是个微软面试题:
编程 » Excel
在编辑 Excel 文件时经常遇到的一个问题是,我这边用得好好地,换台机器就变了个样,或者根本用不了。下面是我在日常工作中总结的一些避免这些情况的小技巧。