钟家鸣(Jimmy Zhong),IOS基金会创始人。
IOS,即Internet Of Services,旨在开发高TPS、高可拓展性和安全的区块链基础设施,为互联网服务商提供最坚实的土壤。
2018年3月27日,人民创投区块链频道与行业垂直媒体31区联合主办的「链·未来,2018春季区块链技术论坛」在人民日报新媒体大楼举办,与会人士通过主题演讲和圆桌论坛等形式,对区块链行业中所存在的问题和机遇进行了深入探讨。
笔者有幸参与了这次活动,其中钟先生的演讲干货满满、亮点频出,对区块链项目落地有很强的指导意义,特整理出来,以飨读者。
演讲正文
刚才 (指之前的演讲) 很多人讲了为什么区块链是一项好技术,也简单聊了区块链行业,今天稍微给大家泼一点冷水:「好像除了比特币之外没有看到什么应用」。
接下来,我就简单给大家讲一下,「 区块链行业遇到的一些问题」以及「 为什么到现在还没有产生比较好的应用」。
主要讲四点。
一、现在的技术应用和实际现状
二、扩容问题带来的冲突
三、现有的解决方案和代价
四、行业未来的发展方向
一、现在的技术应用和实际现状
目前,区块链创业一共两个方向,我们用比较简单的语言描述一下。
一是、做底层。 用“传统世界”的语言来比喻,就像 iOS 和 Android ,可以为其他开发者提供一个平台。
二是、做应用。 假设区块链是一个操作系统,有人在上面开发微信,有人开发淘宝,我们把这类产品叫做基于区块链的应用。
这是目前比较热门的两个方向。
先讲两个比较适合于“区块链化”的应用场景。
一、虚拟货币的交易所。
大家可能听说过,Coincheck,5亿美金被偷了。这里体现了一个问题, 交易所有非常大的安全隐患。
你的以太坊、虚拟货币放到这里以后就是把钱交给了别人。这个交易所可能有冷钱包,热钱包,你把一切都交给它,就像把钱存在私人银行,他们有一天说不好意思,我们着火了,什么都没了。
你没有任何办法 ,中心化就是如此。
很多人说既然这样,以后我们搞一个去中心化的交易所,你的币在你的钱包里,我的在我的钱包里,我们想交换就自己交换。
想法很不错。
交易所,听起来是很适合「区块链化」的行业。
二、在线广告。
可能在座的诸位也有在Facebook或百度投放过广告,理论上讲,他们的广告是很容易作弊的。
你把广告投放给Facebook,他可能会有按照点击量收费之类的规则,看似很规矩对吧。但大家如果稍微懂点技术就知道,Facebook可以随意修改你存在他服务器上的任何数据,当然我并不是说Facebook真的这样做,只是打个比方。
现在,我们假设把这两个行业「区块链」化,比如我们把交易所的交易数据使用区块链存储。我们把广告的每一次观看和点击也全部放在区块链,不可篡改,童叟无欺。
听起来很完美是不是?
但是为什么这两个行业没有做起来?这就要说到区块链本身存在的瓶颈了。
二、扩容问题带来的冲突
扩容问题。
想支持一个交易所,即便这个行业内一般的交易所,交易量也到了2000到5000笔每秒,而大一点的交易所基本上万。
在线广告的数据量更大,如果是跟踪点击量每秒钟 是 十万或者百万的量级。
反观以太坊,目前仅支持20笔交易每秒,姑且不说手续费,仅此一项就是很大的问题。
我有时候会想,大家现在把区块链描述得很美好,有点像两年前或者三年前大家去描述虚拟现实的时候。
那时候VR、AR很热,出了一大票公司。
很多人讲,以后你们都不用工作上班了,在家躺着,想干什么干什么,想当谁当谁。
你以为是这样的效果,其实戴上以后没两分钟就要吐了。 很多事情听起来很好,实际上技术上遇到很大的难题,不是那么容易改造。
扩容真的是非常严重的问题。
很多时候大家觉得交易慢是因为矿机不够多,程序写得不够好, 然而事实并不是这样。
扩容问题真的是非常难解决的问题,每次“解决”扩容问题都会带来 行业 很大的牺牲。
这里我讲一个概念, 三角冲突,即去中心化、一致性和扩展性的冲突。看完你就明白为什么扩容问题这么难以解决。
扩展性
这个非常好理解,上面最开始Planetary scale,是扩展性,高负载。
扩展的特性,理论上讲,是你希望节点越多,扩容性越强,而不是受到限制。另外还有延时问题,大家都知道比特币六个交易才能确认的特性,每笔交易要等60分钟。
一秒钟20个交易不行,我们要变成2000或20000。
一小时确认交易不行,我们要一秒钟确认。
一致性
这个需要大家稍微理解一下,一致性共有三种。
先讲什么叫完全一致。
完全一致就是现在以太坊和比特币的做法,所有的节点,所有的矿机,在同一时间点,它们存储的数据是严格一致的。
打个比方,假设全班有一百个人,我们做一道数学题。虽然各做各的,但是卷子收上来了,我们有一个同步答案的过程,这就是强一致性。
而完全不一致,就是我们全班一百个人,连做的题都不一样,就是完全不一致。
而弱一致,就是虽然短时间内不一致,一万个节点可能有五千个不一致,但是会提供一些算法,在某些情况下同步。
去中心化
中心化也有三种,分为完全中心化、半中心化以及去中心化。
在这个行业,对于以太坊来说也好,对其它基础设施也好,我们定义完全的中心化就是一台服务器或者一个公司掌握所有的事情。
比如Facebook有自己的服务器集群,因此它可以完全控制所有的事情,还是可以到数据库把广告从一百次改成一万次。
半中心化,就是没有一个个体可以严格地控制所有的事情。
假如我是Facebook,我不再能直接去一个数据库里面改数据,而是需要跟别人商量,任何人都可以去写,去读。
我们讲一个比较火的例子:EOS,21个超级节点和其它小节点,它没有完全去中心化,但是只要超级节点们达成一致,这个系统依然可以运行。
还是举例全班一百个人,原来是老师说答案是一就是一,现在我们分成十组,各自有自己的答案,最终达成一致的就是正确答案。
完全的去中心化就类似于以太坊。
虽然它一定程度上会有矿主的垄断地位,但在理论上任何人都可以加入作为一个节点。
也就是说你明天想成为一个以太坊公司很简单,你可以直接在电脑上跑一个以太坊节点,你可能不会掌握很大的算力,可能很慢,但没人能阻止你这样做。
任何人都有能力加入这样的节点,而不是像EOS那样需要购买很多算力,否则你没有资格成为超级节点。
理解了这个三角的基本概念,我们接着讲一下, 为什么不能三者兼备?为什么不能又去中心化,又快?
很多原因。
我们讲一个最简单的因素就是 网络带宽因素,这是非常现实的因素。
比特币每笔交易是500左右的字节,假设每秒1万笔交易,什么概念呢?500字节乘以10000,每秒钟要下载5兆的东西。
如果这个可以达到,那么如果每秒10万笔交易,使用能满足这个需求的理论带宽 需要400兆 ,你下载一个1GB的电影只需要20秒,这还是最理想的情况。
由于区块网络并不是一直平稳的状态,有时候你理论上需要400兆的网络带宽,但实际可能需要数倍于此。
假设以太坊支持每秒1万笔交易,你可能连网速都跟不上,更不要提别的东西了。
这就是为什么很难要求一个完全去中心化的区块链网络,在保证数据一致性的情况下支持高吞吐量,因为你要同步所有数据!
所以,你要么选择高度去中心化,像以太坊一样每个人都可以成为节点。要么高扩展性,只要网络带宽达标的超级节点。
你先去阿里云买一个2000万一个月的服务器,什么东西都能跑,你可以当超级节点,我们通过超级节点可以满足很多扩容需求,但是牺牲了很多去中心化的因素。
接下来我们聊一下现有针对扩容问题的解决方案,就是一句话, 有付出才有回报,没有什么是完美的。
三、现有的解决方案和代价
目前比较流行的解决方案,首先就要数超级节点,这是最直观的解决方案。
超级节点对算力的要求不高,能正常处理链上的交易就够了。但其对网络的性能很高,每秒可能会达到百万级别的处理能力,普通的计算机根本不可能作为节点,需要一个内存达到几百G甚至更高配的机器,而且未来也只会越来越高。
还有一种方式叫做划分网络。这里有两个技术,一个是DAG(Directed acyclic graph,有向无循环图) ,Shardin(分片技术) 。
关于分片技术,举个例子,比如说我们全班一百个人, 必须每个人都要看一遍题目,然后表态。
这个过程很麻烦,很可能有人缺勤、有人打牌、有人打游戏。现在把全班100个人随机分成4个组,每个组25个人,只要确保分组的过程足够随机,这个组不停地换,就能保证一定的安全性。
还有DAG,现在这种方案非常火,它是计算机领域一个常用的数据结构,因为独特的拓扑结构所带来的一些特性,经常被用到处理动态规划,导航中寻求最短路径、数据压缩等场景中。
Ext社区提出的DAG of blocks
DAG 本身跟 Shardin 的方法很不一样。还是用全班做题来打比方,原来是这一道题必须全班一百个人都看一遍,现在只需要我左右两个人验证一遍就可以了。
这里就有一致性的问题,因为很多节点在同一时刻是不一致的。
举个例子,一个智能合约可能有五个变量,有的节点觉得变量A是5,有的节点觉得 变量 A是8,还没同步完成。
如果你想做智能合约,那么需要再为DAG量身定制一个。
所以没有完美的解决方案。
看到这里,你或许会问, 这不是死局,无解了吗?
不是的。
还是回到最初的那两个行业:交易所和 在线广告。
去中心化的交易所最核心的需求是什么?
安全。 因为你在转移自己的资产,你不希望你的资产出错。
对于一个去中心化交易所来说,可能你每一万笔交易错一笔都是不能忍受的。有这样的安全隐患是不能忍受的。
而对于在线广告来说,这可能就是可以忍受的,比如说Facebook广告原来播放一万次,现在播放9999次,多付一、两分钱无关紧要。
但 在线广告对扩容性要求就非常 非常 之高。
所以答案是, 我们可以针对不同的应用场景,在拓展性、去中心化、一致性上作出必要的取舍。
四、行业未来的发展方向
接下来我们讲一下,区块链的未来发展和分布。
诚然,在计算机领域,解决方案是比较统一的。 比如说有Windows、macOS、Linux等等,本质上是被一些巨头垄断了。再比如手机端,除了 iOS 和 Android 其他的系统也没人用了。
但我不认为区块链未来会像这些一样,除了以太坊就没了。
各个行业有不同的取舍,可能你做一个A系统,它吞吐量极高,可去中心化较差。或者系统B,它很安全,很去中心化,但可能不适合开发应用。
所以未来的区块链基础设施领域,不太可能形成单一的寡头。
谢谢大家。
本文整理自钟家鸣演讲,并作了适当补充、拓展,未经本人确认。责任编辑托尼托尼·98(fengyutanjun)。
- END -
MORE | 更多精彩文章
合作请加微信:bangcbd
推荐邦哥的好朋友“毒舌科技”, ID:dushekeji