漫谈下一代区块链【1】: 非技术宅如何科学评判满天飞的底层技术?
今年的ICO热闹无比,尤其是号称第三代区块链的项目 - 从DFINITY,EOS, Tezos,Qtum,NEO, Aeternity等等。有号称秒杀以太坊的,自称为区块链“安卓”的,自进化的,还有主打商业应用的。
除了被一个个新名词洗脑,和几乎忍不住要每次冲进去买币外,我们是不是应该停下来想一想 - 究竟什么才是次世代区块链技术?为什么需要他们而不是现在的以太坊?他们的实现方式有什么区别呢?他们真的能做到他们所宣称的吗?
借这个机会,我们来聊聊区块链底层的世界。
为什么说现在的区块链离大规模商用还差了至少一代?
以太坊平台的出现是区块链世界的重大革命,它许诺了我们一个”世界电脑”的愿景。 我们想象中的这个分布式操作系统可以运行无数的应用,不仅是ICO众筹,而且是分布式交易所、打车、微博、微信、供应链朔源,智慧城市,甚至完全去中心化搜索引擎。
然而离这个重大的目标,我们还至少差了一代到两代的技术。我们先来回顾下今天的区块链面临几个严峻的挑战:
“自行车”级的性能:最近的ICO热潮让我们清晰地认识到,目前公链网络(也适用于大部分私链)的吞吐量极其有限,而且不具备向外扩容性。一个几千人参与的热门ICO都会让整个网络堵上一天 - 注意,不是单个App,而是全网。同时,ICO本身的商业逻辑相对来说已经非常简单,所以更别说像VISA, 纳斯达克这样每秒万笔的吞吐量。这样的性能显然无法支撑起“世界电脑”所需要的大型计算能力。
链无法自主进化,而必须依赖"硬分叉"。区块链平台像一个生命体,它需要不断地自我适应和升级。然而今天的大部分区块链没有任何自我变更的能力,唯一的方式是硬分叉 - 也就是启用一个全新的网络并让所有人大规模迁移。然而,在比特币和以太坊的经验,我们已经看到每一次的硬分叉升级都面临一系列的社区分化风险,甚至面临各种僵持不下的局面,迟迟不能推进网络进化。
完全没有保险带,任何区块链App的缺陷都可能是致命的。今天盛行公链观念是“代码即法律”,然而2016年DAO 7000万美元的漏洞盗窃事件以及各大交易所不断被盗窃等种种教训,让我们不得不深思,这个观念本身的局限性和代价。当未来的银行、保险公司、大型供应链都运行在公有区块链上,他们的股东真的可以接受百亿美元被盗窃,却得到一句“代码即法律,我们也没办法”这种回答吗?我想我们需要一个更好的平衡。
PoW模式挖矿的巨大环境损耗和不可持续。
这些严肃的致命问题,是我们必须探索和进化到下一代的区块链的根本动力。
区块链平台:一个分布在互联网上的“有机体”
我们可以粗略地将区块链分为平台和应用两层。应用(也叫"智能合约",dApp)关心的是提供具体的功能,譬如一个供应链的应用解决的是供应链融资问题。而平台的部分关心的则是区块链本身的安全性、速度、带宽等。 以太坊式是一个典型的平台+应用的模式,这种分类方式同样适用于大部分其他的,诸如DFINITY, EOS, Qtum等。
区块链平台根本上来说,像一个分布式操作系统,其上可以运行任何(分布式)App。但这个操作系统和我们熟悉的安卓或者Windows,却有个根本性的不同 - 它并不运行在一个单台的PC或者iPhone手机上,而是背后有无数个PC(节点)在支撑这个操作系统。
这个结构性的不同正是区块链优势的来源 - 许许多多台电脑确保了即使其中一些宕机了或者损坏了,操作系统及上面的应用依旧安然无恙,所有的数据也都持续的保存。同样的,当新的电脑加入这个操作系统,他们也自动的和网络上其他节点进行同步。
这么来看,一个(健壮的)区块链几乎有些类似一个“有机”的生物体,即使单体的细胞损坏了,整个生命体和记忆仍然延续,并不断进行自我调整和动态适应。 同时,区块链底层技术的复杂性也来自于这种多点结构之间的协调和同步 -- 如果某些细胞是病毒怎么办,哪些细胞该被信任,如此多的细胞之间如何传达信息,通讯的速度被延迟了又会如何。诸如此类的问题是一个区块链架构师必须深刻思考的问题。
区块链平台有哪些主要组件?
这么一个分布式操作系统,需要哪些组件来构造这个“生命体”呢?
通讯: 为了支撑这个跨网络上许多台电脑的分布式操作系统,不同的电脑节点之间要进行不断地通讯,而且必须完全安全,不能被截获或者篡改,又不依赖一个服务器来协调。这个通讯组件在我们熟悉的例如BT或者电驴下载软件中也有类似的实现,因为他们也是一个点对点的网状结构。只是区块链中对于这个通讯组件的安全性和复杂性要求更高。
共识达成: 虽然这个操作系统横跨了网络中的不同电脑,但运行起来宛如一个单体的电脑。为了实现这点,不同的物理电脑之间必须随时同步,而又要随时抵御网络中恶意的电脑的攻击。这个通常是整个区块链中最复杂的部分,也是学术理论研究最盛产的领域之一。
可编程(虚拟机):平台本身的功能是有限的,因此我们必须要允许可编程性,提供一个虚拟机或者解释器来供第三方的开发者进行应用开发。就像Chrome或者火狐浏览器里,也有相应的JavaScript虚拟机来执行网页上的程序。
之外还有些和平台有关的辅助功能来让开发应用变得更容易,如编程接口和框架(如Truffle, Dapple等)。
解构公链共识问题: "你是谁" 、"你想怎样",“我们怎么办”
好的计算机科学来自于清晰地分解复杂的问题,并用不同层次的方案去解决。
“共识”这个词本身这个就隐含了一群“电脑”必须要达成某种一致,这是一个计算机科学经典的问题,已经至少有四十年以上的研究历史。然而,公有区块链的难点在于,要让一个分布式操作系统跑在互联网这个大熔炉之上(而不是譬如谷歌家的大型机房),我们不得不面对很多不确定性。
成员机制 ("你是谁")
首当其冲的问题,就是“你是谁” 以及衍生的问题“你”值得信任吗?这个问题又叫Sybil Proof,即如何防止大量的坏人混进人群中参与决策。 我们当然可以加入一个条件,要求每个加入区块链的电脑节点必须被某机构认证获得数字证书,然而这又违背了去中心化的基本设计,因为这个认证过程本身依赖某个中心化的机构,使得网络有了单个的结构性依赖,因此一般来说我们通常不作为公链上的考虑选项。
于是我们就回归到了经济成本作为一种基本机制。无论是比特币和现有以太坊的工作量证明(Proof-Of-Work), 还是权益证明(Proof-Of-Stake),本质都是让参与网络具有一定的经济成本。PoW的实现方式是必须购买某种挖矿芯片(CPU, GPU, ASIC等),并且持续地支付电力来参与。而PoS的经济成本是必须购买一定量的代币并质押在网络上,这产生了违约和利息的成本。
共识机制 ("你想怎样"和"我们怎么办")
当我们假设这个网络中大部分已经是“好人”控制的电脑了,下一个问题就是如何让这些节点之间达成高效的通讯和达成一致。这就是共识算法问题了。可以类比为,当我们知道一个人的身份后,我们想要知道”你想怎样“,以及根据各个成员的回答来最终决定”我们“(也就是这个区块链)应该怎样。大家听到的PBFT,HoneyBadger等算法都是这一个层次的问题。
如何评价好坏的成员机制设计
我们先来谈谈刚才说的第一大类问题,即基于经济成本的成员机制。什么才是个好的成员机制呢?我们可以简化为3个E:
Entry(成员进入)成本: 即需要什么(经济)代价才能成为成员,参与网络
Existence(持续)成本: 即参与区块链需要持续付出什么经济成本
Exit (成员退出) 成本:如果被请出成员,要付出什么经济成本
让我们来用具体的例子来看不同的结构产生的健壮程度。
举例 - 采用PoW的比特币和以太坊:2个E
进入成本:挖矿需要购买GPU、fpga或者Asic芯片,属于一次性投资。
持续成本:挖矿需要消耗大量电力,因此有持续的运营成本。
退出成本:无。由于比特币没有任何挖矿的身份信息,即使恶意攻击者依然可以反复的使用同样的挖矿设备进行持续“双花”攻击,而无法被清除。
在这个结构下,我们发觉一个重大的问题就是恶意攻击者可以无限次的利用一次性投入的成本进行低成本地反复攻击,而没有直接被网络剔除和惩罚的能力。这种结构导致了比特币的安全性必须用极大地挖矿成本来填补 - 提高作恶成本的唯一方式,是让足够多的”好人“参与网络,并消耗巨额挖矿成本,进行军备竞赛。
举例 - 采用PoS的DFINITY和Casper(以太坊2.0) : 3个E
进入成本:挖矿需要质押代币形式的保证金(Security Deposit)
持续成本:保证金本身就是资金成本
退出成本:所有的保证金都关联一个验证身份(Mining/Validator Identity)。一旦发现恶意行为,将会被予以限制或者经济惩罚。
这样的结构使得坏人的作恶成本不仅仅面临“好人”们的资金投入竞争,而且面临随时被系统监视作恶行为并被永久踢出网络和没收保证金的风险,于是造成了无上限的恶意攻击成本(Unbounded cost)。
/ 待续 /
这一篇我们简单的讨论了什么是区块链平台,下一代的区块链的核心挑战,和共识机制要解决的基本问题。下一篇中,我们将详细讨论该如何评估常见的共识算法及他们的取舍。
/ 关于 /
Tom (丁磊)是总部位于硅谷的分布式计算实验室和孵化器String Labs 的联合创始人和CEO. 其孵化的项目包括DFINITY无限云计算,PHI去中心商业银行系统,消费级安全计算设备等。他也是位连续创业者,之前是区块链大学blockchain University的联合出品人,以及全球首个专业代币发行平台的创始人等。他同时也是硅谷和纽约多家投资基金的区块链专家顾问。
DFINITY 是无限扩容的智能分布式云计算系统和第三代区块链。它带来了一系列前沿的密码学和分布式系统创新, 实现具有里程碑意义的公链3-7秒最终确认,比目前主流公链提升50-100倍速度。同时,在治理机制上引入了 区块链神经中枢系统 (blockchain nervous system), 用算法来治理网络,实现网络无分叉的升级,逆转黑客攻击等。
DFINITY网络:http://dfinity.network
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit