Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文
以太坊君士坦丁堡(Constantinople)分叉即将开始,很多人都对本次分叉感到好奇,不确定是否需要提前做好准备。; q$ y) M+ \8 [. ]8 U
/ }$ n# q6 l: n$ Z; y! K* L
简单来说:如果你只是ETH的持有者,本次升级你不需要做任何准备。# B' A' n3 [6 c$ Y1 Y

! F& u% r5 Z9 L# \, M/ ?7 n3 A什么是分叉?) o# `% [" d4 ~2 ]
$ W, S# Z  Z" i% j2 B$ E' k
分叉就是网络升级,就像你的电脑和app需要升级一样,分叉也是为了网络变得更加安全,具备更多新的功能。9 o3 X% ~) O9 g0 ~

% \) q# L! M+ _* I4 G8 q你是否曾经在更新之后打开一个Word文档或其他文件的时候感觉有点不稳定?或许有些注释丢失了,又或者看起来怪怪的?硬分叉也是类似。如果人们在运行旧版软件,而新版软件试图与其进行交互时,有些内容就可能丢失,或者变得不稳定。+ I& r, M# o: ]& x/ [# O4 ?( P0 q

' K: D' H, D. `这是因为区块链是去中心化的,同时运行着大量的计算机。用户之间不需要相互发送Word文档,每个人都可以同时获取最新的文档(即区块链历史)。
% i! Y" g# D/ `' ]  _9 C
, ^+ Y, A" |  h( c因此,为了让一切变得更加稳定,运行区块链软件(即节点)的每个人都必须升级。这样每个人都可以在遵守同一套规则的前提下获得最新的功能。) \8 i6 S$ e) G
2 h& A4 ^4 G3 L1 l
分叉为什么叫分叉?
4 d3 a: a( p! t; ]; k- M9 L+ X6 H: w$ d2 ?
分叉之所以被称为分叉是因为其与分岔路口(英文中都被称为fork)类似——一条区块链被分成了两条独立的链。其中一条路(或者说一条链)遵循旧的规则,而另一条链则采用了新的规则。
4 m7 a1 @9 E- g/ I: i7 H+ R- |: k$ B4 _
有些硬分叉不存在争议,因此大家都会弃用旧版软件,没有人会去维护旧链。这条链就自然而然地会停止运作,因为这里的币也已经没有价值了。
  P  F2 P7 `2 y/ H
! c( V! r% i+ O7 W: W) L然而,如果硬分叉存在争议(也就是说,有人反对其中包含的改进),那么两条链都很有可能继续存在。就像ETC和ETH以及BCH和BTC一样。- [, P) h  O2 }. ?% _/ e5 r# t

+ ~) R# i9 M1 M/ ~7 o什么是君士坦丁堡?7 g. B  _0 q$ c7 t/ L

( ?% m! S8 D( u0 ~( i! E君士坦丁堡是以太坊网络本次升级的名称。本次升级不存在争议,网络中每个人都同意以太坊区块链走上一条新的道路。) D" |2 S7 M  E9 J

5 O* Z9 g  N6 q! _5 \% S因此,就像此前的几次升级(例如2016年的家园升级和2017年的拜占庭升级)一样,本次硬分叉虽然也会分出两条链,但旧链几乎会立刻消失。同样的,普通用户也不会察觉出任何变化。
  W% O  r% H( r8 u
3 K& N  p( t4 O& w: _. d这个新的以太坊区块链包含几个改进该网络的EIP(以太坊改进协议)。
% M4 `7 T; \, s; e6 ~1 l3 J0 a. [+ [( Y8 {
我需要做什么吗?转移ETH?0 K( f* D/ r2 J5 }3 a: i6 I
. m+ A" H% }  A+ Z
什么都不用做。虽然你的ETH会同时在新链和旧链存在,但所有交易所(Coinbase、Kraken、ShapeShift)、服务商(MyCrypto、MetaMask、Trust Wallet)以及节点供应商(Infura、Etherscan、Quiknode)都会升级他们的节点,因此对普通用户来说不会有任何影响。' t2 p# ]& S2 }
! y/ w1 k$ d" R8 f! ~3 g& v
**
% n, |6 e; [- q, j
1 L6 w  R/ z* q9 L8 h如果你在运行节点(例如用自己的电脑使用Infura或者运行Geth及Parity),你就需要升级到最新版的软件。**
5 I5 t# @6 F6 G, N5 F* I2 S
$ g1 h+ a9 H2 ]3 ]/ k2 i; B本次升级包含哪些EIP?
5 s, o9 w7 r* w' t) T2 \
  F# E/ e3 i( v4 D/ l3 p- ~EIP 145:以太坊虚拟机(EVM)的位转移指令
0 ~9 e5 Y" t0 Z9 V' i3 d
. _+ Z6 a) X+ C$ [提供与其他算术运算同等成本的本机位转移。$ i5 \8 M$ T! S9 r4 G: x2 @
& k( ?% R2 I, E5 R$ O% Y/ R
EVM缺乏位转移运算,但支持其他逻辑和算术运算。转移运算可以通过算术运算进行部署,但所需成本更高,需要耗费更多的处理时间。部署SHL和SHR的运算成本分别是35 gas,而本文建议的操作只需要3 gas。/ {8 ?8 t3 Z8 ]' r) S8 y" r

4 B9 V! q* D+ G0 u# b! Y! J- 简单来说就是给协议添加更多功能让链上活动变得更加方便,成本更低。, E6 G. [' ~' Z. {6 F
9 ]8 p" i& W% A) K
EIP 1014:Skinny CREATE2
8 A: G) i1 s8 W; T0 o: O  L& d, t+ Z* \9 u! X
为0xf5添加新的操作码,需要4个栈参数:endowment、memory_start、memory_length、salt。除了使用
" D3 D# b7 v# p. e  B# ^. T) W9 t8 {2 ?, U2 m2 @
keccak256( 0xff ++ address ++ salt ++ keccak256(init_code)))[12:]7 x9 h& ?: x- u$ x/ S3 c
. l: |. Y* p/ T) j* \* k  [$ k
来取代常规的sender-and-nonce-hash作为初始化合约地址之外,其他CREATE操作都是不变的。
  x$ f, B" U" J4 r- k" K( g5 K2 b4 ]: k8 I3 L5 {7 k! e2 Z6 l
允许与链上不存在的地址进行交互,前提是这些地址包含由特定初始化代码创建的代码。
2 M5 i* m' J/ W+ U/ |+ h% h6 z# p% }! [8 ?5 M4 j
对于涉及合约交互的状态通道应用非常重要。
/ q; x! {7 J9 ?6 _  D! t' n/ v6 u! b* B3 v
简单来说就是允许你与因为状态通道而尚未创建的地址进行交互。! X2 J/ N% q4 _! `9 T& c% K
, ]: r* e* b' v+ J
EIP 1052:EXTCODEHASH操作码
( l9 {$ i9 Z+ ?
+ Z4 _5 d" E" W; T' u/ S这一EIP介绍了一种新的操作码,回归到了合约代码的keccak256 hash。( S" c  P( B' L4 J

) j  Q$ ~6 m" l, O, b& K很多合约需要对合约的字节码进行检查,但不一定需要字节码。举个例子,某合约会检查另一合约的字节码是否属于可部署范围之内,或者会分析代码,将一些带有符合要求字节码的合约加入白名单。
$ r: p' ^4 k' ^, B3 R% X( B
# Z  ?1 u1 \0 I( n0 Z5 G目前,合约已经可以通过EXTCODECOPY操作码来实现这一点,但所需成本较高,特别是大型合约。因此,我们提出了一个全新的操作码EXTCODEHASH,回归合约字节码的keccak256 hash。
9 l! d. i/ ~4 n4 Y1 T
, s( x1 l/ J- n5 i  w* h" I- 简单来说链上活动成本(所需gas越来越少)将会降低。3 u+ S, w9 p; W# c' [
+ q; ~1 K5 S! d5 x
EIP 1283:不需要dirty maps(额外的存储结构)的SSTORE gas计量  }5 p! l; y8 j

0 q4 o4 m6 u1 D, M7 _* n这一EIP提出了SSTORE操作码的gas净值计量改进,开拓了合约存储的新应用,在出现不匹配情况时减少了过度的gas成本。
4 ^6 u. K( m  h5 S3 |* n8 b6 X) r
简单来说就是让链上活动成本(所需gas越来越少)变得更低,尤其是针对现阶段成本非常高的活动。5 ]2 N6 H& o+ J: m4 f- B8 }) E. q5 Y
" v& {( d3 I. ^! I! H
EIP 1234:君士坦丁堡难度炸弹延迟和区块奖励调整
) o- ~( p( a+ X/ D/ @
* r( D8 s9 F1 b0 `3 K6 P由于难度炸弹(也就是“冰河时代”)的推进,平均的出块时间增加了。这一EIP建议延迟难度炸弹1年,减少区块奖励。
/ Y5 X+ W3 `! X8 ~5 V; N/ @' Z1 w7 i& k; V9 Q
简单来说就是在PoS准备就绪之前确保不要“冻结”区块链。
$ Y5 `9 B6 G% z8 B
! W) Q# D8 H- z# s) c: Y7 V本次分叉是否会影响交易或确认时间?/ B( j4 J  j8 g9 d2 n5 _

% Q; T& N. I" S4 g9 P出块时间应在15秒左右。在将来完全切换到PoS之后,出块时间会发生变化,但目前依然采用PoW,可能会有一些延迟,交易速度太快可能会导致部分交易不可靠。以太坊目前通过叔块(uncle block)来解决这一问题。3 P, \1 G$ z. Q2 u, V
( L- X0 i! a: Z. \. [& M
本次分叉是否会影响交易费用?
, b! Y1 I1 b+ f1 X0 m  |* B5 b3 \1 n
1 _# v( `7 M: q费用取决于交易数量。有些EIP会优化智能合约交互,因此,智能合约交易成本会减少。然而,我们不知道将来是否又会有一个像加密猫(CryptoKitties)这样的Dapp出现,导致网络拥堵和费用上涨。1 }, d) l% f5 x

5 q( C6 M1 Q, S: k' `: n6 j9 g: S3 l本次分叉是否会影响每秒处理的交易数量?1 o* O8 c9 v" l( }; d! u1 g, Q: f1 J

, l9 g! P& r7 l6 B3 q2 v平均交易处理数量不变。不过,随着EIP 1024对状态通道的优化,我们应该能看到一些二层方案的问世(例如OmiseGo、Loom Network、Raiden等)。
* c6 j. O3 D: i# p$ E4 C
" }3 y. G- d+ L! {本次升级是否会切换到PoS?: h0 K! C9 v+ E; |1 w6 p
  `3 h$ ?' {& T/ g: ?
不会,目前仍在进行测试。EIP 1234之所以提出减少区块奖励是为了延迟难度炸弹,最终我们将看到beacon链和sharding链。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

虹桥大宝剑 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    26