私募

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz

区块链(YOUChain) 节点的设计理念和安全性探讨

[复制链接]
发表于 2019-8-8 09:19:58 | 显示全部楼层 |阅读模式
网络与节点4 X. R9 K  t' A/ u% x7 m$ i) }& D
+ E  }' x6 t: O! Z% v+ \( ?  g
   区块链网络,本质是一个分布式系统,系统中的节点根据某一个约定的规则,完成状态的迁移。网络中的节点的角色、数量、在线情况、是否诚实认真工作等,定义了这个区块链网络的性质,也关系着系统的安全。
. C3 O% O. f4 C2 s  J4 n8 h( O" n" |6 j: k! u* f
共识与考量
& L& ~0 D$ q3 u" R& r$ T5 }/ o" K& o
   网络中的节点遵循的某一个约定,就是所谓的共识协议,简单的讲就是决定哪下一个区块的规则。在节点的维度考虑问题,那就是哪些节点的哪些考量标准,决定了下一个区块。在区块链世界里面,主要考量标准有所谓的PoW和PoS。分别是以「计算能力」和「持币数量」为考量标准。  ]$ Y  x6 D. W% E

. J1 c" P' ?( j2 O( x$ w8 G   大家可能会问了,为什么主要是这两种考量标准,为什么不是别的呢?2 d. f# `' n! \. E* q  L2 B* @- ^

; W' B: i/ {+ L6 j1 Q原因很简单——这是两种最容易量化的标准,且易于抵抗攻击。其他的,例如 reputation(声望度)、honesty(诚实度) 这类标准,都无法简单准确的量化。那存储空间、带宽能不能成为量化标准呢?答案是可以的,但是具体实施起来,有一定的难度。6 ^& r$ U1 a* W/ ]" I
4 \6 {$ p4 J' y9 t
    现有公链的问题5 c' A! x8 k; D5 v/ {

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

8 k9 c- U. S- Q3 y4 x# `3 f   BTC/ETH 让人诟病的 POW 挖矿机制带来能源消耗,吞吐量低等问题,也使得两者使用费用高昂。7 f5 ^! u  N* f3 f5 N( `' q

. j) M0 ~' L2 Q   EOS 模拟了美国的选举人制度。本质是倡导大户集中,鼓动社群投票,超级节点竞争。开发者期望用超级节点竞争的方式,实现去中心化。主要开发者BM甚至声称,这类超级节点的去中心化程度,比 BTC 的矿池垄断的模式要高。一直以来,RAM (内存资源)被当做投机标的,使得开发者成本飞涨。有相关计算表明,支撑一个 DAU 1W 的 DAPP,需要近 200W 美金的年费用。; S7 z0 M+ W6 C, v4 t. p
( i' m0 J+ X! {5 g$ `* s: a
   可以看出,这三大代表性公链,去中心化程度堪忧,同时使用成本也较高,无法承载商大规模商业应用。
, n6 p2 W! {: l8 \& F( z. R7 ~, U
YOUChain 的愿景9 Z5 a+ K0 ^5 Q0 ^) }

/ a* d* N' B' {; p. M1 g   YOUChain 愿景是打造可承载大规模商业应用的去中心化公链。要承载大规模商业应用,性能和资费是关键;要实现去中心化,节点角色、职责和数量是关键。
4 r9 S! J! D' E- F* Y' b9 i) i$ {2 h, k1 A* r8 K& E
1.低性能,速度慢,难以扩展,不是我们想要的! A/ Q0 {* [+ u5 {; z
2 b# T$ @8 _& t& Z' ~" M* o. O
2.权利高度集中,不是我们想要的2 X9 Z7 y% ~* `! L, l
3 m" @. X2 L/ a, Y& z( b
3.使用费用高昂,不是我们想要的4 G" r1 ^0 p* w# u
2 o8 m# R5 z  H5 _& U# F
   要实现高性能,需要考虑制约区块链的三个基本物理条件:计算、存储、网络。共识协议和网络结构需要极度的优化。
+ I  B. M* N0 ?$ Z9 v! d7 l1 M
% R" g* q$ O3 V: S$ `; t1 ~' f" W   某种程度上,我们是中本聪的信徒,相信去中心化的愿景。因此,我们认为,以某种方式实现中本聪的 one-CPU-one-vote的初衷,是实现去中心化的一种方式。
: ~) k$ m! L" r0 _0 k# D# o& b4 c3 n% ]' S2 Q1 g
思考性能5 X9 P7 ]' h+ E+ ?
6 q& ^3 x. M6 r. S) `- p: l) I
   回顾已经上线的公链,包括 BTC/ETH 和 EOS,我们可以观察到一个现象:一个共识的达成,需要涉及到的节点越多,其性能就越差。前者涉及到了全网所有节点竞争挖矿,性能较差;后者只涉及到了少数的超级节点的轮流出块,性能较好。. T$ w  f/ z0 H5 K+ o

+ T3 `' }, I  e( z! ]1 x怎么做到去中心化和扩展性兼得呢?其中一个答案是为系统引入随机。Algorand 是我们十分推崇的项目,它为行业带来了新的思路,我们也深入研究了它的技术原理和实现。
1 J% {* \$ t$ ?' ^0 y. [/ W% J5 Z
   思考 one-CPU-one-vote
' F5 ?3 j( h9 \) V6 U3 G7 B, }* Y/ `% P- u
   考虑到设备和节点,我们很自然想到了几乎每个人都会拥有的移动设备(手机)。如果这些设备都能成为网络的节点,并参与工作。那岂不是真正的实现了去中心化?1 J" V5 u7 T' J+ Y

- a( s+ j2 ?' n0 u* q/ b   为什么移动设备,都被已有的公链排除在了节点范畴之外呢?一个直觉印象是,他们的计算、存储、网络性能都不够,稳定性也不够。
) v% }4 {$ g# P3 y/ H
# d( X7 p2 k4 [8 L1 w   当我们深入去研究的时候发现,最新的移动设备(骁龙845/麒麟980及以上)的计算能力,不亚于普通的云主机;主流存储能力也达到了数百 GB;网络性能随着 5G 的普及和千兆光纤入户的进展,不逊机房环境。
! g; z& z. ]2 r; o+ S. W
  t: F- c1 j5 t- Z思考费用, C. M0 a' L" u' O
+ r" V2 z: X. u7 E# s
   考虑到能源消耗和运营节点成本,我们选用基于 PoS 的共识机制。
+ u/ |" f1 }0 ~
# e3 }0 U+ U/ f/ T, m. q4 s1 D那么使用公链的费用,主要是与运营节点主要包含两部分成本相关:基础设施成本和抵押物的机会成本。, Z$ g) x+ `9 ?" g, b
  `% |9 s: R# @& k3 L3 v
   基础设施成本:机器购置与折旧、带宽、托管费用、防御攻击费用等。  O; V4 a: v: k0 u

  b8 c! F$ X) e9 M7 b  V抵押物的机会成本:因抵押而无法自由买卖产生的机会成本(币涨了或者跌了但是币被锁)。" d, [1 V6 [. V- Z
% r4 J0 T& k3 A4 B4 d" z
    我们认为,随着物理条件的演进,当条件具备的时候,不再需要专业的矿机和托管条件,海量的移动设备,都可以成为网络的节点,使用成本自然就降低了。
% H' {7 }3 }. d# Q4 R6 _" E1 H# Y0 H+ T2 {1 t& P* F6 Y- O  X- W
思考可扩展性9 @) Q; W' v6 u* k3 r
; r; {7 ~% A1 K- l5 C' X
    从 YOUChain 创始之初,我们在公链设计中,就预留了使用安全分片技术进行横向扩展的技术路径。! P0 V- B2 V5 j4 |8 f

2 Q( X' X9 J5 l    同时,为了满足高 TPS 下的海量存储需求,我们设计了存储压缩和根据 merkle root 证明的机制使得移动节点可以快速接入网络和持续参与共识。
/ l! G8 ^2 w4 G+ I+ M
/ X+ S; @1 c6 S: ?9 Q   YOUChain 共识「YPOS」
+ K# C+ W4 O1 h7 v
4 ~: @# ~/ k" k& m2 A1 o% ]   为了兼具高性能与去中心化。YOUChain 设计了一个基于 PoS 和 VRF 自抽签的快速 BFT 共识协议:YPOS。
" q1 B5 y, G& }7 ^* c
5 a5 K0 \4 a6 b3 m共识流程,主要分为两个阶段:提议和投票。+ F* u8 _1 \7 @

3 |6 G1 N5 V2 U1.在较大的候选集合中,通过 VRF 自抽签机制,选取少量(如数十)的区块提议节点,后者将提出候选区块及其哈希。
: Y4 x: R# y0 u
2 S: }  j, M% U& }3 _) q% ?2.在较大的候选集合中,通过 VRF 自抽签机制,选取一定量(如数百到数千)的投票节点,为前一步提议的区块哈希按照某一种规则进行投票。+ L1 f7 I1 d3 ], a8 ~4 s
9 O+ y  X9 ]  C2 }3 u- ~8 {
其中第二步,属于传统的 BFT 共识的流程,核心是消息复杂度和延迟。我们做了大量的工作,使得我们的 BFT 算法实现了线性的通讯复杂度,可以在大型区块链网络中运行,并做到秒级收敛。' e0 u* p) q2 F, O$ D0 x

1 u) x5 ~/ A$ Q9 S+ u# I在节点的去中心化问题上,我们认为移动节点是未来方向。因此,我们做了大量的的工作,实现了家庭网络和移动网络的稳定传输和有效穿透。同时我们将节点输出成 SDK,植入到生态伙伴的 APP,使得搭载 APP 的移动设备,成为网络的节点,这样 我们的候选集合就有了海量的节点。
. K# A: P# P% U+ \6 q) Z) ~1 z  M; }1 r+ w4 S( T. o% o
YOUChain 节点设计
! B: M1 B) [0 L# r( Z6 `) P, `0 V5 M2 ~# j; ]( u0 C
   安全性是区块链的基础。没有了这个,扩展性和去中心化都免谈。区块链最常见的攻击,是女巫攻击,大部分都是为了实现双花。; O( @. n4 j( E: A& y# \! G
+ w8 a! T7 s; q; i% x
在对抗女巫攻击上,基于 PoW 和 PoS 系统都有成熟的经验。前者不表,后者主要是出块概率权重或者验证投票权重与抵押占比成正比。5 k0 U5 l$ r# o( b9 d8 Q( D
* L$ z$ o; a. P9 m8 d% `
   一个现实问题是,对于移动节点,我们既无法要求他们有足够多的抵押,但又要捍卫它们的投票权。
+ D# E( T( J. v3 V0 k6 u# f( N7 x! }5 G4 t/ N
   如果完全按照抵押占比成正比的投票权中,移动节点的愿景将因失去激励而形同虚设;如果按照一设备一票,我们又难以抵御女巫攻击(因为节点很容易伪造)。
, j: Z6 c" F2 o' C* ^, R4 [, O4 n! N; k3 c
为了实现我们的远景和目标,我们设计了如下的节点结构。! \* @) Q( z8 O/ V) {  @0 N5 L

- V4 M* E5 I' D" }" u. l" {节点类型1 k- _& V! d! L- N3 @0 T* E1 {
5 z1 t0 z% \+ T0 Q" J0 T
系统中包含两大类节点。; w7 K& s2 e+ x& w
0 i: ?: q! v' A# Z
1.参议节点(senate-node):部署在数据中心的服务器,拥有较强的计算、存储、网络性能,类似于网络骨干节点,前期有一定的准入。
  Q$ n( p; Z8 [0 {  i( H3 i
# {! b- e& ~0 R4 C2.众议节点(mass-node):部署在家庭网络或者移动网络下的各类设备,无准入。
1 T& R$ k; q4 U" U" r$ Q$ [
' c' F6 }8 t9 |以上两类节点,均需要参与 token 抵押。我们为抵押设置一个最低准入门槛,选取抵押排名前若干位的账户作为候选集合,依照节点抵押的 token 数量在候选集合的占比分配抽签权重。" x: p0 v. {' }5 y) C7 Y
$ s* o+ {7 e& G3 J0 P7 C, l
节点选取方式
$ I0 X* r" @5 w$ w7 ~/ b) \1 v$ ~
. f! g1 ?6 l( v
' F5 R4 O% Q6 g/ C) t* V0 a- L+ `1 i( M- a: Z% ~, V# w
0 z' {+ S  m. d/ y5 U
6 {  R  ?5 c; K

5 x0 _( R! L, @6 L( l: C参议节点参数「待定」& d' B5 {5 g% ^

: A* B, m- O9 S$ S; d) ~2 F8 T' y' f+ e
* e6 p. J( w. t3 E
& @! b3 S, K3 i" @9 w3 O2 Y" ]0 n) f! X  l1 O0 p

2 Z8 _6 i& Y3 k) @, P众议节点参数「待定」, B4 r8 P6 N9 ]6 l  d3 `! y' L
% `) X5 P$ G; s) W- e2 Z
/ f1 W6 g4 C) E) p- s+ e, z
9 r+ j9 Q- T4 m1 {
: A) R$ s" H8 U$ t% [# m

. f" V  @, Y5 G2 j8 B4 t3 E两类节点对比
! w# t8 b! p- m9 s# I$ x+ N+ L5 Z7 ?/ ^, v

0 [9 C3 i8 @+ e$ o- x9 M- S8 `  s+ A1 s* G! {
$ N) v# o/ E6 g! m8 K9 \" ]
  e- I7 H( r5 `* L6 l
    我们既要保护网络的安全和性能,又要鼓励众议节点积极为网络做出贡献,因此,我们设计了两类投票主体。% j) N/ M. |; J

8 i3 n$ y+ C) lYPOS 区块敲定6 k* a4 I& ~4 v6 x

- K- G- @) h5 Z9 ]9 q1.区块提议者,从参议节点集合中(性能考虑)选举,提出区块和哈希。
$ s4 G0 G0 M8 j6 A% S# p6 w# t
+ w/ Z0 y, ^8 t# ~" Y% C* k8 U2.区块验证者,从参议节点集合和众议节点集合中分别选举,分别对提议的区块进行验证和投票,hash 较小的优先级高。
/ B2 o5 d% E* A3 _2 w
' M( l1 z8 w8 E# K3.满足法定票数的区块,则为敲定的下一个区块
5 j, r9 ?& X/ M$ y8 s% E- V+ {" d9 a; _# n/ n7 a/ ]: }
定义如下:
$ Y. B; l- D# }* [; K% j& ~) ?5 b0 ~

5 D( B' {" Y0 g( O4 |7 n, u2 r
( l% U6 i% ^% [+ b; U  a- f9 U5 l" ~: C- H
. |/ {! r0 Z; e2 S, K5 a

& }5 g) w3 p% ?- H网络安全' k" l* \# J) Q" ~" n

9 o& u/ I2 D3 o" U: I) s参议节点与众议节点集合,均按照抵押占比分配抽签概率,可以抵御女巫攻击。% {. a) b' F- Q8 K) O! b* C- ~
" R0 |( v" @/ y  O" S, q
官方持有一定量的 token,承诺永不抛售,但在网络早期,可用于网络安全性维护。
" N% v0 S2 v; f6 r
9 A9 h% }9 E  t& s' M' F2 C官方可以在必要时,可使得维护网络稳定的 token 数量占据足够的份额,以确保网络的 security 和 liveness。! _$ z! S6 N( R" b) i0 s0 R8 U  K
. V2 o# F& H" w& T/ U; z
链上将会设计针对各类不当行为的惩罚措施,使得各类节点有经济上的动力去诚实工作。; H$ L6 @2 X. _0 a

% o4 ^$ @8 z; v" T9 J, j网络演进
, r/ [$ `% I6 {, N1 r' M, F" l* v+ |$ B  l/ O! H
YOUChain 开发者承诺,当众议节点的数量和质量,达到一定程度,将会推动主网持续升级。
% B/ Y# Y6 u# V1 J+ m. \$ M3 M
9 \" f$ P' P6 u, ~: T4 e8 R1 R1、通过安全分片技术提高可扩展性
+ ~& S  e1 t. u  F+ L. |4 X4 @8 P( j
2、逐步调整众议节点的选取参数,实现「人人可参与」
9 T. U! w3 v" G3 M9 e6 k
& x/ X  d" i/ Z: L' {3、区块提议节点逐步过渡到从众议节点中选取/ T4 L8 @$ ?: X, u

3 r% W. V( Z2 I! p1 J4、逐步降低参议节点集合法定票数 的要求
+ d5 @$ l5 I& b; s2 Q: g- b$ a0 q& |1 v" M/ n
5、参议节点的功能将演进为:存储、转发2 _4 Q! X- u% c- V5 g" g

% ^& m9 r/ L4 u/ v* T$ h! Z4 b前面主要从区块链网络及其节点的本质出发,阐述了现有公链的去中心化和使用成本等问题,进而介绍了 YOUChain 的愿景和节点设计,最后给出了安全考量和演进策略。主旨是为了阐明设计的思考,引起讨论。
' L# R, t# h5 R7 L& n" |0 I) d
0 D- e% u) Z3 i* z1 X以下为问答素材:: J9 V& `7 x0 _8 Q

- e% `! O+ e5 g" t3 ZQ1 参议节点的准入制,是否中心化?未来的演进措施是怎样的?
! o4 N" m( w( d) \1 K& o- L! `! k% I8 ?+ n6 Z
何畅彬: 设置参议节点角色,主要是保障网络的性能;前期有一定的准入制度,是基于“有责任的去中心化”的考虑。这个准入制度,其规则是公开透明的,满足一定的基本条件就都可以加入。其实是在所有的公链中,都会存在一些优质节点,拥有更好的计算资源及网络条件,在我们 YOUChain 中,我们只是把这些节点识别出来,让他们能发挥更大的作用,更好地服务于公链网络的稳定运行。未来随着社会整体硬件基础设施的进步及个人计算资源的发展,参议节点将逐渐演化为提供存储、转发等功能的节点,并将逐渐从“有准入”的机制变为“无准入”的机制。因此,参议节点的设置,并不意味着中心化;恰恰相反,这是用一种负责任的方式,更好地服务于去中心化这一目标。/ v, y5 K; b  d6 O' c

- ?) @+ |; C: b. \) t7 rQ2 官方持有一定量的 token,承诺永不抛售,不过是为了抵御攻击,只是有人收购了足够多的token,不就可以实施攻击了吗?
5 ~4 `: u& J/ \( S6 b5 a+ `. z* s- M
何畅彬: 1.网络的早期较容易受到攻击,所以官方的 token 将会起到抵御作用;2.在网络的进一步演进过程中,Token 进一步分散,在公开市场上收购足够多的 Token,将会被变得「经济学上不可能」& S1 r/ h2 p: ~2 _- \! U2 r8 g) \

8 h/ ^: E+ E5 _3 {, S4 y, V5 J& IQ3 参议节点和众议节点的数量分别是多少?会不会扩容?" W* h1 }! I: ~6 o" O, u
+ K9 e3 E  Q2 [% l# q
何畅彬: 参议节点,早期是有一定准入,后期会彻底放开。众议节点将无准入,海量。具体的数字,需要根据上线前,实际的情况而定。我们还在具体考量。' D; G5 \( O  z: @3 C) Q

- `: s4 G/ V3 v" R! B: S6 H% PQ4 参议节点提议区块,是否有中心化问题?
$ ]' s; O# N% r, @2 u8 k$ B  p
" u7 U4 \. Q, l+ j何畅彬: 所谓“中心化”,本质上是少数人控制整个系统,能够施加超越既定规则的影响力。但是在我们的网络中,提议区块只是共识的一个步骤,被提议的区块,需要通过一个临时随机选举出来的验证委员会(包括参议节点和众议节点分别形成的两个验证委员会)验证并多数投票通过后,才是最终被接受的区块。本质上,随机选取任何节点来提议区块都可以,只是出于性能考虑,将该角色由参议节点承担。这跟“中心化”与“去中心化”问题并无影响。$ k+ |) p# j+ g+ [7 ]  ]: l5 l
7 F1 z' u' o0 N( u$ d  P# y1 X
Q5 我是咱们有链的老社群用户了,刚才提到的 峰值TPS 和测试环境,我想再详细了解下! u8 p/ x) x3 m- x( U0 q# K
" A6 M9 ^7 h3 j& ~1 z* x7 i9 ^
何畅彬: YOUChain 的社群为我们提供了部署在家庭网络下,超过 2000 个同时在线的 pc 节点和手机节点。在 5 月进行的一次压测中,我们随机选取超过 500 节点进行共识出块,跑到峰值 TPS 为 1250,出块时间约为 3 秒。
2 `0 p9 Z2 b, @0 x. v: u
  |: v$ N0 d5 ?( M  }. Q4 `5 t- zQ6 何总你好,我是鱼链的联合创始人Jacky, 我想知道下,早期众议节点,为什么是安全的?未来节点众多的时候,如何更加安全?
; b- L1 h& O" a& e  G" g2 f* Y! D. [6 ^0 R# }& Y4 s, x7 `3 @
何畅彬: 基于PoS的去中心化公链网络,其去中心化的过程,必定不会很快,会需要一定的时间。早期的普通节点可能比较少,因此众议
http://www.simu001.cn/x171954x1x1.html
最好的私募社区 | 第一私募论坛 | http://www.simu001.cn

精彩推荐

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Archiver| ( 桂ICP备12001440号-3 )|网站地图

GMT+8, 2025-9-15 23:13 , Processed in 1.980889 second(s), 31 queries .

Powered by www.simu001.cn X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表