私募

用户名  找回密码
 立即注册
帖子
热搜: 活动 交友 discuz

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

[复制链接]
发表于 2019-8-8 09:19:58 | 显示全部楼层 |阅读模式
网络与节点
$ {3 i5 ~9 z* c3 y" h" c
* [! R9 d# Z6 R1 D   区块链网络,本质是一个分布式系统,系统中的节点根据某一个约定的规则,完成状态的迁移。网络中的节点的角色、数量、在线情况、是否诚实认真工作等,定义了这个区块链网络的性质,也关系着系统的安全。/ v3 m7 }$ [' c6 R1 ~  B

8 a9 g) |) K  k5 d$ r1 z) Z共识与考量
0 c, n; N( x& f& }5 B' r
. R* }+ [% [+ O! m   网络中的节点遵循的某一个约定,就是所谓的共识协议,简单的讲就是决定哪下一个区块的规则。在节点的维度考虑问题,那就是哪些节点的哪些考量标准,决定了下一个区块。在区块链世界里面,主要考量标准有所谓的PoW和PoS。分别是以「计算能力」和「持币数量」为考量标准。
( v$ f) D4 z1 E0 w5 B( l4 \  N9 A1 P9 Z& m' p, `
   大家可能会问了,为什么主要是这两种考量标准,为什么不是别的呢?
: I5 p! h: d9 r, G" s5 `! `# H4 G3 D5 y* i8 e/ z, C
原因很简单——这是两种最容易量化的标准,且易于抵抗攻击。其他的,例如 reputation(声望度)、honesty(诚实度) 这类标准,都无法简单准确的量化。那存储空间、带宽能不能成为量化标准呢?答案是可以的,但是具体实施起来,有一定的难度。
; {. Q% P5 P$ x5 k' a# i
3 p! y+ C  C% {2 |1 w0 X" n! Z    现有公链的问题
, \" R! L; V1 ?' C! U+ t' i* `( e$ C5 r* W
   BTC 创建者中本聪期望通过 PoW 实现 one-CPU-one-vote。早期,普通的家庭电脑也可以成功抢夺到出块权,确实满足了这个愿景。后来因为算力竞争,挖矿设备进化到了专业的 ASIC矿机和矿机联合体——矿池。ETH 一开始就考虑到了矿池垄断的问题,它设计的Etash算法,是依赖内存的,所以 ASIC 矿机的优势没有那么大,但是矿池还是形成了。' X- y# M! R( g8 B; [9 r
4 T. A( S9 d8 S, v# L
   BTC/ETH 让人诟病的 POW 挖矿机制带来能源消耗,吞吐量低等问题,也使得两者使用费用高昂。
. w/ {* F/ Z% h- d: z
) e& A( p/ k& P' {- ~   EOS 模拟了美国的选举人制度。本质是倡导大户集中,鼓动社群投票,超级节点竞争。开发者期望用超级节点竞争的方式,实现去中心化。主要开发者BM甚至声称,这类超级节点的去中心化程度,比 BTC 的矿池垄断的模式要高。一直以来,RAM (内存资源)被当做投机标的,使得开发者成本飞涨。有相关计算表明,支撑一个 DAU 1W 的 DAPP,需要近 200W 美金的年费用。  f/ U8 Q2 Y/ U! J; q

! x8 y* B# g( N. e) B: v   可以看出,这三大代表性公链,去中心化程度堪忧,同时使用成本也较高,无法承载商大规模商业应用。" Q$ M, w2 C0 P% D

9 ^: J" j$ J, E( iYOUChain 的愿景  F9 j5 F2 [6 U. V" K4 Y/ g1 Y, u6 A

7 k- N2 X) r7 {' K, p* V   YOUChain 愿景是打造可承载大规模商业应用的去中心化公链。要承载大规模商业应用,性能和资费是关键;要实现去中心化,节点角色、职责和数量是关键。
7 O/ N* T3 u+ }% M, \8 x
- P9 l! R0 `! p5 R- E/ w0 ^1.低性能,速度慢,难以扩展,不是我们想要的
# t8 b7 R& W1 i$ `% F; u0 C& z. c, O+ }0 p7 c) i0 v. J
2.权利高度集中,不是我们想要的
; F, R# z+ @7 H4 o+ v* }! R( i. C. D: i4 V9 n+ {
3.使用费用高昂,不是我们想要的: c; l9 T9 i9 ]) e- [0 p8 p
6 B3 j* E: P  X1 h( G* q) d1 U) Q
   要实现高性能,需要考虑制约区块链的三个基本物理条件:计算、存储、网络。共识协议和网络结构需要极度的优化。
3 @/ q* I* [9 }' }+ \9 m! e* w" r: z6 f; U7 X7 O1 |- V
   某种程度上,我们是中本聪的信徒,相信去中心化的愿景。因此,我们认为,以某种方式实现中本聪的 one-CPU-one-vote的初衷,是实现去中心化的一种方式。0 Q* ^/ F6 A( ^+ m

1 u9 ^9 N' d# G2 M* E# c+ R6 l思考性能) z( l' M% o; Y7 r. x7 u
3 p8 y  g, y2 x6 s5 T: j3 m
   回顾已经上线的公链,包括 BTC/ETH 和 EOS,我们可以观察到一个现象:一个共识的达成,需要涉及到的节点越多,其性能就越差。前者涉及到了全网所有节点竞争挖矿,性能较差;后者只涉及到了少数的超级节点的轮流出块,性能较好。
& T7 `7 X, J& u6 j/ H7 J1 L  ^  w; Z/ h+ y4 D' G
怎么做到去中心化和扩展性兼得呢?其中一个答案是为系统引入随机。Algorand 是我们十分推崇的项目,它为行业带来了新的思路,我们也深入研究了它的技术原理和实现。# x, s' G' H+ ]& y, G
# Q7 B5 q! a$ H# c0 C; ~
   思考 one-CPU-one-vote
2 ^2 M  K  t( L. X! \8 ?/ O
6 i" g: w! t* M  U+ j: B" s! P: `   考虑到设备和节点,我们很自然想到了几乎每个人都会拥有的移动设备(手机)。如果这些设备都能成为网络的节点,并参与工作。那岂不是真正的实现了去中心化?  E% E; M) e# o) q7 B

! ]) V$ r7 h/ E   为什么移动设备,都被已有的公链排除在了节点范畴之外呢?一个直觉印象是,他们的计算、存储、网络性能都不够,稳定性也不够。
5 l5 L, x8 p* t7 ?% _3 A* D" D: V, g. O* O! D& `/ D; t
   当我们深入去研究的时候发现,最新的移动设备(骁龙845/麒麟980及以上)的计算能力,不亚于普通的云主机;主流存储能力也达到了数百 GB;网络性能随着 5G 的普及和千兆光纤入户的进展,不逊机房环境。. _8 c3 Q( J9 h3 d; Q: z9 i( U

/ G' S) o0 y" w2 c7 P, S思考费用
4 v5 ~1 a% F2 |. a% g' [
0 Z" r$ F; U! d1 {2 {   考虑到能源消耗和运营节点成本,我们选用基于 PoS 的共识机制。
0 C* [- n- ?( m/ Z- M
) V) ?4 u% H3 x; j那么使用公链的费用,主要是与运营节点主要包含两部分成本相关:基础设施成本和抵押物的机会成本。
# Q8 G7 T, U* J" @# k% r4 l, ?; P! Z/ H; M
   基础设施成本:机器购置与折旧、带宽、托管费用、防御攻击费用等。; X% [& ^; U+ w

  y/ Q. B2 `. `3 x. F抵押物的机会成本:因抵押而无法自由买卖产生的机会成本(币涨了或者跌了但是币被锁)。
! a7 }$ l5 y( X: b, t/ O* f( I  \! D0 u9 J
    我们认为,随着物理条件的演进,当条件具备的时候,不再需要专业的矿机和托管条件,海量的移动设备,都可以成为网络的节点,使用成本自然就降低了。
& r7 K* j; {) J4 v/ m3 a
$ L3 M! v, S7 Y  H8 r思考可扩展性
; H6 x" A# N2 C- q+ m5 O. ~+ Z5 n0 F; J& ?, ]
    从 YOUChain 创始之初,我们在公链设计中,就预留了使用安全分片技术进行横向扩展的技术路径。! e  f2 j1 s) U- O

% b7 S; C1 }  D8 h, J& A    同时,为了满足高 TPS 下的海量存储需求,我们设计了存储压缩和根据 merkle root 证明的机制使得移动节点可以快速接入网络和持续参与共识。
, L' |% w. q; H) ?. j6 e
. b6 H+ i! ~) `6 o9 s. f   YOUChain 共识「YPOS」! y8 d7 F1 _* R2 [- p* i' S

. T; f2 y1 O& T1 X" T4 z   为了兼具高性能与去中心化。YOUChain 设计了一个基于 PoS 和 VRF 自抽签的快速 BFT 共识协议:YPOS。6 J9 S4 V8 ~. x: t
* N% I- i+ @" F" e- R/ K0 L; R
共识流程,主要分为两个阶段:提议和投票。! F- r& @6 n, R6 k$ w+ D4 a+ X
/ _% U2 l. p% e: S& o
1.在较大的候选集合中,通过 VRF 自抽签机制,选取少量(如数十)的区块提议节点,后者将提出候选区块及其哈希。
, K* q9 y- d3 W- R6 o# f) s( }$ m; V- N, R- ]* x
2.在较大的候选集合中,通过 VRF 自抽签机制,选取一定量(如数百到数千)的投票节点,为前一步提议的区块哈希按照某一种规则进行投票。5 X+ _) b' c, H3 e# K3 _

) y, o! d* E6 s6 Z4 T6 h其中第二步,属于传统的 BFT 共识的流程,核心是消息复杂度和延迟。我们做了大量的工作,使得我们的 BFT 算法实现了线性的通讯复杂度,可以在大型区块链网络中运行,并做到秒级收敛。. ^, m4 R! `4 S5 X0 w! H
; r8 k, B7 Y2 O& U( s
在节点的去中心化问题上,我们认为移动节点是未来方向。因此,我们做了大量的的工作,实现了家庭网络和移动网络的稳定传输和有效穿透。同时我们将节点输出成 SDK,植入到生态伙伴的 APP,使得搭载 APP 的移动设备,成为网络的节点,这样 我们的候选集合就有了海量的节点。+ h: e2 d* p0 j! j& o* W3 S

; D3 a5 M6 p% k( Y$ c8 |YOUChain 节点设计
0 S+ _! j, r- {  i% W
! ?8 _' I/ M9 |   安全性是区块链的基础。没有了这个,扩展性和去中心化都免谈。区块链最常见的攻击,是女巫攻击,大部分都是为了实现双花。  U. D- |; J7 o. o4 t4 Z8 {6 E
& w5 D4 t7 w+ b' j* z7 C* U
在对抗女巫攻击上,基于 PoW 和 PoS 系统都有成熟的经验。前者不表,后者主要是出块概率权重或者验证投票权重与抵押占比成正比。5 B1 @) y4 e5 ^( ~) d' h/ O
. V5 r( L( x6 U3 O1 C
   一个现实问题是,对于移动节点,我们既无法要求他们有足够多的抵押,但又要捍卫它们的投票权。; B8 F8 h$ ?9 v5 q; w  F% m% H2 s/ t
) S) d# ~$ W! ]
   如果完全按照抵押占比成正比的投票权中,移动节点的愿景将因失去激励而形同虚设;如果按照一设备一票,我们又难以抵御女巫攻击(因为节点很容易伪造)。
7 Z& ~% }( E5 M5 R6 b' x+ c. Q( O4 x7 {
为了实现我们的远景和目标,我们设计了如下的节点结构。3 ~' T8 g3 l) a7 {7 m7 ~4 L1 i
- L  x- L* P; Y
节点类型* Z, _* h3 ?8 R# r. s. g

0 }: V6 |" ^: \, N( W. M系统中包含两大类节点。
  U; T" W  u4 c2 ~/ X8 ?5 v6 t7 r, ^. e0 F
1.参议节点(senate-node):部署在数据中心的服务器,拥有较强的计算、存储、网络性能,类似于网络骨干节点,前期有一定的准入。
7 d4 r+ J! _  v3 i8 n
. s* Q7 [0 e+ x# N$ c2.众议节点(mass-node):部署在家庭网络或者移动网络下的各类设备,无准入。/ x0 A& @0 B7 i2 r0 O  \

: S( y0 e* v3 S8 M! X  U. ~以上两类节点,均需要参与 token 抵押。我们为抵押设置一个最低准入门槛,选取抵押排名前若干位的账户作为候选集合,依照节点抵押的 token 数量在候选集合的占比分配抽签权重。
2 C3 c. l( ~* Q& r) m2 w" J7 L% Y2 c% w, i+ X
节点选取方式3 A! R$ w% Q" K" U# A  k4 _

+ C, K* |* U  E" Z4 `. i2 P+ A6 \  ?" m  t6 i+ L/ z/ K7 S, ]# q# G
8 W6 c, ?3 I7 r4 G

: |# S2 v3 R) Y: W( p6 \1 O, z
  y& h8 W' }4 Q2 |( |4 J. r3 H9 N- e
参议节点参数「待定」
8 I; d% m5 k! s, c3 \) L) n2 }8 ?7 E7 `
# x4 G( H( v3 Z

: `  m' W! E. b" t) p+ |0 z- n
$ b7 b4 i  J, I# V' m* t1 M$ X. |5 W- z$ a% o9 |* _
众议节点参数「待定」8 D' d! x6 M5 ]% B3 z

/ h" I  O; ~$ t% h3 }+ a3 e& M% V) Q7 t+ f

2 H( a6 x7 }; E  @9 e
1 f% [, X1 f7 |7 Q, G& x* r1 q. J1 G8 v0 W
两类节点对比  k9 X( k5 \$ g$ j& o+ O7 j

7 E8 O7 R* D- c6 h8 \7 M7 r/ M0 N1 N

, B3 G' ?* Y+ Z% _6 [' d2 g
+ n& z# Y" {& i0 j3 l. ~
; c$ [* V, H& g; f6 H- _" }    我们既要保护网络的安全和性能,又要鼓励众议节点积极为网络做出贡献,因此,我们设计了两类投票主体。. Z  r# [% U8 p3 V1 `
/ ~2 X) D& B* n% q. B5 ]
YPOS 区块敲定" S- a* ]( f$ }0 z# \

( O  W& W! s$ k+ L+ T. l. t1.区块提议者,从参议节点集合中(性能考虑)选举,提出区块和哈希。# t6 b, w. o1 D2 G
' }% H& Y  O, v
2.区块验证者,从参议节点集合和众议节点集合中分别选举,分别对提议的区块进行验证和投票,hash 较小的优先级高。
8 _; M6 ~9 U; E' |) c* E7 k: U. P5 V( ?: |8 G
3.满足法定票数的区块,则为敲定的下一个区块
- g2 s* H7 c- _2 d! S+ S% G0 v$ o0 q! g) ?
定义如下:8 \$ T: I$ r& T8 I5 J" b

, m' ?# q- l* u5 A5 D1 q& N
" H: H$ q! A" W- ?4 e+ o/ i# y
( U' B! Z# [& J( [6 {; P

8 }. Z& t2 O- P" f) e: s& \- F8 Q- e, W  l7 C: ?
网络安全2 n  f! i0 r$ K* i  V2 I; S

' u; C. L: T9 D* m* z! `" E' a% U; b参议节点与众议节点集合,均按照抵押占比分配抽签概率,可以抵御女巫攻击。
* ]( I1 G7 d/ z; q2 K+ c
5 u: d' l( E/ Y0 ]+ C官方持有一定量的 token,承诺永不抛售,但在网络早期,可用于网络安全性维护。
) p1 M- {! {, @( Y4 [5 G6 P" x% P& O. b: q2 v' K
官方可以在必要时,可使得维护网络稳定的 token 数量占据足够的份额,以确保网络的 security 和 liveness。5 W! P8 K$ `; `& \6 L6 R, ?

/ D& s8 U  v5 \( I- E+ L: c8 k链上将会设计针对各类不当行为的惩罚措施,使得各类节点有经济上的动力去诚实工作。! a) F& `: c+ g3 r3 n

9 {1 g7 \9 A6 }$ w* M5 u网络演进+ r; l2 G/ j7 U

4 Q& x( k9 T8 q3 {0 GYOUChain 开发者承诺,当众议节点的数量和质量,达到一定程度,将会推动主网持续升级。
3 ]4 w& _, S& o" D: y$ _/ n. g
% M4 W  r* F2 @4 x- P1、通过安全分片技术提高可扩展性
5 k" a& g, \4 A6 s/ Z9 h3 p9 h5 J$ B1 B1 @; J# D
2、逐步调整众议节点的选取参数,实现「人人可参与」1 Q5 h2 G8 k' D8 ?$ k$ b
2 u. ~) e8 W- G' `% m! I- v- R# Y: S
3、区块提议节点逐步过渡到从众议节点中选取0 T" l2 \8 j1 n/ \

1 Q$ @0 Y* P3 [1 F# s% |8 f6 T' Q4、逐步降低参议节点集合法定票数 的要求
* Q* I5 E$ y  o$ G, s* y! r. R& R  k6 t1 x
5、参议节点的功能将演进为:存储、转发
9 ~9 ^4 z3 n( A& {
0 V) F: Z+ i2 X; j2 K前面主要从区块链网络及其节点的本质出发,阐述了现有公链的去中心化和使用成本等问题,进而介绍了 YOUChain 的愿景和节点设计,最后给出了安全考量和演进策略。主旨是为了阐明设计的思考,引起讨论。) u/ U* v3 N. O/ K, K
( C' ^  H6 U1 v3 O& a; i8 i
以下为问答素材:
% ]" H/ m' w1 B; H: N: x2 l
/ x& F9 D; `0 o) b$ qQ1 参议节点的准入制,是否中心化?未来的演进措施是怎样的?
4 J* ^0 W/ m4 a0 H) \
' B' ?5 `7 F$ M5 i何畅彬: 设置参议节点角色,主要是保障网络的性能;前期有一定的准入制度,是基于“有责任的去中心化”的考虑。这个准入制度,其规则是公开透明的,满足一定的基本条件就都可以加入。其实是在所有的公链中,都会存在一些优质节点,拥有更好的计算资源及网络条件,在我们 YOUChain 中,我们只是把这些节点识别出来,让他们能发挥更大的作用,更好地服务于公链网络的稳定运行。未来随着社会整体硬件基础设施的进步及个人计算资源的发展,参议节点将逐渐演化为提供存储、转发等功能的节点,并将逐渐从“有准入”的机制变为“无准入”的机制。因此,参议节点的设置,并不意味着中心化;恰恰相反,这是用一种负责任的方式,更好地服务于去中心化这一目标。6 U9 m1 b2 ?# l- `5 G- `! Y
4 u$ d  a  j  k3 I$ k: X4 K5 a
Q2 官方持有一定量的 token,承诺永不抛售,不过是为了抵御攻击,只是有人收购了足够多的token,不就可以实施攻击了吗?  h  x4 B# |1 O* ~6 ?: w: n8 n2 ?! p

9 P4 L3 v/ Y" q# I3 f何畅彬: 1.网络的早期较容易受到攻击,所以官方的 token 将会起到抵御作用;2.在网络的进一步演进过程中,Token 进一步分散,在公开市场上收购足够多的 Token,将会被变得「经济学上不可能」
9 R* u9 {( e2 o# v. l6 L8 j# m: ~1 J
Q3 参议节点和众议节点的数量分别是多少?会不会扩容?
, O+ q' |* [3 p& F# ^4 J( Q& c: S. E4 ?. c) N
何畅彬: 参议节点,早期是有一定准入,后期会彻底放开。众议节点将无准入,海量。具体的数字,需要根据上线前,实际的情况而定。我们还在具体考量。* t; i+ o: U2 v' h) o( h! b1 E+ Q

* @) T; i' r8 |Q4 参议节点提议区块,是否有中心化问题?
+ E) ~! l, ?2 u; t/ T& s% ?- D3 I/ u, i2 J0 l; F' X
何畅彬: 所谓“中心化”,本质上是少数人控制整个系统,能够施加超越既定规则的影响力。但是在我们的网络中,提议区块只是共识的一个步骤,被提议的区块,需要通过一个临时随机选举出来的验证委员会(包括参议节点和众议节点分别形成的两个验证委员会)验证并多数投票通过后,才是最终被接受的区块。本质上,随机选取任何节点来提议区块都可以,只是出于性能考虑,将该角色由参议节点承担。这跟“中心化”与“去中心化”问题并无影响。3 X; N; d' m, r1 _1 p3 |! K) P0 w
* d( r7 b* M: p) r' Y* k% ]7 [# X0 B* T
Q5 我是咱们有链的老社群用户了,刚才提到的 峰值TPS 和测试环境,我想再详细了解下
! r% _# q: U2 z$ l
! U9 }6 B- h# k  H7 a& U7 s何畅彬: YOUChain 的社群为我们提供了部署在家庭网络下,超过 2000 个同时在线的 pc 节点和手机节点。在 5 月进行的一次压测中,我们随机选取超过 500 节点进行共识出块,跑到峰值 TPS 为 1250,出块时间约为 3 秒。/ t6 J& n/ i4 g8 z8 e
# Y. u; e2 i; T  ~& `
Q6 何总你好,我是鱼链的联合创始人Jacky, 我想知道下,早期众议节点,为什么是安全的?未来节点众多的时候,如何更加安全?
8 m$ t( w  p6 `' B* Q' |* `  g6 J* N( o' t
何畅彬: 基于PoS的去中心化公链网络,其去中心化的过程,必定不会很快,会需要一定的时间。早期的普通节点可能比较少,因此众议
http://www.simu001.cn/x171954x1x1.html
最好的私募社区 | 第一私募论坛 | http://www.simu001.cn

精彩推荐

回复

举报

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

本版积分规则

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

GMT+8, 2025-4-17 22:54 , Processed in 0.516970 second(s), 31 queries .

Powered by www.simu001.cn X3.4

Copyright © 2001-2021, Tencent Cloud.

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