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

网络与节点

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

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

共识与考量

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

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

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

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

现有公链的问题

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

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

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

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

YOUChain 的愿景

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

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

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

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

思考性能

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

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

思考 one-CPU-one-vote

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

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

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

思考费用

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

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

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

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

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

思考可扩展性

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

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

YOUChain 共识「YPOS」

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

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

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

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

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

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

YOUChain 节点设计

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

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

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

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

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

节点类型

系统中包含两大类节点。

  1. 参议节点(senate-node):部署在数据中心的服务器,拥有较强的计算、存储、网络性能,类似于网络骨干节点,前期有一定的准入。

  2. 众议节点(mass-node):部署在家庭网络或者移动网络下的各类设备,无准入。

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

节点选取方式

在这里插入图片描述

参议节点参数「待定」

在这里插入图片描述

众议节点参数「待定」

在这里插入图片描述

两类节点对比

类型 准入 竞争 职责 抽签权重 收益摊分方式 量级
参议节点 逐步放开 有竞争 存储、转发、提议、投票 股权占比 股权占比 大量
众议节点 有竞争 区块投票 股权占比 组内均分 海量

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

YPOS 区块敲定

  1. 区块提议者,从参议节点集合中(性能考虑)选举,提出区块和哈希。
  2. 区块验证者,从参议节点集合和众议节点集合中分别选举,分别对提议的区块进行验证和投票,hash 较小的优先级高。
  3. 满足法定票数的区块,则为敲定的下一个区块

定义如下:

在这里插入图片描述

网络安全

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

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

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

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

网络演进

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

  • 通过安全分片技术提高可扩展性
  • 逐步调整众议节点的选取参数,实现「人人可参与」
  • 区块提议节点逐步过渡到从众议节点中选取
  • 逐步降低参议节点集合法定票数 QsQsQs 的要求
  • 参议节点的功能将演进为:存储、转发

总结

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

笔者阅历和学识有限,以上设计可能存在巨大漏洞或者谬误,具体的实施方案,也可能存在不确定性,请读者不吝指出。作者微信 freeface,有兴趣可添加讨论。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章