【区块链】什么是区块链(五)
风险提示
由于目前区块链领域里充斥着大量的资金盘、空气币。而且,说起区块链,不可避免地涉及到金融、投资或者投机等话题。投资有风险、决策需谨慎,请各位朋友们擦亮眼睛,风险自担。
“比特币交易作为一种互联网上的商品买卖行为,普通民众在自担风险的前提下拥有参与的自由。”
“代币发行融资与交易存在多重风险,包括虚假资产风险、经营失败风险、投资炒作风险等,投资者须自行承担投资风险,希望广大投资者谨防上当受骗。”
——摘自人民银行等五部委发布的《关于防范比特币风险的通知》准备工作
比特币到底做了什么
技术方面
上次提到,在技术方面,比特币所做的最重要的第一件事情,就是把自己搞成了「开源软件」。这次,继续顺着比特币白皮书的内容,谈谈它在技术领域所做的第二件重要的事情:
比特币用密码学原理重新定义了电子货币
白皮书里原文是这么说的:
We define an electronic coin as a chain of digital signatures.
我们定义一枚电子货币就是一条数字签名链。
注意了,区块链的「链」字,就是在这里出现的。「电子货币」、「链」、「数字签名」这几个词估计都得先掰开来说一说。
数字签名
别小看这简单的几个字,这背后可是比特币所继承的「计算机密码学」之大成。当然了, 仔细想想也难怪,在中本聪发表论文的那个密码邮件组(邮件组:互联网早期风行的一种讨论平台,以电子邮件为载体。可以把它理解为密码学主题的全球兴趣小组)里,可是活跃着许多声名显赫的大牛,比如菲爾·齊默爾曼 Philip R. Zimmermann, Jr.——著名加密算法PGP的发明人、约翰·吉默尔John Gilmore——太阳微系统公司Sun microsystems 大名鼎鼎的第五号员工、斯蒂文·贝洛文——美国贝尔实验室研究员、布拉姆·科恩——BT下载的作者、蒂姆希·C·梅——英特尔公司前首席科学家、阿桑奇——维基解密创始人等等……当然,还有神秘的中本聪他本人。
这些大牛,以及更多大牛几十年来的计算机密码学成果可以理解为这么一句话:
如何在计算机系统里,保证A发给B的信息不被第三者偷窥,而且B能确信自己收到的的确真是A的信息。
在中文表达里,其实就一个字——信,这个字背后有两层含义,一是消息,二是信任。如何在一个不可信任的环境中传递信任呢?数字签名就是干这件事情的。在漫长的人类历史上,首先是用签名和印章来做这件事情。然而,签名和印章是有可能伪造的,为了防范这种风险,以及遥远路途中的保密需要,人类又发明了密码这个东西。
简单类比的理解,就好像一个专用带锁的箱子。发信人有钥匙,打开箱子把信放进去。收信人也有钥匙,可以打开箱子把信拿出来。这个钥匙,到了计算机系统里,就被叫做密钥。
发信人与收信人用同一把钥匙的,叫做单密钥算法——DES(Data Encryption Standard)。但这种情况下,密钥特别重要,不小心丢了或被人远远看了一眼给复制了,那可就全完了。
于是,又有人发明了双钥算法——RSA( Rivest-Shamir-Adleman)。可以理解为一个可以两头开的信箱。一边用公钥打开,一边用私钥打开,简单来说就是这么用的:
比如有三个人,张三,李四,王五。所谓私钥,是自己收着的。比如张三有一把自己的私钥,上面刻着「张三私」三个字,但谁也没见过,他总是四下没人才拿出来用。然后他还有一把公钥,上面刻着「张三公」三个字,他把这个给了李四,王五也复制了一份,甚至他还把这个钥匙挂在自家门口,谁都可以复制一份带走。
这天,张三要宣布一件大事,告诉李四和王五,为了确保收到信的人知道这的的确确是自己说的。他拿出那个双开口的加密信箱,用自己的私钥打开,把信放了进去,锁上。—— 这个过程就叫做数字签名。
两个一摸一样的,装在双开口加密信箱里的信被分别送到了李四和王五那里。李四拿出刻着「张三公」三个字的公钥,打开了加密信箱。——这个过程叫做验证数字签名。你可以理解为,这个箱子就是数字签名,能打开就叫做「数字签名验证通过」,证明这箱子里的信确实是张三发出的。当然,这个箱子可以是透明的,不打开也能看到里面的内容。王五,以及任何其他人想要验证这条消息是不是真的来自张三时,都可以掏出「张三公」的钥匙试试看。
回过头来看,这个比喻里面,还有一个细节被「扭曲」了。私钥是一串字符,公钥也是一串字符,和物理世界的钥匙一样,一是不会变的,二是一旦被别人看到,等同于传播或泄露。但这个「加密信箱」,也就是签名,是和信件内容密切相关的。可以理解为有一台机器,根据「私钥」和「信件内容」按照特殊方法制作出来的。下次我再刷新一下这个比喻,让他更准确点吧。
这就是数字签名的用法,同样的体系,还可以用来保密。具体用法和比特币这里的应用没太大关系,我就不细说了。
网上还有两篇文章针对数字签名画了些图,解释得比较清楚,有兴趣可以进一步看看。
链
Chain,本来是计算机数据结构里的一个术语。但这个词本身很形象,就是同样的某个东西,被串起来。一个接着一个。所以,这里的数字签名链,继续用上面我那个比喻,可以理解为一条被串起来的那种信箱。
是不是感觉有点像中国古时候用的那种被串起来的铜钱?这个和被串起来的铜钱可不太一样。且待我慢慢掰开来讲。
<待续>