Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文
以太坊君士坦丁堡(Constantinople)分叉即将开始,很多人都对本次分叉感到好奇,不确定是否需要提前做好准备。) O8 |8 L8 f2 x. O
6 `- J3 |6 y9 i6 S( G
简单来说:如果你只是ETH的持有者,本次升级你不需要做任何准备。6 s7 g/ ?( {- C% E% R; ?  A
/ u. }8 N4 a; J2 H4 Y+ v0 v0 G
什么是分叉?
! f4 k) `5 q' r4 O: R1 A, w( Y/ y5 a7 M, t# ^- v+ V5 C
分叉就是网络升级,就像你的电脑和app需要升级一样,分叉也是为了网络变得更加安全,具备更多新的功能。+ w- D, L" l! P

; ~! t# |0 _5 K4 e" Z你是否曾经在更新之后打开一个Word文档或其他文件的时候感觉有点不稳定?或许有些注释丢失了,又或者看起来怪怪的?硬分叉也是类似。如果人们在运行旧版软件,而新版软件试图与其进行交互时,有些内容就可能丢失,或者变得不稳定。
% ~0 V. ]& N; r* }5 j6 V" m) O3 n, g$ ?% z7 i/ F1 |
这是因为区块链是去中心化的,同时运行着大量的计算机。用户之间不需要相互发送Word文档,每个人都可以同时获取最新的文档(即区块链历史)。5 D5 _3 Z7 L0 h! |
& h6 K+ M/ D6 z( L* h7 V
因此,为了让一切变得更加稳定,运行区块链软件(即节点)的每个人都必须升级。这样每个人都可以在遵守同一套规则的前提下获得最新的功能。% j+ Z/ I/ H' i" H1 W

# Y0 a$ ?1 g3 z; `: ^分叉为什么叫分叉?( V  u- O  B4 a( C

8 E5 {2 L& d* V. a& @* N' J分叉之所以被称为分叉是因为其与分岔路口(英文中都被称为fork)类似——一条区块链被分成了两条独立的链。其中一条路(或者说一条链)遵循旧的规则,而另一条链则采用了新的规则。  N7 @+ o2 x6 \+ j& ?4 h+ B

" d  H) ?; V. U  h* |7 r有些硬分叉不存在争议,因此大家都会弃用旧版软件,没有人会去维护旧链。这条链就自然而然地会停止运作,因为这里的币也已经没有价值了。+ h) c0 \1 t* U8 G

4 X4 M* b: G  a然而,如果硬分叉存在争议(也就是说,有人反对其中包含的改进),那么两条链都很有可能继续存在。就像ETC和ETH以及BCH和BTC一样。
$ W# H" p% A  g7 F+ K1 E  y$ L: x
什么是君士坦丁堡?
* u9 j8 o1 R. P4 Y+ G# |
/ J- V2 e2 |( Q9 |2 j' v君士坦丁堡是以太坊网络本次升级的名称。本次升级不存在争议,网络中每个人都同意以太坊区块链走上一条新的道路。1 f4 v3 W; G8 I" E0 ?& Z

( Z$ x8 a2 U9 F& E( `  I因此,就像此前的几次升级(例如2016年的家园升级和2017年的拜占庭升级)一样,本次硬分叉虽然也会分出两条链,但旧链几乎会立刻消失。同样的,普通用户也不会察觉出任何变化。
; E! ]! O9 a. L' ]# v0 V3 G; U8 l1 i; z' ^
这个新的以太坊区块链包含几个改进该网络的EIP(以太坊改进协议)。
' L, ?3 w& g" Z: I9 K
  r2 U+ w. R3 G+ h. m我需要做什么吗?转移ETH?4 s+ e+ u( G5 i; [% ?: g& S

* }, L4 {: r5 U& G& g" ?什么都不用做。虽然你的ETH会同时在新链和旧链存在,但所有交易所(Coinbase、Kraken、ShapeShift)、服务商(MyCrypto、MetaMask、Trust Wallet)以及节点供应商(Infura、Etherscan、Quiknode)都会升级他们的节点,因此对普通用户来说不会有任何影响。# P9 v. }2 p) R/ j' j/ n" }/ ]

. d* ?- F. Q" g2 ~( Z: w; H**- {  ^% s1 C& `* }$ B7 w! z5 }

! f+ p1 V* F: w如果你在运行节点(例如用自己的电脑使用Infura或者运行Geth及Parity),你就需要升级到最新版的软件。**
# z3 S5 F$ x1 z; T% X  ^! Z+ B( g3 }$ C
本次升级包含哪些EIP?
% Q8 g  j0 Y: _! k# U) U
5 q/ w( Z/ r  `' XEIP 145:以太坊虚拟机(EVM)的位转移指令
; q+ l+ ~! f) \* W
7 s' {$ T1 n8 o/ [提供与其他算术运算同等成本的本机位转移。
$ w) A9 n4 x3 Q- G3 Y' \4 X' `( B* v8 P3 E; [7 E  H
EVM缺乏位转移运算,但支持其他逻辑和算术运算。转移运算可以通过算术运算进行部署,但所需成本更高,需要耗费更多的处理时间。部署SHL和SHR的运算成本分别是35 gas,而本文建议的操作只需要3 gas。; e: r5 P. M) F& B" ?2 z. ^- g

4 C; Z  H& R6 ~' Q- 简单来说就是给协议添加更多功能让链上活动变得更加方便,成本更低。
0 k- m$ [, J: M  @. F. B% @+ I# y7 H( v1 ^7 [
EIP 1014:Skinny CREATE20 ~1 k& q+ t+ K9 T( v
! J9 i7 o. L& \) O( U
为0xf5添加新的操作码,需要4个栈参数:endowment、memory_start、memory_length、salt。除了使用% S' s5 \) [1 E
; m" j7 h. J9 ^% r- j+ {/ O
keccak256( 0xff ++ address ++ salt ++ keccak256(init_code)))[12:]4 _% j, B, d8 t% ?$ @

2 W  w8 L+ D2 T4 f来取代常规的sender-and-nonce-hash作为初始化合约地址之外,其他CREATE操作都是不变的。
% P% e- u4 u( x. v
4 J# N; j5 g6 g1 m允许与链上不存在的地址进行交互,前提是这些地址包含由特定初始化代码创建的代码。( n- N  w- i7 V/ F, x- v

. L  N" w( n. M$ ^- t! n对于涉及合约交互的状态通道应用非常重要。
- X8 e  \) Q! u0 j  G! l# e$ W2 a+ o( B" R
简单来说就是允许你与因为状态通道而尚未创建的地址进行交互。
9 Q* s& o4 O0 v
% `& E9 B) m+ Q1 v; Y. b# g" j9 b* FEIP 1052:EXTCODEHASH操作码: @1 j( ?  |, M3 |7 G
# ?  L7 M) [! P- F- i
这一EIP介绍了一种新的操作码,回归到了合约代码的keccak256 hash。
5 |2 s' f3 y9 v  W" P) U; k& ^6 u, g% R2 Y) [1 `( }4 A
很多合约需要对合约的字节码进行检查,但不一定需要字节码。举个例子,某合约会检查另一合约的字节码是否属于可部署范围之内,或者会分析代码,将一些带有符合要求字节码的合约加入白名单。9 X4 M. s: |: n0 U/ V8 S

4 j" ~  Y# @- h' r目前,合约已经可以通过EXTCODECOPY操作码来实现这一点,但所需成本较高,特别是大型合约。因此,我们提出了一个全新的操作码EXTCODEHASH,回归合约字节码的keccak256 hash。
1 `5 ?8 y+ |4 `8 h" Q+ b  ]' N3 E& N, A  X: c; j+ Y: ~/ \
- 简单来说链上活动成本(所需gas越来越少)将会降低。
5 }6 X1 r) `! D1 \/ x8 A4 t' Q" y: j2 P9 D& ~0 t! e. F% u! y
EIP 1283:不需要dirty maps(额外的存储结构)的SSTORE gas计量  l  f  Q- f; r% T8 L' \! a
! l& m! D# h$ |
这一EIP提出了SSTORE操作码的gas净值计量改进,开拓了合约存储的新应用,在出现不匹配情况时减少了过度的gas成本。% w+ [. [! v; E6 D- w; d8 I
' Y/ ]: S$ X" S( r2 L- z* a4 A2 \
简单来说就是让链上活动成本(所需gas越来越少)变得更低,尤其是针对现阶段成本非常高的活动。
$ p3 ~" W  _9 D6 E4 |! H% t3 @  ~5 R4 @- h2 ^* b
EIP 1234:君士坦丁堡难度炸弹延迟和区块奖励调整
8 J; V" \& u/ V! Z5 n) i
- R& h9 Q2 l/ v  B由于难度炸弹(也就是“冰河时代”)的推进,平均的出块时间增加了。这一EIP建议延迟难度炸弹1年,减少区块奖励。
8 M- }$ U/ o3 G2 \) l: F/ e
6 G! P( F- n" q0 {* b简单来说就是在PoS准备就绪之前确保不要“冻结”区块链。
6 ?4 c8 c8 M1 C
7 @& y; {% L6 u6 l本次分叉是否会影响交易或确认时间?
: N# {+ R- `2 D$ b
5 c  J( `4 @9 @/ w, l出块时间应在15秒左右。在将来完全切换到PoS之后,出块时间会发生变化,但目前依然采用PoW,可能会有一些延迟,交易速度太快可能会导致部分交易不可靠。以太坊目前通过叔块(uncle block)来解决这一问题。  \. \% X, h$ ]! a2 {9 Z5 X3 I

' A2 ^, R" F2 z- c8 v本次分叉是否会影响交易费用?
* |/ S$ s- E( `' g- M4 A
+ I( i8 F2 `0 c% I) O3 {3 J费用取决于交易数量。有些EIP会优化智能合约交互,因此,智能合约交易成本会减少。然而,我们不知道将来是否又会有一个像加密猫(CryptoKitties)这样的Dapp出现,导致网络拥堵和费用上涨。, I% d7 a- {) H# V" B% @' F  ^
8 o5 P7 h# Q. E4 {$ S
本次分叉是否会影响每秒处理的交易数量?4 z2 z5 U4 ~- D) V

. d3 s2 c. O2 ?平均交易处理数量不变。不过,随着EIP 1024对状态通道的优化,我们应该能看到一些二层方案的问世(例如OmiseGo、Loom Network、Raiden等)。3 ?  V* |( q- N! B8 \- v# ?0 V$ i

) _# j8 ]1 v  k: l3 F/ v; q8 \本次升级是否会切换到PoS?( D; E3 X- x7 u+ }1 i% u
- |) }* I# @: I" U1 k/ S
不会,目前仍在进行测试。EIP 1234之所以提出减少区块奖励是为了延迟难度炸弹,最终我们将看到beacon链和sharding链。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

虹桥大宝剑 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    26