私募

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

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

[复制链接]
发表于 2019-8-8 09:19:58 | 显示全部楼层 |阅读模式
网络与节点
# Q, b- O& r. R3 b$ Z* i1 C- S5 t7 \" S, |+ o0 U
   区块链网络,本质是一个分布式系统,系统中的节点根据某一个约定的规则,完成状态的迁移。网络中的节点的角色、数量、在线情况、是否诚实认真工作等,定义了这个区块链网络的性质,也关系着系统的安全。
7 L" U/ C+ W( c0 U- v3 X* N3 [
9 v2 y  o4 E( G# ]共识与考量
8 O/ P, g' E" |7 |$ c+ ]& m0 X* N; D8 R) \' L
   网络中的节点遵循的某一个约定,就是所谓的共识协议,简单的讲就是决定哪下一个区块的规则。在节点的维度考虑问题,那就是哪些节点的哪些考量标准,决定了下一个区块。在区块链世界里面,主要考量标准有所谓的PoW和PoS。分别是以「计算能力」和「持币数量」为考量标准。4 j9 ?; G) K6 I2 I; F2 R: ?1 T

1 V9 n. {* {* _   大家可能会问了,为什么主要是这两种考量标准,为什么不是别的呢?, {; W: D5 F, ]( A

) e6 x9 E, ?8 B* c% j原因很简单——这是两种最容易量化的标准,且易于抵抗攻击。其他的,例如 reputation(声望度)、honesty(诚实度) 这类标准,都无法简单准确的量化。那存储空间、带宽能不能成为量化标准呢?答案是可以的,但是具体实施起来,有一定的难度。! M! u# G& k* C* E* c( S( _
( m$ x4 u8 d- d% M0 \
    现有公链的问题
; Q- K# m5 m- V& }" q2 S# r7 T; m4 ~1 L3 T0 ?5 a4 {- Z. h
   BTC 创建者中本聪期望通过 PoW 实现 one-CPU-one-vote。早期,普通的家庭电脑也可以成功抢夺到出块权,确实满足了这个愿景。后来因为算力竞争,挖矿设备进化到了专业的 ASIC矿机和矿机联合体——矿池。ETH 一开始就考虑到了矿池垄断的问题,它设计的Etash算法,是依赖内存的,所以 ASIC 矿机的优势没有那么大,但是矿池还是形成了。; K" E' W! V( i1 j8 p
) z. l7 h* S- ~
   BTC/ETH 让人诟病的 POW 挖矿机制带来能源消耗,吞吐量低等问题,也使得两者使用费用高昂。
8 t: `! R1 {& g* k7 [8 t1 h7 x. ~1 L2 l$ `1 P
   EOS 模拟了美国的选举人制度。本质是倡导大户集中,鼓动社群投票,超级节点竞争。开发者期望用超级节点竞争的方式,实现去中心化。主要开发者BM甚至声称,这类超级节点的去中心化程度,比 BTC 的矿池垄断的模式要高。一直以来,RAM (内存资源)被当做投机标的,使得开发者成本飞涨。有相关计算表明,支撑一个 DAU 1W 的 DAPP,需要近 200W 美金的年费用。0 V; Y# M$ [8 u4 z% K, @
+ s1 Y, `& C6 x
   可以看出,这三大代表性公链,去中心化程度堪忧,同时使用成本也较高,无法承载商大规模商业应用。
  e) ^2 I0 P# `% u$ ~! p4 n. P: G, U0 l  D
YOUChain 的愿景
! Z; l( n2 M9 L" W2 _7 o0 v( Y8 f; ?- T( n1 g' j' R. o
   YOUChain 愿景是打造可承载大规模商业应用的去中心化公链。要承载大规模商业应用,性能和资费是关键;要实现去中心化,节点角色、职责和数量是关键。
& I# X3 ~- g# D: x) m7 r1 D2 F" N
9 F* J2 E7 A3 o$ ?! |4 t$ g1.低性能,速度慢,难以扩展,不是我们想要的
( L' w3 d, }' n. y9 c
2 l: q1 ^$ O. M% M' S2.权利高度集中,不是我们想要的
8 O7 V- A9 Y' O% _% E6 {; _
" B- z# v0 [% w9 e' y6 v  a3.使用费用高昂,不是我们想要的
$ v! G: e( k+ S1 w8 }, m- C2 ^. x6 F, _) [! w/ \* S
   要实现高性能,需要考虑制约区块链的三个基本物理条件:计算、存储、网络。共识协议和网络结构需要极度的优化。* o& a' f1 Y5 j/ R, g5 x- h2 w

" ?( W5 B5 g! k4 h/ i. e   某种程度上,我们是中本聪的信徒,相信去中心化的愿景。因此,我们认为,以某种方式实现中本聪的 one-CPU-one-vote的初衷,是实现去中心化的一种方式。
2 V+ ?$ C- u% Y8 a+ s+ ?
  u6 j; a3 r7 V+ E- z, C思考性能9 [- S# i/ p6 q# m. ]& e, U8 g! N8 Y
9 h+ C7 n( c, G8 w1 j: y4 U
   回顾已经上线的公链,包括 BTC/ETH 和 EOS,我们可以观察到一个现象:一个共识的达成,需要涉及到的节点越多,其性能就越差。前者涉及到了全网所有节点竞争挖矿,性能较差;后者只涉及到了少数的超级节点的轮流出块,性能较好。' x" v5 K  f; a3 Z. l/ f- v. H

: ]& t# z, Y% Y* I怎么做到去中心化和扩展性兼得呢?其中一个答案是为系统引入随机。Algorand 是我们十分推崇的项目,它为行业带来了新的思路,我们也深入研究了它的技术原理和实现。
; \& g6 ~) I9 p: D/ |6 e5 P8 D" M+ `. q: B8 z, l
   思考 one-CPU-one-vote# b9 c4 }/ b2 T, q3 H8 l
; G7 A, a( d6 i: N
   考虑到设备和节点,我们很自然想到了几乎每个人都会拥有的移动设备(手机)。如果这些设备都能成为网络的节点,并参与工作。那岂不是真正的实现了去中心化?
9 g8 s! K, M, P: q5 c0 A) y$ H: w( A
   为什么移动设备,都被已有的公链排除在了节点范畴之外呢?一个直觉印象是,他们的计算、存储、网络性能都不够,稳定性也不够。2 J2 A5 v9 e1 R. @# m6 `) `

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

! W& i% M" Y& F8 I9 F6 a思考费用& y9 n/ V7 G. q
: v# u% h$ C/ f2 O9 H
   考虑到能源消耗和运营节点成本,我们选用基于 PoS 的共识机制。& d0 a" m; a, W3 ?, \
0 ^9 K, q) _7 W' k9 U) Q
那么使用公链的费用,主要是与运营节点主要包含两部分成本相关:基础设施成本和抵押物的机会成本。
9 N9 {4 C. V6 C( b) f6 v9 `7 \6 N% k2 X  @5 R6 a& J7 D' U; x
   基础设施成本:机器购置与折旧、带宽、托管费用、防御攻击费用等。
4 g% M3 N& c6 t. V/ j& ?9 \, M, G. x4 U4 R9 W# A) a9 W
抵押物的机会成本:因抵押而无法自由买卖产生的机会成本(币涨了或者跌了但是币被锁)。
7 H8 `& M$ _6 u$ M* p8 Y1 a/ U0 Q
, y0 R- J) @5 V- Z# u    我们认为,随着物理条件的演进,当条件具备的时候,不再需要专业的矿机和托管条件,海量的移动设备,都可以成为网络的节点,使用成本自然就降低了。
1 i# c$ p+ ~- s, M9 A6 I1 y" X" ?9 F8 P9 ~3 K! H* W
思考可扩展性4 O# W+ W2 u0 F7 K& l* }
  G8 _: E1 H5 W2 }
    从 YOUChain 创始之初,我们在公链设计中,就预留了使用安全分片技术进行横向扩展的技术路径。! n! p. q0 H. Q3 I) h5 E) v# W

( c" S; B) b: Y. |6 A    同时,为了满足高 TPS 下的海量存储需求,我们设计了存储压缩和根据 merkle root 证明的机制使得移动节点可以快速接入网络和持续参与共识。
' L  P) d$ L/ ^; G4 M: \3 b+ f8 C8 l/ @* G; {8 G7 ]# W% z
   YOUChain 共识「YPOS」! t' V; a0 G$ ]4 a2 @' H& N
: T- V2 }$ o8 d+ k: L/ |
   为了兼具高性能与去中心化。YOUChain 设计了一个基于 PoS 和 VRF 自抽签的快速 BFT 共识协议:YPOS。
1 c' f# h. q' l7 \+ H( I+ @7 v$ u/ c: D
共识流程,主要分为两个阶段:提议和投票。* p8 e0 H7 u' T; n" }- S$ x$ V/ q/ n
. s+ [$ {$ R! P1 @5 |
1.在较大的候选集合中,通过 VRF 自抽签机制,选取少量(如数十)的区块提议节点,后者将提出候选区块及其哈希。
$ i& P" t* r# a- c8 B
6 A* n6 ?9 S; F  e& M2.在较大的候选集合中,通过 VRF 自抽签机制,选取一定量(如数百到数千)的投票节点,为前一步提议的区块哈希按照某一种规则进行投票。
! f+ Q% s! i% }( e3 m
6 g4 r8 T2 A4 B其中第二步,属于传统的 BFT 共识的流程,核心是消息复杂度和延迟。我们做了大量的工作,使得我们的 BFT 算法实现了线性的通讯复杂度,可以在大型区块链网络中运行,并做到秒级收敛。
% H" Z  e5 X6 ?1 T0 s( y& N) n3 C, l6 C# l" z1 h( t
在节点的去中心化问题上,我们认为移动节点是未来方向。因此,我们做了大量的的工作,实现了家庭网络和移动网络的稳定传输和有效穿透。同时我们将节点输出成 SDK,植入到生态伙伴的 APP,使得搭载 APP 的移动设备,成为网络的节点,这样 我们的候选集合就有了海量的节点。$ [/ p; j) o5 _2 [- ^# d
$ G. u" e0 `  j. c: d. }+ M' l
YOUChain 节点设计
/ c2 E. N+ P) i+ N3 q$ O+ {% L0 i6 z+ v) I! U; @$ ?
   安全性是区块链的基础。没有了这个,扩展性和去中心化都免谈。区块链最常见的攻击,是女巫攻击,大部分都是为了实现双花。
' w, o4 @, t; k  `- n, T" ]! U2 ]. V9 _' T) N0 |  e
在对抗女巫攻击上,基于 PoW 和 PoS 系统都有成熟的经验。前者不表,后者主要是出块概率权重或者验证投票权重与抵押占比成正比。
) R0 T8 }' k1 @" w
" q* s& b; z( `8 |! F% H! n   一个现实问题是,对于移动节点,我们既无法要求他们有足够多的抵押,但又要捍卫它们的投票权。5 `5 e. i! R* |; d3 R

" m! ^3 `8 [, ?: t1 t   如果完全按照抵押占比成正比的投票权中,移动节点的愿景将因失去激励而形同虚设;如果按照一设备一票,我们又难以抵御女巫攻击(因为节点很容易伪造)。0 V$ U! Y9 o' y' ^; W- K

& e. l* f/ H3 y$ J- I为了实现我们的远景和目标,我们设计了如下的节点结构。
& M5 }# [& B5 G
. {6 g8 F2 F; Q节点类型$ l! N% H6 `0 Q6 U
; L4 T( u/ Z5 K6 _/ a6 ?' L) O
系统中包含两大类节点。
( P; c1 g8 w0 H; B/ l
$ i1 Z& g- k3 T3 G4 \1.参议节点(senate-node):部署在数据中心的服务器,拥有较强的计算、存储、网络性能,类似于网络骨干节点,前期有一定的准入。
( o. `# J& h+ l1 c* O% B2 F6 C; d( ]0 n) f4 M+ W
2.众议节点(mass-node):部署在家庭网络或者移动网络下的各类设备,无准入。
# \  u- N0 X) R7 N' p# b. M' B( Z) L& d8 V  c4 h+ B
以上两类节点,均需要参与 token 抵押。我们为抵押设置一个最低准入门槛,选取抵押排名前若干位的账户作为候选集合,依照节点抵押的 token 数量在候选集合的占比分配抽签权重。
) ^% _# G0 M3 O' @1 c* N* s& G# q3 I5 A9 I4 B
节点选取方式9 f  y# r6 w/ g
& k3 G3 `3 d6 h0 Q; }! ~

" y7 d3 b8 \+ h$ W6 u. R, u/ i" n, R- l" @' [+ K. b9 r8 ^

2 ]- e% [/ ~1 b2 h+ `6 D
0 h% `& f2 B8 F" v+ y3 A8 ]: y
: A' J8 i0 @; X3 A% y8 t- ]参议节点参数「待定」* i/ X  n" _# c

4 q/ H( ^% h, u# ~' k
! `1 f, w  V9 C0 r% {* v/ w# c$ Z+ o7 P2 `# j
! t2 G" d. m2 e- _) i3 |9 D
5 \/ {( o% @7 b
众议节点参数「待定」. u' p1 y$ }/ I
, W9 a! B5 g3 a
' G0 I/ v+ }/ P% l$ W
" l$ D$ f8 y+ O) W; d+ n, e/ ^

6 ], I( \2 y8 ^8 Y8 h  g. |  n4 u
4 T2 H) |+ M+ Y3 w7 ?. H两类节点对比
$ {+ k! _; j' B( _3 t* b
  a. R: B0 j2 }9 A
! O: b0 q9 J3 j" `" i* \0 n
5 q8 a9 |( R! c6 S" d/ d# x+ m# L9 o0 r0 {( o7 g
% V) N/ n6 T% `/ h) Y
    我们既要保护网络的安全和性能,又要鼓励众议节点积极为网络做出贡献,因此,我们设计了两类投票主体。
4 N9 V* f  L! T
6 ^! e9 H2 Q5 r2 gYPOS 区块敲定
: [$ W/ ^" I& k* d4 N: c6 x: p2 z; {% ]' I: a$ h" w
1.区块提议者,从参议节点集合中(性能考虑)选举,提出区块和哈希。9 R+ A: A& o2 L- D
) z% L+ n1 H, O
2.区块验证者,从参议节点集合和众议节点集合中分别选举,分别对提议的区块进行验证和投票,hash 较小的优先级高。
$ Q' N0 x& m& C/ w5 ^; e+ W  T6 \" ?& |! L' B
3.满足法定票数的区块,则为敲定的下一个区块
' B- |2 H' ^0 a  i/ S  E
! w4 s& x, g, {7 v& V$ i定义如下:
: n  w9 f4 K0 C; p; H
) g7 v! J) h. V: e7 v+ u/ R1 l
  L: f; j% e* h) n
3 X' [& I5 A, C& h0 e$ s% |
2 I, s4 x+ P3 y( J4 n% `% z/ Q; d; @! B, v2 T1 K2 C
, {5 z! T0 J) j9 i, R
网络安全2 `% c: m2 L7 d  ]  o# B- W" D

6 N6 R* A0 E- `# K参议节点与众议节点集合,均按照抵押占比分配抽签概率,可以抵御女巫攻击。) {: m7 J. _2 p3 t
/ }( t% g. g9 a, l
官方持有一定量的 token,承诺永不抛售,但在网络早期,可用于网络安全性维护。
: }  \: v! H+ n4 z2 h
+ v- v7 p# P) T9 m& w9 _官方可以在必要时,可使得维护网络稳定的 token 数量占据足够的份额,以确保网络的 security 和 liveness。: P0 @# L! _3 Q  N" A8 t

# P5 U$ D& o+ }7 }" J4 l# L链上将会设计针对各类不当行为的惩罚措施,使得各类节点有经济上的动力去诚实工作。
: K  B1 q/ `0 j( u  J  c2 n% _. d  L+ A& Y
网络演进
  |7 j9 _9 ^+ e- c2 I5 C5 j( A( C3 g# G, M
YOUChain 开发者承诺,当众议节点的数量和质量,达到一定程度,将会推动主网持续升级。
1 E5 m- ^: G# K5 U3 V  s
  |5 l9 R7 `: c1、通过安全分片技术提高可扩展性
' c) {0 ^7 S5 p
! \* q( M) L0 @2、逐步调整众议节点的选取参数,实现「人人可参与」
: f% G! s* Q, O( M7 A3 `
! u! v9 N6 M0 x0 y7 ]2 a( B3、区块提议节点逐步过渡到从众议节点中选取
+ h0 L8 T2 D/ Y, P. I
) w  u  b9 u' n3 W- o4、逐步降低参议节点集合法定票数 的要求- m6 f8 w' V  W  A5 Q

/ C* Z+ r8 ]2 V6 f5、参议节点的功能将演进为:存储、转发  ?/ P4 W9 T, H

5 |- V3 v! V- X8 C: I8 b前面主要从区块链网络及其节点的本质出发,阐述了现有公链的去中心化和使用成本等问题,进而介绍了 YOUChain 的愿景和节点设计,最后给出了安全考量和演进策略。主旨是为了阐明设计的思考,引起讨论。
3 ~- K+ L& c7 D3 z& X
7 T- o% b9 C: N5 i0 h以下为问答素材:" U, U: L+ |* {  p8 i

( D) R3 F! ~3 X8 J/ _' _$ xQ1 参议节点的准入制,是否中心化?未来的演进措施是怎样的?
0 F0 l4 ?2 Q+ K* e- a4 w# A0 m( e1 y0 c
何畅彬: 设置参议节点角色,主要是保障网络的性能;前期有一定的准入制度,是基于“有责任的去中心化”的考虑。这个准入制度,其规则是公开透明的,满足一定的基本条件就都可以加入。其实是在所有的公链中,都会存在一些优质节点,拥有更好的计算资源及网络条件,在我们 YOUChain 中,我们只是把这些节点识别出来,让他们能发挥更大的作用,更好地服务于公链网络的稳定运行。未来随着社会整体硬件基础设施的进步及个人计算资源的发展,参议节点将逐渐演化为提供存储、转发等功能的节点,并将逐渐从“有准入”的机制变为“无准入”的机制。因此,参议节点的设置,并不意味着中心化;恰恰相反,这是用一种负责任的方式,更好地服务于去中心化这一目标。
( ~# b+ R. e* o( a; v- [3 w8 T9 c- S+ f; g
Q2 官方持有一定量的 token,承诺永不抛售,不过是为了抵御攻击,只是有人收购了足够多的token,不就可以实施攻击了吗?0 `0 ~& F( n: A

3 ?  n9 c  l* C$ Z6 D) [何畅彬: 1.网络的早期较容易受到攻击,所以官方的 token 将会起到抵御作用;2.在网络的进一步演进过程中,Token 进一步分散,在公开市场上收购足够多的 Token,将会被变得「经济学上不可能」  E/ A7 ?" W1 }9 y# t  X
3 B! [& E4 k( R1 q
Q3 参议节点和众议节点的数量分别是多少?会不会扩容?
9 H8 t  E& q. x" }# J' y  ?/ C$ S  S* v$ Y/ K9 a
何畅彬: 参议节点,早期是有一定准入,后期会彻底放开。众议节点将无准入,海量。具体的数字,需要根据上线前,实际的情况而定。我们还在具体考量。
3 z' L0 H, R' J  q% t: O; I( T) Z! ]) K( x1 }4 I0 D9 @
Q4 参议节点提议区块,是否有中心化问题?3 R5 M, i0 |: B; F. q6 {, b  N5 _
( y, _; ^+ f0 N/ k7 f' @
何畅彬: 所谓“中心化”,本质上是少数人控制整个系统,能够施加超越既定规则的影响力。但是在我们的网络中,提议区块只是共识的一个步骤,被提议的区块,需要通过一个临时随机选举出来的验证委员会(包括参议节点和众议节点分别形成的两个验证委员会)验证并多数投票通过后,才是最终被接受的区块。本质上,随机选取任何节点来提议区块都可以,只是出于性能考虑,将该角色由参议节点承担。这跟“中心化”与“去中心化”问题并无影响。
  _$ Z$ J* y/ _/ |
# }1 z. O- W. {& j4 B% ZQ5 我是咱们有链的老社群用户了,刚才提到的 峰值TPS 和测试环境,我想再详细了解下
# y  \5 M6 B3 ?2 R7 Y
9 [8 f' B: i) _: [* o+ s$ T: A何畅彬: YOUChain 的社群为我们提供了部署在家庭网络下,超过 2000 个同时在线的 pc 节点和手机节点。在 5 月进行的一次压测中,我们随机选取超过 500 节点进行共识出块,跑到峰值 TPS 为 1250,出块时间约为 3 秒。) m5 g. u& B( w' K( O

- B- t& M5 ?0 a2 Z9 Y/ AQ6 何总你好,我是鱼链的联合创始人Jacky, 我想知道下,早期众议节点,为什么是安全的?未来节点众多的时候,如何更加安全?
0 Z& @- v- a. g# l, m9 y" m) n+ x! q- t, `, I+ G
何畅彬: 基于PoS的去中心化公链网络,其去中心化的过程,必定不会很快,会需要一定的时间。早期的普通节点可能比较少,因此众议
http://www.simu001.cn/x171954x1x1.html
最好的私募社区 | 第一私募论坛 | http://www.simu001.cn

精彩推荐

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-16 08:57 , Processed in 0.835799 second(s), 31 queries .

Powered by www.simu001.cn X3.4

Copyright © 2001-2021, Tencent Cloud.

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