干货 | 节点的设计理念和安全性
2019-07-05 20:57

图片加载失败
作者: 链捕手

20197513:00YOUChain北京站首期线上「Token模型研讨会」,在社群内正式展开,25+社群同步转播,直播覆盖总人数12000+YOUChain首席架构师何畅彬针对节点的设计理念和安全性进行了详细的分享。分享之后是自由交流环节,媒体火星财经、一枝资讯,首都版权产业联盟主席,鱼链联合创始人等项目方以及各大投资人,纷纷就分享的内容进行了热烈的提问,YOUChain的两位创始人赵峰、鲁军及何畅彬共同解答了大家的问题。以下为官方整理的分享素材、海报素材及问答素材:


YOUChain 节点的设计理念和安全性探讨


1、网络与节点


区块链网络,本质是一个分布式系统,系统中的节点根据某一个约定的规则,完成状态的迁移。

网络中的节点的角色、数量、在线情况、是否诚实认真工作等,定义了这个区块链网络的性质,也关系着系统的安全。


2、共识与考量


上文提到网络中的节点遵循的某一个约定,就是所谓的共识协议,简单的讲就是决定哪下一个区块的规则。在节点的维度考虑问题,那就是哪些节点的哪些考量标准,决定了下一个区块。

在区块链世界里面,主要考量标准有所谓的PoWPoS。分别是以「计算能力」和「持币数量」为考量标准。

大家可能会问了,为什么主要是这两种考量标准,为什么不是别的呢?

原因很简单——这是两种最容易量化的标准,且易于抵抗攻击。其他的,例如 reputation(声望度)honesty(诚实度这类标准,都无法简单准确的量化。那存储空间、带宽能不能成为量化标准呢?答案是可以的,但是具体实施起来,有一定的难度。


3、现有公链的问题


BTC 创建者中本聪期望通过 PoW 实现 one-CPU-one-vote。早期,普通的家庭电脑也可以成功抢夺到出块权,确实满足了这个愿景。后来因为算力竞争,挖矿设备进化到了专业的 ASIC矿机和矿机联合体——矿池。ETH 一开始就考虑到了矿池垄断的问题,它设计的Etash算法,是依赖内存的,所以 ASIC 矿机的优势没有那么大,但是矿池还是形成了。

BTC/ETH 让人诟病的 POW 挖矿机制带来能源消耗,吞吐量低等问题,也使得两者使用费用高昂。

EOS 模拟了美国的选举人制度。本质是倡导大户集中,鼓动社群投票,超级节点竞争。开发者期望用超级节点竞争的方式,实现去中心化。主要开发者BM甚至声称,这类超级节点的去中心化程度,比 BTC 的矿池垄断的模式要高。一直以来,RAM (内存资源)被当做投机标的,使得开发者成本飞涨。有相关计算表明,支撑一个 DAU 1W DAPP,需要近 200W 美金的年费用。

可以看出,这三大代表性公链,去中心化程度堪忧,同时使用成本也较高,无法承载商大规模商业应用。


4、YOUChain 的愿景


YOUChain 愿景是打造可承载大规模商业应用的去中心化公链。要承载大规模商业应用,性能和资费是关键;要实现去中心化,节点角色、职责和数量是关键。

低性能,速度慢,难以扩展,不是我们想要的;权利高度集中,不是我们想要的;使用费用高昂,不是我们想要的。

要实现高性能,需要考虑制约区块链的三个基本物理条件:计算、存储、网络。共识协议和网络结构需要极度的优化。

某种程度上,我们是中本聪的信徒,相信去中心化的愿景。因此,我们认为,以某种方式实现中本聪的 one-CPU-one-vote的初衷,是实现去中心化的一种方式。


5、思考性能


回顾已经上线的公链,包括 BTC/ETH EOS,我们可以观察到一个现象:一个共识的达成,需要涉及到的节点越多,其性能就越差。前者涉及到了全网所有节点竞争挖矿,性能较差;后者只涉及到了少数的超级节点的轮流出块,性能较好。

怎么做到去中心化和扩展性兼得呢?其中一个答案是为系统引入随机。Algorand 是我们十分推崇的项目,它为行业带来了新的思路,我们也深入研究了它的技术原理和实现。


5、思考 one-CPU-one-vote


考虑到设备和节点,我们很自然想到了几乎每个人都会拥有的移动设备(手机)。如果这些设备都能成为网络的节点,并参与工作。那岂不是真正的实现了去中心化?

为什么移动设备,都被已有的公链排除在了节点范畴之外呢?一个直觉印象是,他们的计算、存储、网络性能都不够,稳定性也不够。

当我们深入去研究的时候发现,最新的移动设备(骁龙845/麒麟980及以上)的计算能力,不亚于普通的云主机;主流存储能力也达到了数百 GB;网络性能随着 5G 的普及和千兆光纤入户的进展,不逊机房环境。


6、思考费用


考虑到能源消耗和运营节点成本,我们选用基于 PoS 的共识机制。

那么使用公链的费用,主要是与运营节点主要包含两部分成本相关:基础设施成本和抵押物的机会成本。

基础设施成本:机器购置与折旧、带宽、托管费用、防御攻击费用等。

抵押物的机会成本:因抵押而无法自由买卖产生的机会成本(币涨了或者跌了但是币被锁)。

我们认为,随着物理条件的演进,当条件具备的时候,不再需要专业的矿机和托管条件,海量的移动设备,都可以成为网络的节点,使用成本自然就降低了。


7、思考可扩展性


YOUChain 创始之初,我们在公链设计中,就预留了使用安全分片技术进行横向扩展的技术路径。

同时,为了满足高 TPS 下的海量存储需求,我们设计了存储压缩和根据 merkle root 证明的机制使得移动节点可以快速接入网络和持续参与共识。

为了兼具高性能与去中心化。YOUChain 设计了一个基于 PoS VRF 自抽签的快速 BFT 共识协议:YPOS

共识流程,主要分为两个阶段:提议和投票。

在较大的候选集合中,通过 VRF 自抽签机制,选取少量(如数十)的区块提议节点,后者将提出候选区块及其哈希。

在较大的候选集合中,通过 VRF 自抽签机制,选取一定量(如数百到数千)的投票节点,为前一步提议的区块哈希按照某一种规则进行投票。

其中第二步,属于传统的 BFT 共识的流程,核心是消息复杂度和延迟。我们做了大量的工作,使得我们的 BFT 算法实现了线性的通讯复杂度,可以在大型区块链网络中运行,并做到秒级收敛。

在节点的去中心化问题上,我们认为移动节点是未来方向。因此,我们做了大量的的工作,实现了家庭网络和移动网络的稳定传输和有效穿透。同时我们将节点输出成 SDK,植入到生态伙伴的 APP,使得搭载 APP 的移动设备,成为网络的节点,这样我们的候选集合就有了海量的节点。


8、YOUChain 节点设计


安全性是区块链的基础。没有了这个,扩展性和去中心化都免谈。区块链最常见的攻击,是女巫攻击,大部分都是为了实现双花。

在对抗女巫攻击上,基于 PoW  PoS 系统都有成熟的经验。前者不表,后者主要是出块概率权重或者验证投票权重与抵押占比成正比。

一个现实问题是,对于移动节点,我们既无法要求他们有足够多的抵押,但又要捍卫它们的投票权。

如果完全按照抵押占比成正比的投票权中,移动节点的愿景将因失去激励而形同虚设;如果按照一设备一票,我们又难以抵御女巫攻击(因为节点很容易伪造)。

为了实现我们的远景和目标,我们设计了如下的节点结构。

系统中包含两大类节点:参议节点(senate-node):部署在数据中心的服务器,拥有较强的计算、存储、网络性能,类似于网络骨干节点,前期有一定的准入;众议节点(mass-node):部署在家庭网络或者移动网络下的各类设备,无准入。

以上两类节点,均需要参与 token 抵押。我们为抵押设置一个最低准入门槛,选取抵押排名前若干位的账户作为候选集合,依照节点抵押的 token 数量在候选集合的占比分配抽签权重。


9、节点选取方式


1.png


两类节点对比

2.png

我们既要保护网络的安全和性能,又要鼓励众议节点积极为网络做出贡献,因此,我们设计了两类投票主体。

YPOS 区块敲定

区块提议者,从参议节点集合中(性能考虑)选举,提出区块和哈希。

区块验证者,从参议节点集合和众议节点集合中分别选举,分别对提议的区块进行验证和投票,hash 较小的优先级高。

满足法定票数的区块,则为敲定的下一个区块

定义如下:

3.png

10、网络安全


参议节点与众议节点集合,均按照抵押占比分配抽签概率,可以抵御女巫攻击。

官方持有一定量的 token,承诺永不抛售,但在网络早期,可用于网络安全性维护。

官方可以在必要时,可使得维护网络稳定的 token 数量占据足够的份额,以确保网络的 security liveness

链上将会设计针对各类不当行为的惩罚措施,使得各类节点有经济上的动力去诚实工作。


11、网络演进


YOUChain 开发者承诺,当众议节点的数量和质量,达到一定程度,将会推动主网持续升级。

通过安全分片技术提高可扩展性

逐步调整众议节点的选取参数,实现「人人可参与」

区块提议节点逐步过渡到从众议节点中选取

逐步降低参议节点集合法定票数 的要求

参议节点的功能将演进为:存储、转发

前面主要从区块链网络及其节点的本质出发,阐述了现有公链的去中心化和使用成本等问题,进而介绍了 YOUChain 的愿景和节点设计,最后给出了安全考量和演进策略。主旨是为了阐明设计的思考,引起讨论。

 

 

以下为问答素材:

 

Q1 参议节点的准入制,是否中心化?未来的演进措施是怎样的?


何畅彬: 设置参议节点角色,主要是保障网络的性能;前期有一定的准入制度,是基于有责任的去中心化的考虑。这个准入制度,其规则是公开透明的,满足一定的基本条件就都可以加入。其实是在所有的公链中,都会存在一些优质节点,拥有更好的计算资源及网络条件,在我们 YOUChain 中,我们只是把这些节点识别出来,让他们能发挥更大的作用,更好地服务于公链网络的稳定运行。未来随着社会整体硬件基础设施的进步及个人计算资源的发展,参议节点将逐渐演化为提供存储、转发等功能的节点,并将逐渐从有准入的机制变为无准入的机制。因此,参议节点的设置,并不意味着中心化;恰恰相反,这是用一种负责任的方式,更好地服务于去中心化这一目标。

 

Q2 官方持有一定量的 token,承诺永不抛售,不过是为了抵御攻击,只是有人收购了足够多的token,不就可以实施攻击了吗?


何畅彬: 1.网络的早期较容易受到攻击,所以官方的 token 将会起到抵御作用;2.在网络的进一步演进过程中,Token 进一步分散,在公开市场上收购足够多的 Token,将会被变得「经济学上不可能」

Q3 参议节点和众议节点的数量分别是多少?会不会扩容?

何畅彬: 参议节点,早期是有一定准入,后期会彻底放开。众议节点将无准入,海量。具体的数字,需要根据上线前,实际的情况而定。我们还在具体考量。

 

 

Q4 参议节点提议区块,是否有中心化问题?


何畅彬: 所谓中心化,本质上是少数人控制整个系统,能够施加超越既定规则的影响力。但是在我们的网络中,提议区块只是共识的一个步骤,被提议的区块,需要通过一个临时随机选举出来的验证委员会(包括参议节点和众议节点分别形成的两个验证委员会)验证并多数投票通过后,才是最终被接受的区块。本质上,随机选取任何节点来提议区块都可以,只是出于性能考虑,将该角色由参议节点承担。这跟中心化去中心化问题并无影响。

 

Q5 我是咱们有链的老社群用户了,刚才提到的 峰值TPS 和测试环境,我想再详细了解下。


何畅彬: YOUChain 的社群为我们提供了部署在家庭网络下,超过 2000 个同时在线的 pc 节点和手机节点。在 5 月进行的一次压测中,我们随机选取超过 500 节点进行共识出块,跑到峰值 TPS 1250,出块时间约为 3 秒。

 

Q6 何总你好,我是鱼链的联合创始人Jacky, 我想知道下,早期众议节点,为什么是安全的?未来节点众多的时候,如何更加安全?


何畅彬: 基于PoS的去中心化公链网络,其去中心化的过程,必定不会很快,会需要一定的时间。早期的普通节点可能比较少,因此众议院节点也会比较少,因此可能比较容易被控制。基于对这个问题的考虑,我们在有责任的去中心化的基本原则下,会保持一定量的 token,专门用于维护网络安全,团队承诺绝不把这些token用于任何其他用途(包括但不限于售卖、转让)。随着网络的发展演进,将会有越来越多的节点参与众议节点的竞争,网络相关参与会逐渐调整,从而众议节点将越来越庞大,要控制众节点的多数也将变得越来越不可能。在这个过程中,前述Token也将逐渐从众议节点退出(这部分token永远不会参与流通)。最终,众议节点将变成一个去中心化的、人人可参与的同时也是安全的节点集合。

 

Q7 如果参议节点和众议节点验证结果不一致,怎么办?


何畅彬: 简单而言,YPoS共识有超时机制, 如果两类节点意见不一致,将会进入下一个 round 的共识。

鲁军:我补充解释一下,正常情况下,不会出现验证结果不一致,只有被攻击成功,才会不一致,宣总的问题本质是个安全问题。我们设计了两类PoS投票机制,在经济学上保证了链的安全。相比较其他PoS机制,到YOUChain相对成熟阶段,攻击不仅要控制Token,还需要控制海量节点

 

Q8 手机作为节点的时候,在4G/5G这样的网络状况下,移动手机节点可以做到区块广播和同步吗?


何畅彬:从我们实测的情况下,4G 的带宽是没有问题的,目前资费可能有一些问题。5G 这个事情会变得更好。在我们正在进行的手机节点测试中,部分用户选择把手机部署在家庭网络下,部分会在移动网络下。

 

Q9 TPS1250,出块3秒,用来承载企业应用还是承载交易?BM宣传100W承载企业应用,最后来个1W,最后用来承载菠菜了,我们是准备承载什么,交易吗?


赵峰:YOUChain的目标是真正的去中心化可大规模商业应用的公链, 初期,YOUChain达到单片1250 TPS,3秒出块是已经是visa全球交易水平,可以满足商业应用需求, 可以承载各种商业应用和交易。 另外EOS作为一个联盟链项目,性能确实做的很低,有很大提升空间, 至于EOS上全是菠菜, 是因为收费太贵,导致低利润率的商业无法在EOS落地,只有暴利行业可以付得起费用。 YOUChain正是解决这些行业痛点,提供基础公链设施,帮助行业发展和落地。


鲁军:YOUChain的目标是承载大规模商业应用。1250是我们第一阶段单片的性能,第二阶段会实现分片,达到性能可无限拓展。在第一阶段内,1250预估是足够使用。具体应用发展方向,公链是基础设施,无法干预行业发展。个人预计几类应用会先在YOUChain上发展:行业内已有的中心化应用比如币币交易,金融,游戏,内容。

 

Q10 YOUChain节点间的通信用的是什么呢?比websocket好多少?设计是否兼顾安全和高效?后期有改进可能性吗?


何畅彬:根据我们的设计理念,我们使用了 p2p 通讯,传输能力和穿透能力,理论上实际上,要比 websocket 直连性能要好。我们的设计已经充分考虑了安全和高效。当然也存在继续的改进的可能性。

 

Q11 YOU链打算主要用来存储哪类资产?


数字化资产,更需要机器信任保证的数字化资产。具体类别对公链不重要。

 

 

Q12 目前基于PoS的链都是事实上中心化的,为什么 YPoS不会中心化?


何畅彬:基于POS的链,典型的如EOSDPoS,由少数超级节点完成账本的记账及网络运行,所以人们觉得它事实上是中心化的。而我们的YPoS不同之处在于,我们的整个记账过程是由提议和投票两步骤组成,参与每个步骤的节点,都是从参议、众议这两个很大的节点集合中,通过VRF密码学抽签机制随机不可预测地抽选出来的;而参议院与众议院的形成,最终是无许可的有一定竞争的,是人人可参与的,本质上代表了全网络所有节点,因此不存在少数节点控制记账过程的问题,也就是说YPoS与传统的其他PoS机制不同,YPoS是一种去中心化的机制,而且是比PoW更好的去中心化。

 

 

Q13 我看你们说节点数是海量,出块速度还比Algo快,这个是如何做到的?


何畅彬:Algorand的代码一开源,我们就仔细研读过。首先Algorand的核心是它设计的共识算法。我们就不说它17年的论文,按照论文里的设计,完成一轮共识需要至少6步,时间不低于10秒。而它开源的代码,核心也是共识,其它模块略显简陋。在我们看来,这是很让人吃惊的。影响公链出块速度的不仅仅是共识算法,还有消息广播方式、数据结构等等。比如,我们在网络上做了大量的优化。底层的通信模块全是我们自己的代码,包含了节点NAT穿透、使用rupd代替udp等。而Algorand用了最常见的第三方库,节点间的通信竟然用得是websocket。再比如,我们在Algorand中发现他们的VRF抽签没有考虑到精度的问题。所以,共识算法设计仅仅是公链很重要的组成部分,但绝不是全部。

 

Q14 何总您好,我是火种资本创始人蒋杰,据我了解,Algorand是一个明星团队,且不说科学家Silvio Micali ,即使其工程团队,也包含很多MIT的人才,我们基于他们的理论,如何有信心做得比他们好?


鲁军:从目前对Algo的代码研读来看,我们已经比他们做的好。你应该去问Algo,有没有信心比YOUChain做的更好。


何畅彬:Algo 是我们非常尊敬的一个对手,他们有很好理念和愿景,同时也有很好的技术团队。但是,从经济模型上,该项目依然无法超脱基于 PoS 的系统的富人集中问题。

同时,正如我们最近对于 Algo的论文和代码的分析连载文章总所展示的,该项目的最终实现,也是在最初的理想和工程现实中做了一定的折中和妥协,我们也发现一些模块的代码,存在于一定不安全性。YOUChain,在设计理念上,和该项目有巨大的差别。我们所推崇的海量节点,真正的去中心化,可扩展性和低成本使用,使得我们可以承载大规模的商业应用。YOUChain 的技术团队,对先行的公链的技术优缺点有着深刻的理解,同时我们在经济模型、共识协议、网络结构上的创新,将会使得我们将非常有可能超越 Algo


说点什么
最新评论
查看更多评论