Bitconch

The world's only high-performance blockchain up to 120,000 TPS

Contact Us

Blockchain Technology Summit / Caesar Chad: how to build a high-speed blockchain lower-Layer Protocol?

Mr.Caesar Chad  

      2018年11月11日,区块链底层技术学术交流会在中国上海举行,前谷歌工程师、硅谷IBM分布式账本工程师、以太坊代码贡献者Caesar Chad先生,就如何构建高速区块链底层协议,展开深度演讲。

贝克链多元化技术团队

      首先给我们介绍了贝克的多元化技术团队,团队成员分别来自谷歌、IBM、唯品会、华为、京东、GoldmanSachs、以及支付宝等,多元文化架构,来自不同国家的IT工程师,在北京、上海、洛杉矶等五大城市。


分布式账本技术

今天要讲的就是区块链,那么区块链是什么呢?

      它就是Distributed Ledger Technology分布式账本技术,那么分布式账本技术怎么来的呢?首先要感谢Diffie教授1976年发布的密码学新方向的论文,在1980年代David Chaum提出的Ecash和CypherPunk运动,都是基于Diffie的密码学所产生的,直到1997 Adam Back的HashCash(比特币经常听到的工作量证明的前身),2008中本聪发现的比特币和2015 Vitalik Buterin的以太坊,都是由于Diffie奠定了区块链中所有的一切,如果说中本聪是区块链之父,那Diffie就是是中本聪的祖师爷了。

区块链的作用是什么?

      首先区块链解决了在互联网环境下,在分布式环境下,完全没有信任中心的环境下的信任问题,在分布式网络当中,其实很难找到一个信任对象,因为在分布式网络中,你不知道这个节点的背后站的是什么样的人,什么样的机构,什么样的机器。那这时候,区块链运用他的技术就解决了信任的问题,传统的就必须有一个信任中心,例如银行,我们要转账,我们就要相信银行能老老实实的在他们的账目上记载上我们的的转账数据,然后他这样可以解决双方的信任问题。但你所有的信息和私密活动都被他们所控制,被监控,这样就给很多人的隐私带来很大的挑战,所以区块链技术,通过它独有的共识算法,来解决信任问题。


区块链三步曲

区块链的三步发展,第一步支付,第二步应用,第三步就是建设一个应用平台。

Bitcoin是第一代的区块链,它非常简单,就是将所有区块链接起来,然后每个区块的哈希值中存储的是你的转账信息,它使用POW算法,实现了一个功能,就是价值传输。

以太坊是第二代,他是在价值传输基础上添加了有限编程能力,这时以太坊他们提出了虚拟机和世界计算机这种概念,他们的构想是在全球制造一个虚拟的全球计算机算力平台,可惜他们使用的是POW和POS,有先天性缺陷,一个是速度特别慢,一个是强大的中心化,给很多人造成了作弊的风险。



贝克链区块链

那么下一代区块链技术是什么样的呢?

      首先,我们认为一个交易要在非常短的时间内被确认;第二,几乎没有成本或非常少的成本,那么在这个公有的网络上实现这个传输价格,传输信息,运行程序等功能;下一个一定要大容量,很多用户在使用,大量的用户能同时使用和交互,“兼则融汇天下”最后下一代区块链技术一定要兼容很多的语言,现在的比特币和以太坊都有自己的语言,但也限制了他们的使用范围,根据这些情况,我们有了自己的方向,那我们该怎么做呢?

      首先,贝克链的工作是提供一个下一代的分布式应用平台。这个平台要满足两个方面:第一,他是一个高性能的公共平台,可以运行很多分布式应用;现在你能想到的打车、微信等,将来都可以运用在我们的区块链上,与以往不同的是,速度更快,没有中心环节;第二,它具有极高的兼容性,对于开发者来说,不再需要学习新的语言,使用现有的语言就能开发出兼容我们系统的分布式应用。



解决方案

那么我们这些想法怎么来的呢?

      有句话叫“读历史,而知未来”,我们研究了英特网的发展历史,在英特网的发展中我们发现了三个泡沫时期,第一个泡沫时期是,使用html的静态页面;第二个泡沫时期是,静态页面加入了一点点的编程语言;第三个泡沫时期,是出现了互联网的多种应用平台。很多人都说区块链现在走的是互联网的老路,那么我们映射一下,就能看到区块链下一步会发展成什么样?

1.0时代是比特币、莱特币等传统加密币的时代

2.0时代是以太坊在价值传输系统上加上了编程语言,在区块链网络上支持应用程序

3.0就是贝克链要做的,我们要打造一个下一代高速的的区块链网络应用和算力平台,就好比Apple、安卓、甚至是Facebook和微信,这些系统都在走应用平台的路,这也是贝克链前进的方向,也就是说我们现在做的就是未来区块链世界的底层基础架构,一个区块链世界的苹果和谷歌,未来的场景,就是贝克链提供一个基础的平台和算力,开发者们使用我们的平台开发、发布和运行各种各样改变世界的应用。



Bit-R量化信誉演示图

我们主要做什么?

      首先,在全球范围来看,影响区块链走向大规模落地的最大问题,还是基础协议本身的问题,主要在公式算法、资源管理和兼容性,这3大瓶颈。因此,我们采用分而治之的方案,首先,通过社交图谱学和有向无环图,我们设计了新的算法,我们称之为POR共识算法,第二步 我们利用CPU的五步架构极大提升数据处理能力,第三步,创制了一个金字塔式的状态广播结构,可以快速的传播状态发生的变化。通过这三种方法,可以实现了我们现在12万的TPS。

      这里我要说我们的POR算法,POW实际上是一个计算竞赛,用户可以买计算机或矿机,来运算一个超级困难的数学难题,这就消耗了大量的时间和电力,同时也是一种证明:通过时间和电力的消耗来证明数据的正确性;而POS算法,是用权益来证明正确性,这两种共识机制都有巨大的缺陷,首先,POW耗费了巨大的电能,而POS呢,少数集中的权益使用者,造成中心化的出现。POW和POS都是通过举证一个宝贵的资源,来证明自身的信任价值,那么我们就要问,还有什么比电、时间和权益更宝贵的呢?


拜占庭容错

      所谓“人无信不立”,我们可以通过定义一个节点的信用数值,来衡量一个节点的可信度,这个衡量体系我们称之为Bit-R。具体怎么衡量呢?不同于POW和POS都是从一个维度去衡量,我们创新的POR使用了三个维度来衡量,即时间,节点互动情况和贡献活跃度情况,这样就可以更加立体的确认节点,他到底是不是真实的,我们再利用有向无环图对于交易行为进行建模,因为所有的交易都有先后顺序。比如:现在要花100元钱,首先我们要知道这100元从哪里来的,之前的交易会决定下一个交易,通过这种方式,我们可以在时间轴上表示所有的交易。然后我们再利用SOCIAL GRAPH社交图谱的方式,我们就可以建立每一个节点,记录他的活动和表达。拥有了一个正确的模型之后,我们可以用数学来确定每一个节点的可信度,然后通过PBFT(实用拜占庭容错算法)进行节点之间的共识过程,为什么我们要用PBFT,他的好处是什么呢?首先他具有确定性(Deterministic),一但确定就确定了,你可以直接确定,并达成交易,相比比特币来说,当一个交易被记录之后,他是不确定的,必须等待6个区块之后才能确定,在这方面我们就有更大的优势。

      此外,PBFT的最大优点还是具有拜占庭容错功能,什么叫拜占庭容错呢?拜占庭容错来源于拜占庭将军问题,传说古代就是两位拜占庭的将军同时围困一座城堡,同时进攻就会成功,但如果有一方无法按时行动,就会失败。将军之间通过信息传递信息来确定同时进攻的时间。但是在战争环境下,我们无法确认获取到信息的真假,甚至是能不能得到消息。在区块链网络当中的共识达成,其实就是拜占庭将军问题,你没法确定你得到的信息,是真是假,是来源于作弊节点还是诚实节点。我们的POR通过使用Bit-R和PBFT就可以解决拜占庭容错问题。但是,仅仅有了共识机制但还无法解决我们的高性能挑战。


BLAZE 架构图

      第二方面就是资源管理,在计算机当中,我们要运行很多事务,比如网络、远程查询、本地查询,有时还会做一些本地的高速缓存。这些都非常复杂,直接限制了我们的交易和处理速度,这时我们就有了BLAZE架构。

      这个就比较复杂了,那这个是怎么来的呢?首先我们都知道在CPU设计中,他有一个五步流水线设计,由 此受到启发,我们设计了BLAZE架构。我根据这张图来给大家解答,这从获取数据、解码数据,验证哈希值、更改状态及存储数据。单独五步的好处是,我们可以将性能瓶颈的哈希运算和存储数据独立出来,分开处理。这个架构可以将大量的数据并行处理,那首先就提高了机器上的效率,所有的运算资源每时每刻都在操作,所有的运算单元都是在工作状态而不需要等待。

      在整个五步流程中,最耗时的是哈希运算和数据存储。对于哈希运算来说,幸运的是,我们现在有了多核的概念,比如说你的手机、笔记本、电脑都有,过去你的一个电脑当中的,只有一个CPU来处理数据,通过提高CPU的速度来提升性能,但是随着摩尔定律的发展,CPU中的芯片大小越来越接近他的物理极限,因为出现了多核的概念的,通过多个处理器的并行处理来提高计算机的性能。多核在CPU、GPU和ARM中,都有广泛的使用的,比如我们现在随便找一个二手的1060显卡,市场价格大概也就1000多块,也有1280个处理器。通过多核,我们可以极大的提高哈希验证的速度,也就是将一个哈希分配给GPU中的多个核心进行处理。


金字塔模式

      解决了处理数据,我们还需要快速的广播状态,对于此,我们设计了一个叫Pyramid Propagation的金字塔模式:将所有的节点分层,把Tier0当做一个节点,这一个节点上他的交易,状态确认后,它要传递给下一个叫Tier1和Tier1的节点,Tier1的节点传递给Tier2的节点,Tier2的节点传递给Tier3的节点,它们每次不需要把所有信息都传播出去,可能只是传一个数据头,在需要确认的时候,再临时的把数据拼凑起来,这种概念就有点像P2P网络或这Tor网络,也就是完整的数据总是存在于网络之中,你需要的时候他就可以下载下来。

      通过POR的三个方面,也就是第一、共识算法,第二、资源管理,第三、快速的传播状态,我们实现了性能的解决。

      最后一点就是我们的兼容性。我们提出了自己的虚拟机BVM,

      我们预计在2019年第一季度就发布。BVM是我们对于EVM虚拟机的颠覆,相对于EVM来说,我们的BVM支持更多开发的语言,跟多的OPCode,更多函数,这样就可以更好的服务开发者,加入到我们的生态,也就是说未来“得开发者得天下”。我们的这个贝克链对开发者来说非常的友好,你不需要学习,只需要进入到我们的生态,就可以得到很大的回报,而且我们还设计了很多套件,方便开发者在区块链应用程序上迅速成长起来。

      以上就是我们这一段时间以来的工作,如果大家有什么问题,我们也欢迎各种讨论,谢谢!