Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文
以太坊君士坦丁堡(Constantinople)分叉即将开始,很多人都对本次分叉感到好奇,不确定是否需要提前做好准备。
! N  a" c6 {, Y* q7 a" a, q4 ^% @
' w! l2 w( l- C6 `5 L0 L简单来说:如果你只是ETH的持有者,本次升级你不需要做任何准备。8 l' l: I5 h7 L2 L5 p
  i' O" v- T/ m4 a- E# u0 E
什么是分叉?
9 A/ G* I" f: ?/ i" q
/ [/ r$ g6 {% `) w: z5 c+ s2 y* S分叉就是网络升级,就像你的电脑和app需要升级一样,分叉也是为了网络变得更加安全,具备更多新的功能。
( {; [8 N; O0 t9 Q4 |
) I* q( L0 E, ?- o; x' |$ g你是否曾经在更新之后打开一个Word文档或其他文件的时候感觉有点不稳定?或许有些注释丢失了,又或者看起来怪怪的?硬分叉也是类似。如果人们在运行旧版软件,而新版软件试图与其进行交互时,有些内容就可能丢失,或者变得不稳定。( R6 j$ o7 y( E' g  p( W

* T6 d% F4 Z' E- w0 X  }8 g( X/ i这是因为区块链是去中心化的,同时运行着大量的计算机。用户之间不需要相互发送Word文档,每个人都可以同时获取最新的文档(即区块链历史)。
. Z/ I' E# R2 N8 h# }3 a
# E0 _- u0 J7 G' A( _因此,为了让一切变得更加稳定,运行区块链软件(即节点)的每个人都必须升级。这样每个人都可以在遵守同一套规则的前提下获得最新的功能。
. A! t8 E* d9 F4 d; k9 e- u  g, Y1 z" w
分叉为什么叫分叉?
% _6 S- V  f' V# r/ c- L
0 ?* s5 E( W% q) b分叉之所以被称为分叉是因为其与分岔路口(英文中都被称为fork)类似——一条区块链被分成了两条独立的链。其中一条路(或者说一条链)遵循旧的规则,而另一条链则采用了新的规则。
: U7 I4 u. v! M9 j" X  _5 }5 H9 l& B# h1 i. @4 t9 n* d- {
有些硬分叉不存在争议,因此大家都会弃用旧版软件,没有人会去维护旧链。这条链就自然而然地会停止运作,因为这里的币也已经没有价值了。8 z: ^+ i; n8 }4 h& s

- s- `: A* A$ ?- V/ N/ u7 u& }然而,如果硬分叉存在争议(也就是说,有人反对其中包含的改进),那么两条链都很有可能继续存在。就像ETC和ETH以及BCH和BTC一样。
  x" a$ m+ x9 L# ^9 T& O& o0 S/ \' z. F
什么是君士坦丁堡?
9 ]) b5 `9 S# u9 A* G: T
  w! h, _& ~8 m/ u% `# \$ ~君士坦丁堡是以太坊网络本次升级的名称。本次升级不存在争议,网络中每个人都同意以太坊区块链走上一条新的道路。
$ L/ r* B. G* P
2 J2 E, g. [) h4 b) l因此,就像此前的几次升级(例如2016年的家园升级和2017年的拜占庭升级)一样,本次硬分叉虽然也会分出两条链,但旧链几乎会立刻消失。同样的,普通用户也不会察觉出任何变化。5 N3 U1 a9 R! H4 o: v/ @+ h, o

3 X+ b4 C* w& t- }& K* O' |这个新的以太坊区块链包含几个改进该网络的EIP(以太坊改进协议)。
; H* E) I3 _/ T6 N8 B1 I" R( D- ^. P; p
我需要做什么吗?转移ETH?+ W, d( R$ y' C2 k

$ g) z  {  u1 s& @# h" L什么都不用做。虽然你的ETH会同时在新链和旧链存在,但所有交易所(Coinbase、Kraken、ShapeShift)、服务商(MyCrypto、MetaMask、Trust Wallet)以及节点供应商(Infura、Etherscan、Quiknode)都会升级他们的节点,因此对普通用户来说不会有任何影响。
6 B  ^7 Y5 ]" k2 g/ h( Y, K4 [8 j- h4 Y. H$ Z2 x8 ^9 e
**
/ C2 @2 P4 R6 i) @) q$ d: w3 b, `8 s* Z3 j; e. V. C, n& p' w
如果你在运行节点(例如用自己的电脑使用Infura或者运行Geth及Parity),你就需要升级到最新版的软件。**
5 Q  g+ E% z3 g# g
/ Z; B. l. w) @! n& ]6 |. m本次升级包含哪些EIP?
  p  k; M+ o9 Y0 b" e/ ^% r0 B" E# [6 E$ V* R8 \9 ?
EIP 145:以太坊虚拟机(EVM)的位转移指令5 n: h/ T0 l3 p( x7 |7 p; l

+ Y! Y! |+ E1 c# g1 r提供与其他算术运算同等成本的本机位转移。
/ c: |4 b# h. Q2 J$ n5 B
  E% M0 v, `& Z' F( v% D3 O) FEVM缺乏位转移运算,但支持其他逻辑和算术运算。转移运算可以通过算术运算进行部署,但所需成本更高,需要耗费更多的处理时间。部署SHL和SHR的运算成本分别是35 gas,而本文建议的操作只需要3 gas。; R8 n9 N. F0 F: \3 L! a( i5 M5 M
' n" D/ ]+ m2 m) t
- 简单来说就是给协议添加更多功能让链上活动变得更加方便,成本更低。9 k( [% o* j# U; {' w, w7 d$ l
, D3 J( `+ ^. L  B
EIP 1014:Skinny CREATE2" w0 z. U) m" y2 W8 j  I1 ?

" h% F8 X0 n( k6 p3 F, Z0 Z为0xf5添加新的操作码,需要4个栈参数:endowment、memory_start、memory_length、salt。除了使用9 t0 D1 ]7 Y& k8 d$ A! f  A
# q; H6 ?- G, n
keccak256( 0xff ++ address ++ salt ++ keccak256(init_code)))[12:]
" A. _! ]6 g' \  I) y( v7 e6 x% @9 i8 h0 `* f# B5 z
来取代常规的sender-and-nonce-hash作为初始化合约地址之外,其他CREATE操作都是不变的。: `) n# k/ d* M+ p
7 @/ t4 e( ~$ F+ h$ L; R2 u
允许与链上不存在的地址进行交互,前提是这些地址包含由特定初始化代码创建的代码。" F; u" q6 G5 e6 E$ V3 M
7 p( i8 N5 e9 \3 [: V, F
对于涉及合约交互的状态通道应用非常重要。" ?  C' J" ^0 U1 i5 @( V% U! R
  {" Z9 k4 @2 m' v, ~. E
简单来说就是允许你与因为状态通道而尚未创建的地址进行交互。) Y2 U4 M7 C; [) ~- U# k
7 d' x$ g- @9 E$ X# g+ M& z9 X. _
EIP 1052:EXTCODEHASH操作码
2 [' o! J, a6 j6 n/ p+ u1 }8 _& y. Y5 J2 r. w# t* F
这一EIP介绍了一种新的操作码,回归到了合约代码的keccak256 hash。% R! u" J6 |1 V

$ N/ ]+ t- w, A4 b3 D很多合约需要对合约的字节码进行检查,但不一定需要字节码。举个例子,某合约会检查另一合约的字节码是否属于可部署范围之内,或者会分析代码,将一些带有符合要求字节码的合约加入白名单。, s& O: J% ]; \$ [& ~& d
, T) c% Z5 z8 L; i9 s1 M9 r
目前,合约已经可以通过EXTCODECOPY操作码来实现这一点,但所需成本较高,特别是大型合约。因此,我们提出了一个全新的操作码EXTCODEHASH,回归合约字节码的keccak256 hash。
. Q" K  V8 @( I% G% Z' X- x6 S
# K% `2 d* a8 B+ [- 简单来说链上活动成本(所需gas越来越少)将会降低。
0 i) C! P- Z6 f
% j* T" t* }4 [5 w6 wEIP 1283:不需要dirty maps(额外的存储结构)的SSTORE gas计量
+ [" {( l% t0 \6 y: q
. S2 f8 V, O- J- r( a( e% p  B& c+ D这一EIP提出了SSTORE操作码的gas净值计量改进,开拓了合约存储的新应用,在出现不匹配情况时减少了过度的gas成本。5 m: w' j  h4 t) H
6 m6 V3 ?( D. @9 t$ N- P
简单来说就是让链上活动成本(所需gas越来越少)变得更低,尤其是针对现阶段成本非常高的活动。
! x' h- w* N( P6 @: i: t
  X5 x3 Y' T2 `1 p6 P- T0 GEIP 1234:君士坦丁堡难度炸弹延迟和区块奖励调整
7 I3 v' Y3 [) [2 x4 K% s0 Q: a! k2 l. ^* c  u) b  k! B, A
由于难度炸弹(也就是“冰河时代”)的推进,平均的出块时间增加了。这一EIP建议延迟难度炸弹1年,减少区块奖励。
6 B' i; {2 {: E: n# K8 Y, S" C' {4 I* K' G
简单来说就是在PoS准备就绪之前确保不要“冻结”区块链。
! Z3 f, o$ U7 I: `+ N( q4 Y$ c& ~' W0 A3 M# i+ _
本次分叉是否会影响交易或确认时间?% ~: J2 J( a" f2 B. F/ k. C4 y( K

- R; Z  c  c/ Q! o9 r0 g* D. p出块时间应在15秒左右。在将来完全切换到PoS之后,出块时间会发生变化,但目前依然采用PoW,可能会有一些延迟,交易速度太快可能会导致部分交易不可靠。以太坊目前通过叔块(uncle block)来解决这一问题。
3 a9 {# c' D- _, ?# L4 @, ^  a& i# r1 T+ p' K: [
本次分叉是否会影响交易费用?
  n% x% T  e& y/ y3 e3 j* q
" \) h6 U; }0 b( c+ z1 m: Q费用取决于交易数量。有些EIP会优化智能合约交互,因此,智能合约交易成本会减少。然而,我们不知道将来是否又会有一个像加密猫(CryptoKitties)这样的Dapp出现,导致网络拥堵和费用上涨。+ G) A; e' x4 h6 L
( ~) _4 }: h! _7 q/ I
本次分叉是否会影响每秒处理的交易数量?
, I$ c! z0 d$ x5 R9 D% f
; Y+ R% S! |* p9 {0 d7 P平均交易处理数量不变。不过,随着EIP 1024对状态通道的优化,我们应该能看到一些二层方案的问世(例如OmiseGo、Loom Network、Raiden等)。% a5 X3 D* W  s6 \) W( A
  U# {8 N7 Q1 w+ u$ f2 e
本次升级是否会切换到PoS?
9 o' A$ B2 J" h1 L3 O
! G9 A& H$ O6 g不会,目前仍在进行测试。EIP 1234之所以提出减少区块奖励是为了延迟难度炸弹,最终我们将看到beacon链和sharding链。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

虹桥大宝剑 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    26