私募

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

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

[复制链接]
发表于 2019-8-8 09:19:58 | 显示全部楼层 |阅读模式
网络与节点& ^3 K" |3 d1 H. `* `

# {$ R) K7 }& q: ]! R% P& V   区块链网络,本质是一个分布式系统,系统中的节点根据某一个约定的规则,完成状态的迁移。网络中的节点的角色、数量、在线情况、是否诚实认真工作等,定义了这个区块链网络的性质,也关系着系统的安全。, m. W9 G3 J- z- O- {

. e! N0 l& E' N9 {共识与考量
" K$ h$ W. K; T7 |
; ~2 G0 L6 E6 n6 Y, M   网络中的节点遵循的某一个约定,就是所谓的共识协议,简单的讲就是决定哪下一个区块的规则。在节点的维度考虑问题,那就是哪些节点的哪些考量标准,决定了下一个区块。在区块链世界里面,主要考量标准有所谓的PoW和PoS。分别是以「计算能力」和「持币数量」为考量标准。/ [/ D3 p- b( @7 a6 J/ n5 x
* ?7 G) D; c, f& r8 P' b! n
   大家可能会问了,为什么主要是这两种考量标准,为什么不是别的呢?3 x& Q- D8 x4 H  B+ L4 J8 Z

+ B2 }( J1 w$ ?4 _0 [- r4 _原因很简单——这是两种最容易量化的标准,且易于抵抗攻击。其他的,例如 reputation(声望度)、honesty(诚实度) 这类标准,都无法简单准确的量化。那存储空间、带宽能不能成为量化标准呢?答案是可以的,但是具体实施起来,有一定的难度。
+ E- T4 i5 e' Q+ ^- P4 o1 U
) X# ^! j) @; m; I8 T4 C  Z. o    现有公链的问题/ _# V/ R- Z7 P

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

' J5 t  Q' _% B8 {   BTC/ETH 让人诟病的 POW 挖矿机制带来能源消耗,吞吐量低等问题,也使得两者使用费用高昂。+ m3 q" f6 i4 X8 f  e% |

( b2 ~4 x9 q& w* g   EOS 模拟了美国的选举人制度。本质是倡导大户集中,鼓动社群投票,超级节点竞争。开发者期望用超级节点竞争的方式,实现去中心化。主要开发者BM甚至声称,这类超级节点的去中心化程度,比 BTC 的矿池垄断的模式要高。一直以来,RAM (内存资源)被当做投机标的,使得开发者成本飞涨。有相关计算表明,支撑一个 DAU 1W 的 DAPP,需要近 200W 美金的年费用。) M& b4 ^. J7 {
% r6 o, J" t7 U2 M% J. ^* ?
   可以看出,这三大代表性公链,去中心化程度堪忧,同时使用成本也较高,无法承载商大规模商业应用。
4 O+ Q+ @' _+ g% t1 O- j  A6 G
7 j# z( h+ O/ B% NYOUChain 的愿景
' y4 Y( X6 y4 K5 C8 J  f! b3 w- ?9 H9 |( `4 T) {, s2 H% g) u1 M
   YOUChain 愿景是打造可承载大规模商业应用的去中心化公链。要承载大规模商业应用,性能和资费是关键;要实现去中心化,节点角色、职责和数量是关键。$ C9 P! x8 R$ N4 p0 z2 s, H

2 k$ ~2 S, F6 N# |) U, G1.低性能,速度慢,难以扩展,不是我们想要的8 g6 @, \# S% D

. G; M  `+ ?1 j* g2.权利高度集中,不是我们想要的
2 w6 O4 C) a7 B# L' X% A) {# E
# }5 Y+ x. y5 X4 K3.使用费用高昂,不是我们想要的; }5 z" {5 ]: P2 f  ?* i. j

2 m$ K' _1 c% ~$ Y# Y   要实现高性能,需要考虑制约区块链的三个基本物理条件:计算、存储、网络。共识协议和网络结构需要极度的优化。* I' K% i+ v: t! o0 ?1 E! t
2 c: b8 g6 E9 E3 F' t6 _
   某种程度上,我们是中本聪的信徒,相信去中心化的愿景。因此,我们认为,以某种方式实现中本聪的 one-CPU-one-vote的初衷,是实现去中心化的一种方式。
/ R6 {- z" c  x& F# @7 S% u" Y! e5 i
8 g0 W" {7 y1 b: H8 a思考性能- r: l- o6 D# [

6 M" V0 J/ X7 t9 U   回顾已经上线的公链,包括 BTC/ETH 和 EOS,我们可以观察到一个现象:一个共识的达成,需要涉及到的节点越多,其性能就越差。前者涉及到了全网所有节点竞争挖矿,性能较差;后者只涉及到了少数的超级节点的轮流出块,性能较好。: F$ S* V3 A+ }; ~2 h- G. n# |
2 d5 o. G  t/ d
怎么做到去中心化和扩展性兼得呢?其中一个答案是为系统引入随机。Algorand 是我们十分推崇的项目,它为行业带来了新的思路,我们也深入研究了它的技术原理和实现。
1 T/ u7 p8 m* V' R" P; l# `- a! C; a0 l, [: E  e3 j/ y0 D$ m! J8 X3 b
   思考 one-CPU-one-vote8 @  E! E+ o# P
0 ~" Z2 [" o: T9 N8 _% \& F
   考虑到设备和节点,我们很自然想到了几乎每个人都会拥有的移动设备(手机)。如果这些设备都能成为网络的节点,并参与工作。那岂不是真正的实现了去中心化?5 A  D& x3 z/ Y$ G3 j- @5 r# x

3 ]& e' I/ Z# q& G- `% v   为什么移动设备,都被已有的公链排除在了节点范畴之外呢?一个直觉印象是,他们的计算、存储、网络性能都不够,稳定性也不够。9 {* [4 `  ?- b2 _) O" s  J

) P" W2 d# z, v3 `$ S* Y$ Z   当我们深入去研究的时候发现,最新的移动设备(骁龙845/麒麟980及以上)的计算能力,不亚于普通的云主机;主流存储能力也达到了数百 GB;网络性能随着 5G 的普及和千兆光纤入户的进展,不逊机房环境。7 A$ e3 D& a& M: O+ J+ t
( G  b8 A0 r- w" i! X% ^& y
思考费用
0 R8 d- d- I0 z4 @! Q1 S
4 p4 w* X- }- A) P' u9 Q' }' n+ P   考虑到能源消耗和运营节点成本,我们选用基于 PoS 的共识机制。
( m( d& M1 u# G+ t( }5 _
( J! r+ e2 ~; ?4 X3 i7 N1 I- z5 {8 o0 B那么使用公链的费用,主要是与运营节点主要包含两部分成本相关:基础设施成本和抵押物的机会成本。
0 m/ G3 [' D& D& c0 b; T+ x0 U9 }6 S# W$ F; b( N) c
   基础设施成本:机器购置与折旧、带宽、托管费用、防御攻击费用等。7 l& S: S) y8 k7 }7 h

7 Z( w9 G% _* T7 [抵押物的机会成本:因抵押而无法自由买卖产生的机会成本(币涨了或者跌了但是币被锁)。
* ^7 M% d2 S! g& h! u& p$ {$ d( W+ G1 g
    我们认为,随着物理条件的演进,当条件具备的时候,不再需要专业的矿机和托管条件,海量的移动设备,都可以成为网络的节点,使用成本自然就降低了。
$ W+ d1 o1 O3 N% q9 g' @3 b6 O% U% ?2 o! ~" y  W& Y3 b3 _- U' y
思考可扩展性' S- H5 I- u( M( F; u
, e5 E' n2 d4 f( g  |
    从 YOUChain 创始之初,我们在公链设计中,就预留了使用安全分片技术进行横向扩展的技术路径。
8 [0 x, T$ ?* n) M0 ^! g3 l% N
! P$ \8 Q4 z% i) v4 K- u    同时,为了满足高 TPS 下的海量存储需求,我们设计了存储压缩和根据 merkle root 证明的机制使得移动节点可以快速接入网络和持续参与共识。+ v7 R3 ~. |9 x- A6 Z" v

# L1 r" L; m$ @   YOUChain 共识「YPOS」0 a- m+ r0 i1 }4 b

, r0 Q6 }. R4 ^   为了兼具高性能与去中心化。YOUChain 设计了一个基于 PoS 和 VRF 自抽签的快速 BFT 共识协议:YPOS。/ g& J# R8 |8 r9 a2 @; l

& g1 X( U- J' l: C0 W  D9 d- t共识流程,主要分为两个阶段:提议和投票。, ?0 v2 w) E  o0 ~% i

6 I6 y0 B. i9 }2 }) [0 ]; M  c1.在较大的候选集合中,通过 VRF 自抽签机制,选取少量(如数十)的区块提议节点,后者将提出候选区块及其哈希。  k5 A! Q- T0 a6 ]! Y" x6 F7 G

. ^2 e" Q, T+ ~% v* u0 G, F3 H2.在较大的候选集合中,通过 VRF 自抽签机制,选取一定量(如数百到数千)的投票节点,为前一步提议的区块哈希按照某一种规则进行投票。
1 e8 H: ?: w$ H: @  p( I4 @/ P# L$ T0 h  q9 {
其中第二步,属于传统的 BFT 共识的流程,核心是消息复杂度和延迟。我们做了大量的工作,使得我们的 BFT 算法实现了线性的通讯复杂度,可以在大型区块链网络中运行,并做到秒级收敛。
) F' w+ D0 c, w( m+ E2 H' s( E' L8 V4 T8 [
在节点的去中心化问题上,我们认为移动节点是未来方向。因此,我们做了大量的的工作,实现了家庭网络和移动网络的稳定传输和有效穿透。同时我们将节点输出成 SDK,植入到生态伙伴的 APP,使得搭载 APP 的移动设备,成为网络的节点,这样 我们的候选集合就有了海量的节点。& s/ {# S+ \  B/ ]. J6 u4 h9 E( H3 Q

: a; @) G9 G* T5 G; BYOUChain 节点设计+ W' X& V* E: L3 y
3 C% `5 e' ]7 [' b, Q
   安全性是区块链的基础。没有了这个,扩展性和去中心化都免谈。区块链最常见的攻击,是女巫攻击,大部分都是为了实现双花。
: v( @- r& w: }0 Z# E1 D4 S/ C. ]8 o3 {- |, R
在对抗女巫攻击上,基于 PoW 和 PoS 系统都有成熟的经验。前者不表,后者主要是出块概率权重或者验证投票权重与抵押占比成正比。
2 p  u9 b% s! W2 q4 E1 `
/ b2 b. o6 y6 O1 Y2 ^   一个现实问题是,对于移动节点,我们既无法要求他们有足够多的抵押,但又要捍卫它们的投票权。
4 x1 d' Q7 H/ k# [; p; y- W
& u, g! `6 E& }- Y8 z) i* _   如果完全按照抵押占比成正比的投票权中,移动节点的愿景将因失去激励而形同虚设;如果按照一设备一票,我们又难以抵御女巫攻击(因为节点很容易伪造)。8 [! t* l' U) e$ ?/ L3 m' t# F
* r2 N; N" l7 m6 a( P8 f- X9 D
为了实现我们的远景和目标,我们设计了如下的节点结构。
- n, {" a. `6 y, i- G, o& l* t7 {& V
节点类型
6 e: q* R2 G* G
$ B7 v+ J/ ^7 L系统中包含两大类节点。3 l7 h* u" m4 F+ }

# V. G' z% z1 w; e1.参议节点(senate-node):部署在数据中心的服务器,拥有较强的计算、存储、网络性能,类似于网络骨干节点,前期有一定的准入。6 q3 A( D+ R2 ^
8 X5 l0 m8 X) o8 n, u0 C" [
2.众议节点(mass-node):部署在家庭网络或者移动网络下的各类设备,无准入。" X0 p9 l( a& t& K- V! B, x: L
2 ?3 M) U9 K+ S& S
以上两类节点,均需要参与 token 抵押。我们为抵押设置一个最低准入门槛,选取抵押排名前若干位的账户作为候选集合,依照节点抵押的 token 数量在候选集合的占比分配抽签权重。2 F7 D2 j. V8 E
& c6 x  M2 y0 ?% k  G, {
节点选取方式- f7 j8 E: B6 Y7 G* j. Z! i" A

8 j" y% M; ~3 b! w% Y
2 R. J, ^* S3 Y3 m/ r* T6 z; [5 b6 |

5 W- X4 z( v  b: N
3 O# F8 N7 |  O& H# G+ B+ ~) K+ W1 m5 K* i; |4 k8 i2 d
参议节点参数「待定」
8 Z7 s( \4 l. @6 p' v( \( n' t7 Q$ @9 w) o" H& R& R2 L

0 M9 k$ G/ z9 G! b
! e4 F% z; W' E8 W; R! v" {4 S% V& x% V
" N" L: j6 A* O
众议节点参数「待定」' p* A8 C+ O4 y1 l$ E/ q

! P% H; D) W( p; k/ U3 I4 b
/ n! d; j& t2 e$ f* L
2 f0 L8 N' e* c" V; {" V
& `8 E$ V% X( y5 I7 G* s" N! j& B% k, e! n0 `* ]
两类节点对比0 R) j- P) M) e5 z8 j

; B' y& N; Z2 j/ P$ R* C) y) ~+ Y# W& {; s

* _. o0 f' {, D* d% s2 p$ `, o. Y4 W' g- l
$ ]% f( y5 P/ D# U* C
    我们既要保护网络的安全和性能,又要鼓励众议节点积极为网络做出贡献,因此,我们设计了两类投票主体。& a  g4 V$ ]7 Y* ~$ B
/ m; a; x) B$ R+ b# i$ S& z
YPOS 区块敲定& o5 Q& Q9 v7 {- `9 T

1 r4 N& E! Z& g- b1.区块提议者,从参议节点集合中(性能考虑)选举,提出区块和哈希。( _: G+ _+ {8 C

4 `1 C7 ~; O! t+ N9 ~, r2.区块验证者,从参议节点集合和众议节点集合中分别选举,分别对提议的区块进行验证和投票,hash 较小的优先级高。
5 z& c) {1 M3 ~. H3 u$ q4 }; `& a4 [0 ~3 x( Z9 |
3.满足法定票数的区块,则为敲定的下一个区块
9 L! b# f- Y/ Q* f4 N' ^/ U1 e1 i# o* a8 t* W. M) t) {2 ~
定义如下:
4 L- `9 w, |4 V3 p+ s( D
# f2 V) A" u, W* g
. S5 Y, s' D% Z2 d
) o: e% V+ w7 G) D1 j7 J
) @9 j" K: ^, C
; d9 Q% T- }/ D! \6 y  i, H" \& k+ E, B! S6 \9 T
网络安全6 F2 n' I! J5 t- P; R
1 ?; z6 }, a$ h% u  x) N: k4 O
参议节点与众议节点集合,均按照抵押占比分配抽签概率,可以抵御女巫攻击。5 J: Z3 ^* b1 G  j: V" _
/ m: N2 v9 Q  R! e
官方持有一定量的 token,承诺永不抛售,但在网络早期,可用于网络安全性维护。& @- e( ^" w! s& f
, ]# i. X% P2 h8 u  n
官方可以在必要时,可使得维护网络稳定的 token 数量占据足够的份额,以确保网络的 security 和 liveness。
. [$ k% i3 y" O
' d% h+ f- c! ~$ w链上将会设计针对各类不当行为的惩罚措施,使得各类节点有经济上的动力去诚实工作。8 {1 U) d, l. P, E8 N

0 z- Z" q+ V- E( m- ]网络演进
/ `5 _6 J. s3 I! N- j
$ S0 t* t, l% ]% p5 n7 P% p) ]YOUChain 开发者承诺,当众议节点的数量和质量,达到一定程度,将会推动主网持续升级。
/ P" }; P) f* R+ U1 h" p3 I9 b+ U) ^3 Q9 r5 W
1、通过安全分片技术提高可扩展性
8 z$ r5 o3 K) }7 K+ s9 S: H$ n5 H
2、逐步调整众议节点的选取参数,实现「人人可参与」( Q0 l+ A9 ]( ~* l$ K, i4 ~9 O
* T( e# D, _5 Y5 ^/ o5 A- i, v2 u
3、区块提议节点逐步过渡到从众议节点中选取
- v& @3 e5 A5 z8 m& P6 {% ~; _7 }2 [- U: ?! F' `. p
4、逐步降低参议节点集合法定票数 的要求! p! w- w2 v; {; z1 `
& s  X) ?: s- x( b% @! d; {3 k
5、参议节点的功能将演进为:存储、转发% X0 g( w7 @* ^
$ L3 t2 c7 ]3 q' M5 N7 s
前面主要从区块链网络及其节点的本质出发,阐述了现有公链的去中心化和使用成本等问题,进而介绍了 YOUChain 的愿景和节点设计,最后给出了安全考量和演进策略。主旨是为了阐明设计的思考,引起讨论。  @/ c$ y1 P, p7 C
' Q5 e5 n1 H5 A
以下为问答素材:
( v3 [* N3 K9 Z. K. T; S9 |
* E: F6 O4 S2 S- L& ~$ {2 E. LQ1 参议节点的准入制,是否中心化?未来的演进措施是怎样的?
+ K1 s; j9 b& `& A
  x- H1 |$ c! K何畅彬: 设置参议节点角色,主要是保障网络的性能;前期有一定的准入制度,是基于“有责任的去中心化”的考虑。这个准入制度,其规则是公开透明的,满足一定的基本条件就都可以加入。其实是在所有的公链中,都会存在一些优质节点,拥有更好的计算资源及网络条件,在我们 YOUChain 中,我们只是把这些节点识别出来,让他们能发挥更大的作用,更好地服务于公链网络的稳定运行。未来随着社会整体硬件基础设施的进步及个人计算资源的发展,参议节点将逐渐演化为提供存储、转发等功能的节点,并将逐渐从“有准入”的机制变为“无准入”的机制。因此,参议节点的设置,并不意味着中心化;恰恰相反,这是用一种负责任的方式,更好地服务于去中心化这一目标。
' q/ s; y! F( i* P/ k; ^  X3 G. w3 Y5 [% `/ v+ ?
Q2 官方持有一定量的 token,承诺永不抛售,不过是为了抵御攻击,只是有人收购了足够多的token,不就可以实施攻击了吗?
% w( Q/ w: W* [. A$ X1 }
/ k$ l" p1 v) p* R2 K9 L* v4 m* Y$ P何畅彬: 1.网络的早期较容易受到攻击,所以官方的 token 将会起到抵御作用;2.在网络的进一步演进过程中,Token 进一步分散,在公开市场上收购足够多的 Token,将会被变得「经济学上不可能」
+ s2 W; _/ E- ]
2 j0 X% L: B& B/ M4 H3 V% v. gQ3 参议节点和众议节点的数量分别是多少?会不会扩容?$ E; d* N8 L# m6 A* C' S
8 J, k2 `$ ]4 U/ F2 ^
何畅彬: 参议节点,早期是有一定准入,后期会彻底放开。众议节点将无准入,海量。具体的数字,需要根据上线前,实际的情况而定。我们还在具体考量。
) {7 R3 J2 T) N+ }
. q' z4 y8 b1 i% R  F3 DQ4 参议节点提议区块,是否有中心化问题?; {; j( S' T" r) |9 V6 ~1 R. u

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

$ ?* M6 e8 Y( X1 l/ _) XQ5 我是咱们有链的老社群用户了,刚才提到的 峰值TPS 和测试环境,我想再详细了解下+ m/ j8 K4 N1 s9 J$ a
3 F8 j8 ]2 _5 Z& Z, j( o
何畅彬: YOUChain 的社群为我们提供了部署在家庭网络下,超过 2000 个同时在线的 pc 节点和手机节点。在 5 月进行的一次压测中,我们随机选取超过 500 节点进行共识出块,跑到峰值 TPS 为 1250,出块时间约为 3 秒。
" p0 u% J# c3 |: P- a# p: X1 E" Z& S
Q6 何总你好,我是鱼链的联合创始人Jacky, 我想知道下,早期众议节点,为什么是安全的?未来节点众多的时候,如何更加安全?0 a6 d) I! l  _) A
+ H& g( z4 T* X' i
何畅彬: 基于PoS的去中心化公链网络,其去中心化的过程,必定不会很快,会需要一定的时间。早期的普通节点可能比较少,因此众议
http://www.simu001.cn/x171954x1x1.html
最好的私募社区 | 第一私募论坛 | http://www.simu001.cn

精彩推荐

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-17 19:19 , Processed in 0.665446 second(s), 31 queries .

Powered by www.simu001.cn X3.4

Copyright © 2001-2021, Tencent Cloud.

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