2018-03-16 邹传伟 最新的 Algorand 区块链共识
Algorand代表了区块链底层技术发展的一个重要方向。
- 2016年,图灵奖得主、MIT教授 Silvio Micali与合作者提出的一个区块链协议,针对比特币区块链系统的几个核心缺陷进行了改进。
- 2018年2月,图灵奖得主、MIT教授Sivio Micali募集400万美元开发Algorand区块链协议,并受到了国内外媒体的普遍关注。
- Algorand的目标是建立一个低能耗、高速度、民主化、可拓展性好而且几乎不会出现分叉的分布式账本。
- Algorand没有引入激励机制或发行数字加密货币。
2018.03.15 朱立 简评三个基于VRF的共识算法
Algorand、Dfinity和Ouroboros Praos三个共识算法(Dfinity虽然是项目名,这里用来称呼其共识算法也应无不妥)近期较受关注,而且都是基于VRF(Verifiable Random Function) 设计,可以对照学习。Algorand的版本很多,以下单指 1607.01341v9,暂称其为Algorand'(笔者手中另有Algorand的最新版本,其中已对下文提及的几处问题完成了修正,可与本文参看)。
一、VRF的共性
VRF的意义很好理解——用以完成出块人(群)的随机选择。为此,VRF的返回值应尽力难以预测。先看Algorand'和Dfinity的套路是怎么做的:
VRF = hash( sign( rf(pre-rand, height, i) ) )
f1 = f1(pre-rand, block-height, i)
f2 = sign(f1)
f3 = hash(f2)
大体上是先将前一个随机数(最初的随机数却是协议给定的)和某种代表高度、轮次的变量进行组合,用某种私钥对之进行签名(或者是先签名再组合),最后哈希一下得出最新的随机数。这样产生的随机数旁人很容易验证其合乎算法,"V"就这样得到了;而哈希返回值又是随机分布的,“R”也因此得到保证。
在此过程中,为降低操纵结果的可能性,有两个注意事项:
- A) 签名算法应当具有唯一性,也就是用同一把私钥对同样的信息进行签名,只有一个合法签名可以通过验证——普通的非对称加解密算法一般不具备这个属性,如SM2。如果用的签名算法没有这种uniqueness属性,那在生成新随机数的时候就存在通过反复多次尝试签名以挑出最有利者的余地,会降低安全性。
- B) 避免在生成新随机数时将当前块的数据作为随机性来源之一,比如引用本块交易列表的merkle root值等等,因为这样做会给出块人尝试变更打包交易顺序、尝试打包不同交易以产生最有利的新随机数的余地。
在设计和检视新的共识算法时,以上两个注意事项是要特别留意的。
考察一下VRF的返回结果应该如何运用。目前所见用法中,VRF的返回结果可以用来公开完成节点或节点群体的选择,也可以私密地完成选择。
- 以Dfinity为例,它是利用mod操作来唯一、公开地确定一个Group。
- Algorand'、Ouroboros Praos是私密选择的范例,大致套路是对VRF的最新返回值,配上轮次等变量后用私钥进行签名并哈希,如果哈希值小于某个阈值,节点就可以私密地知道自己被选中。这种方法很可能在网络节点数较多时的表现会更稳定,否则幸运儿个数上下波动会较大,进而影响协议表现,包括空块和分叉。
。。。
2018.03.15 张华 去中心化交易所DAEX的ASPoS分层共识技术
2018-03-30 Github 本体网络:VBFT算法介绍
2018年3月30日,本体完成了第一批项目在GitHub上开源。作为新一代基础性公有链平台,本体也将推出全新基于可验证随机函数(VRF)的共识算法VBFT。以下我们将为您介绍本体最新的共识网络架构及其VBFT共识算法。VBFT算法也将在GitHub上开源。
VBFT是一个结合PoS、VRF(Verifiable Random Function)和BFT的全新共识算法,是OCE (Ontology Consensus Engine)的核心共识算法。VBFT可以支持共识群体的规模性扩展,通过VRF保障了共识群体生成的随机性和公平性,同时保证快速地达到状态终局性。
Ontology的核心网络主要由两部分组成:
- 共识网络:共识网络由所有共识节点组成,负责对Ontology网络中事务请求进行共识,生成区块,维护一致性账本,并将共识后区块分发到同步节点网络中 。
- 共识候选网络:候选网络中的节点不参与共识,但保持与共识网络的同步状态,实时将最新的共识区块更新到自己维护的账本中。候选网络也对共识网络进行监控,监控共识网络状态,对共识区块进行验证,并协助管理Ontology网络。
共识网络的规模通过共识管理合约进行管理。共识网络中的每个节点都由其节点管理人锁定对应的Stake。
Ontology共识网络的构建
Ontology共识网络是由Ontology共识管理合约构建的,共识管理合约永久性在Ontology网络中运行,且定期更新共识网络中节点列表,更新共识网络中VBFT算法的配置参数。
在VBFT算法参数中,一个重要的参数为共识网络节点的PoS表。VBFT运行过程中,所有节点根据当前的共识PoS表,随机选择每一轮参与共识的节点,由随机选择的节点完成对应轮的共识工作。
VBFT算法概述
VBFT算法可以认为是传统BFT算法在可验证随机方向的一个改进。在VBFT算法中,首先基于VRF在共识网络中依次选择出一轮共识的备选区块提案节点集,区块验证节点集和区块确认节点集,然后由选出的节点集完成共识。
由于VRF引入的随机性,每轮区块的备选提案节点/验证节点/确认节点都不相同,而且难以预测,从而极大提高共识算法的抗攻击性。
VBFT算法可以概述如下:VBFT的每轮共识中,
- 根据VRF从共识网络中选择备选提案节点,各个备选节点将独立提出备选区块;
- 根据VRF从共识网络中选择多个验证节点,每个验证节点将从网络中收集备选的区块,进行验证,然后对最高优先级的备选区块进行投票;
- 根据VRF从共识网络中选择多个确认节点,对上述验证节点的投票结果进行统计验证,并确定出最终的共识结果。
- 所有节点都将接收确认节点的共识结果,并在一轮共识确认后开启新的共识。
VBFT的VRF
当前VBFT算法中的每一轮区块的VRF值都是由前一轮共识区块所确定的。具体算法是从上一个区块中的提取易变信息,然后计算哈希,生成的1024位(=128字节)的哈希值,将此哈希值作为下一个区块的VRF值。
VBFT的Peer Choice
VBFT算法以上一轮共识后的可验证随机值为索引,在PoS表中选择节点参与新一轮的共识,由于PoS表的生成兼顾了节点所属人的PoS信息和整个共识网络的整体治理策略,虽然VRF值本身可以假设为均匀分布的随机值,VBFT的随机节点选择依然是服从Ontology的共识网络管理策略。
由于一个区块生成的VRF值是可验证的,在不发生区块分叉的情况下所有节点对于同一高度区块的VRF也将是一致的。VBFT算法中基于VRF在PoS表中选择节点是顺序进行,因此每个VRF值都确定了一个备选提案节点的顺序,此随机选择的节点顺序也是共识一致的。
VBFT的fork choice
Ontology作为一个公有链,运行在公有网络之中,必然面临着公有网络中的故障和恶意攻击。虽然VBFT共识算法通过随机方法选择节点参与共识,已经很大提高网络攻击的难度,但在发生网络隔离时依然面临着分叉的风险。
在前面一节介绍过每一个区块的VRF将可以确定一种节点排序顺序,在VBFT进行fork choice时,VBFT将节点的排序顺序定义为节点的优先级顺序,然后基于此优先级顺序可以计算每个fork分叉的优先级权重,每个节点根据各个分叉的优先级权重选择合适的分叉。
由于每个区块都是由VRF确定节点的优先级顺序,对于恶意产生的分叉,很难或者说不可能持续维持自己的高优先级,因此恶意产生的分叉将很快消亡。也因此,VBFT算法也提供了快速的状态终局性 。
VBFT的auto configuration
为维护Ontology共识网络的网络质量,Ontology共识管理合约将定期自动更新共识网络中的节点列表。在发生网络风险时,共识管理合约也支持通过基于Stake的投票,强制更新共识网络中的节点列表。
一个新的节点在获得更多Stake,并且确认满足共识网络的节点性能需求后,将在下一次共识网络更新时被加入共识网络。
共识网络自动更新的时间是以区块为单位。每一次更新的共识网络在完成给定数目的区块共识后,下一个区块的备选提案节点必须构建一个共识管理合约执行事务,并将其作为区块中第一个事务打包到提案区块中;对应的共识验证节点和确认节点也将以此验证提案区块的有效性。
在包含共识管理合约事务的区块完成共识后,每个节点将自动执行共识管理合约,更新共识节点列表,至此完成共识节点列表的更新。
性能对比
2018-04-11 Penta CEO David Ritter:首创DSC共识算法,突破公链掣肘
4月10日,“共识·链上未来丨区块链技术应用与创新论坛”在北京宾大沃顿中国中心开启大幕。此次论坛座无虚席,Penta也应邀参加,CEO David Ritter发表了主旨演讲,分析了当下区块链技术发展面临的主要问题,并针对Penta首创的DSC共识算法带来技术细节的解读,收获了热烈反响。
David Ritter称,Penta主要想解决的问题有四个:
- 第一是可扩展性。例如数字猫,这个游戏很火但程序卡顿,说明扩展性没有做好,这就需要可扩展的共识去解决。
- 第二是安全性。量子计算的威胁和人工智能的发展要求新一代加密共识足以抵抗量子计算机的威胁。
- 第三是互操作性。把区块链连接起来,这是解决一个问题,但是我们住在实体世界,不住在链上,不是只解决链与链的连接问题就足够了。同时也要解决现有的中心化体系的连接问题,把资产变成数字资产才可以流动。
- 第四是智能合约。要真正实现智能经济,就需要把智能合约变得更加智能,那就要解决大规模落地应用的障碍。
Penta的logo是五角星,也代表怎么去实现对实体世界的作用。
- 首先要解决主体问题,这是一个ID的问题。
- 第二是信任,在实体世界证明你跟我有交易关系,我们的信任可以定期交易,或者是达成同样的标准。
- 第三点是价值,把有价值的资产挂在链上做成数字化才可以进行交易和交换。
- 这也引出第四点,流通。几个维度的配合最终实现对现实商业场景的支持与连接。
再继续说区块链世界的三大连接。很多区块链的项目是想解决链与链连接的问题。但是Penta认为光解决这个问题不够,因为Penta的目标不仅是解决链与链的连接,而是区块链技术可以在实体世界解决真实问题。所以还要解决另外两个连接,除了链与链、链与中心化的问题要解决,第三个是链上和链下。
- 第一个板块是公有链的项目,第一步Penta要进行公有链开发。
- 第二个是把这个APP挂在Penta的公有链上。
- 第三个是解决三大连接的技术方法。
- 第四点是Penta网络是个愿景网络,类似操作系统的概念:不管是什么场景,不管是从什么地方启动的资产交换,都可以通过Penta网络实现资产交换。
Penta首创的DSC共识算法突破公链掣肘
现在共识算法有三个大问题,一是安全性,二是民主化、公平化的问题,第三是可扩展性的问题。可以简单地看看目前的共识算法有利有弊的地方:
例如POW****,原本是个很公平化、民主化的事情,谁都可以挖,保持了去中心化的特性。但是因为现在有矿池,公平的地方发生了改变。
维持POW共识机制的运行需要配置大量算力,而分散节点提供的算力远不如集中化管理统一提供算力的矿池效率高,所以可以看到大量矿池以中心化运作方式取代了分散的普通节点来为区块链全网提供算力,这样又会导致公平性的丧失。
例如POS,有利的地方是比较民主化,可以让很多人参与投票,但弊端在于币越多越有能力,所以出现富人更富,穷人更穷的问题。
DPOS也是POS的一种类型,它的问题在于节点比较少,在这种情况下不够民主化和公平化。
而Penta团队创造了一种新的DSC共识算法,也叫动态权益共识,是Penta网络主链所用的共识协议,一种彻底消除区块链分叉的可能性的共识机制。
Penta的目标是吸取几个共识算法的优势,博各家之长达到平衡。在重点关注效率的同时,仍然通过巧妙的机制设计实现公平,让博弈多方能够达到稳定共识,在治理方式上完全消除了垄断和分叉,实现多方的互惠共赢。
在底层任何人都可以参与,它是很民主化的。再上面一层它分成两种,有大B和小B,小B的人我们叫做观察员,大B我们叫做议员,由每个PNT持有者投票选举产生,观察员占1/3。
那怎样确保它比较民主化、公平化?Penta通过一个随机的算法把它弄成小组织,再通过BFT的方式分出最终的区块。不管哪个小组都有小B和大B,所以大家都会享受这个。这是最民主化的,同时也具有随机化的方式,可以解决安全性的问题。所以Penta觉得DSC是最平衡可以解决上述三大问题的算术方法。
2018-05-21 平行区块链 区块链共识机制的演化
[站外图片上传中...(image-bd9f59-1528365769931)]
DSC共识算法通过如下几个步骤来实现区块的生产:
- 首先是从全网节点进行代表的投票选举,选出两种代表,一是持有较多PNT代币的议员,一个是持有较少PNT代币的观察员。
- 其次,在两种代表中通过散列抽签算法,随机挑选部分议员和观察员组成若干的共识组,每个共识组的议员或观察员占比不得少于1/3。
- 共识组进行BFT共识。在议员中选举出议长。议长提议生成区块,其他议员和观察员进行区块验证,在2/3以上节点验证通过后,生成该共识组所对应的候选区块。共识组数量的多少没有固定,根据网络情况进行动态调节,以保证正常出块。
- 最后,候选区块并不会自动成为正式区块,还需要通过散列抽签函数从所有共识组产生的候选区块中选择正式区块。如果出现区块共识在一定时间内无法达成的情况,会启动RESET机制。所有议员进行一轮BFT共识,产生一个RESET区块,重新组成共识组,恢复网络正常运行。
这样的选举设计也有议会机制的影子。比如美国建国之初,一开始试图设置单一院制,但发现众议院是基于人数,人口少的州很少有机会发出自己的声音,于是产生了两院制的议会。参议院不管各州大小,都是两票,一共100席。众议院则根据州人口多少获得席位。设计的目的是为了兼顾各方利益。
DSC通过议长、议员、观察员、共识组的设计,有一部分制衡和保证公平的考虑。因为观察员有机会进入共识组,且不少于1/3,所以即使用户是持有较少PNT的代表,也有机会获得奖励。这兼顾了公平,而在PoS共识机制中,一个持有很少代币的用户,能得到奖励的概率非常低。
Penta的议员是PNT代币持有节点主动发起申请,其他节点进行投票选择。要想当选议员,首先要质押一定数量的PNT代币,同时必须获得超过一定数量的票数。一旦当选议员,所有节点获得记账的机会均等。不是PNT数量越多,机会越大。议长是通过BFT共识过程产生,主要负责区块生成。
观察员是监督的角色,它跟议员不同,所需要质押的PNT数量较少,获得的选票也较少。但观察员分布更广,数量更多。它代表了更多普通PNT代币持有人的利益。更类似于众议院的角色。观察员无法当选为议员或议长,没有生成区块的权利。
Penta网络的议员人数是动态增长的,这个跟美国参议院固定席位不同。根据参与节点和PNT持有排名情况,Penta网络确定最初的议员数量和最低PNT代币的质押数量。同时,议员的数量和也会根据运行情况进行动态调整。观察员的数量则不设置上限。
https://mp.weixin.qq.com/s/1oB7ZBEFXqYgBfq7JtRfYw Penta梵塔网络 David Ritter:区块链公平与效率的博弈论
开发商业应用需要有公链的基础,公链是“地基”。2018年被称为是公链爆发元年,目前市场上有比特币、以太坊、小蚁NEO、EOS等公链。David说:
“未来公链不会只有一个公链或是两个公链,而是诸多公链并存。Penta与其他的公链虽然处于竞争关系,但这不是零和博弈”。
区块链的初衷本是打破信息孤岛,而目前众链之间缺乏互通性,这反而形成孤链造成更多价值孤岛。如何实现区块链世界的相互连接,实现区块链价值的最大化?这需要一个连接器。于是,David开始了“区块链世界的连接器”的创业之路。
对此,David也表示,DPOS机制缩短了共识验证的时间,但在提高效率的同时,也容易产生腐败问题。
- 具体来说,DSC通过动态选举若干记账者,然后按照指定规则轮流选择部分记账者参与记账,在这些记账者间采用BFT方式进行交易共识,每次共识尽量不让过多记账者参与,但记账者都有参与记账的机会,这样可以有效提高共识性能。
- 当节点失效或者节点作恶,对区块链系统的一致性构成问题。DSC共识机制基于随机算法,容错性很高。Penta 系统中有超过1000个节点,少数问题节点其实影响不会很大,最后决策取决于三分之二大小权益持有者的投票。
哔哔News于 深度专访|揭秘本体ONT“北斗共识集群模型”!
本体ONT,区块链领域明星项目,尚未出世就曾引发大量关注。
今日下午,本体发布了“北斗共识集群模型”,本体认为这是一个在分布式程度、高性能扩展支持和激励机制上进行综合平衡的创新性的治理模型。
本体认为,
治理是公有链的核心,这不但体现了公有链的技术架构,也体现了公有链背后的哲学和价值观。在治理模型的设计中,要考虑公平性、分布化程度、性能等一系列综合因素,任何一个点的获得都必然会有另一个点的付出,所以在这个体系内没有魔法,只有如何更好地找到平衡点。
哔哔News于今日上午采访了本体项目创始人李俊,在本次采访中,李俊阐述了其北斗共识集群模型的设计思路。
哔哔News:可以简单介绍一下本体以及它整个的架构吗?
李俊:本体架构比较清晰,分为两条线。
- 一条线是底层的基础链,它有两个特点,一是高性能,二是多链制,可以支持弹性扩展。
- 另一条线是分布式信任平台,现在很多链的主攻方向是数字资产和数字经济领域,而本体主攻的方向是直接打通和实体相关的这些业务场景。和这些实体场景打通,光有一条基础链是不够的,因为在上面的交易要得到实体认可,你必须还要有实体的连接层,这个连接包括和人的真实身份的连接,以及和物和数据的连接,这一层就是分布式的信任协作层。这中间还有很多通用型的模块,比如分布式身份管理数据、分布式声誉评价等等。
把这两个合起来基础层才可以支持分布式实际应用,不仅可以支持数字资产之间的交易,还可以连接实体世界的应用,这是本体致力的方向。
哔哔News:我看过很多公有链项目在业务和概念上有很多相似之处,公链的竞争很大,本体的公链相比其他创新或者优势在哪里?
李俊:首先分布式信任协作层是本体是首个提出且尚未涉及的。目前,我们有好几个模块已经开源并且完成了开发。
另外,现在的公链大家都在比TPS。从高性能这个角度,我们的共识算法是VBFT+PoS,从目前最新版本测试来看,我们本体单链的TPS测下来是3000-4000,,超过了其他公链的500-600。
在共识的模型上面,我们今天发布了共识集群,它的公平性和分布性更广。这可能和共识哲学不一样,每个链有各自的哲学,我们希望在高性能和去中心化程度中找到一个平衡。
哔哔News:本体计划如何在各国市场合规的开展业务?
李俊:
- 其一,本体不做公募,走私募就是为了合规;
- 其二,本体是多链制,它的设计更灵活;
- 其三,我们在各个国家与当地律所广泛开启合作。现在全球监管没有一个最终的定论,我们只能密切跟踪新的政策并及时去规范。
哔哔News:目前数据大多都是被巨头垄断的,大家并不愿意开放自己的数据,比如说银行、政府、大型互联网公司的数据,你们如何解决这个问题?
李俊:首先我们的DDEP框架叫分布式身份管理和数据管理框架,它不归集任何数据。如果我们要去归集数据,没有人会愿意把数据给我们。如果我们只是维护一个目录,维护一个索引但是又可以监督数据的可行性,这就比较容易了,我们干的就是这样四两拨千斤的事。
医院的数据还在医院,银行的数据还在银行,我们只是作为一个串联器,只需在上面声明我有什么数据,可以通过授权或收费的方式来拿我的数据。我们只做数据的整合,就像一个分布式可信的数据黄页。大家不用把数据放出来,只需通过开放的接口,通过收费或授权的方式让数据触达到更多的场景,这是一个双赢的模式。
https://mp.weixin.qq.com/s/k0sjUsx9-oeqzFTwD7J4sg 本体发布北斗共识集群模型
区块链的基础服务激励逻辑需要综合考虑以下几个因素:
- 节点性能:区块链网络的能力体现在硬件性能差异上。单节点硬件性能,包含网络吞吐量、储存吞吐量、基于功能(业务事务的处理、区块链服务)的计算能力;
- 节点权益证明:结合本体主链的VBFT共识算法,因而权益证明是节点激励计划的一个重要考察部分。
- 激励的公平性:在共识层的激励采用本体激励曲线方程分配决策,不绝对以权益大小作为分配准则,一定程度避免了权益垄断,在博弈中达到均衡。
进一步的,采用本体基础区块链架构,北斗共识集群可以兼顾治理的公平性、网络规模调整(扩展、收缩)的即时性、以及节点配置和激励计划调整的灵活性。
北斗共识集群划分不同节点网络,支持不同网络应用不同治理逻辑。
- 同步网络:区块链网络的主体,自主自愿同步区块、同步记账;
- 候选网络:满足性能要求,可以参与共识的候选节点集合;
- 共识网络:参与区块链去中心化区块的功能性网络;
- 记账网络:基于构造出的区块、为共识网络提供必要支持的、多个独立的分布式落账节点组成的网络。
不同网络将使用不同的网络规模,接纳不同数量的网络节点;不同网络的节点要求会逐渐提升,对应的激励计划也会做相应调整。不同的网络节点可以根据自身的硬件设施和权益证明情况在整体模型中提升不同的层次,也可以在本体主链通过智能合约建立权益池来获得其他权益人的支持 。
2018.05.06 penta | 梨子和橙子
梵塔网络Penta 的 DSC 共识:
DSC 共识协议,通过散列抽签算法,平衡民主、效率与安全,并且梵塔网络设计了插件化的共识组件支持侧链或独立链多样的共识算法。设计上将梵塔链记账共识和 DApp 交易运行与结果验证所依赖的侧链或独立链共识进行分离,对平台层和业务层进行解耦,提升梵塔网络运行的效率,灵活支持多样的商业应用场景。
该共识算法,和本体网络采用的核心账本支持新一代共识引擎 Ontorand Consensus Engine(OCE)颇为相似。
OCE是一个高效的、 基于dBFT共识协议和可验证随机函数VRF的增强版本共识引擎,实现了近乎无限的可扩展性,它只 需要很少的计算量开销,生成几乎不会分叉的区块链网络。我们可以把OCE看成DBFT的升级版,这种共识机制完全能做到大容量、快速且低成本的特点。
因此,本体官方人员对这种高相似度表示了质疑。我们从Github上找到了本体共识算法的具体代码,而据Penta29号发布的项目周报显示:DSC共识算法设计中,原型环境搭建完成,BFT详细设计进行中。Penta团队于17年12月份到18年1月份之间成立,但是仍然未能在Github上找到项目方公布的一行代码。
由于Penta项目披露的信息较少,白皮书没有具体的技术实现细节,Github上也没有开源代码信息,再结合项目周报公布的开发进展,以上技术构造目前来看大多数还停留在设计阶段。所以我们仅挑选出其中两个比较重要的概念,进行大致介绍。
(1)DSC共识机制
(2)柔性链路协议(SXA)
以上两个概念目前还是停留在概念阶段,而Penta项目针对具体的问题有很多相关技术解决方案,但目前来看,还只是计划方案,既没有太多实质性的信息披露也没有实质进展。无法对技术分析做进一步的分析。
Penta电报群国际群和张文群,都是4000人的规模。推特上粉丝1600人;微博粉丝10600人;Facebook粉丝184人。总体来说,各个社交平台内容能够及时更新,但是和粉丝的活跃度一般,作为国际项目,脸书、电报和推特的互动率不高,大多数是没有留言的,点赞数也屈指可数。
块连线认为:Penta项目信息透明度较低,投资者根据目前公开的信息无法准备判断长期投资价值,存在较大投资风险。项目方应尽快向公众披露更多项目相关细节,对共识机制、代币分配计划、技术概念和路线图做出详实明确的解释。