笔记君邀您,先思考:
① 区块链有哪些“硬伤”?
② 如何理解区块链中的“取舍”问题?
③ 解决区块链难题的两个解决方案?
我今天要用一些比较简单的语言,给大家讲一下:为什么很多人每天开会讨论的区块链,我们生活中没有看到?为什么我打车没有区块链,点外卖也没有?
为什么我们只有数字货币?为什么区块链这个行业,现在很多人期待是不现实的,它的真正的应用和限制究竟在哪?
01、区块链应用的实际现状
目前市面上,有两种区块链的创业公司,一种在做应用,一种在做底层平台,就像有人在开发windows,有人在玩王者荣耀。
比如,现在很多人做的是去中心化交易所,这属于区块链的应用,而不是底层链。最典型的例子就是以太坊。
在2015年以前,以太坊没有被过多讨论过,那时大家对区块链的了解,主要是数字货币。
因为像比特币这种数字货币,是区块链唯一的应用。而Vitalik Buterin第一次把区块链这个概念推到全世界:区块链不只是数字货币,还能干很多事情。所以他就做了以太坊,直到现在,我们做的都是底层平台。
我举一个去中心化交易所的例子。很多人知道,中心化交易所总被盗,而且被盗以后只有一个很蠢的补救办法:前端核对余额,因为后端没有数据了。
被盗之后怎么办?那我们就搞去中心化的交易所。
现在很多所谓的交易所都是私人机构,并不是政府机构,也不是大型的国有银行等等,其实你把钱给它,它如果被盗了,你的钱就没有了,这很不安全。
这个时候,我们总在想:为什么没有人说所有的交易所都实现去中心化?其实不是他们想不到,他们每天面临的最大的风险是被偷。很多交易所都被偷以后,他们只是不承认,有些交易所被偷太多,没办法补最终破产的很多。
但是,要做去中心化交易所,最大的困难是什么?
因为目前的去中心化交易所,都是基于以太坊在做,比较大的交易所,每秒钟的处理基本是5000B以上,五千到一万笔的水平,不会太高。相比中心化机构还差了很多倍,当然,还不只是改善技术的问题。
再举一个在线广告行业的例子。我们都知道,在线广告对数据公开透明的需求度很高,这一点很适合区块链。但是,很遗憾现在仍然很难做。
因为在线广告每秒钟要处理上百万次(如果我们算点击好一点),这是一个很大的壁垒。
我现在一直很喜欢打一个比喻:现在区块链行业非常像几年前的VR,但是要火很多,并不是像VR一样这两年凉了。
还记得我们当时的一些幻想,很多人讨论V8峰会,很恐怖,像《黑客帝国》一样,这知道现在没有了。
那时候,真有硅谷的投资人,站出来讨论哲学问题,说这个东西不能开放,不然就没有人工作了,可是后来发现不是那个样子。
你以为你看到了一些很好的东西,但结果其实是这样:戴一会就忍不住吐了。
所以,这离我们实际想做的东西还差的很远。五十年以后有可能做到,把听觉、触觉都复制了,到那时,活在上帝的游戏里,还是活在别人的游戏里?这确实是个问题。
但现在我们完全不用担心这个问题。
区块链也一样,很多人说区块链可以做这个、做那个,但是基础设施不健全,所以什么也做不了。
那为什么区块链领域的基础设施这么难做?
很多人说:既然知道以太坊不好,怎么不多搞点矿机或者改变程序?把20改成两百、两万。
没有这么简单,这就要介绍一个理论:DCS三角理论。(DCS是分布式控制系统的英文缩写,是目前最先进、最合理的过程控制系统,可以适应各种过程控制的要求。)
首先要讲的就是扩展性,扩展性不只是说一秒钟可以处理多少次交易,扩展性还包含很多要素,当然最直观的就是可以处理多少次交易,比如以太坊是20次。这后面还有低延迟的问题,比如比特币交易时间很长,有时候一小时。
节点越多,扩容性越强,但不是线性关系,他们是正相关的。我现在假设,全班有一百个同学,每个人的信息都不一样,我们做的题都不一样,但如果中间是强一致性,意味着我们虽然现在信息不一致,但是可以下课以后互相讨论。
就相当于有一种算法让信息在某一时间节点达成一致,最终实现完全一致,这个完全一致可以理解为基于比特币或以太坊网络上的完全一致。
所以,从理论上来讲,在一个广义的时间范围内,每个节点的信息都是一样的,比如刚才的例子,全班同学都在选A,虽然有人写慢一点,有人写快一点,但是答案完全一致。
02、核心问题是如何取舍
很多人对去中心化的理解是有误的,去中心化我们可以从三个层面去理解:
一是完全去中心化,简单理解,就是没有一个个体可以掌控核心。
比特币和以太坊是完全去中心化,虽然有很多矿机,但是相互之间没有关系,任何人可以花一个不太贵的钱,买一个矿机成为一个节点。这种任何人可以加入作为节点的东西是相对来说去中心化的。
而facebook这种机构,是完全中心化,比如有一百个服务器,但是都被它控制。
还有一种半去中心化,比如EOS,引入了超级节点的概念,它不是完全的去中心化,中心节点需要大家要去选、去争。
现在的技术(不只是区块链的技术),我们可以认为,满足去中心化和一致性的是以太坊,满足高一致性是IPS。目前来说,比较流行的这两种货币基本满足了去中心化和一致性,但是基本没有扩容性。
为什么不能三者兼备?举一个所有人都可以理解的例子:就是网络带宽问题。
比特币每次交易500字节(最近有些变动,但是不重要),如果我们要做到一万笔交易每秒,但是比特币是强一致性的,节点和节点之间是一样的,每个活跃的节点都想处理这个事情,就要下载五兆数据,实际是有上下的。
所以其实想做到10万笔交易是需要4000M带宽,所以需要引入超级节点,比如去阿里云买超级服务器等等。
所以,我们可以看到非常明显的冲突:如果想速度做的很快,就没有办法让每个人都加入作为节点,因为可能有人用很烂的设备来做,这就很难把这个事情做到高度去中心化。但如果要做到高度去中心化,就必须让每个人都加入节点。
当然,这些只是其中一个因素。我们如何解决这个问题,其实到目前为止,这个问题还没有完美的解决方案,而且在接下来一年,也不能看到完美的解决方案。
这实际是一个取舍的问题,有付出才有回报。想去做到一定的扩容性,就要牺牲很多去中心化。现有的扩容解决方案,经典的例子就是形成超级节点,让你的数据在更小的网络里传输。
比如,全班一百个同学,以前做一道题,要挨个问,花很长时间,现在把结构变了,把所有人分成十组一组十个人,我们随便挑一组,只要那十个人说可以,这个事过了,肯定比问一百个人要快。
很多人说不安全,但是我们现在考虑的是效益问题。这其实就是分片,不是很复杂的技术,不是区块链特有的理论,而是以前的分布式系统就有的名词。
所以,现在很多人在炒区块链,讲它好的时候不讲它带来的代价。大家每次讨论一个优点的时候,一定要看到它带来的缺陷在哪,这才是客观的方式。
03、两个解决方案
最近DAPP很火,去年年底很多人觉得DAPP是最好的,但很多人还不明白什么意思。
我们举个非常简单的例子:原来你想选班长需要全班问一遍,现在只要问左右两个人就可以了,这导致什么问题?可以同时选50个班长,这就使得节点之间的数据不一致,或者一致性非常差。
一致性除了关联还有一个用处,就是智能合约,在DAPP上跑智能合约是非常吃力的,我们虽然不否认这个技术,但是如果真正落地的话,这个东西还要等很久。
所以,解决的方案是什么?(当然,没有什么解决方案没有可以做到什么都好)核心有两点:一是分片,一是POB。
分片简单理解就是:
我们进行一些分组的技术,比如全班一百个人,我们对这100人进行了分组。
原来想干个坏事,全班有一百个人,可能需要贿赂50人,分组以后,十个人一组,贿赂五六个人就搞定了,所以这个事情就很麻烦,因此分组的过程要随机。
此外,在分组的过程中,不可能一直不变,组分的再好再安全,还要观察。比如发现三个人老在一组搞破坏,就要及时把它解决。
但是,变的过程也存在问题,一百个人分十组,分组要花时间,刚分完可能就要变,中间其他人的怎么处理?
所以,除了随机产生保证分组安全,还要解决可能一直变化的问题,所以不需要把全班一百个人重新叫回来分组,而是在组里一直换。
这里的牺牲是什么?非常直观,一定是牺牲了某种程度上的安全性,或者是去中心化,因为只要想提高效率就有这个问题,不管组分的再安全,都没有原来50个人安全,所以我们只能尽可能做的更好。
POB是我们可以这样简单理解:
比如我们十个人在一起,钱多的话语权就大,造成的问题是有钱人越来越有钱。所以,我们需要一个限制机制,虽然你很有钱,但是如果你名声很差也没有用,或者你虽然钱不多,但是名声很好,这个时候也可以。
而且做完之后要清零,重新再去做好事,并不是一辈子做一件好事就完了。所以,通过这个东西能达到什么效果?就是希望在保证负载、去中心化、一致性三者之间达到最优化的效果。
最后我想说,我不认为存在什么完美的技术。大家可以理解为:以后会有很多公链的存在,各行各业都有自己不同需求的公链。
我们刚才说去中心化交易所的例子是牵扯到价值转移,所以对安全性有很强的需求,所以理解为高安全性+中拓展性。但是在线广告这个行业安全性没那么多需求,所以我们理解为高扩容+低安全性。
以后的区块链的领域不太会像现在(我不是讲几十年以后,而是接下来这几年),的计算机或者智能手机一样,少量几个东西就统治整个行业,会有各种各样的底层链,适配于各种各样的行业。
所以,希望大家可以多去理解一下区块链的技术,很多东西不一定非要去学计算机才可以理解,比如我讲了为什么扩容难解决的问题,为什么所有东西都是有取舍的问题,希望大家以后觉得这个东西很完美的时候,还要想一想它背后带来的牺牲是什么。
谢谢大家。
来源:区块链笔记侠