很多朋友催着我快进入主题,因为到昨天为止,都还没看到任何关于区块链技术的细节。我很理解,因为当初我也是同样迫切地想立刻掌握细节,那让我走了不少弯路,因为不了解技术产生的背景和目的,很难深刻理解技术内涵,更难举一反三,甄别忽悠骗子。
这些朋友的感受是普遍存在的浮躁心态,也是科普人立志要挑战的现象。一个同学跟我私聊,说是看了很多区块链的文章,仍然搞不懂。其实不只是区块链领域,现在动不动就会冒出一个高大上的技术名词,一夜之间火遍天下,不去谈技术,寡说科幻故事,让人目眩神迷,似乎我们这一代人如此幸运,时时刻刻都处在蒸汽机带来的工业革命级别的时代中。
这大概是信息时代给我们的迷惑,我们到底是应该知道更多,还是思考更多?朋友圈的文章一篇接一篇,“标题党人”辛勤工作,唯恐眼球挑食,什么创新都不如新闻标题和创造新词来的更猛烈。在这个知识似乎随手可得,甚至被塞到眼前的时代,我们的眼球使用得越来越多,可是思考的时间越来越少,难道未来人会进化成眼球很大,后脑勺很小?
回归正题,先简单回顾一下,在第2篇里我简单介绍了货币历史,是想告诉大家比特币的产生的历史背景及其研究思路;第3篇说到密码朋克和他们20年的努力,是想说比特币的技术架构不是一个人随便就能发明出来的,没那么多试错,天知道最后是哪一个密码货币能成功。
这个系列是漫谈区块链,为什么前两篇都说的是比特币,甚至连题目都会搞错1?因为要谈区块链无论怎样都绕不开谈比特币,因为似乎区块链就来自比特币。今天我们就来点干货,专门谈谈”区块链“。
不知道朋友们是何时何地第一次接触“区块链”这个词,当时是怎么理解的。我是2013年大学同学聚会时第一次从一个技术潮人同学那里听到比特币,之后隔了很久才看到英文单词“blockchain”,尽管词汇量小却还是一眼看出是“block”(区块)和“chain”(链)合并而成,此外我就啥也不明白了。
那么区块链到底是什么呢?区块链是一种数据组织方式,术语叫数据结构。换成文科生能理解的话来说,区块链是一种记录信息的方式。
为了让技术小白进一步理解,我得再换个姿势,举例说明区块链是什么。显然它有两个要素,一个是区块,一个是链。区块就是一些信息内容,可以是书中的一页纸,也可以是书中的一个章节;可以是账本中某日的全部交易流水,也可以是十分钟内的转账记录(比特币的区块就是记录了十分钟的转账记录)。链就是把区块按一定顺序连接起来的索引方式,术语称之为指针,对应我们前面关于区块内容的举例,可以是书中一页纸的页码,也可以是书中章节的次序;可以是记账的日期,也可以是记账的时间。
再啰嗦就要变成唐僧了,我不惜冒着被当作长生不老药吃掉的风险,就是想告诉大家,区块链就是一种简单的数据结构。大家一定很失望了,一方面发现我不是唐僧肉,看我的科普赚不到钱也无法长生不老,另一方面明明别人的文章说起区块链技术,动不动就是“去中心”、“挖矿”这些神乎其神的词语,怎么在这里不见了呢?我要说那些解读就是把区块链与比特币混为一谈导致的结果。
几乎所有的书籍和文章都说区块链技术来自比特币,更有人精确的指出它来自于2008年11月1日中本聪发表的号称“比特币白皮书”的论文——《 Bitcoin: A Peer-to-Peer Electronic Cash System 》(比特币:一个点对点的电子现金系统)。学习比特币的技术,自然少不了去拜读这篇论文。可是这篇文章通篇没有“blockchain”或者“block chain”,全文“block”出现过67次,“chain”出现过27次。“block”出现的时候就是讲区块里的内容什么的,而“chain”出现时并不仅是关于区块之间的顺序关系,还有转账记录(transaction)之间的顺序关系。
文章对于区块和链之间的关系描述中,中本聪在最可能把这两个词合在一起的地方却偏偏说成“Longest Proof-of-Work Chain”(最长工作量证明链)。
图示:中本·聪论文《 Bitcoin: A Peer-to-Peer Electronic Cash System 》中的插图
对于转账记录与链之间的关系,中本聪是用”…a chain of digital signatures”来表示其实转账交易链是一个数字签名链。
图示:中本·聪论文《 Bitcoin: A Peer-to-Peer Electronic Cash System 》中的一小块截图
在比特币的语境里,转账记录是写在区块里的内容,比特币的每个区块最主要的内容就是十分钟以内所有的转账记录。
转账记录与转账记录之间链的关系与区块与区块之间链的关系完全是两回事。
转账记录之间的链是指当一个账号向另一个账号转账时,转出方账号必须提供转出的钱是哪里来的,也就是转出方账号上一次接受到钱的那条转账记录,而那条转账记录可能记录在很久以前的一个区块里。
而区块之间的链的关系就是一个按时间顺序排列的,大约每十分钟一个区块之间用一种专门设计的指针联系起来。
可见“区块链”这个名词只是表达出来区块以及区块之间关系的内容,并没有表示出转账记录之间的关系,所以用区块链技术来替代比特币技术,至少从数据结构角度上就已经不完整了,完整的表达应该是不是该是“区块链&转账记录链”。
此外这种数据结构太平淡了,以至于所有人都不会当这个是一门手艺。我想中本·聪以及密码朋克中的专家们一定不屑于用这么低端的名称。因此我得出一个结论,“区块链”并不是中本聪用来表达比特币技术的词语,一定是在之后才被什么人提炼出来的,可是它是如此朗朗上口,于是就不分青红皂白被时代接受了。对于这些密码专家来说,如果想用一个词表示比特币技术架构,一定就是加密货币(CryptoCurrency);如果想用一句话表达比特币技术构架,大概会这么说:用密码学相关技术对区块和转账记录进行处理,并通过共识算法构建的分布式不可更改的公共账本。
但是“区块链”显然已经成为一个共识的词汇,有时候几乎变成比特币的代名词。我去追根溯源是为了能够更加清楚的理解这个概念,只是我用了好多办法,都无法考察出这个词第一次出现是什么时间和出自于谁。
我质疑“区块链”这个名称来自于内心对现实的吐槽,为什么没有人把“区块链”所表示最朴素的意思科普出来,但是这种情绪并不代表我对这个词的反感。
在深刻理解比特币的技术构架以后,我只能像叹服那些能用简单的笔墨就能书画出不朽杰作的人一样,心中暗暗嘀咕“人和人咋这么不同,同样的东西为啥到别人手里就辣么厉害呢?”
是的,没有比特币之前,区块链这个东西早就穿着不同马甲存在于许多事物之中。比特币出现后,人们发现这样一个普通的小家伙,穿上神秘的密码学技术外套后,就如同原来一个衣不遮体的邋遢流浪汉,突然被最顶级的形象设计大师包装起来,变得英俊潇洒,风流倜傥,学富五车,才高八斗,上的厅堂,下的厨房!而这一切都来自于神秘的密码学。
(本篇首发于2018年3月8日微信公众号geekszone)
注释:
1、本篇最早发布在微信公众号“geekszone”上,由于疏忽,上一篇的标题写错了,而微信公众号不能修改已经发布的文章标题,所以本篇进行了说明。本博客早期文章标题在博客建立后都进行了修改,因此没有这个问题。