区块链是什么?有时候觉得这是个蛮无聊的问题。因为,这就好像一个人问我“人活着是为了什么?”,我可能会这样回答:???????
生活的意义需要参与到生活的细节过程中才能体会,“区块链是什么”只有实际参与到区块链项目中才能回答。我想,有一类人能回答这个问题。
这些人往往是穿着拖鞋短裤来上班、每天11点40准时吃饭的二逼青年;这些人也是从不在微信群里争论是否加班的佛系男女。这些人是谁?这些人就是永远奋斗在一线、对着代码就能高潮的程序猿。
但是,并不是每个人都是程序员,也不是每个人都能参与到区块链项目中,比如我。我是一个采编,只想拿着区块链的概念吹吹牛,那么,how?
1.定义
一般认为,区块链(blockchain)这个词是从2008年10月31日署名为中本聪(Satoshi Nakamoto)的论文《比特币:一种点对点的电子现金系统》开始的。实际上,在这篇论文里并没有出现blockchain,而只有区块(block)和链(chain)。
随着比特币从社区、到暗网、然后发展到地面上,有人对炒币感兴趣,有人对比特币的底层技术–区块链感兴趣,因此就形成了币圈和链圈。在链圈里,一些技术专家和专业机构尝试给区块链下定义:
“信任的机器。” ——2015年10月《经济学人》
“区块链技术是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。” ——2018维京研究院&甲子智院《区块链行业词典》
“区块链是一个去中心化的分布式账本数据库,该数据库由一串使用密码学方法产生的数据区块有序链接而成,区块中包含有一定时间内产生的无法被篡改的数据记录信息。” ——长铗、韩峰 等《区块链:从数字货币到信用社会》
“狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。”——《中国区块链技术和应用发展白皮书》(2016)
“广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。”——《中国区块链技术和应用发展白皮书》(2016)
……
(对我们大多数人来说,对权威的依赖在很多事情上来说是必需的,尤其是面对一些困难或复杂问题的时候,比如什么是区块链。)
显然,区块链有着各种各样技术层面的定义,如果让我来总结一下的话,我会这样说:区块链是一个技术方案,它以数据库为核心,由分布式存储、P2P传输、加密算法、共识机制等技术构成,其特点是去中心化、链上信息不可篡改或伪造。
(我的这个定义严格来说,是比特币区块链)然后,这些技术是如何发挥作用的呢?
2.分布式数据库
(1)分布式数据库
讲真的,虽然大学的时候学过计算机基础和VB,但是由于从事的不是IT相关的工作,所以这些知识全都还给老师了。下面的关于分布式数据库讲解大多是基于《分布式数据库系统原理(第三版)》这本书。
理论上,我们把分布式数据库定义为一群分布在计算机网络上、逻辑上相互关联的数据库,如下图。
使用数据库系统的原因之一就是把企业的运营数据集成起来,这样就可以对数据进行集中控制或随时存取。
注意,数据库最重要的目标是集成,而不是集中。集成与集中的区别就在于有没有逻辑上的联系,集成有逻辑上的联系,而集中没有。只有彼此之间产生联系才能一起工作。
为什么要使用分布式的数据库呢?我找到了一个牛逼的答案:
面对现在的大规模数据管理问题,如果能把复杂的问题分割称更小的部分,并把它们分配到不同的软件群加以解决。这些软件群在不同的计算机上工作,这样它们就形成了一个系统,运行在多个处理单元上,共同完成一项任务。
通用、高效、自适应…“中本聪”不使用分布式数据库,还能用什么库呢?优衣库?
(2)拜占庭将军问题
我们平时谈到篮球,就会马上想到科比;谈到区块链,就会想到。而谈到分布式数据库,“拜占庭将军问题”肯定是绕不开的。
在继续下文之前,我要首先声明的是,“拜占庭将军问题”并不是一个真实的历史事件,它是一个虚构的故事。原因很简单:
故事容易被传播。只要是个正常人,就会喜欢看故事。把计算机领域里抽象的问题用故事的形式表现出来,这样能得到更多人的关注。关注的人越多,这个问题就能更快地被解决。
“拜占庭将军问题”出现在1982年7月Leslie Lamport和Marshall Pease 、Robert Shostak合作发表的论文《The Byzantine Generals Problem》,故事是这样的:
假设有几支拜占庭军队现在正在一个敌城外扎营,每支军队由一个将军指挥。将军之间只能通过信使传递信息。观察完敌情后,他们必须制定一份共同的行动计划。
然而,有些将军可能是叛徒,他们会尽力阻止那些忠诚的将军达成一致的计划。将军们必须有一个算法来保证以下几点:
1.所有忠诚的将军必须达成相同的行动计划。
忠诚的将军会根据“算法”的要求来行动,而叛变的将军想去哪儿就去哪儿,想干嘛就干嘛。不管叛军做什么,算法必须保证所有忠诚的将军达成相同的行动计划忠诚的将军不仅要在行动上达成一致,还要认可可执行的计划。所以我们也要确保:
2.当少数人是叛军的时候,他们无法阻止忠诚的将军接收到可执行的计划。
这个故事是计算机科学中,研究分布式一致性(Distributed consensus)问题的典型案例。
一般的,对这个问题的研究是为了增加分布式系统的可靠性。比如Twitter、Facebook这样的系统,它们有很多服务器,同时记录着系统上发生的所有行为。
因为每一条信息分别记录在不同的后台节点上,所以系统具有分布式的特点。一旦数据记录不一致,就有可能发生用户信息丢失的情况。在2008年10月31号之前,人们都还不知道如何使这样的系统达成完美的一致性。
(3)中本聪
2018年10月31日下午2点10分,在一个密码朋克的邮件组里,几百个成员收到了一封署名为中本聪的电子邮件,邮件里写到:“我一直在研究一个新的电子现金系统,这完全是点对点的,无需任何可信的第三方参与。”,在这句话的下方,有白皮书的链接,其中描述了一个新的货币体系。
(在这里,我们假设中本聪是一个真实的人)中本聪优雅地利用“工作量证明链”(proof-of-work chain)解决了“拜占庭将军问题”。详情见《区块链:重塑经济与世界》第一章,添加个人微信即可获得PDF版电子书,联系方式在个人介绍里。
比特币的白皮书里,除了工作量证明(共识机制)之外,还涉及到加密算法(非对称加密、哈希函数)、P2P传输、分布式存储等技术。为了避免啰嗦,这些技术的细节我在这里就不写了,只讲一下这些技术是如何配合的。
3.协议
我是今年1月中旬才知道区块链的,至今已有3个月了。刚开始接触的时候,经常听说“区块链是第四次工业革命”“区块链将颠覆所有行业”之类的,觉得区块链很神、很吊。可是,接触久了以后,我发现区块链也许并没有那么神奇,毕竟它是建立在互联网技术的基础之上的。
互联网是一个通过TCP/IP协议进行高效信息传输的网络,区块链则是基础现有互联网协议架构构建出的新的基础协议层。
“协议是指为了完成给定的任务,进程间通信所要用到的一组通用的规则和给事。协议的存在使得分布式系统的软件能独立地开发,能在代码次序不一样、数据表达不一样的计算机上用不同的程序语言实现。”–《分布式系统概念与设计(第5版)》
类似于TCP/IP协议的分层结构,区块链的复杂性也体现在其组成的层级结构。
“网络软件是按层的层次结构开发的,每一层都为上面的层提供了相应的接口,并扩展了下层通信系统的性质。”–《分布式系统概念与设计(第5版)》
数据层/ Data Layer
数据层主要描述区块链的物理形式,是区块链上从创世区块起始的链式结构,包含了区块链的区块数据、链式结构以及区块上的随机数、时间戳、公私钥数据等,是整个区块链技术中最底层的数据结构。
网络层/ Network Layer
网络层主要通过 P2P 技术实现分布式网络的机制,网络层包括 P2P 组网机制、数据传播机制和数据验证机制,因此区块链本质上是一个 P2P 的网络,具备自动组网的机制,节点之间通过维护一个共同的区块链结构来保持通信。
共识层/ Consensus Layer
共识层主要包含共识算法以及共识机制,能让高度分散的节点在去中心化的区块链网络中高效地针对区块数据的有效性达成共识,是区块链的核心技术之一,也是区块链社群的治理机制。目前至少有数十种共识机制算法,包含工作量证明、权益证明、权益授权证明、燃烧证明、重要性证明等。
数据层、网络层、共识层是构建区块链技术的必要元素,缺少任何一层都不能称之为真正意义上的区块链技术。
激励层/ Actuator Layer
激励层主要包括经济激励的发行制度和分配制度,其功能是提供一定的激励措施,鼓励节点参与区块链中安全验证工作,并将经济因素纳入到区块链技术体系中,激励遵守规则参与记账的节点,并惩罚不遵守规则的节点。
合约层/ Contract Layer
合约层主要包括各种脚本、代码、算法机制及智能合约,是区块链可编程的基础。将代码嵌入区块链或是令牌中,实现可以自定义的智能合约,并在达到某个确定的约束条件的情况下,无需经由第三方就能够自动执行,是区块链去信任的基础。
应用层/ Application Layer
区块链的应用层封装了各种应用场景和案例,类似于电脑操作系统上的应用程序、互联网浏览器上的门户网站、搜寻引擎、电子商城或是手机端上的 APP,将区块链技术应用部署在如以太坊、EOS、QTUM 上并在现实生活场景中落地。未来的可编程金融和可编程社会也将会是搭建在应用层上。
激励层、合约层和应用层不是每个区块链应用的必要因素,一些区块链应用并不完整包含此三层结构。
基于互联网构建统一的价值传输层,即价值互联网的诞生,将是区块链发展及演进的必然结果。价值互联网的诞生将进一步打破信息不对称的壁垒,让以货币、数字资产为代表的数字化价值无需借助大量的中介机构,就能在全球范围内自由流动,这将让市场效率得到质的飞跃,甚至彻底改变目前的金融与经济格局。
4.结语
所谓创新,只不过是过往技术的排列组合。
区块链是一种由分布式存储、P2P传输、共识机制和加密算法结合的数据库,这其中的每一项技术都不是近几年才出现的。但正是有了天才和天才idea的存在,区块链这一天才的发明得以为人所知,而由它构建的价值互联网是一片广袤的新大陆,是未曾探索的大海,是刚刚露出水面的冰山一角。不管是区块链技术,还是相关行业,都有无限的精彩在前方等着我们去发现和开拓。