阿里技术人员告诉你,到底什么是区块链?区块链
不是所有场景都不负责任地叫区块链这个本来特指数据结构的名词。
我一直打算写一篇介绍区块链的文章,但是一直没有下笔。原因是区块链本身的内涵和外延一直在变化,另外我对区块链的理解也一直在变化。
然而因为工作需要,我总是会和别人聊区块链。当前区块链行业的现状是每个人对“区块链”这3个字的理解都不一样,甚至直到现在“区块链”都没有一个准确的定义。一次有效的交流需要有明确的话题,并且这个话题的含义要明确而精准,很不幸的是区块链的含义非常模糊。
本文希望能理顺区块链这个话题,解释一下在不同的场景下我们讨论的区块链到底是什么。
区块链的字面含义
从字面上理解,区块链就是由一个个“区块”组成了的“链”表,是一种明确的数据结构,就和”二叉树“是每个节点最多有2个分叉的树型结构一样简单明了。
本身区块链这三个字作为一种数据结构的名字,它的历史使命应该就已经完成了,不需要也不应该再用这三个字来代表其他更广泛的含义了。然而实际情况是怎么样大家也都知道,区块链这三个字被滥用到无以复加的境界。
不得不提的比特币
提起区块链就不得不说比特币,区块链这个数据结构因为被比特币使用而出名。比特币的定义非常明确,就是一种加密货币。然而很多人在尝试深入了解比特币时,最终都感觉云里雾里的然后放弃了,根本原因是比特币的运行机制中有太多”不确定性“,而我们习惯于理解一个”确定性“的事物。
举几个比特币运行时不确定性的例子:
转账提交后,不确定是否能最终成功
转账提交后,不确定在多长时间成功
转账提交后,就算交易被打包成区块也不保证就能成功
打包出块时,不确定下一个区块包含哪些交易
打包出块时,不确定下一个区块被哪个服务器打包出来
打包出块时,不确定同时存在多个候选区块后哪个区块最终能胜出
业务使用时,不确定比特币的转账目的
业务使用时,不确定法定货币和比特币的兑换比例
尽管比特币在运行时有很多”不确定性“,但是从实际操作时可以人为的定一些规则或者做一些中心化的辅助系统,比如交易被打包后再等6个新区块来尽可能保障交易的确定性,比特币和法定货币的兑换可以由各个交易所去做等等。了解了比特币的不确定性并接受了这些人为的解决方案,那比特币其实是非常容易理解的。
最后再回归一下主题,区块链只是当前比特币代码实现中的一个数据结构,仅此而已。
比特币的货币本质
上面提到,比特币是一种加密货币,既然比特币是货币就肯定有支付、清算、结算和发行等环节。比特币的支付(转账)比较好理解,那比特币是如何清算和结算的呢?
清算和结算的本质就是算账并补个差价。就像打完麻将了要做个了结,你欠我300、我欠你200,那么你需要再给我100。在小额低频线下场景这个没问题,但是如果银行间互相转账肯定就需要一个中心机构比如央行来负责帮各个银行做清结算,这个银行间账本只有一个中心机构可以来维护,因此叫做中心化的账本。然而比特币显然没有一个中心机构来管理比特币账本,所以比特币是一个分布式的账本系统。当然比特币也可以叫去中心化账本,但是分布式账本这个名词更精准。值得一提的是区块链的“去中心”论调就是由此而来的。
很多人发现了比特币这个“分布式账本技术”非常神奇,居然可以在一个没有中心机构参与管理的情况下完成了一个货币的发行和流通,那么这个“分布式账本技术”是否可以用在除了比特币以外的场景呢?可以设想如果这个“分布式账本技术”用在其他地方,这将会大大提高清结算效率并降低业务成本。
那么我们给这个“分布式账本技术”起个名字吧? 就叫“区块链”好不好?这不是瞎扯淡吗?“区块链”就只是一个数据结构名称,为什么要把“分布式账本技术”叫做区块链呢?可以肯定的是当前行业内区块链这个叫法是不精确的,但是为什么不直接叫“分布式账本技术”也是有原因的,下面会继续分析。
另外,附上一张我之前做的关于中心化,去(多)中心化,分布式货币之间的简单关系图,不是很严禁,经供参考。

比特币的证券化
不知你是否还记得,上文在讲比特币的不确定性时提到一句话“业务使用时,不确定比特币的转账目的”,进一步扩展开来讲就是比特币转账行为如何映射到我们现实社会中是不确定的。简单的场景是你可以花10000个比特币买个披萨,复杂点的比如某个公司老板可以声称他的比特币地址是A,这个地址上有100个比特币代表了这个公司100%的股份,他将这个地址A的一个比特币转账给你,就代表他将公司的1%股份转让给你了。
历史证明,那些尝试打破比特币的加密货币(crypto currency)属性边界,将比特币“直接”引入到更通用的使用场景的行为都失败了,具体案例可以网上查看彩色币(coloredcoin)和相关介绍,这里不展开讲。
那为什么试图打破比特币的加密货币属性边界的行为会失败呢,首先我们先看看边界在哪里,如下图所示,货币(currency)、加密货币(crypto currency)、股票(stock)、证券(security)都有内在的独特属性和比较明确的边界,你难以将加密货币当成股票和证券来操作,但是他们之间又有一个共同的属性,那就是通证(Token)。一定要记住这个单词,通证(Token),通证(Token),通证(Token)。
通证(Token)
通证可作为一切价值的载体,充满了无穷的想象力,这才是“区块链行业”炙手可热的根本原因。上文提到为什么不可以将“分布式账本技术”叫做“区块链”,那是因为行业内大家在讨论的区块链其实暗含了一个等式:
区块链 = 分布式账本技术 通证
理解这个等式才能理清,到底大家都在讨论的区块链到底是什么。
不得不提的以太坊
通证(Token)怎么玩?在以太坊发明前,没人知道通证怎么玩,整个行业的思维定势还是局限在加密货币上,是以太坊将整个行业从加密货币时代带入到通证时代。
那么加密货币和通证的区别是什么?举个简单的例子,以太币是加密货币,基于以太坊智能合约发行的那些都是通证(Token),所以以太币可以是ICO(Initial Coin Offering)出来的,那些基于以太坊智能合约发行的只能称为ITO(Initial Token Offering)。最终一句话,要理解以太坊的价值,必须紧紧围绕通证去思考,忘记那个叫做区块链的数据结构吧。

顺便一提智能合约
“Ethereum is a decentralized platform that runs smart contracts.”
以太坊的的官方网站是这么定义自己的:“以太坊是一个运行智能合约的去中心化平台。”
首先我对将“smart contracts”翻译成“智能合约”是持保留意见的,当前的智能合约并不智能,实际上大部分情况就仅仅是一段运行在受限环境的普通程序而已。智能这个词语现在也被大量滥用,比如智能手机并没有多聪明。再比如当前比较火热的人工智能(Artificial Intelligence)也就相当于一个人工智障(Artificial Idiot),这里可能做AI的同学会表示不服气会争辩道:“我们AI行业当前处在弱人工智能阶段,当我们发展到强人工智能阶段,那可是非常革命性的!”。其实翻译一下就是“我们当前是做的假人工智能,等我们搞出真人工智能后就非常牛逼了。” 当然了,作为一个更加不成熟的区块链行业从业者,我是真的没有什么心情去调侃AI行业的。
基于上述原因,智能合约并不智能,那些比较出名的区块链相关框架都不好意思直接叫智能合约,比如Fabric中叫Chaincode,Corda中直接就叫Contracts了。
联盟链和公有链?
我们在看区块链相关入门书籍和文章时,经常会看到区块链的分类,什么私有链、联盟链、公有链。相信看到这里的你应该明白了,其实根本没有什么私有链,联盟链和公有链的区分也不是以是否需要授权加入来区分的。
联盟链的研究重点是分布式账本技术,目的是提高效率减少成本。
公有链的研究重点是通证(Token)的应用落地,目的是生产关系的革命。
下面简单分析一下当前比较流行的联盟链框架Corda和Fabric。
首先,Corda还是比较厚道的,直接声称自己是受区块链启发的金融业分布式账本框架,架构中没有使用区块链这个数据结构。因为区块链数据结构对分布式账本技术来说不是必须的,只不过比特币作为一个流行的分布式账本案例恰巧使用了区块链数据结构,仅此而已。
而Fabric就明显是揣着明白装糊涂了,你能从它的架构上明显感觉到它的纠结。
既然有了背书节点,本身背书策略就可以决定账本的修改是否合法,理论上记账可以不需要一个专门的排序节点参与
既然背书节点是可信的,Chaincode完全可以直接以“受限的插件”形式运行在背书节点内,完全没必要搞一个Docker镜像去运行影响效率
排序节点做交易排序和并将交易打包成区块链在一起,给人一种“区块链”的感觉,其实还是那句话,我觉得区块链这个数据结构在分布式账本技术中根本就不是必须的
当然了批评不代表不喜欢,Fabric作为最流行的分布式账本框架是当前最成熟功能最全的,也是我们一直在研究和使用的。希望Fabric在后续版本架构上能回归初心,看清企业级分布式账本的核心竞争力,朝着提高效率、减少成本的目标去发展。
至于公有链的框架就太多了,短时间根本说不完,但是抓住他们的本质,都是围绕Token的生命周期管理,然后尝试现实场景的应用落地去的,在技术上可以归纳为一个词,即“面向通证架构(Token-Oriented Architecture)”,当前面向通证架构除了以太坊勉强能用且有用外,其他还处于非常早期的阶段,还需要很长时间的发展,短期内也许会在游戏行业率先有突破性应用,保持关注就好。
那回归一下主题,面向通证架构的公有链是否需要区块链这个数据结构?如果你一直关注相关新闻,你应该听过DAG和Hashgraph等等。答案已经很明显了,就是面向通证架构的公有链也不是必须区块链这个数据结构的。
这令我很尴尬,一个叫区块链的行业,其实是可以完全不用区块链这个数据结构的,这个命名肯定出了问题。
做个总结
为了区块链行业的健康发展,减少沟通交流中的歧义,我呼吁使用更加精准的定义,而不是所有场景都不负责任地叫区块链这个本来特指数据结构的名词。
如果是利用分布式账本技术来提高信息流转效率降低业务成本的,就叫分布式账本技术或者DLT; 如果是围绕Token的应用落地的,那就叫通证架构,通证模型,通证经济,通证革命等等。
1.TMT观察网遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2.TMT观察网的原创文章,请转载时务必注明文章作者和"来源:TMT观察网",不尊重原创的行为TMT观察网或将追究责任;
3.作者投稿可能会经TMT观察网编辑修改或补充。

