Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文
EOS与以太坊双雄对决谁死谁生,是币圈近期最受关注的热点。而网络堵塞问题就像是卡在以太坊喉咙的一个刺,截止这个春夏之交,在这场大战中以太坊明显处于下风,而它即将被EOS取代的声浪也一浪高过一浪。
7 N( Q' y0 B5 q
$ l! T4 U1 o$ U/ v  o  但以太坊创始人Vitalik Buterin显然并没有闲着。4月30日,Vitalik发了一条推特“Sharding is coming”,称推出“最小分片协议”计划,并随后分享了github上关于Sharding的代码库。该代码库记录了所谓的“分支选择规则”的部分概念验证,这是“以太碎片”如何与主区块链相互作用的代码。
+ l5 J9 r  U% @* R
+ M- d1 d. e3 ~+ w4 X2 F4 l# A% ]  网络堵塞的本质是使用成本的增加。以太坊交易的数量在过去几年中大幅增加,交易费用也相应增加。
: C1 p! w! ~* m7 N7 ^% k1 k( Z' ~+ R, S/ f) A# P" _: E
  分片的概念涉及将以太坊区块链分割成多个可以以并行方式处理交易的较小部分,从而加快交易吞吐量和容量,从而降低交易成本。
% I; {; _( A6 \5 Y) ?6 x2 v/ W- G  ^# x5 {6 r* z; Y
  “分片”的大致设计思路是:将区块链网络中的每个区块变为一个子区块链,子区块链中可以容纳若干打包了交易数据的Collation(大概可以称为“校验块”,为了在分片的情景中将其与区块的概念区分开),这些Collation最终组成一个在主链上区块;因为这些Collation是整体作为区块存在的,所以其数据必定是全部由某个特定的矿工所打包生成,本质上和现有协议中的区块没有区别,所以不再需要增加额外的网络确认。这样,每个区块的交易容量就大概扩大了100倍;4 T) A# c& f" i. q
  F8 A+ Z( n0 k- k6 Z8 F
  简单描述,假设现在有三个节点A,B,C,并且他们需要验证数据X。在传统的以太坊网络模式中,每个节点都需要分别去计算和验证整个数据X,在分片技术下,整个数据被分成3个片区:X1,X2和X3。这样地话,节点A,B,C就可以只需要并行验证数据X1,X2和X3。0 d' _  W! `" Y
3 r) l1 K9 f3 H; f( t3 n' t
  在基本的分片规范中,Buterin提出可以用简单的直线依赖关系来完成链接,但这样做会太慢,并且可能在时间段上存在差距。他因此提出了链式交叉链接。
+ r' `/ Q8 g. `  V8 w* w7 j' M+ K" i. }1 ]
  “这个想法是,有两种类型的交叉链接,一种从主链到碎片,另一种从碎片到主链,”Buterin在添加之前说道。4 m5 _' }" J0 t( z3 Q' j
8 q4 n# G$ o) B  R/ Z
  目前,Vitalik Buterin已经陆续在Twitter上发布了几个新文件,其中包含了早期阶段的分片规范,基于这些规范形成了新协议的早期架构。
6 O$ O. n  }4 k. h7 v# v
. s! F3 u; O3 [" w# ]- f8 W- [  Vitalik和Reddit网友的问答讨论
  S$ i& ?# G- L9 W7 |; D2 S' V4 ?9 V, {2 k. |, n7 L9 x
  这些疑问也最能代表并不一定那么懂技术的大多数人。
+ I0 }2 q7 \& c" I
) C3 U! [, p% Y7 ]* r  我们为您摘录其中最有价值的一些,并作出不改变原意的编译:
6 X% m- E/ `: \0 s; W  }0 X& e; I  1、网友:你能把这些用外行也能听懂的话解释一下吗?这一改变的目的是什么?对当前的使用者会有什么影响?这会赋予以太坊怎样的能力?$ p$ `/ D) `! s3 U; |
  Vitalik:主要目标是大规模扩容。每个分片(模拟中有12个,最后应该会有大约100个)都会有和现在的以太坊相同的容量,很可能还更高。# h1 O4 r/ f" T. z  k( n" I% V
  2、网友问:关于可以使用多少分片有什么限制吗?作为外行,12个还是100个听起来似乎很随意。
! T) Q+ o4 n; w) r; v& S; m  Vitalik:基本上,限制是每个节点都必须验证所有分片的区块头部,且一个节点的验证容量上限是受到算力限制的。因此会有“二次分片”:如果一个节点可以处理C个事务,那么该节点就会有C个分片的区块头部要处理。如果一个节点验证单一区块,可以处理最多C个事务,这样该节点总容量就是C的平方。- g4 a: R7 }' Z* B3 J4 Q% C% e
7 p' i( b9 V, [0 {
  (为了便于理解,此处引用V神此前关于分片技术的解释:假设用变量 c 来表示一个节点的有效计算能力,那么在一个普通的区块链里,交易容量就被限定为 O(c),因为每个节点都必须处理所有的交易。二次分片的目的,就是通过一种双层的设计来增加交易容量。在第一层中是不需要硬分叉的,主链就保持原样。不过,一种被称为校验器管理和约(validator manager contract,VMC)的合约需要被发布到主链上,用来维持分片系统。这个合约中会存在 O(c) 个 分片 (目前为100),每个分片都像是个独立的“银河”:它具有自己的账户空间,交易需要指定它们自己应该被发布到哪个分片中,并且分片间的通信是受限的(事实上,在第一阶段,不存在这种通信能力)。分片运行在一个普通的符合最长链规则的权益证明系统中,权益数据将保存在主链上(具体来说,是在VMC中)。所有分片共享一个通用验证器池,这也意味着:任何通过VMC注册的验证器,理论上都可以在任意时间被授权来在任意分片上创建区块。每个分片会有一个 O(c) 的区块大小/gas上限(block size/gas limit),这样,系统的整体容量就变成了 O(c^2) 。)& g. ~+ B! ^1 h+ r+ @1 M2 e

: h1 p" G8 ^  `& l" b  3、网友问:那么不同的节点会有不同的功能吗?有些处理区块头部,还有一些则处理区块内部的交易?) L) Q' C: E) t+ T4 {1 l2 C9 C
  Vitalik:分片处理全部交易(代码、存储),主链节点只处理侧链区块头部。' h4 L; Y6 C& s6 J# G* s1 x3 K

- l( X# t3 @. r7 P  4、网友问:每个交易是最多只在一些区块内验证,还是仍然会在整个网络上验证?有些超过某个阈值的交易如果能在全网验证,会大大降低欺诈的可能性。$ r' A* }; [. d& A; `2 @

: M, V  I6 x; I. O( @  Vitalik:不是,所有的交易都被委托验证,前提是网络信任该校验区块符合以下三个要求:
* v) H; ^# L. M0 E, @# J& t  1、一个由100-200个任意选择的验证者组成的委员会批准了该区块) W% z' X7 f/ g4 E# M5 D" H; d3 _
  2、成功通过数据可用性审计
2 f9 S1 Y8 R$ P% y' Q6 P  3、发布无欺诈证明
% F; O: `# b( V  长期来看,第三条可能会被SNARK或者STARKs取代。  H! ^0 ]& R' Z  r6 F" n

7 |% S" c! C, g- o! T  5、问:这是否意味着交易吞吐量的提升会是百倍的?分片的扩展指数会是多少?$ o( l) ~5 _0 j1 x( e: s) B
  Vitalik:是的,吞吐量的提升会是平方级的。假如电脑算力提升2倍,理论上区块的最大容量就会提升四倍。
# c$ x0 p8 J$ J7 y3 s
. a0 K* k* t7 l3 n* A  6、网友问:还有理由存在不分片的超级节点吗?
  q# P7 U- F  x" j1 b  Vitalik:没有不分片的超级节点。如果有人想要启动一个节点验证所有交易,也可以。但是协议的明确设计是,不能依赖任何此类不分片节点的存在。
/ h; u1 k  \2 @7 W! n8 N- T/ t, c& C& o1 G& Q# j+ q
  7、网友问:POC使用的是4个分片,这也会是FFG将拥有的分片数吗?: u2 [0 R& \; H$ X( G5 Z# f. o1 c4 I
  Vitalik:Gthub代码有四个分片,我运行它来生成上述模拟想象的时候有12个分片,实际上应该会有大约100个分片。" o/ O! m% P( D7 G8 f7 p: `+ K
) y( P+ p/ d2 X8 W
  8、网友问:使用什么参数来决定分片数量呢?每个分片是否会有自己独特的属性?例如电子商务、游戏等。% m% k8 _+ n6 _4 m9 ]$ g
  Vitalik:其中一个选项是验证者投票,就像矿工就gas limit进行投票一样。
- I. h3 b) w; d( s0 d
7 V9 L: k# C! j6 T- q% Z  9、网友问:一个真诚的提问:分片会导致中心化加剧吗?
! u0 Z% O2 f& q. ^  B  Vitalik:实际上会更加去中心化。原因在于,分片的设置中,一个节点必须处理的数据数量和该节点的以太坊余额有关。因此更多的是可变的成本,而不是固定成本,这提升了小玩家的参与度。
) ?3 t: G4 T# c: ?! H+ p  D# m5 h; m0 E: F4 N) _- s
  10、网友问:听起来真的过度设计了,感觉好复杂……真的没有更好的办法在实现扩容同时不过分损害安全性?我的感觉是一定有,但还没找到……/ ~) e! E  s* V4 {- C# X" f: I. \
  Vitalik:当转到PoS之后很多的复杂都不复存在了。届时主链和培根链就会融合,到时候我们就只有一层交叉连接的链。所有和PoW有关的复杂性(包括Ethash存取等)都会消失。但如果PoS没有实现,是的,这会比当前的以太坊更加复杂。等到准备好的时候,我想我们会用一个plasma链。2 M( n3 x! d* V$ j

+ Z! Z, {$ B# H% Q& z- A  11、网友问:是否考虑分片之间的交流呢?如果没有这个,分片的效果就大打折扣了。
. d& u% N3 Z% H0 |8 x9 h% O  Vitalik:每个验证者对于其他的分片来说都是轻客户端,你可以像现在在区块链上一样和他们进行asyc交流——UI交流。
/ r" ~+ m" z) H! {1 `3 U3 r. Z% B" C9 y( g; f
  12、网友问:智能合约可以使用由RanDAO(或提案人/公证人/验证人地址)生成的随机数字吗?这些随机数字在敏感的dApp中使用会比当前的区块哈希更安全吗?
- s2 \4 c, J8 G: F2 e  m1 x5 R  Vitalik:是的,可以使用,至少最终可以使用。不幸的是他们可能不太安全。选择一个分片验证设置是安全的,但对于任何一种大规模赌博都不够安全。
4 z( h" e8 R9 {! _
4 v+ P) g" y3 E$ `6 a  f' T  结语
+ S! U- G1 x/ u  虽然分片仍处于积极的发展阶段(Vitalik也表示这还并不是一项业已成熟的技术),但Buterin和以太坊开发团队的快速更新是一个关键信号,表明扩容问题可能很快就会得到解决。7 d' O0 j6 G/ Q( d3 {+ @

: g. G5 f3 _8 C( j5 q" [4 _! p5 s- [  除了最新的分片更新之外,Buterin最近还在3月9日在巴黎的以太坊社区会议上,为以太坊智能合约项目Plasma 提供了一个新的扩容解决方案。
; h4 a% l! S1 y- I4 V3 g6 v1 x5 V, t* }% ]3 Q( g- c6 c6 Z
0 m$ V2 p3 r5 u, A. n0 \
  随着以太坊即将从PoW到PoS的共识转变的代码已完成,并提交为以太坊改进提案EIP1011(也称Casper FFG),我们可以预见,以太坊网络将在不久的将来进行重大升级。届时以太坊与EOS之争将会更加激烈。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

重启大王 小学生
  • 粉丝

    0

  • 关注

    1

  • 主题

    6