上一篇文章中,我们简单介绍了区块链的结构基础。
今天,我们将探讨区块链系统中存在的一个问题——如何实现安全与匿名,透明与清晰并存的理想状态。
在没有中央服务器可以登录的情况下,我们该如何保护隐私?如何安全地“登录”比特币?如何才能确保信息的公开性和透明性呢?
解决方法其实就如同传统的一套锁和钥匙,分别相对应用户名和密码系统。其运作方式类似你的网上银行资产账户,客户与服务器之间由你的公开用户名和私人密码进行联接。
而比特币则利用了密码学原理来保障信息安全。通过创建无需服务器检查密码的系统,人们不用再与人共享密码。因为在这个系统中,私钥代替了密码,公钥代替了用户名。私钥将会对你所有的信息进行保密处理。
比特币的特殊之处还在于:用户可以对任何数据进行“签名”,然而只有知道与某个公钥对应的私钥的人才有此项权利。
这样一来,数字即时签名就可最大限度地保障信息安全性,同时还能保证公共账本在去中心化领域中依然具有公开透明的性质。
其实除了比特币之外,还有一项技术也能实现上面提到的安全性、透明性等效果。设想一下,如果你是一家私人加密货币基金会的所有者,你一定希望在可以保护个人隐私的前提下,让投资者真正地了解自己。
那么,在这种情况下系统该如何验证你的个人身份信息呢?
针对这一问题,推特(Twitter)提出的解决方案是让客户与相关服务人员联系。服务人员将通过面部识别及ID来验证这个人是不是他/她声称的“他/她”。比如某明星,如果在推特经过了验证,那么他/她的头像旁边就会有一个蓝色的,表明这个明星的账号确实是他/她本人,不是别人冒充的。这种方法类似于我们微博对明星的“加V认证”。但是,这种方法无法确保用户隐私。
另一种方法是在市面上自行发布自己的公钥并自证安全性,然后用个人私钥在消息上签名,再把消息发布出去。
所谓的签名实际上只是一串随机字母和数字,但是你可以通过共同运行一个“神奇”的函数来发布消息及公钥,从而证明签名真实有效。
这样一来,所有人都可以在完全匿名的情况下验证你作为某个私钥所有者的身份。
比特币的运行原理与此相同,只不过上述方法中的签名是用户主动发出的交易消息。
当用户想发送或接收比特币时,必须要提交详细的地址信息用以明确支付对象。这是在提交交易时就商谈好的。
另外,还需要注意的是,虽然地址相当于一个比特币用户名,但它不是普通公钥,而是通过名为“哈希”的函数运行的公钥。该函数可为公钥提供加固保护。
一般来说,比特币的地址、公钥和私钥看起来是这样的: 1JryTePcesiwVpoNBU8SbwiT7J4ghzijzW。
对于外行来说,这些字母和数字就像一串乱码,但正是这串乱码可以让我们输出一个base58(Bitcoin中使用的一种独特的编码方式)的复杂序列。也就是说,无论多长的信息都可以被压缩成一定长度的字符串,因此可以给复杂的地址节省空间。
所以当你登录比特币软件时,你需要输入一个私钥密码,或者在第一次使用的时候让系统随机帮你生成一个。这时候千万别忘了把密码记录在安全的地方,因为一旦弄丢就再也找不回来了!
此外,私钥可以扫描对应地址中的区块链以查找资金,并显示余额。当用户有交易时,它会发布与你的公钥联合签名的交易信息。
但是这个系统有一些问题。
第一,如果有人发现了你的私钥,他就能立即转移你所有的资金,而你完全没有追索权。
第二,如果你丢失或忘记了你的私钥,你就再也无法存取你的钱了。这种情况经常发生。据保守估计,目前存在的所有比特币中,大约有价值四分之一的比特币是因为忘记私钥而丢失的。美剧《生活大爆炸》里有一集就是专门讲四位男主角,在很早之前写了程序挖了一部分比特币,如今几个人突然想起来这件事儿以及意识到比特币的价值,但是完全忘记了当时设定的密码是什么。
实际上,这些问题的产生根本不是因为加密私钥,而是网络去中心化的本质问题。由于不存在存储私钥的服务器,所以私钥一旦丢失,没有人能给你一个“备份”私钥。既然没有人能审查、阻止或撤销交易,也就没人能阻止小偷从别人账户中支取资金。这意味着如果你的资金不安全,没人会来救你。你必须自己承担保护私钥的责任。过去,银行可以给你的钱提供安全保护,而现在就完全需要靠你自己。
有人问:“如果有人猜出我的私钥呢?”
这种事根本不会发生。只要你最初设置私钥时不使用诸如6969696969或3之类的简单数字组合,那么有效私钥就是0到2256之间的数字,这意味着随机猜中一个人私钥的概率为:
1/1115792089237316195423570985008687907853269984665640564039457584007913129639936
如果分母是长成这样的一个天文数字,你觉得还会有人猜中你的私钥吗?分母的这个天文数字有多大呢?基本和宇宙中人类已知的原子数量差不多。
有人又问:“如果他们用超级计算机来猜我的私钥呢?”
假设这台超级计算机能够以每秒10亿的速度猜测和测试私钥,并且这台超级计算机自宇宙大爆炸以来就一直存在并运行着。那么到目前为止,计算机可能已经猜到了的私钥大约有
409,968,000,000,000,000,000,000,000个。
让我们再把电脑的功能提高到原来的四倍,然后假设它的存在时间是人类存在时间的两倍,假设这台电脑的运行速度可以每秒猜测40亿个私钥,那么猜出的私钥数目又会翻倍。
然而,即使是在几十亿年的时光中以这么快的速度运转,黑客能猜到你手中私钥的概率依然是:
1/282441774083138672831955140422393718176223472723823
那么这一切的结果是什么?
是一个建立在区块链基础上的更安全、更清晰的经济体系,是能为所有使用者提供清晰、透明、公平的服务的平台。