最近,比特币出现“费用超付攻击”:攻击者利用冷钱包签名交易时无法验证链上交易状态,攻击冷钱包的在线端,通过在线端骗取冷钱包的多次签名,再重组交易,使用户支付高额矿工费。

这个问题的出现暴露出当前密码货币和区块链发展的一个方向性问题:忽视“用户可控安全”的重要意义。

密码货币或区块链的重大意义有两个:

一是通过非对称密码实现个人信息安全。人们只知道“非对称”的技术含义,忽视了非对称的社会含义:个人用极低成本就能够通过私钥,掌控信息安全,攻击者倾全国之力都难以攻破。

二是通过分布式共识使个人基本权益摆脱中心的控制。这就是所谓“去中心化”的意义。但更多人强调技术上的分布式节点,同样忽视了用户可理解、可验证的去中心化。

如果用户不懂得非对称密码和分布式共识的意义,不会自己掌控私钥和验证信息,再高超的技术都不能实现个人的信息安全,都不能避免信息垄断。

遗憾的是,现在的主流密码货币和区块链的各种应用,为了顺应用户的互联网应用模式,也就是为了习惯和便利,把非对称密码和分布式共识封装到软件里。

在这些应用中,用户还是按照常规的中心化账号、对称密码、短信验证、邮箱验证,甚至托管的方式运行所谓的去中心化应用。完全消解了非对称密码和分布式共识的重大价值。这也是众多区块链项目成为圈钱、割韭菜、套补贴的骗局的重要原因。

要实现密码货币和区块链的真正价值,第一,要让用户学会自己掌握私钥,用私钥签名授权。封装私钥是错误的,用同样记不住的助记词代替私钥是多余的。第二,要让用户自己能够验证签名内容,验证分布式系统中的记录。

做到这两点并不困难。自由现金在一开始就明白用户掌握私钥和验证信息的重要性,所涉及的第一个基础钱包就是离线保存私钥和离线签名的冷钱包——密签。

同样作为冷钱包,密签完全免费,只需要一个旧的安卓手机即可安装使用。并且,完全不受“费用超付攻击”的影响。

密签没有采用助记词模式,而是直接保管私钥。通过在线端sign.cash网站获取utxo和解码广播交易。整个过程用户可以验证每一步,从而避免“费用超付攻击”:

1)用户自己选择utxo。主流冷钱包是软件处理utxo的选择和签名,用户只输入金额,并不知道utxo的选择,因此,攻击才能够伪造utxo。密签用户是自己在sign.cash中查询utxo,自己选择要花费的utxo。

2)用户签名时再次验证utxo。用户通过二维码将utxo导入密签后,将要花费的utxo展示给用户,用户确认后再签名。这是自由现金的核心安全法则:用户必须知道自己签名的是什么。而常规冷钱包则封装了utxo,只告知用户总额,给攻击者留下漏洞。

3)关键环节可多方验证。自由现金交易需要的utxo可以从各种浏览器或节点工具中获得。密签签名的交易信息也可以在任何提供相关功能的工具中解码和广播。除了sign.cash,自由现金的多个浏览器能够查询utxo、解码、广播。用户在广播前能清楚地看到将要广播的内容,并在多个平台验证。消除了攻击者挟持专用的冷钱包在线端,伪造交易的问题。

4)非专业用户也可验证。目前,冷钱包主要采用程序开源来解决专用软硬件的中心化安全风险。但是,真正有能力编译执行代码、验证代码细节的人很少,更不用说拆解或重建硬件检验了。对绝大多数用户而言,冷钱包的安全性是不可检验的。密签初始学习成本略高,但普通用户一两天时间可以学会。自由现金社区已经广泛使用密签进行离线签名交易,并从事更多身份确认和签名授权活动。

“费用超付攻击”的实际攻击价值不大,一方面,这个漏洞只对冷钱包有用,另一方面,伪造的交易并不能转币给攻击者,而只是多付矿工费,所以攻击动机不强。

但是,比较一般冷钱包和密签的安全机制,却能够从“费用超付攻击”中看到主流密码货币和区块链的方向性问题。在自由现金解决方向性问题的实践中,我总结出5个建议:

1)密码共识才是革新源泉

非对称密码让个人以极低成本获得可以对抗巨大力量的信息安全。分布式共识让个人权益摆脱中心控制。所以,密码共识才是密码经济的动力源泉,别再折腾区块链了!

2)用户必须自己掌控私钥

私钥是私人掌握信息和权益的基础,必须自己掌握。自己做好备份。绝不能托管,也不需要转化成助记词。

3)可操作的验证才够安全

用户不是专家,信息社会需要用户自己可验证、可操作的安全。这样才能实现基础设施和基本权益的去中心化。

4)技术不能解决所有问题

技术只是工具,对只知囤币的用户,再多开发者都解决不了他们的所有安全问题。用户自己具备安全的认知和技能才是关键。

5)重大变革需要基础教育

技术和应用已经有了,急需人的理解和使用。从小学到大学,16年学校教育,拿一周出来传授密码共识思想和技能,将会让中国成为全球密码经济的领头羊。