Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文
以太坊君士坦丁堡(Constantinople)分叉即将开始,很多人都对本次分叉感到好奇,不确定是否需要提前做好准备。+ Y, ], }# j% H* O* X3 E; S

7 S0 ]+ f$ B$ ?1 Y" R& f$ U简单来说:如果你只是ETH的持有者,本次升级你不需要做任何准备。0 z2 e* u9 m  a' g+ Q; }
  G- ^9 g* K. e( d4 r
什么是分叉?* L, @2 R0 E0 I: ]- S
- J! a, @$ h: b0 |* p- k0 I
分叉就是网络升级,就像你的电脑和app需要升级一样,分叉也是为了网络变得更加安全,具备更多新的功能。
5 ^% Y5 l/ O) ^5 G
1 I, m  W! {6 I* v# C1 {你是否曾经在更新之后打开一个Word文档或其他文件的时候感觉有点不稳定?或许有些注释丢失了,又或者看起来怪怪的?硬分叉也是类似。如果人们在运行旧版软件,而新版软件试图与其进行交互时,有些内容就可能丢失,或者变得不稳定。& g( z9 Z( [. s2 H" G. c, f7 L0 u

3 H) f3 P6 h$ l  {" Y! J) U这是因为区块链是去中心化的,同时运行着大量的计算机。用户之间不需要相互发送Word文档,每个人都可以同时获取最新的文档(即区块链历史)。% u; x( m6 t4 e& \

( H6 u' p9 n- S& ~# _$ P因此,为了让一切变得更加稳定,运行区块链软件(即节点)的每个人都必须升级。这样每个人都可以在遵守同一套规则的前提下获得最新的功能。
+ c( T7 @1 t5 f9 U9 Y- f
" O% v9 n  |6 K4 {分叉为什么叫分叉?
: Z2 {: @, H/ f* F# w5 ]# R5 ^* C& o0 S8 ]
分叉之所以被称为分叉是因为其与分岔路口(英文中都被称为fork)类似——一条区块链被分成了两条独立的链。其中一条路(或者说一条链)遵循旧的规则,而另一条链则采用了新的规则。9 z& s! P$ v4 e1 ?

- X. l4 {5 Q( {3 b! q有些硬分叉不存在争议,因此大家都会弃用旧版软件,没有人会去维护旧链。这条链就自然而然地会停止运作,因为这里的币也已经没有价值了。
" B% J; R0 j$ r! g9 |5 g7 `+ ]' U/ Z5 T  @/ A3 @; D
然而,如果硬分叉存在争议(也就是说,有人反对其中包含的改进),那么两条链都很有可能继续存在。就像ETC和ETH以及BCH和BTC一样。# T+ C! I1 [% _) X

/ g5 W5 v3 ^8 v$ K什么是君士坦丁堡?
9 k/ v. R7 U" k2 v2 L) J8 O* [7 Y- B+ t/ C$ R& v3 @
君士坦丁堡是以太坊网络本次升级的名称。本次升级不存在争议,网络中每个人都同意以太坊区块链走上一条新的道路。3 N7 a8 J* y# _$ H

/ Y5 q" g+ M" a7 A) M' }因此,就像此前的几次升级(例如2016年的家园升级和2017年的拜占庭升级)一样,本次硬分叉虽然也会分出两条链,但旧链几乎会立刻消失。同样的,普通用户也不会察觉出任何变化。
+ A1 }, F# b9 \" e$ o% d* R) |9 r* ^# v6 l
这个新的以太坊区块链包含几个改进该网络的EIP(以太坊改进协议)。* U' K( T' R: t6 k, j; [

& E9 q* S5 I4 A% W6 s# i$ a/ `7 j我需要做什么吗?转移ETH?% r2 o2 H; c& R8 j
3 @# B% `# r7 M
什么都不用做。虽然你的ETH会同时在新链和旧链存在,但所有交易所(Coinbase、Kraken、ShapeShift)、服务商(MyCrypto、MetaMask、Trust Wallet)以及节点供应商(Infura、Etherscan、Quiknode)都会升级他们的节点,因此对普通用户来说不会有任何影响。
: Y! M* z0 H; U3 ^5 r, y6 X1 I0 B/ v* b8 k" t  C
*** f; h$ F- I7 i+ L  C. b
9 k7 S5 M1 o! A- r
如果你在运行节点(例如用自己的电脑使用Infura或者运行Geth及Parity),你就需要升级到最新版的软件。**
2 ~) [0 v" t) m0 L/ ?/ S0 E+ x4 w- C  m
本次升级包含哪些EIP?
( _6 b+ h, i- q7 O; @. E7 N  I* E  D$ s8 D
EIP 145:以太坊虚拟机(EVM)的位转移指令
: z( F( k# m! Y. x* _: `
. o  g$ n% r; H& w$ K2 L" Q9 t提供与其他算术运算同等成本的本机位转移。
  h' y1 j$ T. i# {' T& G5 h' n2 Q# v  M/ a7 ^' n
EVM缺乏位转移运算,但支持其他逻辑和算术运算。转移运算可以通过算术运算进行部署,但所需成本更高,需要耗费更多的处理时间。部署SHL和SHR的运算成本分别是35 gas,而本文建议的操作只需要3 gas。6 t6 ^  z8 f/ T) z& O' U% r
1 N. P2 u4 l6 i  W
- 简单来说就是给协议添加更多功能让链上活动变得更加方便,成本更低。) G; q9 S% N2 v, s" M
  Z8 o+ n1 O; l3 V
EIP 1014:Skinny CREATE2) O( Q) y% ?: d. s# ~" d$ Z% E
) o5 j# C0 m/ t0 F
为0xf5添加新的操作码,需要4个栈参数:endowment、memory_start、memory_length、salt。除了使用7 P# g4 E# B0 J. \) K, G* \+ a' q
- r  U- E3 ~7 _! R5 v
keccak256( 0xff ++ address ++ salt ++ keccak256(init_code)))[12:]
; k6 f8 {! ?2 I+ @
% S0 j2 j4 E! e$ e% N来取代常规的sender-and-nonce-hash作为初始化合约地址之外,其他CREATE操作都是不变的。
7 t" v  \) W( d8 D% s+ |; J0 A% |; b6 N. H, a6 t$ G" k
允许与链上不存在的地址进行交互,前提是这些地址包含由特定初始化代码创建的代码。
/ B" u- ?+ ^: S" [$ I! E  u( a. A1 ?  p% a; L; X6 f
对于涉及合约交互的状态通道应用非常重要。: \2 ?3 x8 G( B+ c4 h  T

4 u) g5 k& E6 U简单来说就是允许你与因为状态通道而尚未创建的地址进行交互。* b0 j! |" U' G7 s, {4 H' B

( {/ X. G* h6 ]+ Z+ U( cEIP 1052:EXTCODEHASH操作码
; n- N( z" C4 U; d* b4 z2 g+ y, A. W' p
这一EIP介绍了一种新的操作码,回归到了合约代码的keccak256 hash。
9 I# y6 f  S9 u) P  t) b8 ]; C( m2 O; K, i$ p+ Z, T1 M
很多合约需要对合约的字节码进行检查,但不一定需要字节码。举个例子,某合约会检查另一合约的字节码是否属于可部署范围之内,或者会分析代码,将一些带有符合要求字节码的合约加入白名单。- G6 Y' f: |, E- ~) g3 T0 b
# R3 x! `/ v# ]2 ~6 L( Q
目前,合约已经可以通过EXTCODECOPY操作码来实现这一点,但所需成本较高,特别是大型合约。因此,我们提出了一个全新的操作码EXTCODEHASH,回归合约字节码的keccak256 hash。7 f/ G& Y$ P+ k4 H

* c. W/ h5 v- {& R2 J& ?- 简单来说链上活动成本(所需gas越来越少)将会降低。6 I; H/ n! }: T0 S

& V' l( o9 W* e% {5 _EIP 1283:不需要dirty maps(额外的存储结构)的SSTORE gas计量
1 V3 p: t* R0 r7 f2 T$ V( Z
0 H8 A+ B, a  ^6 q# K+ H7 {这一EIP提出了SSTORE操作码的gas净值计量改进,开拓了合约存储的新应用,在出现不匹配情况时减少了过度的gas成本。7 ~' w* s) ^/ H! k  [3 T

! m6 c, G; M, p! T4 Y  ]2 F- }7 E6 d简单来说就是让链上活动成本(所需gas越来越少)变得更低,尤其是针对现阶段成本非常高的活动。
/ q# |. h( t+ _8 F6 b+ N  S5 ?" @) r/ j" k7 X
EIP 1234:君士坦丁堡难度炸弹延迟和区块奖励调整
  P# d) N5 ]% s3 h) k" N# E. J0 w4 A/ p# |
由于难度炸弹(也就是“冰河时代”)的推进,平均的出块时间增加了。这一EIP建议延迟难度炸弹1年,减少区块奖励。
" {" [  \4 I$ g9 N" F. u7 ^
8 V) I9 z. k; t: r+ X$ `4 K. c简单来说就是在PoS准备就绪之前确保不要“冻结”区块链。) f5 K! ]7 ~# Y$ X" a) E' J0 C* O
% T8 Q9 [& V$ k
本次分叉是否会影响交易或确认时间?
. I' s4 `- F' }/ T4 F1 L. q8 B4 n  ^; N8 b
出块时间应在15秒左右。在将来完全切换到PoS之后,出块时间会发生变化,但目前依然采用PoW,可能会有一些延迟,交易速度太快可能会导致部分交易不可靠。以太坊目前通过叔块(uncle block)来解决这一问题。
" G4 m% @" T3 O( [+ S9 y+ e8 p6 [+ ?( v7 `; b
本次分叉是否会影响交易费用?
9 z1 T$ m8 N* \! e# {+ j3 c, d2 ]5 f+ ^' h* T: R7 B; C2 J5 z
费用取决于交易数量。有些EIP会优化智能合约交互,因此,智能合约交易成本会减少。然而,我们不知道将来是否又会有一个像加密猫(CryptoKitties)这样的Dapp出现,导致网络拥堵和费用上涨。8 @5 |# \. o0 }) ?
) U( ?' ~! Z) r
本次分叉是否会影响每秒处理的交易数量?
2 Z/ p/ L' s0 H4 p2 N1 ]! t2 _: ]( |- n( X3 {. o/ M/ f
平均交易处理数量不变。不过,随着EIP 1024对状态通道的优化,我们应该能看到一些二层方案的问世(例如OmiseGo、Loom Network、Raiden等)。6 m' N7 d9 i; i

  f+ S0 U# `5 ~3 s5 J) H/ r本次升级是否会切换到PoS?7 {. y" u- j8 P7 ~
0 c, B0 g; u- S
不会,目前仍在进行测试。EIP 1234之所以提出减少区块奖励是为了延迟难度炸弹,最终我们将看到beacon链和sharding链。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

虹桥大宝剑 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    26