假期三天倒计时,希望读完本系列文章的你在收获知识的同时能够有些小小的成就感。别人还在游玩晒朋友圈的时候,你已经把朋友圈分享的一些文章变成自己所了解的知识了。
上一篇文章中,我们简单介绍了区块链的结构基础。(此处来自谢耳朵的灵魂拷问:你们读了上一篇有关比特币的文章了吗?这张图可不是PS来的,美剧《生活大爆炸》第十一季第九集的开篇就是这句话)是不是发现如果你不了解比特币就有些out了呢?就连自身就很火的美剧,也会加入比特币的内容在剧本里,来增加热点与实事内容。
开始讲述加密之前,我们不妨先来看这样一个数字,数一数它有多少位。
数明白了吗?(反正你也一定不会真的数的)那么牢记这一串数字有多”胖“,因为2的256次幂这个数字代表着“安全”。后文会为大家做出详细解释。
在没有中央服务器可以登录的情况下,我们该如何保护隐私?如何安全地“登录”比特币?如何才能确保信息的公开性和透明性呢?其实解决方法就如同传统的锁和钥匙,分别相对应用户名和密码系统。其运作方式类似你的网上银行资产账户,客户与服务器之间由你的公开用户名和私人密码进行联接。
而比特币则利用了密码学原理来保障信息安全。通过创建无需服务器检查密码的系统,人们不用再与人共享密码。因为在这个系统中,私钥代替了密码,公钥代替了用户名。私钥将会对你所有的信息进行保密处理。
比特币的特殊之处还在于:用户可以对任何数据进行“签名”,然而只有知道与某个公钥对应的私钥的人才有此项权利。这样一来,数字即时签名就可最大限度地保障信息安全性,同时还能保证公共账本在去中心化领域中依然具有公开透明的性质。
其实除了比特币之外,还有一项技术也能实现上面提到的安全性、透明性等效果。设想一下,如果你是一家私人加密货币基金会的所有者,你一定希望在可以保护个人隐私的前提下,让投资者真正地了解自己。
那么,在这种情况下系统该如何验证你的个人身份信息呢?
针对这一问题,推特(Twitter)提出的解决方案是让客户与相关服务人员联系。服务人员将通过面部识别及ID来验证这个人是不是TA声称的“TA”。比如明星,如果在推特经过了验证,那么TA的头像旁边就会有一个蓝色的小,表明这个明星的账号确实是本人而非别人冒充。
比如下图中左侧的郭达。啊对不起,认错人了,仔细一看这是荧屏硬汉杰森·斯坦森(郭达·斯坦森),然而他名字的旁边并没有蓝色对勾。头像下方也可以看到文字解释,这只是粉丝自己建立的账号。而右侧的老爷爷(并不是所有的白发老头儿都是肯德基爷爷)名字旁边的蓝色对勾表明这确实是现任美国总统“川普”本人的账号。当然即便我们不看认证,也能识别,那个经常怼无数条精明(wú nǎo)推文的人就是他。
这也类似于微博的“加V认证”。但是,这种方法无法保护用户隐私。还有一种方法就是在市面上自行发布自己的公钥并自证安全性,然后用个人私钥在消息上签名,再把消息发布出去。
所谓的签名实际上只是一串随机字母和数字,但是你可以通过共同运行一个函数来发布消息及公钥,从而证明签名真实有效。这样一来,所有人都可以在完全匿名的情况下验证你作为某个私钥所有者的身份。
比特币的运行原理与此相同,只不过上述方法中的签名是用户主动发出的交易消息。当用户想发送或接收比特币时,必须要提交详细的地址信息用以明确支付对象。这是在提交交易时就商谈好的。
另外,还需要注意的是,虽然地址相当于一个比特币用户名,但它不是普通公钥,而是通过名为“哈希”的函数运行的公钥。哈希函数将会在我们系列文章的后篇为大家进行详细介绍,所以大家现在只需要知道该函数可为公钥提供加固保护即可。一般来说,比特币的地址、公钥和私钥看起来是这样的:1TePJrycesTwVpoNSbwBU87J4ghziiijzW。
对于外行来说,这些字母和数字就像一串乱码,但正是这串乱码可以让我们输出一个base58(Bitcoin中使用的一种独特的编码方式)的复杂序列。(前面没看懂的那句话的白话文翻译如下)也就是说,无论多长的信息都可以被压缩成一定长度的字符串,因此可以给复杂的地址节省空间。
所以当你登录比特币软件时,你需要输入一个私钥密码,或者要求系统随机生成。此外,私钥可以扫描对应地址中的区块链以查找资金,并显示余额。当用户有交易时,它会发布与你的公钥联合签名的交易信息。
但是这个系统有一些问题。第一,如果有人发现了你的私钥,他就能立即转移你所有的资金,而你完全没有追索权。第二,如果你丢失或忘记了你的私钥,你就再也无法存取你的钱了。这种情况经常发生。据保守估计,目前存在的所有比特币中,大约有价值四分之一的比特币是因为忘记私钥而已经丢失的。美剧《生活大爆炸》里有一集就是专门讲的四位男主角,在很早之前写了程序挖了不少比特币,如今几个人想起来这件事儿以及比特币的价值,但是完全忘了密码是什么。
实际上,这些问题的产生根本不是因为加密私钥,而是网络去中心化的本质问题。由于不存在存储私钥的服务器,所以私钥一旦丢失,没有人能给你一个“备份”私钥。既然没有人能审查、阻止或撤销交易,也就没人能阻止小偷从别人账户中支取资金。这意味着如果你的资金不安全,没人会来救你。你必须自己承担保护私钥的责任。过去,银行可以给你的钱提供安全保护,而现在就完全需要靠你自己。
有人问:“如果有人猜出我的私钥呢?”
这种事根本不会发生。只要你最初设置私钥时不使用诸如6969696969或3之类的简单数字组合,那么有效私钥就是0到2256之间的数字,这意味着随机猜中一个人私钥的概率为:
1/1115792089237316195423570985008687907853269984665640564039457584007913129639936。
分母是不是一个很熟悉的天文数字呢?没错,就是文章开头的2的256次方那个写满屏幕一行的数字。你觉得还会有人猜中你的私钥吗?分母的这个天文数字有多大呢?基本和宇宙中人类已知的原子数量差不多。
有人又问:“如果他们用超级计算机来猜我的私钥呢?”假设这台超级计算机能够以每秒10亿的速度猜测和测试私钥,并且这台超级计算机自宇宙大爆炸以来就一直存在并运行着。那么到目前为止,计算机可能已经猜到了大约409,968,000,000,000,000,000,000,000个私钥。
让我们再把电脑的功能提高到原来的四倍,然后假设它的存在时间是人类存在时间的两倍,假设这台电脑的运行速度可以每秒猜测40亿个私钥,那么猜出的私钥数目又会翻倍。然而,即使是在几十亿年的时光中以这么快的速度运转,黑客能猜到你手中私钥的概率依然是:
1/282441774083138672831955140422393718176223472723823。
那么这意味着什么呢?意味着比特币系统是一个建立在区块链基础上的更安全、更清晰的经济体系,是能为所有使用者提供清晰、透明、公平的服务的平台。
相信这篇文章读完以后你一定对比特币的安全和加密方式有了更多的信心。接下里的几天会继续和大家分享一些和比特币相关的酷酷的内容。欢迎继续关注CertiK的长假福利系列文章:每天一分钟,了解比特币(系列三)“挖矿与共识机制”。