最近在做Tezos的钱包,对安全性的问题格外在意,几番研究后发现我们真的严重低估了钱包的安全性。如果未来,钱包真的成为了个人的私有银行,可以存钱(币)、可以交易(币币交易),可以借贷,你拥有的价值全都绑在一个钱包里,但却拥有一个被人看见了就能盗走资产的私钥、助记词作为保护,我感觉到我的手心隐隐在冒汗。
你在区块链上的资产是去中心化的,只有私钥或者助记词可以转移区块链上的资产,所以私钥、助记词相当于是你家门的钥匙,小偷拿到了钥匙,你家的财产就会被偷走。
和家庭财产不一样的是,家里可以安装摄像头,录像可以给警察提供破案材料。而区块链并没有”摄像头”,个人财产也并没有像房产证一样的署名,现在被偷,找回来的概率只寄托于小偷的良心发现。
当偷窃成本如此低,找回成本又如此高的情况下,人性的贪婪会倾斜。
私钥和助记词,任意一个都可以打开你家房门。他们之间的联系是各种算法,助记词可以通过算法算出私钥,私钥也可以通过算法推出助记词,也就是说,被坏人掌控了私钥和助记词中任何一个信息,基本就等于拿走了你的所有财产。
大部分有安全性宣称的钱包都会将钱包开源,而一开源,算法就可以轻易拿到了,加密解密自然就简单的多了。
很多人问,钱包代码不开源不就好了,算法也不会被人知道,就算我的助记词被盗了,我的财产也不会被别人转走。
这其实是一种去中心化世界里面的悖论。
去中心化世界里面,为区块链打工的人,我们也叫做各个节点,其实都是这个世界里面的棋子,去中心化是最初始在这个世界制定的规则。按照这个规则,我们要求节点所做的都要实物开诚布公,无论是钱包、应用还是服务,不开源被当成是某种程度上的耍流氓,特别针对钱包或者需要输入私钥获得财产的服务,鬼知道我在输入私钥的时候,你会不会在偷偷记录下我的私钥或者助记词。
所以选择开源的资产服务、应用显得很重要。大佬们唯独注意这一点,因为他们钱多。韭菜有时候懒、或是说穷,选择有信誉但不开源的服务也无可厚非,但是卡咩还是要提醒韭菜们,意识要提上来,因为只有你自己能保护好你的资产。
说信任大佬?呵呵!!!相信我,这个世界里面,任何人都有可能作恶,电影里面反转的剧情多了去了,现实中也不会少,这就好比常在河边走哪有不湿鞋的道理。
每隔一段时间,总有人喊丢币了丢币了,最终查来查去,找得到区块链上转账的蛛丝马迹,却缺少了现实中真正身份的映射,叫警察也没用。
丢币的原因必然是丢了私钥,但责任最终要落到人,是自己?是黑客?还是钱包猫腻?说都说不清,查也查不到,面对着最一大堆无用的区块链地址,币丢了,钱没了,最终还要自己担责,一个字:苦。
所以说,任何不开源的钱包都具有中心化的风险,而且极高。大佬们都知道,韭菜意识也在提高,那为什么一些做得好的钱包仍然不愿意开源呢?
很简单,怕丢了自己的护城河。
这其实是去中心化世界里面的另外一个悖论。区块链里面打工的棋子们想要赚到钱,那就必然需要和现实中传统的公司一样,形成自己的护城河,无论是技术上的还是资源上的。
软件公司最核心的就是代码,Boss花重金雇佣了码农,码农夜以继日敲代码,做出来一个体验又好,安全性又高的钱包,结果一开源,竞争对手轻轻松松拿走,轻轻松松做出个一模一样的,说好的牵着小手一起走,转头看,以前屁颠屁颠跟着的小弟各个都变成了凶猛大汉。
这叫做是知识产权的保护。老美注重这个,但凡有个idea都要申请专利,微软的office文档格式也是垄断了几十年后,赚了足够多的钱后才开诚布公,人家让全世界的电脑上都用office来办公,就算让小厂拿到了开源资源,做出个一模一样的office,又有谁会用呢?
所以,越好的钱包越不敢开源,越开源的钱包越没有经济来源。不开源的钱包,拿信誉背书赚到了钱,然后继续雇人优化体验;开源的钱包只能靠捐赠维持(开源网站常年都挂着Donate在很醒目的位置),人员也不稳定,自然体验也比不开源钱包差很多,只能满足基本需求。
想到卡咩自己在做Tezos的钱包,到底应该开源还是不开源?是个问题?
如果我们认为背书是可用的,问题倒不大。但是助记词的易丢易盗问题,需要有更好的解决办法。我首先想让助记词实现易记,然后想实现助记词的二重保护,这个是目前我在设计Tezos的钱包中,认为最重要的两件事情。
助记词,简而言之就是帮助记忆的单词,算法把私钥一大串难以记录的字母变换成12或者24个方便记忆的单词,解决很多用户的苦恼,这套解决方案是由BTC的BIP39协议修改中带出来的,随后开源开来,很多后来者就都用上了约定俗成的方案。但,多个不相关的英语单词连在一起的长串,对于非英语为母语的国家来说,记忆上仍然是问题,除了写在纸上,存在硬盘里,别无他法。
对于助记词来说,其实阿拉伯数字才是最通用的语言,记录数字比记录单词要方便的多,也要容易的多。我们小时候数学课上,老师让我们背圆周率,到现在我还记得1315924,但让我回忆起一段常用的英文单词,着实费死了劲。
所以,如果助记词变成了阿拉伯数字,会是一个方向。
另外,助记词的二重保护机制目前并没有很好的方案,因为诸如BTC等主链在设计之初就约定了私钥的唯一验证性,二重保护机制并没有形成。现实中倒是想出了很多中心化的方案,比如加一层密码的校验,但是密码是存在中心化服务器上的,打破了去中心化的初始规则,所以也不是很好的解决方案,用户也不见得懂我们的良苦用心。
其实,最最好的方案就是主链设计的时候,增加多重校验,让被盗、丢失的成本变高,才是最重要的,这是Tezos网络上要关注的重点。
可见,安全性较高的钱包还是要考虑很多问题的。
最后,针对助记词还有一个极端的猜想,我觉得很有意思,和大家分享一下。
现在的助记词导入并不需要二次验证,也就是你拿着我的助记词就可以转走的我的资产,那存不存在有一个黑客,写一个自动化脚本,不断轮询去试助记词呢?试出来一个赚一个。这个试错成本会随着钱包的数量增加而变低。
如果未来的世界里面,真如卡咩所预言的那样,钱包成为每个人的标配,成为每个人的未来资产中心,会不会有一个黑客群体,专门来试错偷盗?届时会是怎样的一个世界?想想都觉得好玩。
Anything is possible.
欢迎关注微信公众号:区块链卡咩
欢迎关注本人微博:比特币卡咩
希望交流的朋友可以添加我的个人微信:kamiesheep