Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文
以太坊君士坦丁堡(Constantinople)分叉即将开始,很多人都对本次分叉感到好奇,不确定是否需要提前做好准备。
+ _9 H* l4 u  \+ {; o" G9 `
0 W  F* @. d* O& V简单来说:如果你只是ETH的持有者,本次升级你不需要做任何准备。
0 ]! ^4 m) [. {  f" ?- r/ T% Z) g/ g( d% |9 D
什么是分叉?
& M' l) }7 c# T1 h7 g3 p7 g- k" g# i, \/ T3 H
分叉就是网络升级,就像你的电脑和app需要升级一样,分叉也是为了网络变得更加安全,具备更多新的功能。
7 p3 j, r( _* A) P6 d7 h! s5 c7 K: z# m9 W3 h2 x0 z% L
你是否曾经在更新之后打开一个Word文档或其他文件的时候感觉有点不稳定?或许有些注释丢失了,又或者看起来怪怪的?硬分叉也是类似。如果人们在运行旧版软件,而新版软件试图与其进行交互时,有些内容就可能丢失,或者变得不稳定。! u! ?" P$ }! x+ K
; g( {6 t2 M7 o8 |1 B( u
这是因为区块链是去中心化的,同时运行着大量的计算机。用户之间不需要相互发送Word文档,每个人都可以同时获取最新的文档(即区块链历史)。3 c0 A* s; k/ ~9 q

$ x: F. \( b: [  Q1 A. j因此,为了让一切变得更加稳定,运行区块链软件(即节点)的每个人都必须升级。这样每个人都可以在遵守同一套规则的前提下获得最新的功能。
" ?+ ?" g- l; y* S1 l5 S2 q2 {3 n) ]" p/ X2 e6 |8 L9 m. ?
分叉为什么叫分叉?
4 O" P% o8 X  {
# l& V$ J& H) r! z6 v/ o7 v% h分叉之所以被称为分叉是因为其与分岔路口(英文中都被称为fork)类似——一条区块链被分成了两条独立的链。其中一条路(或者说一条链)遵循旧的规则,而另一条链则采用了新的规则。6 o' s" @- `1 H$ o7 G$ D. K. n7 v
. l( l+ F* ?7 }: K9 p" J
有些硬分叉不存在争议,因此大家都会弃用旧版软件,没有人会去维护旧链。这条链就自然而然地会停止运作,因为这里的币也已经没有价值了。
0 d( q+ o- F( x( C; q" @4 x
3 M+ z  W! E" q, h8 }然而,如果硬分叉存在争议(也就是说,有人反对其中包含的改进),那么两条链都很有可能继续存在。就像ETC和ETH以及BCH和BTC一样。; f& Y) k2 Y% Z' u) z
8 e- B: z! l. [* L( |
什么是君士坦丁堡?( {3 K' N* Z5 l& L3 }) l

7 b/ {6 r7 W/ }君士坦丁堡是以太坊网络本次升级的名称。本次升级不存在争议,网络中每个人都同意以太坊区块链走上一条新的道路。: u! d# E/ T& n+ q  I5 O

( i0 J* p2 J. A+ \  ?  L因此,就像此前的几次升级(例如2016年的家园升级和2017年的拜占庭升级)一样,本次硬分叉虽然也会分出两条链,但旧链几乎会立刻消失。同样的,普通用户也不会察觉出任何变化。6 n: C* [% T& c

/ w: K$ e1 o/ c这个新的以太坊区块链包含几个改进该网络的EIP(以太坊改进协议)。1 W* ?" R, }$ U

7 M" V0 k) L: K7 P' \- w我需要做什么吗?转移ETH?
( A5 {  D" o6 a/ Q0 z8 e3 ~
8 e2 n2 A0 s; N* A4 O1 u. p4 M什么都不用做。虽然你的ETH会同时在新链和旧链存在,但所有交易所(Coinbase、Kraken、ShapeShift)、服务商(MyCrypto、MetaMask、Trust Wallet)以及节点供应商(Infura、Etherscan、Quiknode)都会升级他们的节点,因此对普通用户来说不会有任何影响。
- h5 Y  ~' R" u5 P5 u
; T' h8 u/ o& ?/ X' p**
4 T" m$ p9 l) v% N6 ?+ y0 h7 e5 s! L7 [6 a# u2 \
如果你在运行节点(例如用自己的电脑使用Infura或者运行Geth及Parity),你就需要升级到最新版的软件。**9 ?1 W" T/ L. g' P

  o6 o! H$ s$ C( J$ O4 W2 {本次升级包含哪些EIP?
& w3 j/ l; R3 R+ B9 X: a2 @% s/ X  _6 F5 L% A
EIP 145:以太坊虚拟机(EVM)的位转移指令
) g( _' d. q$ Q" _1 Q: N2 O& [8 J# ~& |6 Z5 ]
提供与其他算术运算同等成本的本机位转移。
# z  k1 d# s4 P4 B9 X% z6 c. M: q+ q9 ?2 D
EVM缺乏位转移运算,但支持其他逻辑和算术运算。转移运算可以通过算术运算进行部署,但所需成本更高,需要耗费更多的处理时间。部署SHL和SHR的运算成本分别是35 gas,而本文建议的操作只需要3 gas。
' L& p4 i' v; A* Y& y4 P$ G% H. [
$ ?8 k" {; \; N2 O- 简单来说就是给协议添加更多功能让链上活动变得更加方便,成本更低。" E$ P) U( s9 u" c* l+ B

# k7 J+ C# g4 M' LEIP 1014:Skinny CREATE2
9 Q' h+ K& n9 d
: M) v1 X: v. D- b% A3 }为0xf5添加新的操作码,需要4个栈参数:endowment、memory_start、memory_length、salt。除了使用1 N9 M) }" x: r# ~9 X! `

( q5 L. H: H9 }4 V! ]5 O7 q& @keccak256( 0xff ++ address ++ salt ++ keccak256(init_code)))[12:]3 Y2 X5 S+ J5 ^. r+ T# A$ d) |. g9 n0 ~
' M) p/ V, x9 V/ F1 J
来取代常规的sender-and-nonce-hash作为初始化合约地址之外,其他CREATE操作都是不变的。- N: V9 V# @4 O  @

0 G4 U  l& Y0 l, a; R% o" F允许与链上不存在的地址进行交互,前提是这些地址包含由特定初始化代码创建的代码。
. |5 d, v" [8 F5 b9 [: n# @7 @9 o* ~7 e) E" Q3 A
对于涉及合约交互的状态通道应用非常重要。2 t1 d" v5 K5 N! S) I4 M( G

% f+ z" A! E6 j+ Z3 B简单来说就是允许你与因为状态通道而尚未创建的地址进行交互。
. z9 o2 C  n/ K4 U) O  y  H+ M1 p) o4 b. z. f9 b7 Q
EIP 1052:EXTCODEHASH操作码
+ o$ K+ c8 W+ {7 _8 P, v3 d% h% r
这一EIP介绍了一种新的操作码,回归到了合约代码的keccak256 hash。- l' s; c) }5 U$ A" ]

: x2 O* ~2 L- L$ V  ~: k5 }很多合约需要对合约的字节码进行检查,但不一定需要字节码。举个例子,某合约会检查另一合约的字节码是否属于可部署范围之内,或者会分析代码,将一些带有符合要求字节码的合约加入白名单。
" [. W2 O. d8 }, ^/ w6 U" H# y: R3 ]: k
目前,合约已经可以通过EXTCODECOPY操作码来实现这一点,但所需成本较高,特别是大型合约。因此,我们提出了一个全新的操作码EXTCODEHASH,回归合约字节码的keccak256 hash。
5 d. D3 ?8 `; p. ~
: O) p6 }' q% [- 简单来说链上活动成本(所需gas越来越少)将会降低。. l  M4 {7 h% D
6 n: Y+ _2 _2 _1 N5 g
EIP 1283:不需要dirty maps(额外的存储结构)的SSTORE gas计量
  s  u1 ]+ i' ^2 _: e7 }: U0 W% e) r( `" R* d
这一EIP提出了SSTORE操作码的gas净值计量改进,开拓了合约存储的新应用,在出现不匹配情况时减少了过度的gas成本。/ c: h% u. O% @# D1 N5 [2 @( B: D8 {
0 e: ]6 a3 x* G% }" ]" N
简单来说就是让链上活动成本(所需gas越来越少)变得更低,尤其是针对现阶段成本非常高的活动。& Q0 ~- f9 H! T8 ~4 a

0 x+ _& U0 e, X0 t7 B5 G/ }: I9 REIP 1234:君士坦丁堡难度炸弹延迟和区块奖励调整
5 K* l1 P2 L6 c! H, V
9 b6 y$ ], Z% P# A9 d- Y由于难度炸弹(也就是“冰河时代”)的推进,平均的出块时间增加了。这一EIP建议延迟难度炸弹1年,减少区块奖励。+ z% {* o- @, O1 K. Z: i/ l( R

. V4 N4 h0 A) L" H# U8 D1 A简单来说就是在PoS准备就绪之前确保不要“冻结”区块链。/ i5 l4 ]' A, V
; s- N/ C0 a! c; E# q& W
本次分叉是否会影响交易或确认时间?
, g  {* i4 u! L# o3 e# B
0 \4 B  v1 j' \) P+ l4 j9 D) x/ I& M出块时间应在15秒左右。在将来完全切换到PoS之后,出块时间会发生变化,但目前依然采用PoW,可能会有一些延迟,交易速度太快可能会导致部分交易不可靠。以太坊目前通过叔块(uncle block)来解决这一问题。
- Q: l+ t  j) H4 w+ R( e2 s
1 F( _" U$ V5 T本次分叉是否会影响交易费用?. k. L, [. S: }1 O7 r6 c
/ [) A5 L5 x6 M6 }
费用取决于交易数量。有些EIP会优化智能合约交互,因此,智能合约交易成本会减少。然而,我们不知道将来是否又会有一个像加密猫(CryptoKitties)这样的Dapp出现,导致网络拥堵和费用上涨。
& p5 V  R; U- b% \7 N2 b7 E, }9 @9 G9 t/ O% Y5 g0 q; V- L6 ^5 X
本次分叉是否会影响每秒处理的交易数量?% c9 Q/ I  N3 O/ {7 t, B& E  P
) R2 B. O: Q0 V8 d+ K1 ]$ ~
平均交易处理数量不变。不过,随着EIP 1024对状态通道的优化,我们应该能看到一些二层方案的问世(例如OmiseGo、Loom Network、Raiden等)。% Q8 s8 N$ m3 b/ \; V4 Z* K

0 `' I, N/ K# e: u5 P: z本次升级是否会切换到PoS?8 g+ p- H1 P2 z2 @

, l0 O. w9 y+ z: [- t$ i# ~不会,目前仍在进行测试。EIP 1234之所以提出减少区块奖励是为了延迟难度炸弹,最终我们将看到beacon链和sharding链。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

虹桥大宝剑 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    26