链化未来共识黄皮书(2)

链化未来公众号将分三篇文章来阐述链化未来的共识协议的理论设计,后续还会推出一系列文章来详细说明链化未来共识协议的工程实现,本文为链化未来共识协议理论设计的第二篇(第4章)。

4、架构

链化未来每一轮,分为如下几步完成

基于可验证延时函数的随机数层每个共识周期提供一个系统随机数。

节点利用随机数结合硬件指纹和代币,在每一轮共识开始,选出一定数目的Proposer和Voter。

由Proposer提议需要成块的消息,由Voter对选中的唯一提议消息相互发送确认。

节点对交易批进行执行,再利用上一个块随机数选出一定数量Voter,通过BA(binary agreement)协议相互同步对交易批的执行后状态。

节点对交易批和执行后状态独立打包成块。

4.1 随机数层

随机数层,为上层提供随机数源,比如共识委员会的选择,dapp 的随机源。基于 VDF 的随机数生成层,对于任何人都可以参与,同时任何人都可以验证随机数的正确性。但是考虑到 VDF 本身的复杂特性,特别是要防范专门的硬件设计厂商,所以需要对随机数的生成过程进行设计。

详细原理如下:

MAIN 委员会的成员 i 基于上个共识周期的随机数randi 进行 VDF 的计算,计算时间跟共识的周期相关,只要共识在持续进行,那么 VDF 就要持续计算。

VDF的计算结果将包含在共识最终形成的块中,所有人都可以对VDF的计算结果和其中包含的随机数进行验证。

每个委员会成员,都应该运行VDF的计算函数。Listener节点不需要运行VDF函数,但是需要验证VDF的计算结果。

本设计的主要目的,在于防止随机数生成过程中,有人拒绝提交,或者可以预测未来的随机数,进而对proposer和validator节点进行预测,进行攻击。同时基于VDF的随机数,也非常方便地可以应用在Dapp中,达到公平的目的。

4.2 身份层

每个自愿参与共识的节点都有一对密钥 (sk,pk) 作为身份标识。设备被选为共识成员的概率依赖以下三个评分的综合结果。

链上代币。所有公钥对应的资产在链上都可以查询到,所以持有代币的百分比作为 wcoin。有的节点可能持有大量代币,但是不愿参与共识,可以代理给其他可靠的硬件厂商对应账户,类似Dpos。或者持有大量代币的节点可能同时分散在多个账户,这不会影响到公平性,因为多个账户的综合被选中概率与一个账户相同(假设其他两个账户对应的硬件设备指标相同)。

硬件特性。根据自愿参与共识的设备硬件指纹信息可以得出硬件特性评分。该评分可能有多个维度,比如 CPU/网卡/硬盘特性,分别适合committee中不同的身份。该权重暂定为whardware。

声誉。根据节点账户对代币的持有寿命(块高度)、设备历史参与记录、成功提交区块的次数,系统自动计算出节点信誉。该权重为wreputation。

每个公钥对应一个权重 w = r1 ∗ wcoin + r2 ∗ whardware + r3 ∗ wreputation,其中r1, r2, r3 为系统常量,用来设置各个权重的比率。

4.3 共识层

共识的详细过程如下

                                                     Figure 1: 共识时序图

propose轮。节点基于上一个block,独立判断是否被选为Proposer或Voter。该轮保证消息确定性地由Proposer到全网大部分节点。

– Proposer在广播PROPOSE消息的同时为了加速传播,广播带交易hash的 ECHO。为了最小化带宽消耗,PROPOSE 消息被冗余编码后,分别传给多个节点。每个Proposer 只能广播一次,多次广播被视为恶意节点。在广播的propose消息中,应该包含VDF的计算结果。

– Voter等待TP ROP时间后,对收到PROPOSE消息校验格式,选择proof最小的广播相应ECHO消息。同时 Voter 需要对proposer发送VDF结果进行验证。

– 节点收到TH1个消息后,即使在未收到 PROPOSE 消息的情况下,也广播 ECHO 消息。

– 节点收到T H2 个ECHO后完成此轮,返回。

– 节点等待T IMEOUT 未收集足够数量ECHO后,判断超时,将交易批设置为空。


执行,所有节点对上一轮的结果执行,并基于原状态state1 计算输出状态的摘要state2。


BA 轮,全网基于上一个block和轮数,独立判断是否被选为Voter。该轮保证大部分节点对执行结果的摘要接受与否达成一致。

– Voter广播包含state2的ECHO消息。消息中同时包含VDF的计算结果和证明。

– 节点收到T H2个ECHO后,验证VDF的计算结果和证明,完成此轮。超时则成空提议,返回。

– 若上轮超时,则新开始一轮,重新判断是否为voter,基于CommonCoin决定是否提起包含state2还是空交易批的ECHO消息,然后广播。

– 节点收到TH2 个ECHO后完成此轮。否则继续利用CommonCoin判断下一轮的 ECHO 消息内容。

– BA中每一轮时间固定为TBar,节点判断超时后返回空。若超出特定BA轮数,则节点将状态回滚到state1,该轮包含空交易批。

成块

– 各个节点利用执行结果状态独立成块。同时,将VDF的计算结果和证明包含在块中。整个共识过程中,Listener会接收到跟Voter和Proposer同样的消息,所以除了传递消息外,Listener同样会校验、处理消息、成块。

具体算法描述如下:

节点每轮对消息的响应如下:


4.4 新节点加入

新节点需要经过如下几个步骤:

观察并接收网络正在传播的消息,确定块高度和共识的轮数,当前块共识结果。为了防止被恶意节点通过网络控制的方式攻击,新节点需要尽量从多个网络地址监听共识消息。

根据当前成块,向网络中其他节点拉取历史区块,并验证链的正确性。考虑到链的单向性,新节点可以保证历史区块的正确性。

新节点要同时对VDF的结果进行验证,假如有多条链同时存在,那么要选VDF累计比较多的链。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容