维港区块链

专业的区块链资讯、技术和应用的推广和交流平台

波霎公链组负责人董天圣先生:Pulsar公链技术 ——维港区块链 - 区块链投资沙龙第五期 嘉宾演讲实录

维港区块链投资沙龙第五期于5月19日下午在香港上环Playground.work顺利举行,此次沙龙以“IXO, 代币融资的创新进化”为主题,吸引众多致力于推动区块链发展、关心代币融资创新进化的行业领军人一起深度聚焦代币融资最佳模式、复盘IEO目前进展阶段、探求创新与监管平衡,现场氛围热烈,精彩纷呈。维港区块链 – 区块链投资沙龙,是由区块链品牌营销机构 – 亮天传播和数字代币的投资数据服务与垂直社交平台 – 数贝科技联手打造的高质量线下沙龙活动,旨在凝聚香港和亚洲的区块链核心社群,促进多元交流和合作。

 

首位登场的是波霎公链组负责人董天圣先生,他从专业的技术角度对Pulsar公链的共识概述及共识算法进行了深入浅出的全面解析。波霎公链是区别于现有的比特股石墨烯算法、以太坊算法以及EOS的一个全新的产物。波霎拥有着绝对的去中心化,并且是在不损失TPS的基础上完成的,波霎公链采用了PoW+PoS双挖技术,这就意味着它兼具着现有大型公链的优点。

《波霎公链组负责人董天圣先生:Pulsar公链技术 ——维港区块链 - 区块链投资沙龙第五期 嘉宾演讲实录》

波霎公链组负责人——董天圣先生

 

以下是董天圣先生的演讲实录:

 

大家好,我是董天圣。比特币、以太坊都是基于POW的,而它的一个特点就是完全去中心化,但是它的性能不高。因为它要把所有的账本的数据写到所有的节点上,另外,为了挖矿,用户参与度也不高。但是如果在未来提高它的性能和TPS,根据区块链的融合性,它是不能兼顾的。因为在分布式系统有一个CAP准则,存在着一个不可能三角。放在如今区块链里面理解的话,去中心化以及安全性,性能是不能兼顾的。在之前大部分的方案中,为了提高性能,许多方案往往是舍弃了去中心化的原则。比如说像DPOS这个共识,最开始是从比特股提出来的,到后面进化到EOS,都采用了超级节点的方式。而比特币、以太坊其实是牺牲了性能这点。这就是我们波霎的一个特点:我们实现了POS+POW的混合模式,POS是股权证明,而POW是工作量证明。

《波霎公链组负责人董天圣先生:Pulsar公链技术 ——维港区块链 - 区块链投资沙龙第五期 嘉宾演讲实录》

大家可以看一下这张对比图,现在主流的共识算法POW都是从比特币开始提出来的,然后经过了长期的验证,目前应该是公认最公平稳定的,但是它仍然存在着一定的问题,比如说它的能耗比较高。因为需要消耗大量的能源,所以他们的性能比较低。POS解决了这个问题,它让挖矿并不需要进行那种大量的计算,其通过股权的方式来给用户发利息,这样不需要耗性能了,但是它也面临着另一种问题——容易分叉。DPOS为了解决前面的问题,它基于POS上面进行了一些改进,只允许超级节点出块。在这种情况下,一般的用户没有挖矿的权限。所有的新出块权限,全部在超级节点的手里。这样就牺牲了去中心化。另外,就垄断性来讲,POW有可能达到算力垄断,POS可能达成股权垄断。DPOS,因为只有超级节点可以出块,它变相的形成寡头垄断。我们波霎为了解决这个问题,就提出了我们要实现完全的去中心化、高性能的目标。同时,为了让用户尽可能多地参与到挖矿这个操作里面去,就把POW和POS相结合,这样提高了挖矿的参与度,从而避免垄断。

 

综合下来,我们主要有两个创新点:第一个,DSPOW,全称可以理解为代理股权的POW,是一种POW和POS混合的共识。它可以实现上面的三点:去中心化,反垄断,提高用户的参与度。另外,我们引入了新的概念,DAG。DAG可以对区块链的系统进行扩展,让性能提高。由于DAG很难达到全局的一致性,我们对它进行了改进。我们把DAG引入到那种区块里面,就形成了基于区块的DAG,这样就可以实现高性能。DSPOW是混合共识,结合了POW和POS的优点,普通用户也可以挖矿,它真正的出块是通过代理矿工出的,而普通用户也可以把自己的股权抵押给代理矿工,由代理矿工委托出块。代理矿工出了块,他的奖励会自动的发给普通用户。然后DAG,我们这里提出的DAG是基于区块的DAG,区别于传统基于交易的那种DAG。传统DAG可能性能的提高并不是很明显,但我们基于区块的DAG,可以较高的提高性能。

 

接下来我想介绍一下DSPOW,在DSPOW这个系统里面有三种角色。通常在正常的POW里面,也就是在正常情况下,是只有一种角色的,就是普通的矿工,就是用来挖矿,其他用户除了转账,什么事也做不了。一般的POS中,用户就是作为股东来存在的角色,由股东直接出块,而DPOS在这种共识里面更多起到的是代理的角色。而我们把它都结合起来,我们采用POW的方式,用普通矿工直接挖矿,而挖矿的竞争力完全由矿工自己的算力来决定。同时为了平衡普通矿工的算力我们还引入了代理矿工的概念。代理矿工像普通矿工同样可以挖矿,但是挖矿的时候,他挖矿的难易度,不仅仅取决于自己的算力,还取决于其他的一些股东,给他委托的一些股权,也就是说,如果有更多的股权委托给代理矿工,挖矿的难度就越低,这样挖矿就更有竞争力。如果有两个矿工在同样的算力情况下,一个是代理矿工,一个是普通矿工,假如说代理矿工不接受委托的情况下,他们的竞争力是相同的。而股东可以把股权委托给代理矿工,这个时候代理矿工的竞争力比普通矿工要高。当然代理矿工挖矿之后,所获得的收益,会有一部分会发还给股东。作为股东,自己的股权给挖矿是做了贡献的,这部分就是股东自身的POS收益。

 

总的来说,基本运行机制就是这样的:由股东把自己的一部分资产进行锁定,锁定之后,大家都不能动用了,这部分就是作为股权来委托给代理矿工,而代理矿工收到这部分委托的股权,在挖矿的时候,挖矿的竞争力会提高,挖矿的收益会自动地发还给股东。当然这部分资产是用户自己的,因为锁定了他自己也不能动用,代理矿工也不能动用,但是用户自己可以撤销,撤销了之后,就可以动用了。作为一个普通用户,要怎么成为代理矿工呢?其实只要在链上注册就行了,交易通过之后,代理矿工的账户就形成一个委托的账户,只有这种委托的账户才可以接受其他用户的抵押。当然,经过了这种委托确认之后,他成为真正的代理矿工,就是注册委托,股东接下来可以进行授权。授权就是把股权锁定委托给他,然后经过一定成熟期之后,就可以挖矿了,每次挖矿的时候,收益有两部分。第一部分是自己自身的那种POW算力来决定的。这部分收益是自己收走了,就相当于作为普通矿工的一部分。另外,有一部分的股权收益,也就是POS的收益,这部分会根据股东和代理矿工来锁定股权的委托贡献,由此来决定收益是多少。假如说,股东不想挖矿,可以随时把授权委托给取消掉,同时之前锁定的资产会自动地取消锁定,回到他可用的账户里面。这个时候,他可以直接用掉或者委托给其他的代理矿工。最关键的是难度目标值的概念。在POW里面,所有矿工在挖矿的时候,难度目标值都是一样的。这样的话,矿工挖矿的难度只由这个目标值来决定的。所有矿工在相同的目标值的情况下,他进行计算,矿机的计算能力越强,算力越大的话,就越能够挖到。但是我们对他进行了一个改进,就是说把这部分拆成两部分,这样的话,就有一部分可以拆成POW和POS两部分。POW还是针对所有用户一样,而POS会根据一个权重值来进行调整。我们会动态定义权重值,刚开始的POS和POW这部分都是各占一半的,都是0.5。当然随着时间的增加,会根据实际的收益进行调整。比如说在这部分时间如果发现POW的产能过高,会调整到倾向于POS。POS产能过高的时候,我们就会把他往POW的方向调整。首先算出全网的目标值,包括POW和POS,这个POS也是全网的一个平均POS的目标值。针对每一个矿工,再进行加权调整。对于每个矿工来讲,这部分依然是POW在所有用户中都是一样的,这部分是根据之前的平均POS进行加权算出来的。我们平均了之前POS值乘以总数,当年所有代理矿工的数量再乘以百分比,就得到一个对于这个代理矿工而言,所需要当年的POS的这个本地的一个目标值。所有用户的本地目标值加起来,正好就等于平均值乘以所有的矿工数,相应的,所有用户的一个平均数。

 

接下来讲GAG,我们提出了一个基于区块的GAG。在这里,我想先讲一下在比特币形成分叉的时候,比特币是如何决定哪条分叉为主链的。他其实就是根据链的长度 – 哪条更长。在比特币和以太坊都会有很多区块被浪费掉,因为单片的结构在同时并行的时候,有很多的支链都被挖出来,最后只会采用单链,所以的话,它其实很多性能是浪费掉的。在这种情况下,我们为了提升性能,主要通过以下两种途径,第一种就是牺牲了一部分去中心化的一个特性,就用更多的一个中心的节点,DPOS用的超级节点,利用节点约定好进行出块,像比特股、EOS就都是通过这一途径来提升性能。另外一条就是比较新的路,我们尽量不牺牲去中心化,尽可能的把分支的链进行交易,让他们能够生效。这样的话,就形成了我们这种方式。

 

基于区块的DAG,如何让他生效,这就是我们要解决的问题。第一个,区块如何组织,然后交易的项目顺序如何确定,还有如何防止攻击。区块如何组织,其实这里是和以太坊类似的,比方说我每次挖一个块的时候,我如果发现前面有一些其他的块,就把他纳入到区块里面,我们会想办法让这里面的交易都生效。既然,要把区块纳入进来,又要让它在里面的交易生效。这样的话,就会有一个问题,假如这里面的交易有冲突怎么办?面对这一问题,我们只要确定唯一的一个全序就行了。就是说我对所有区块中的交易进行排序,排序的原则是,我把每一个主链上的每一个区块,决定一个阶段叫epoch,首先先根据那个阶段来确定阶段的顺序,然后关于阶段内部的,对里面的区块进行一个区块的排序,这个是按照拓扑顺序来排,排好之后根据之前区块的顺序,依次就排出一个全序。执行的时候,前面交易有效,后面的交易如果跟前面的交易冲突的话,就把它去掉。只要没有冲突的话,就会生效。现在,前面的问题都基本上都确定了,还有一个轴的问题不会确定的,就是前面的轴链。这是轴链,在这个分支里面,又形成一个比较长的链。这轴链与轴链之间有可能形成竞争。关于轴链的选择,我会尽量在同一个高度上选择区块引用多的。这样的话,在这个高度上,我引用的区块比他更多,所以的话,我选择这边做轴,虽然他更高,他肯定成不了轴链,这样可以防止攻击。

 

第二个,如何防止攻击?就像刚才说的。因为前面的轴链选择的算法保证了我如果单独出一个链的话,他的竞争力不可能比那个考虑到更多区块的轴链会更高。这样的话,攻击链的长度更大,但是它的权重并不一定比支链的长度更大。其实就是说,我更遵循更长的规则的链,其实它的竞争力会比攻击链的权重会高的。因此,攻击链不会生效。因此,对于支链上的区块的顺序,其实取决于它在主链上怎么引用它的顺序。这都根据前面的排序原则来确定。我的演讲结束,谢谢!

点赞

Leave a Reply

Your email address will not be published. Required fields are marked *