为何咱们须要另外一种区块链?

2016 年年初,Eris Industry 最先把 BFT 的共识引入到区块链中,创造了许可链。秘猿科技创始人等在 Ethfans 作了不少次 Meetup,当时讲了为何咱们须要许可链。简单来讲,在比特币的区块链上咱们实现了不记名资产,可是在不少金融场景里面咱们会须要不少记名资产。咱们须要知道资产是登记给谁的、身份是明确的、可追溯的,而不是一个彻底匿名的环境。区块链若是要真正作到商业落地,身份融入区块链是一个必要条件。因此,在 2016 年初,咱们设计与开发了企业级高性能区块链内核 CITA,并于 2017 年开源。CITA 从开源至今已经有超过 10 个版本的稳定迭代,目前已经有包括招商银行,中钞区块链研究院等多家银行和国有大型机构使用 CITA 搭建本身的底层架构。( P.s 本文首发于 2016 年 6 月的我的博客

秘猿科技区块链小课堂第 4 期
点击关注秘猿科技在思否的技术社区吧~算法

出世

2007年,中本聪踏上征程,开始寻找困扰密码学爱好者多年的一个问题的答案:咱们能不能在数字世界中构建一个点对点的现金系统?数据库

2008年,在一群密码朋克的汇集地metzdowd邮件列表上,比特币白皮书悄然问世。这篇划时代的论文算上引用只有短短9页,简洁明了的描述了一个史无前例的系统。segmentfault

2011年,我从正热衷于挖矿的好友那里据说了这个项目,但真正引发我极大兴趣的,是名为Paul Bohm的用户对Quora上一个提问的回答,他在文章中将比特币和拜占庭将军问题联系到了一块儿。这篇文章为我打开了一个新世界的大门,这个世界的基石不是密码学货币,而是区块链。(最带劲的是,这个世界没有奇怪的防沉迷系统...)网络

区块链其实是一种新型的分布式数据库。这个数据库与以往的分布式数据库之间最大的不一样,在于它可以容忍所谓的拜占庭故障。拜占庭故障是一种最宽松的故障类型,节点被黑客控制所能表现的任意行为也是一种拜占庭故障。能够容忍拜占庭故障的分布式数据库,只有在网络中的多数数据库节点赞成时,才会执行客户端请求的操做。换句话说,没有任何一个单一节点,或者容忍数量以内的多个节点,能够擅自修改这个数据库里面的数据,所以即便这些节点被黑客恶意控制,他也没法写入错误数据或者篡改之前的数据。数据结构

这样一个不能被篡改的共同维护的数据库,记录的是从数据库开始运行以来全部的操做和数据。任何人都不可否认这些数据的真实性,它是一个惟一的可信数据源,能够做为其它须要信任的业务的基础。它将一座座的信息孤岛链接成了一个完整的世界。有了这样一个数据库咱们就能够创造出许多之前不可能存在的应用。中本聪用这个数据库记录了一个现金帐本,因而比特币诞生了。在这样一个由遍及全球的节点共同维护的网络上,每一笔转帐记录实际上均可看做数据库中的一个操做:把 A 的帐户余额减小 100,再把 B 的帐户余额加上 100。架构

若是在数据库里面记录谁拥有多少股票,咱们就获得了一个股权登记系统,若是在里面记录域名和 ip 的对应关系,它就变成了一个域名注册系统。最棒的是,这些数字形态的股票,域名,各类各样的资产,还可以在这个 7*24 小时持续运行,无人可篡改,多地备份强力容灾的系统上自由流转!
共同维护一个数据库,也就意味着无需对帐,下降告终算清算的成本。资产可在网络中轻松流转,交易摩擦几近于零。而数据没法篡改的性质,又完美的响应了监管机构的要求,根据摩根士丹利的分析,仅这一项就能为银行节约百亿美圆规模的合规成本。框架

“完美。”异步

成茧

惋惜事情并不如想象的那么简单。在比特币以后,人们按照这些想法在公有链上进行了一系列的尝试(染色币,二代币,etc.),却渐渐的发现,区块链的万里晴空上,还飘荡着两朵乌云。分布式

第一朵乌云,是区块链的性能问题。以比特币为例,目前整个系统的吞吐量最大为每秒 10 笔左右(与单笔交易数据大小有关),而一笔交易须要至少 10 分钟才能获得确认响应(更严格的标准下须要 60 分钟)。这样的表现远远没有达到诸多场景下的实用标准。ide

乌云之二,是所谓的肯定性问题。肯定性的意思是,当你获得一笔交易的确认响应以后,这笔交易应该就算是最终肯定,永远不能撤销了(除非法院判决之类的事情发生)。若是不能保证这一点,咱们不管如何没法将房产股票这些资产放到链上进行流转。

不管是工做量证实 PoW,仍是权益证实 PoS,实际上都是由制造后面区块的人,不停的对以前的每个区块进行投票。以 PoW 为例,每一个新制造的区块是一票,算力高的人,将得到更多的投票机会。因为投票一直在持续,永不结束,所以理论上每一个区块都没有最终肯定,由于后面还有无穷多的票能够用来否定它的有效性。现实中,投反对票的成本与被投票区块的年龄有关,年代越久远的块须要越多的反对票才能推翻(也就等于须要越多的算力)。只要区块中包含的交易价值够高,高过推翻这个块所须要的成本,攻击者就有动力去实施这样的进攻。

不管是性能问题,仍是肯定性问题,根源都在于公有链的共识算法设计上。公有网络的本质决定了,网络上的节点都是匿名的,没有真正的身份,因此公有链的共识算法必须基于这一点来设计,若是不能正确的限制匿名节点,很容易就会陷入女巫攻击的汪洋大海。仍是以比特币为例,由于节点都是匿名没有身份,中本聪天才的将本来设计用来防垃圾邮件的招数,工做量证实用于出块节点的选择,再由以后的出块节点对前面的区块投票,以算力的限制代替了节点身份的限制。

虽然在比特币以后,又有包括 GHOST, Inclusive Blockchain Protocol 等各类改进出现,可是受制于匿名网络这道深层的藩篱,区块链的性能问题并无根本性的进步 - 以太坊的共识设计能够算是表明了当前的最高水准,也仅仅作到了平均 15 秒的时延(区块间隔),吞吐量也依然停留在个位数每秒。更糟糕的是,不管哪种研究,都没能给出肯定性问题的解决方法。

随着研究的深刻,咱们发现,从更底层去看,区块链其实是融合了点对点网络,密码学签名,哈希数据结构,以及共识算法的一种新型技术组合。点对点网络保证了无单点故障甚至多点故障,密码学签名使得每个操做均可鉴权可审计,哈希数据结构使得全部的数据融为一体,没法单独修改其中的一点,而共识算法则是全部节点能造成协力的关键。这个组合模式才是区块链的本质。咱们也许应该回头看看,在这个框架之下,什么是能够改变的。

因而就像经典物理天空的两朵乌云给世界带来了相对论与量子力学,区块链也迎来了新的思路。

化蝶

当咱们坐下来从新审视区块链的大部分应用场景时,会意识到一个特色:不管是房产,股票仍是域名,都与身份有关。在这些场景里面,咱们必须先明确的知道谁是谁,而后才能把某种资产登记在他的名下。换句话说,咱们要处理的问题是记名资产,而不是中本聪在比特币白皮书里所说的,现金,一种不记名资产。

若是将区块链用于记录记名资产,这个网络上的用户天然再也不是匿名,因而其中的共识算法只要针对一个非匿名的网络来设计。只要修改后的共识算法依然可以容忍拜占庭错误,那么一个由这样的共识算法,哈希数据结构,密码学签名以及点对点网络所组成的体系,依然是区块链,它保留了区块链的全部优势。

而非匿名网络中的拜占庭容错(简称BFT)共识算法已是一个硕果累累的领域。以 Leslie Lamport 在 1982 年发表的 <The Byzantine General’s Problem> 为开端,老爷子给同步网络中的拜占庭容错共识轻轻的划了一条不可逾越的边界。接着 Fischer, Lynch, Paterson 在 1985 年发表的 <Impossibility of Distributed Consensus with One Faulty Process> 又否认了异步网络中拜占庭容错共识的可能性,给这一领域又套上一条枷锁。直到 2001 年 Castro 和 Liskov 在 <Practical Byzantine Fault Tolerance> 发出一声呐喊使得人们发现,证实了不可能又怎么样,一个实用的算法不须要面面俱到!因而更多的实用性算法如雨后春笋般涌现,拜占庭容错共识算法不管在时延仍是吞吐量上都有了巨大的进步。

这些现成的 BFT 算法还有另一个好处,由这一类共识接受的交易是彻底肯定的!每一笔交易在通过身份可信的节点验证以后就永久固定下来,不再能被推翻。因而很奇妙的,对需求的分析将匿名的藩篱化解以后,区块链的性能和肯定性两大问题也随之消散。不只如此,因为网络上用户的身份可知,诸如 KYC/AML 之类的常见合规需求也变得十分容易。

一个这样的区块链系统,其中可能有数十个可信节点承担维护网络共识处理用户请求的任务,其它节点能够是表明用户本身的节点,也能够是中间服务商运行的节点,为用户设备上的轻节点提供服务,还能够是监管机构运行的节点,监督整个网络中的交易数据。这样的区块链系统和公有链并没有本质上的不一样,只有管理上的差异:公有链容许任何匿名用户随时加入退出,而咱们的新型区块链系统则只容许经过身份认证的用户加入网络,这样的区块链能够被叫作许可链,又能够依照其中节点的全部权而划分为联盟链(节点由一个企业联盟维护)或是私有链(节点由单个企业维护)。

启程

公有链与许可链服务于不一样的场景,不一样的目的,在将来会扮演各自的角色。咱们以为在不少场景会须要有身份,许可链是一个天然的,有身份的区块链系统;许可链和联盟链,它的共识范围更小,适合更多的场景。因此,基于这两点,许可链还有很大的潜力和探索空间。这也是秘猿科技Cryptape 成立的目的。咱们相信,这些产生信任的机器能够为这个世界尤为是这个国家带来巨大的价值。

相关文章
相关标签/搜索