区块链的定义
我忽然发觉很多人对区块链缺乏基本认识,不清楚区块链的定义。不过我相信领导肯定是知道的。
根据给领导讲课的陈院士所归纳,区块链是,一:一个放在非安全(也就是有恶意节点的)环境中的分布式数据库(系统)。所以,有一个中心服务器或者节点的,不是区块链。节点都是安全的无恶意的,也不是区块链。从应用的角度讲,如果你的应用必须要使用中心节点(例如银行转帐、Uber, 目前几乎所有的服务系统...),或者没必要考虑节点不安全的情况(也就是说即使它是恶意的也没太大影响),那么不需要考虑区块链技术。
二:区块链是采用密码学的方法来保证已有数据不可能被篡改。这个是误解最多的部分,因为很多人一提到区块链就只觉得是这个。这部分的确很重要,而且确实区块链也因此得名,但这只是区块链的定义的一部分。这个部分的两个核心要点是:(1)哈希函数,(2)非对称加密(公钥和私钥)。
三、区块链采用共识算法来对新增数据达成共识。共识算法的目的,就是让所有节点对于新增区块达成共识,也就是说,所有人都要认可新增的区块。对于有中心的系统,这事很简单,中心说什么大家同意就好了,但是放到去中心化系统里,尤其是有些节点带有恶意的时候,验证谁说的是真话就非常复杂,解决的办法是“拜占庭容错”(BFT),另一个就是现在比特币所用的,奖励机制。
以上几点就不详细说了,没时间。但如果真了解了区块链,马上就能想到一个场景是你必须用区块链,而不是现有结构的数据库所能实现的:你要通过网络与某人做交易,而那个某人对你是否有恶意也是你不知道的,但你又必须和他做交易的;你希望交易只有你们两个人知道,你绝对不希望那个网络管理员看到,更不希望他无节操地把你的秘密拿出去换取自身利益。那这是什么场景?两个字,洗钱。
洗钱听起来不正当,但如果是两个国家的政府之间的交易呢?一切都是合理合法的,只为了不让第三国知道,而这个第三国为什么会知道?因为他兼职网管。那这是什么?现有的SWIFT系统。(巴西和爱沙尼亚做了笔买卖,公平合理,一没偷二没抢三双方自愿成交,你美国干什么看着我们呢?就因为我们这笔交易是用美元?凭什么啊,就是不让你知道不让你知道不让你知道!)
数据结构有许多种,链型结构是很受局限的一种,那为什么还要采用呢?一定是有它不得不用的原因。关注区块链是否值得应用,不是看什么场景可以用区块链,而是看什么场景只能通过区块链来解决。如果说区块链只是不可篡改的数据结构,那么不仅它不是什么新东西,而且连“区块链”这个词都站不住脚。因为比如以下这个场景,公司有个中心服务器,所有人有自己的私钥,然后所有活动记录全部用私钥加密存在这个不可篡改的数据库上。听起来好像很好,甚至不少人就拿这种概念推销给想要蹭区块链热度的公司,然后公司的人不懂技术就直接给钱了,东西也做出来了,也用了,似乎也没什么问题……但是,这东西和一般的数据库有什么区别吗?数据库也可以用哈希做成不可篡改的啊,数据库每个人登陆也是要密钥的啊,而且数据库的存储结构效率要比链式高多了啊。而且,为啥要把数据打包成区块然后链起来呢?保证不可篡改还可以用哈希列表或者梅克尔树,为什么要用链呢?这种链式结构放在这里毫无意义啊。也就是说区块链之所以是新东西,之所以现在这么热,是因为它是一个能在不安全网络中工作的去中心化的数据库,因为它有共识算法。如果是中心化的,没有共识算法,那么这东西一没必要用链式结构,二和传统数据库相比没有任何优势。
区块链一大特点是所有上链的数据必须通过所有节点的验证,然而,如果区块链得到了大规模应用,这就代表了所有的节点都会获取所有的数据。然而这就出现了两难选择:我们不信任中心,有很大的一部分原因是中心获取了我们所有的数据,所以我们要绕开它,可现在倒好,用了区块链去中心之后,所有人都可以获取我们所有的数据了。因此,如何在能够保证隐私的同时还可以享受区块链带来的去中心化优势呢?这需要所有节点能够在不知道数据内容的情况下,还能够对数据的有效性进行验证,例如:在不知道你是谁,具体有多少钱,你想要支出多少钱的情况下,验证你确实有一笔钱可以来完成这笔支出……这听起来像是天方夜谭,可实际上有一种密码学的工具可以实现它,就是零知识证明。
这里有许多可以说的,没时间写了。
-----
忙完了回来接着说。
很多人怀疑领导被忽悠了,我想这个怀疑具体是指,那些怀有自己目的的人,鼓动起来跑到领导那里,说一大篇由新名词新创新点组成的话,告诉领导说这就是区块链,它的应用有多么的广阔,能解决多少就业等诸多好处(但实际上那些都不是区块链,而是假借这个新名词装的旧酒),然后领导就相信了。但我觉得,领导肯定知道他们在忽悠他,但他必须把这条路走下去,因为他实在找不到比这更好的经济增长点了。他必须有个新东西,能吸引人来投资。所以我估计,这以后中国会出现很多号称采用了区块链技术的应用,但都不是真的,而是采用的已有的树状网状或其他数据结构的应用。因为区块链的应用场景实在太窄了,99%的场合下,你没必要用区块链。
就象陈纯所给的例子,说中小企业贷款难,有各种繁琐的手续,如果中小企业有订单,有应收账款,把这些变成区块链凭证,就可以贷款了,而且非常快,中小企业融资难问题就解决了。但我想很多人都明白,这个场景用现有的成熟技术,解决繁琐手续的核实,太绰绰有余了。而且中小企业贷款难,根本原因并非技术障碍。
大部分问题,只要往深里追一点,就会发现不是技术问题,而是法规和制度的问题。但你必须把它归因于技术障碍,这样才能引来钱,创造新的经济增长点。
假如这个东西真那么好,可以广泛应用的话,美国这边早就蓬勃发展了,轮不到现在。区块链不是什么新东西,早十年就出来了,可十年来,在其基础上的应用,才区区可数的几个,其中最广为人知的是比特币。这也从侧面反映了区块链的'无必要性'。