深度 | 区块链 到底应该怎样玩?
钟家鸣(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