DPoW依据市场供求同时展示去中心化、效率与安全性。

拜占庭共识算法测试(火星公开课第140期)(1)

以太坊创始人Vitalik曾提出区块链技术“不可能三角”:无法同时达到去中心化、效率和安全性,三者只能同时满足两个。

那么,如何才能设计出一个共识机制,同时满足这三者?

拜占庭共识算法测试(火星公开课第140期)(2)

8月4日21:00,应「火星财经创始学习群」轮值群主任铮、副群主廖志宇邀请,CelesOS联合创始人杨扬分享了CelesOS的新一代共识算法DPoW。

杨扬认为,Vitalik说得并没有错,但是他没有考虑时间这个维度。如果一个共识可以在DPoS和PoW之间连续且光滑的摇摆,那么这个共识就可以在系统性的层面展现去中心化、效率及安全性。

拜占庭共识算法测试(火星公开课第140期)(3)

DPoW就是他和团队提出的新一代共识算法。它与DPoS类似,但是票源不来自token而是哈希算力。矿工通过PoW计算难题,答案就是一张一次性的票,可以累积,然后投给区块生产者。

DPoW可以在DPoS和PoW两者之间连续动态平衡,依据市场供求同时展示去中心化、效率与安全性。

拜占庭共识算法测试(火星公开课第140期)(4)

以下为杨扬分享原文,由火星财经(hxcj24h)整理:

一、共识算法

今天和大家分享我们CelesOS使用的共识算法DPoW(委托工作量证明)。

首先简单回顾一下共识算法的发展历程。我们知道,一个没有唯一中心权威机构的记账方式需要一个共识来防止双花,也就是拜占庭将军问题。

借用张守晟老师关于熵和共识的理论:一个孤立系统通过做功来减少熵。根据这个理论,任何一个区块链系统内的块链记账系统,可以看成是一个孤立系统,熵的减少就是共识和秩序的增加,那么对区块链系统做的功,可以类比为共识达成的时间复杂度。

拜占庭共识算法测试(火星公开课第140期)(5)

Lamport在1982年提出解决拜占庭问题的口头算法,因为需要验证“将军”发送的信息不被其他“尉官”篡改,所以信息被传播的所有方式需要被遍历。口头算法的最大容错率为33%,算法的时间复杂度是个多项式,大约等于O(N^N)。随着节点数量增大,复杂度迅速上升,not scalable。

Barbara 在1999年提出PBFT,使用数字签名的方式取代前面用口头算法验证次级被“尉官”传递的“将军”信息真伪,算法复杂度减少为大约是O(N^2)。相比O(N^N)要小得多,但仍然是not scalable。

经过EOS系统验证,一个PBFT使用20个左右的节点是合适的。那么如何进一步降低达成共识所需要的时间复杂度呢?还记得关于熵的理论吗?可以通过外界对系统做功来实现,也就是通过能量的损耗来证明对系统的承诺。PoW,工作量证明,谁花的能量越多,越有效就会被信任。

拜占庭共识算法测试(火星公开课第140期)(6)

思路有了,需要的是找到一个足够难的问题,容易被检验,以及一个漂亮的激励机制:比特币。通过消耗一个爱尔兰国家的电力,比特币PoW的时间复杂度大概减少到了大约是O(N),也就是线性的。Scalable,but expensive。

怎么可以便宜一点?那就要引入其他种类的“秩序”。权益可以认为是一种来自外来系统的秩序,与能量损耗的共识混合,可以帮助减少能量的损耗,譬如说传统的PoS。但是PoS并没有办法解决贫穷攻击的问题。

为了解决PoS不能解决的问题,可以继续引入外来的秩序,譬如说使用选举投票的方式,以及使用仲裁机构ECAF等链下方式解决链上的问题。这就是DPoS的基本思路,引入链下的共识作为系统内的共识,这样就没有电力损耗和挖矿机制。

拜占庭共识算法测试(火星公开课第140期)(7)

时间复杂度分为两部分:大约是线性的投票共识 21个节点PBFT的出块共识。DPoS(委托权益证明)最大的问题就是去中心化程度不够,如果EOS被集中在少数人手里,这个网络是很难有竞争者的。

还有其他的一些共识,尝试通过减少共识的质量来获得效率,譬如说IoTA的Tango,就是通过牺牲全局共识来达到常数的时间复杂度。而闪电网络是另一条路,牺牲的是局部共识。

这两个都不是完美的共识,但在IoT或者小额支付方面都可以有很好的应用。但是完美主义者认为,牺牲共识的质量是不可以接受的,我们还是要回到DPoS上看看可不可以找到突破口。

拜占庭共识算法测试(火星公开课第140期)(8)

以太坊创始人VB说过,不可能的三角中去中心化、效率以及安全性,三样里面只能取两样。譬如说PoW去中心化和安全性很好,而DPoS是在效率以及安全性做的不错。怎么样才能设计出一个共识,三样都有呢?

其实VB说得并没有错,但是他没有考虑时间这个维度。如果一个共识可以在DPoS和PoW之间连续且光滑的摇摆,那么这个共识就可以在系统性的层面展现去中心化、效率以及安全性。

二、关于DPoW

DPoW就是我们CelesOS发明和使用的共识算法。DPoW,即Delegated Proof of Work,委托工作量证明,它与DPoS类似,但是票源不来自token而是哈希算力。矿工通过PoW计算难题,答案就是一张一次性的票,可以累积,然后投给区块生产者(BP)。

拜占庭共识算法测试(火星公开课第140期)(9)

DPoW的理论性能与DPoS相同,去中心化程度要更好,因为票是算出来的。当系统内的票累积足够大的时候,DPoW自动降维成为DPoS,因为大家会多投票;当系统内的票累积比较少的时候,DPoW自动降维成为PoW,因为大家要多挖矿。

DPoW什么时候表现得PoW属性强一些或者DPoS属性强一些,并没有预设。在DPoW里面,而是完全由我们老祖宗的东方智慧来决定的:田忌赛马。算力弱一点就多存一会儿,算力强的可以花的多一些,个体单位进行判断。DPoW在DPoS和PoW两者之间连续动态平衡。

DPoW依据市场供求同时展示去中心化、效率与安全性。从系统层面来说,不需要每时每刻,或者每一个块都争抢才是去中心化,只要这个争抢的机制存在,这个系统就是去中心化的。

拜占庭共识算法测试(火星公开课第140期)(10)

从性能上来讲,系统性能取决于性能最小的BP(Block Producer,区块生产者)。由于BP是一个相对稳定的群体,BP之间只要达成标准以后,系统的性能就可以有保障。

很多共识在设计的时候,为了提高性能直接舍去去中心化的竞争属性是很可惜的,并没有考虑时间这个维度。DPoW是一个特别适合机构使用的共识算法。所以我们把DPoW放在CelesOS的共识层里面。

拜占庭共识算法测试(火星公开课第140期)(11)

CelesOS是一个给机构使用的公链操作系统软件。我们的DPoW不是一个很复杂的共识算法,理解它有几个关键点:

第一,从熵的角度理解共识和什么是去中心化。达成共识要么消耗能量,要么从外界引入秩序。我个人认为消耗能量是值得的,因为DPoS的投票机制所产生的资源损耗,并无法计量,很难说DPoS损耗的资源和PoW损耗的能量哪个更大一些。使用一定的资源损耗,是去中心化的一个保证。

第二,共识与出块的去耦化。比特币的共识和出块是一起的。到了EOS时代,投票和出块已经有了异步的迹象:0.5s一个块,63s一轮投票。DPoW的共识挖票部分与出块完全异步。票就是答案,甚至允许链下存储,每次使用的时候BP核对题库答案就可以了。题目与账户名相对应,保证每个账户的答案只能本账户使用。这种去耦化保证了共识的高性能。

第三,DPoW也不是一个纯粹的PoW算法,因为票是一次性的,也是可以累积的。所以投票人本身的决定也可以认为是一种外来的秩序。由于我们设计的票本身是不可以交易的,这种秩序我们尽可能的限定了在投票人自己身上,也就是投票人自己对“秩序”的理解。

拜占庭共识算法测试(火星公开课第140期)(12)

问答环节:

Q1:Pow挖出来的不是token而是票,如何理解这个价值?矿工会愿意吗?

A1:大部分BP也会是矿工,当BP是会有收入和激励机制的。非BP矿工与BP互相签订协议,这个在DPoW里面是允许的。BP通过协议来激励矿工,市场化运作。

Q2:定义Dpow来解决不可能三角,但会不会导致在Pow的时候浪费了能量,Dpos的时候浪费了资源,引入时间后两两相加更差呢?

A2:在很多国家,4年或者5年选举一次总统,被认为是比较合适的一套体系,但是并不需要每天都选一次,也不需要每10分钟就选一次。去中心化就是一种“选举”,频率不是最重要的议题,关键是要有。假设DPoW,就是每一张票都挖出来立刻投掉,而且是按照BP出块速度投,那么消耗的能量也就是和一般PoW一样,但是由于共识的达成和出块是异步的,所以出块速度会比传统PoW更快。

如果系统里面都是票,那么确实,和DPoS一样了,甚至也会出现拉票行为,但是这些票会在竞争中大量损耗,所以纯DPoS的状态不是一个稳定的状态。

Q3: CelesOS的token并不是票吧?

A3:CelesOS是一个软件和操作系统,本身没有token。通过对CelesOS的参数配置,社区做出公链。目前的主网被命名为Celes Chain,Celes Chain的token并不用做投票。所有的票,就是问题的答案,你要愿意也可以用手写下来,通过对CelesOS的配置获得Celes Chain。

Celes的社区除了传统区块链的社区群体以外,还将会出现律师、银行家等专业人士的社区群体,可以认为Celes是帮助区块链世界和传统世界构建的一座桥梁,帮助传统金融机构,通过Celes的技术和社区,为他们的C端客户接触区块链的技术和资产并提供帮助。

Q4:你反复提到票就是问题的答案,比如什么问题,类似比特币那种hash值吗?

A4:是的,问题是类似比特币的问题,但不一样的是在DPoW里面,每一个块可以回答的问题不止一个,而是若干个。

Q5:为什么特别提出律师和银行家?

A5:区块链的本质是社区以及帮助社区达成的共识。区块链就是这些社区所产生的知识的体现。如果一条链的社区包含了律师和银行家,那么这条链上的知识就会涵盖这方面的内容。

Q6:对实现这样的算法,有时间计划吗?

A6:算法构建已经完成,模拟测试也在做。CelesOS的软件第一版在4-6个月内会出来,且会开源。

Q7:怎么看一些其他的比较明星的共识算法?比如thunder,algorand。

A7:我觉得algorand还是比较牛的。我还在想要不要吸收一部分内容进DPoW,不过目前还没有太好的思路。

Q8:共识与出块异步的好处在哪里呢?延迟共识是否会导致系统整体响应时间过慢呢?

A8:EOS目前已经在采用这种延迟共识,目前可以做到3000tps,反应速度还算比较理想。允许异步有很多好处,譬如说可以在未来支持热插拔的共识,也可以比较有效的防止部分恶意节点的某些攻击行为,最主要的还是如果在调整或者升级共识的某些细节的时候,不会影响出块。

Q9:什么机缘巧合让你进入区块链行业? Celes的共识机制是在什么背景下设计出来的呢?

A9:大学微积分老师韩云瑞跟我们说过,数学是一种朴素的思想。后来我把这个思想推广到了金工的领域了,再推广到了区块链这边,觉得共识也应该是一种朴素的思想,再后来阅读了几篇好的白皮书和共识算法以后,觉得“朴素的共识”越来越有道理,也就形成了我自己对共识的理解。

再加上我本来就是学EE的,原本就是一个信息熵的信徒,把共识和熵联系起来是一件很有趣的事情。Celes DPoW想法的产生其实也是根据这个思想出来的,其实DPoW的出现更多是一个工程师的思维。如果出现三角不可能问题,那就想个办法绕一下 。

Q10:与其他方案比起来,Celes的优势在什么地方?在实现中会遇到什么挑战吗?

A10:优势有三点:

1.有一个很好的共识算法,很可能为今后其他共识算法指一条新的路;

2.采用以及目前比较先进的软件-社区-公链架构;

3.区块链上的知识壁垒,银行家、律师、工程师等专业且极高附加值的社区和知识;

4.我们团队非常擅长建立专业和治理区块链社区。

对我来说,创业最大的挑战就是能否找到和我们一样,对理想的执着和朴素思想孜孜不倦追求的团队、社区和伙伴。

拜占庭共识算法测试(火星公开课第140期)(13)

嘉宾简介

杨扬/CelesOS联合创始人&首席科学家

毕业于清华大学电子系,随后在英国纽卡斯尔大学和伦敦帝国理工学院获得计算机工程硕士和金融工程硕士学位。从业中金香港,西班牙银行从事投资银行与金融衍生品业务超过十年。曾主导开发若干世界领先的区块链应用项目。目前区块大陆(BlockContinent)的创始人之一,主要负责底层区块链技术的研发和战略设计,公链技术的建设。

对话发起人

任铮Kevin/共识实验室合伙人

计算机、工商管理双硕士。曾任职于蓝港资本、光华弘人资本等多家VC机构担任合伙人。区块链投资包括: celer,ankr,quark,bumo,newton,blockcloud,uinp,nervos,path,merculet,cocos等项目。LeekLab创始人,中关村创投及基金协会理事,北京文创投融资协会副秘书长,中国人工智能产业联盟理事,前北大国际投资管理协会会长,中南创盟理事。

廖志宇Emma/超脑链Ultrain联合创始人

著名抗日英雄廖耀湘将军之后,就读美国常青藤名校Columbia University。前金砖资本合伙人,早期投资了人人车,蔚来汽车等项目,曾任360智能硬件投资总经理,欧洲顶尖投行goetzpartners中国区创始CEO,纽约私人银行国际客户总监。拥有全球顶级商业资源,深谙资本运作,跨境并购与TMT投资经验。

大家赶快关注我吧!

,