阿八博客
  • 100000+

    文章

  • 23

    评论

  • 20

    友链

  • 最近新加了很多技术文章,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

Fractal CTO 范磊:PoS 能不能实现真正去中心化?

欢迎来到阿八个人博客网站。本 阿八个人博客 网站提供最新的站长新闻,各种互联网资讯。 喜欢本站的朋友可以收藏本站,或者加QQ:我们大家一起来交流技术! URL链接:https://www.abboke.com/jsh/2019/0912/112672.html

2019年9月6日,Fractal Platform CTO 范磊在Fractal社区,进行了主题为《PoS能不能实现真正去中心化?》的在线直播
文章比较长,约5000字,但都是硬核干货,希望大家能看到最后

以下是部分直播内容整理:

大家好,这是我们第一次在比较公开的环境下进行分享,今天会从六个方面来讲,主要围绕区块链的一些基本原理设计、Fractal之前做的工作,以及我们对行业的一些看法

为什么使用PoS共识算法

我们先讨论有关PoS集中化的话题,这可以从两个角度去理解,一是技术造成的集中化,当共识协议无法容纳大量节点时,开发者迫于无奈将节点数缩减到很少,这就产生了集中化现象,这块具体内容我们在后面PoS协议分析的时候会讲到

另一个是经济模型造成的集中化,PoS 系统的收益与持有的stake数量相关,这会造成stake持有量大的人会有更多的stake,而持有量少的人无法参与挖矿
这种担心是非常合理的,不过即便是在最开放、最公平的系统中,财富的集中化在整个人类社会中也是不可避免的

那么在经济系统中产生了集中化后,我们看看PoS会不会带来一些负面影响?人类社会发展了这么多年,虽然产生了很多资本家和金融大鳄,但是并没有影响社会稳定,因此可以说明这个事不可怕
我们只要能保证财富的正常流通,以及再分配的机制就可以了
有人认为它有投资价值,自然会相对高价的购买stake,反之则会被抛售,在这之间自然会形成一个动态平衡,所以我们认为只要有一个正常的流通机制,那么PoS的经济集中化不是问题

如果不用担心这个问题的话,其实PoS成为大多数公链的选择有一定的必然性,因为它的优点是显而易见的
除了节能之外,尤其对于新公链来说,PoS系统会更加友好

PoW是完全开放的,其算力也是标准化的,那么对于恶意攻击者来说,会较容易搜集到足够多的算力来对新公链发动攻击
在PoS系统中算力跟stake相关, 如果要发动攻击,你唯一能做的就是从二级市场去获取,这个操作自然会推高stake的价格,那么一方面就保护已有投资者的利益,另一方面也提高了攻击者的成本
所以对于新公链来说,被恶意攻击的概率会更低一点

所以我们采用了PoS共识算法,我们这个项目本身学术背景非常浓,我们从16年就考虑设计纯的PoS共识算法,直到17年,算法就大概成型了,所以我们也自然地把PoS作为我们努力的方向
但是PoS的设计是非常困难的,我们看到市面上有大量雷同的设计,我后面也会详细讲

PoS共识协议设计难点
其实PoW的成功是有一定代价的,即能源消耗,但其带来的好处是限制了攻击者的能力
在这种分布式系统里面,我们想要得到一个有序的结果,有两个需要面临的挑战,第一,谁是合法的参与者?在早期的分布式系统里是靠设备注册,如果没有注册过程,谁都可以进去,那么坏人就可能占大多数
也就是形成了所谓的女巫攻击(sybil attack),二是发言的无序性
如果用户在系统中发很多垃圾信息,会导致实现共识非常困难
而PoW巧妙地运用了硬件资源的限制,解决了这两个攻击的问题

在PoS系统中,即便没有硬件资源的约束,但stake相当于用户的准入门槛,所以女巫攻击的问题我们不用担心
我们将关注点放在第二个问题上,如何排除噪音最终形成确定性的大家一致认可的结果?这里面有个很重要的概念,也是是密码学或分布式算法中研究了很多年的协议,我们叫交互式协议
交互式协议的过程就是把坏人筛除掉,最终形成一个结果,目前类PoS的协议基本上都是使用这种交互式协议来完成的

但交互式协议有个问题,如果要达成一个结果,需要网络上很多人参与交互,并且是多轮交互,这时候交互的过程非常耗时,即便带宽很大都不行,因为网络会有延迟,延迟和带宽是两个概念,所以交互式协议通常延迟比较大,网络性能不好
尤其是参与者增多之后,网络的延迟或整个的协议复杂性,不是呈线性变化的,它至少是平方或者更高次方的变化
那么在这种情况下,PoS的设计就变得十分困难

我们必须要找到一个新的设计方法或者思路
在找到新思路前,我们来看看古典的算法是怎么做的?

PoS发展史

PoS共识协议可能近两年大家听到的会比较多,但其实它的相关技术发展大概已有30多年了
比较广泛的是PBFT或者BFT这个名词,就是拜占庭类协议
这里有个学术研究的图,总结了BFT类协议的发展历程

针对这个问题,我们有个greedy策略,也是iChing协议设计中最精妙的地方
我们鼓励好人也在分叉的地方挖矿,即时不是链最长的地方,从下图中可以看到,有1greedy,2 greedy或full greedy几种策略,当然,对好人来说不会用full greedy,坏人有可能在所有地方尝试

我们鼓励好人做2或3 greedy,得到的结果是好人能让诚实链的增长速度达到原来的2.2倍左右,以此来抵抗坏人的链的增长速度,也就是说Nothing at stake攻击带来的影响并不可怕
我们通过鼓励好人使用greedy策略,来抵消坏人的优势,这样我们就不需要使用交互式协议来排除分叉

所以基于以上分析,在我们的iChing协议中,所有的矿工只需要像Bitcoin一样,找最长的链产生区块然后发出去,当然,我们除了最长的还有次长的等等,这按照算法要求来做就可以了
iChing可以支持类似Bitcoin这种规模的参与者,我们不要时间同步的假设,也不需要交互式协议
所以说iChing的系统可扩展性,或者说是去中心化特性跟Bitcoin是一样的

基于iChing共识的公链Fractal Platform

基于上述研究结果,我们在18年上半年开始,筹划做一个全新的公链系统——Fractal Platform,为什么叫Fractal?刚刚讲到我们的链会有很多分叉,Fractal就是分叉的意思

我下面讲一下,基于iChing我们所做的Fractal公链
iChing本质上只是一个共识协议,如果我们把它当做支持未来区块链落地应用的架构来说,那么还有很多问题要解决
我们解决了PoS去中心化共识问题,还要提高性能或者说吞吐率
这涉及到Fractal另一个重要的技术点

我们经过严谨的计算分析,得出了区块链系统性能的瓶颈在哪,一个是共识,比如说交互式的共识,它本身就会把网络卡住;另外一个瓶颈就是网络层,现在所谓的1万甚至10万TPS的项目,远远不是我们家用或普通商用的网络带宽能承受的,并且在区块链系统中还有额外的开销,就是交易数据
交易数据通常是小包,大其在网络中传输的效率很低

举个栗子, 比如船运货,如果货物都是散装的,各种各样的货物,它的运输效率会很低,而现在海运为了提高效率,会采用集装箱的方式
我们在网络层(Layer 0)上有一个创新的优化,叫作Backpacker
它的机制就是把小包通过packer打成一个标准的集装箱,这样我们就可以有效的提高网络对于小包的处理的能力
我们这里数据的集装箱,也就是 packer打出来的小包叫作 pseudo-block,然后将其传给所有的共识节点
这里利用了PoS一个天然的好处,就是将区块打包放在共识区块之后,节点产生共识块后,我们再把pseudo-block组成新的真正交易区块
但这时候真正的交易区块已经不用传了,因为pseudo-block已经传遍全网了,我们只要传输很小的meta-block,也就是这个block头部就可以了

所以Fractal会提供一个非常平稳的网络流量,使得带宽利用率很高,因为既没有小交易数据包的消耗,又没有大共识块的冲击,所以整个网络的性能优化非常好

Fractal基于iChing和Backpacker这两点创新,就可以在跨大洋跨洲的真实网络环境下,实现超过3000TPS的完全分布式的去中心化PoS系统

Fractal当前开发进展及未来规划

Fractal经过一年的开发,我刚才讲的所有的特点和协议都已经完全实现,从核心网络共识、钱包接口、智能合约已经DApp的demo,也已经全部具备
我们的共识节点已经在跑了,目前主要节点部署在亚马逊上,当然我们也尝试过在阿里云等其他多种不同的云上同时部署节点

下面是我们配套的区块链浏览器总览图,包括block数量、时间数量,当前的TPS等等,这是我们跑的一个小的背景流量,大概一二百TPS
我们在压力测试的时候,会做到一两千甚至三千的TPS

下面的界面是有关钱包的,大家可以看到,这是一个全功能钱包,从发交易到部署智能合约、调用智能合约以及等待交易确认等等功能都已实现

这个DApp的特点是接受交易双方的随机数输入来实现绝对的公平,整个的过程是完全开源的,不是依赖于单独一方产生随机数,右上角的彩色小点都是鼠标移动的时候产生的随机数种子

所以大家可以看到Fractal目前的完成度是非常高的,也非常欢迎对这个项目有兴趣的各路英雄,以各种形式来参加我们的项目
我下面就稍微说一下Fractal未来的规划
当然,一方面是完善目前的系统,我们还有非常多的细节需要去改进优化
另一方面,也是跟社区关联最大的,就是如何来参与这个系统

我们将Fractal定位成一个基础的功能平台,希望上面会承载不同的应用,我们也会做一些技术上的储备和支持来使得它真正成为一个生态系统
比如内置的去中心化兑换机制,大家在上面做应用可以发行自己的token,发行后,开发者不需要去考虑用交易所来兑换,我们内置的机制就可以跟其它主流数字货币进行兑换,这样一来就保证生态开发者的利益,平台是不会侵犯和抢占这部分利益的
另外,像随机数的产生,以及链下信息上链的oracle(预言机)机制等,我们都会提供内生的支持,所以也非常欢迎大家来参与Fractal整个生态的建设
以上就是我今天的分享,谢谢大家

Fractal Platform 官方渠道

相关文章

暂住......别动,不想说点什么吗?
  • 全部评论(0
    还没有评论,快来抢沙发吧!