Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文
以太坊君士坦丁堡(Constantinople)分叉即将开始,很多人都对本次分叉感到好奇,不确定是否需要提前做好准备。* Y0 p. B# i, F4 n
  X: m, W+ `; j
简单来说:如果你只是ETH的持有者,本次升级你不需要做任何准备。
+ z3 K( E6 i0 a/ r* c9 M: g+ }
3 T  x: R! P2 K* D3 O! y9 I4 j什么是分叉?
/ R; T4 r; B( K( a6 f. j' }; X. Z( P+ c  [) C
分叉就是网络升级,就像你的电脑和app需要升级一样,分叉也是为了网络变得更加安全,具备更多新的功能。, J' D1 V+ [  }. c) T
9 a4 n: P& q8 ^) [5 E  x
你是否曾经在更新之后打开一个Word文档或其他文件的时候感觉有点不稳定?或许有些注释丢失了,又或者看起来怪怪的?硬分叉也是类似。如果人们在运行旧版软件,而新版软件试图与其进行交互时,有些内容就可能丢失,或者变得不稳定。
7 I7 d, n1 J0 ~3 s1 Q# j
; L/ w% ~7 _. O$ ]1 d8 R这是因为区块链是去中心化的,同时运行着大量的计算机。用户之间不需要相互发送Word文档,每个人都可以同时获取最新的文档(即区块链历史)。& K/ [* Q2 ~! N  J

! B( O5 H3 i; |1 P* W因此,为了让一切变得更加稳定,运行区块链软件(即节点)的每个人都必须升级。这样每个人都可以在遵守同一套规则的前提下获得最新的功能。6 A" z- h/ k; F( w% l% \3 v9 q

( r% W- p2 g# t1 F分叉为什么叫分叉?5 N' D: D0 A$ b1 e, x
. u: ^4 F; m( Z6 ~9 @3 c7 F
分叉之所以被称为分叉是因为其与分岔路口(英文中都被称为fork)类似——一条区块链被分成了两条独立的链。其中一条路(或者说一条链)遵循旧的规则,而另一条链则采用了新的规则。
5 X& V' c# I$ p# }( ]
1 O& B8 e+ k+ U8 Q4 T有些硬分叉不存在争议,因此大家都会弃用旧版软件,没有人会去维护旧链。这条链就自然而然地会停止运作,因为这里的币也已经没有价值了。) u. z  o: J7 o  x; c$ N
' w, w9 g/ ~7 d4 B/ y
然而,如果硬分叉存在争议(也就是说,有人反对其中包含的改进),那么两条链都很有可能继续存在。就像ETC和ETH以及BCH和BTC一样。+ S; v$ U* i9 }$ F+ a

; c1 h' t4 z* e5 {2 f8 c什么是君士坦丁堡?
. f0 R6 ~# d' h/ z* v8 Z2 _2 ?9 E/ S, N- E, J3 c4 x* i4 e
君士坦丁堡是以太坊网络本次升级的名称。本次升级不存在争议,网络中每个人都同意以太坊区块链走上一条新的道路。+ i* ]2 W; G7 a% O& \1 J" S9 V& u: E
; R, F0 y6 i; F9 z# [4 r) ^+ n3 z
因此,就像此前的几次升级(例如2016年的家园升级和2017年的拜占庭升级)一样,本次硬分叉虽然也会分出两条链,但旧链几乎会立刻消失。同样的,普通用户也不会察觉出任何变化。
/ N1 `3 ~. ^7 I& O7 ^- Q* p/ E4 k4 z" x, R+ n% l
这个新的以太坊区块链包含几个改进该网络的EIP(以太坊改进协议)。: L1 d- a2 ]; B, q2 D3 D
* N5 S) E3 `4 b! l) J9 e
我需要做什么吗?转移ETH?
# c" D7 k( [* b' j
: j2 m/ J! k+ b. \什么都不用做。虽然你的ETH会同时在新链和旧链存在,但所有交易所(Coinbase、Kraken、ShapeShift)、服务商(MyCrypto、MetaMask、Trust Wallet)以及节点供应商(Infura、Etherscan、Quiknode)都会升级他们的节点,因此对普通用户来说不会有任何影响。( }" C# {7 G$ C+ R, ~

8 E5 G6 l! d: B**4 e$ u& v( y, i
/ C6 e  Q, Z8 Y, K/ b0 v
如果你在运行节点(例如用自己的电脑使用Infura或者运行Geth及Parity),你就需要升级到最新版的软件。**
$ J/ J% Z2 `! w/ k8 M
: Y; E" D6 W" h; \! }本次升级包含哪些EIP?
% K: Y6 n/ d5 G: @
0 O$ M0 w/ w& T0 w" R! |EIP 145:以太坊虚拟机(EVM)的位转移指令  F7 w+ F( t  E, {0 p/ S- q

  R9 b0 b) U* Q$ Q提供与其他算术运算同等成本的本机位转移。  Q7 k" _) v4 e- @& ?! M
/ t/ ], y) A3 X: V5 _* K' D- @' k
EVM缺乏位转移运算,但支持其他逻辑和算术运算。转移运算可以通过算术运算进行部署,但所需成本更高,需要耗费更多的处理时间。部署SHL和SHR的运算成本分别是35 gas,而本文建议的操作只需要3 gas。
2 i/ v& `6 ^+ G" b" o. i) ]) G
6 B( r( B4 M5 c, B/ f- C- 简单来说就是给协议添加更多功能让链上活动变得更加方便,成本更低。, ~" n( k/ \# Z7 F8 L; j9 w, o3 p3 \9 {

7 A$ Q) }& L9 _8 sEIP 1014:Skinny CREATE23 p$ o3 X9 s# E7 }0 X( r
6 s1 R8 D* \" k" e
为0xf5添加新的操作码,需要4个栈参数:endowment、memory_start、memory_length、salt。除了使用' `$ S. \# V# j5 a( o  X

5 Q: \+ b( r' e  bkeccak256( 0xff ++ address ++ salt ++ keccak256(init_code)))[12:]4 V. r1 I: u- I9 @& V8 p

7 W7 q+ W7 H8 _9 I* r: {9 D来取代常规的sender-and-nonce-hash作为初始化合约地址之外,其他CREATE操作都是不变的。) M9 \& T; @" }, {

) d) V9 Q- B; R允许与链上不存在的地址进行交互,前提是这些地址包含由特定初始化代码创建的代码。
8 M% |8 h" A# Q# I/ ^/ m5 a" l; E/ q9 r
对于涉及合约交互的状态通道应用非常重要。
, [) N1 q3 B$ A
9 C! E" D! ]4 x简单来说就是允许你与因为状态通道而尚未创建的地址进行交互。
* Y+ s# \5 C7 g$ D+ W" ^
- R2 x& o- j9 C" l% ?1 jEIP 1052:EXTCODEHASH操作码
- r4 C7 I. K- q8 N0 T9 _# J* z) B
8 ^9 k0 V7 H# F) t% X; }6 t+ R7 X$ `4 I这一EIP介绍了一种新的操作码,回归到了合约代码的keccak256 hash。: ^( S6 T/ I9 L. g, s7 L. ~
* s% f8 j  u3 q/ ?+ Y
很多合约需要对合约的字节码进行检查,但不一定需要字节码。举个例子,某合约会检查另一合约的字节码是否属于可部署范围之内,或者会分析代码,将一些带有符合要求字节码的合约加入白名单。$ }7 h; P; D! k
3 O0 `2 z% A6 z0 m
目前,合约已经可以通过EXTCODECOPY操作码来实现这一点,但所需成本较高,特别是大型合约。因此,我们提出了一个全新的操作码EXTCODEHASH,回归合约字节码的keccak256 hash。: U1 z& C+ ]+ j6 [1 b
4 D5 g4 {- @1 v
- 简单来说链上活动成本(所需gas越来越少)将会降低。* U/ R( a9 V+ s1 p, W6 T) t

3 Q  k; V8 g/ R* ]' n( N7 LEIP 1283:不需要dirty maps(额外的存储结构)的SSTORE gas计量
  c8 E+ |( l! k1 {% H4 L! S" }( f! m1 m  p
这一EIP提出了SSTORE操作码的gas净值计量改进,开拓了合约存储的新应用,在出现不匹配情况时减少了过度的gas成本。
7 \+ o. r: i2 i3 J7 Z0 A  P6 v$ Q2 X1 Z2 b/ W
简单来说就是让链上活动成本(所需gas越来越少)变得更低,尤其是针对现阶段成本非常高的活动。
# y' f" m% }6 o% @
) X& z+ R% @& B' r9 ?) B7 d+ R  L1 bEIP 1234:君士坦丁堡难度炸弹延迟和区块奖励调整! q1 n. I' s. K* s  {% g4 `
$ v) H# E0 e! m6 l' R$ c
由于难度炸弹(也就是“冰河时代”)的推进,平均的出块时间增加了。这一EIP建议延迟难度炸弹1年,减少区块奖励。4 w1 ]; `, e+ `2 D- o- x- z3 O

+ K& S0 G  a! H+ D+ i, {4 k; L: Q简单来说就是在PoS准备就绪之前确保不要“冻结”区块链。
6 ]2 S( \' r' w( u/ e; d+ k) N$ C: j6 H" n% B) w
本次分叉是否会影响交易或确认时间?
' c6 p& L7 T) T9 a2 g' i, [  ^' a2 H9 C! e
出块时间应在15秒左右。在将来完全切换到PoS之后,出块时间会发生变化,但目前依然采用PoW,可能会有一些延迟,交易速度太快可能会导致部分交易不可靠。以太坊目前通过叔块(uncle block)来解决这一问题。  F: b8 T; _5 R
9 |( B! c" I6 q' ?, q
本次分叉是否会影响交易费用?
3 j) |, t5 i0 q) k; i( m
% U: `) d9 O# O费用取决于交易数量。有些EIP会优化智能合约交互,因此,智能合约交易成本会减少。然而,我们不知道将来是否又会有一个像加密猫(CryptoKitties)这样的Dapp出现,导致网络拥堵和费用上涨。" p2 v0 r5 [7 p
4 L8 _( w2 U; X3 U3 j, {" `3 w
本次分叉是否会影响每秒处理的交易数量?
8 q( C: P' l) Q
7 O* D) b# s8 r' r4 n平均交易处理数量不变。不过,随着EIP 1024对状态通道的优化,我们应该能看到一些二层方案的问世(例如OmiseGo、Loom Network、Raiden等)。
8 B  y- e( w: k; G- A9 \8 P0 S" T! b. F9 ]4 A
本次升级是否会切换到PoS?
) L& Y, B$ Z7 d+ K# S+ e' b$ V( g7 R+ }% b& `
不会,目前仍在进行测试。EIP 1234之所以提出减少区块奖励是为了延迟难度炸弹,最终我们将看到beacon链和sharding链。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

虹桥大宝剑 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    26