Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

ETH 2.0 新的机制,新的生态

博上
134 0 0
  ETH 从出世以来,其15 TPS的速度一直为人们所诟病,根本比不上visa系统的45000 TPS,甚至人家想玩个机器猫,都堵得不行。所以提高速度就被提到了日程,提高速度,又要安全性,就需要从POW共识机制转到POS这种共识机制,然后其基本思想就是搞很多子链,平行处理各种要求,在子链上有很多验证者(validator),就是矿工,换个名字而已,然后有一条链称为Beacon Chain(信标链)控制着各个子链,你往老的ETH网上抵押32个以太坊,就可以充当验证者的角色了。" k4 l7 |. t; p( r
' K/ p, V# _9 s5 x  N7 r" F* k1 T
  作为验证者,就是运行节点,也就是一个以太坊2.0 的客户端软件,目前很多公司在做开发测试,任何人都可以下载客户端并模拟运行 ETH 2.0 的信标链。5 `4 O) w2 ~$ ?
/ j6 b& u( r1 }7 A2 e
  现在各个机构和各人都在抵押ETH,然后运行节点充当验证者,好处当然大大的。/ K1 w- [6 B: h2 V& a+ Y
. N1 p8 U. b6 H" a; N" h- l. M
  出于安全性着想,信标链上需要有52.4个ETH被抵押,才会正式启动,因为当网络上存在多个客户端实现时,单个客户端的一个 bug 对网络带来毁灭性影响的可能性会大大降低。如果在一个客户端中出现了一个bug,该客户端会无法参与共识,但整个网络还能继续运行并敲定交易,因为其他的客户端不太可能会出现同样的bug。换句话说,其他的客户端会维持共识。因此,多客户端并存能提高网络安全。写这篇文章的时候,已经427%的进度了,就是说远远超标了,当然,信标网已经启动了。
4 M0 V( ~8 P& w2 y/ ?4 W2 F/ @1 O' q* M! U; z
  抵押,运行节点当验证人,这个生态圈正在被建立,无论中心化的,还是去中心化的,熙熙攘攘,皆为利来。无论中心化还是去中心化,这块蛋糕基本被分成两块:ETH Staking和Node provider,针对大机构,一般抵押就是实打实的要求最少32 个ETH,而现在也出现了一些开发中产品,针对散户降低要求,有的是0.5ETH,最少的是0.01ETH,有点人性的提供ETH的替代产品,保持流动性,比如aETH,sETH,还有的把抵押的ETH变成借贷USDC,USDC没有问题,但是给机构带来风险,不知道几个机构愿意这么干,具体我还没研究过。
0 m3 x2 G/ D; t. L, I- B+ `% v' w8 C6 b7 r7 p( r  `
  还有一块蛋糕就是运行节点,很多机构提供了一键运行验证人节点,当然天下没有免费的午餐,您得出点血,如果做得去中心化的,签名的钥匙自己保管,通过远程签名授权,让运行节点的运营商去签字验证区块,获取奖励。大多数产品都提供一站式服务,抵押+运营节点。你也可以申请做节点运营商,很多产品只需要抵押一些以太坊就可以了,比如16ETH,你可以获取别人抵押ETH后你挖矿产生的部分收益,但是也要承担风险,如果掉线了,你得一人承担,从你的16ETH里扣除,不公平?当然,谁叫你没钱买足32ETH呢?这个世界就是这么残酷。如果自己资金不足,可以去aws,虚拟主机啥的申请一个,或者你家网络足够稳定不掉线(这个我跟朋友讨论过,还是外面租机器靠谱),然后运行节点,申请做节点运营商。
+ G5 Z$ q, g' A7 v. k! q! d( O0 }) ?# c+ W6 T7 f3 l
  目前已经有了不少产品,但是从界面上也看不出是不是去中心化的,除非你直接登陆币安,火币,看到的产品肯定是中心化的,别的DAPP都大同小异,但是从使用过程中,你可以感受它是不是去中心化的,还是半去中心化的,从下面这个表格来判断。先说说两种钥匙,Validator Key 和 Withdraw Key,前者是节点运营商签字区块用的,后者是抵押者在未来(也许2年后Phase 2做出来,也许永远)取回自己抵押的bETH(按1:1兑换成信标链上的币)和奖励的bETH用的。如果你能自己保管两者,不用把私钥交给产品,那么这就是完全去中心化的;如果Validator Key被人家保管,Withdraw Key 自己保管,那么就是半去中心化的,我觉得这个很好,毕竟,大多数人不会在意怎么运行节点,只要收钱就行;如果两个都被人家保管,那么就是中心化的,这个时候,你就要小心了,毕竟收钱的钥匙在人家手里,万一人家跑了。。。1 A4 M7 M* B) P  ?/ _% I

  Q" h( x# G* h8 P  其实我觉得让别人保管签名钥匙也没有什么大问题,毕竟节点实时运行,要频繁签名验证区块,但是能自己保管也可以,比如Blox,就用了一种远程签名技术,钥匙你自己保管,文件到你那里签个名就行,但是这个给运营带来了断线风险,如果这个在你自己机器上,所以把这个放到别的服务器上也是不错的主意,但是,我既然要自己租机器放私钥,为何不索性在机器上运行个节点呢?如果这个私钥由Blox替你保管,需要时候签个名,那不就跟把私钥控制权给别人差不多吗?
- c' i: y9 v, {1 R8 T9 [3 ~) e6 g* j
2 X& P6 i$ E, a  关于Withdraw Key,它是抵押32ETH的那个人的取款钥匙,它当然是直接抵押ETH的那个人或机构,如果是众筹抵押呢?比如,这种情形好说,反正以太坊的抵押合约认准直接抵押32ETH的那个地址的钥匙。
& y- Z8 Z/ }4 l3 A: {7 H* s& g# L& ^
  如果是这种众筹情形呢?这种带micro pool的产品,允许用户低于32ETH来抵押而享受抵押的回报,它必须有一个软件(更可能是智能合约)来管理micro pool,这个Withdraw Key肯定不在用户手里了,但是合约中会有用户的以太坊地址和这个Withdraw Key的映射关系,以便对财富进行分配。
: Z( F& ~8 A0 d1 W! u, m/ H$ F8 j: y( c
  最近研究了一些产品,机构搞的中心化抵押产品我实在不敢相信,这个圈子大骗子和小骗子太多,这个ETH要锁定至少1-2年出不来,机构提供的ETH 替代品,随时可能失去流动性,这个我还是把它们往好的地方想,如果再邪恶一点,甚至根本不会去抵押,而是进了自己的腰包。还有个问题没有一个产品说清楚的,就是由信标链产生的bETH,这个算谁的?既然机构提供了流动性替代产品,抵押ETH产生的bETH算是谁的?但是既然用户手里有Withdraw Key,那么等ETH Phase 2的时候,用户应该可以得到自己的bETH吧。1 g4 `6 F/ A4 G& x# P0 o

7 f0 V9 J) t# r6 A) [9 K: d: [* W+ }7 v  还有些带白皮书的去中心化和半去中心化的产品,比如Blox Staking,要2021年三季度上线,号称是一个完全去中心化的产品(User withdrawal keys AND validator keys are never stored by Blox),Rocket Pool ,一个由创始人2016年就开始写代码,写到现在刚出来Beta测试版的,Staked, StakeWise(中心化方式,Validator key用户不掌握,Withdraw key在用户手里),CodeFi ,以太坊 2.0 质押赛道上的重度参与者。CodeFi Activate 和以太坊基金会(EF) 合作推出了 Eth2 Launch Pad,为那些运行自己验证人节点的硬核用户,提供了直观的页面引导。这些产品基本大同小异,都有以下几个功能:9 t$ w! ]6 c7 o3 @; k1 |" p
9 B1 c$ R( N6 o9 ]0 T5 K
  带微池的ETH抵押:一般都有抵押的门槛,比如已经商用的Stkr 平台的最低存入量为 0.5 ETH,而Rocket Pool号称最低0.01ETH,而我在stakewise测试网上就无底线了,随便多少ETH,来着不拒,它按照回报的10%来收费;3 X7 ~7 p7 Y, m2 R8 N
# M0 {, x* W7 U& G' w
  节点运营:有的提供节点运行的环境,不用操心,但是得付费,比如stakewise,你得抵押32ETH,然后月租费是10DAI,我想这也算公平,你到外面去租个机器运行,大概也要这个价格吧,还免了自己操心;
4 R$ c" A% R3 D" v/ {8 Q3 Y7 h" g& h5 S5 s  ~+ e
  钥匙的管理:带微池抵押的两把钥匙都不在自己手里,这个可以理解,如果直接抵押了32个ETH由项目方包办节点运行的,Validator Key不在自己手里,而Withdraw Key由自己掌管。, C6 F: G8 _. S" c! l1 E9 ~9 U

( d  t* B% W( B5 B' i  testnet上亲测可以玩耍的平台有:) K  [8 h" h: G

* V$ j: C3 \/ c0 Z; {  https://stakewise.io/app/solo
1 M& G% G8 q9 K5 X1 e
: l0 h- [/ H; |: y+ Z! j3 l  Rocket Pool号称今天可以玩了,但是亲测下还是不行,慢慢等吧。
/ P; k8 {( Y1 h1 B. h- R) L6 u# ~
  ~6 W+ N1 p" `# X" |6 I, d# ~% k  https://beta.rocketpool.net/1 O( h7 I( @; k
7 q7 a4 ]/ j6 C" V# I
  想对这玩意有真正详细的了解,不如硬核一回,自己搭建节点,在测试网络上先试验跑一下。这篇文章和另外一片文章写得很详细,如何在Goerli ETH 1.0 测试网和Medalla (目前应用多的是pyrmont,medalla对用户诸多限制,而且据说版本很乱) ETH 2.0 测试网上跑Ethereum 2.0 Validator Node。但是区块链技术更新太快,必须配合官方网站的内容才能真正搭建一个验证节点。我各人安装体会是:以官方的为准绳,medium那两篇文章里东西有可能会过时,比如它用的medalla的测试网络,而最新使用广泛的是pymont,不过可以用它来配置成系统重启能自动启动节点程序。* T1 }, H: ]+ z/ H* [1 n  J) Y$ f' J
% y/ ~* ]$ a: q/ X' v7 U) r
  要跑验证节点,不是单独安装这么一个应用就可以的,得安装ETH1的全节点,当然也可以跟现有第三方的服务连接,比如infura,但是官方建议自己安装,为了保证更加去中心化。还要安装ETH2的Beacon节点。对机器还是有些要求的,并不是V神所说,随便什么机器都能跑的。这是对机器配置的最低要求:
4 N4 Y2 M0 Z5 Q# T. V  K; R7 N* G6 F3 F: H
  Dual-core CPU, 2015 or newer3 w7 a4 }% Z% F0 N8 j
, H* C5 g6 w- I
  8 GB RAM
: j! w; m; m  ~' {
- c, E9 y* V" Y( q2 f5 _  `5 Q  128 GB solid state storage/ p& @8 |( ?& X5 u7 ^( X  @3 b
, J! X8 `7 W/ j# p) ^! F0 b
  10 Mb/s download, 5 Mb/s upload broadband connection
8 Z) L+ t; d& B+ U& D4 [2 V
6 F& p( r; u6 ~4 z+ Q  如果要自己跑ETH 1 节点,再增加400G的硬盘容量6 B; ^8 N& T! _6 _
8 a4 C8 `! x& Q( _7 \8 X
  这个节点运行结构图如下,$ i  [. f- }! W! i
) t- j0 d% h( x$ b+ i" I
  在这个过程中会生成2组Key,就是上面说到的“withdrawal keys and validator keys”,需要把生成key的种子记住了,下次取款时候需要。这个生成的deposit.json主要内容如下:& Y) ]5 \2 ~/ _* @

, j3 |$ s" @! c; v* }% c  A validator deposits by sending a transaction that calls a function on the deposit contract on the eth1 chain. A deposit specifies:8 |. C' |: n* T' o: G, ]0 w

, l6 Y. X; u$ v! Y$ R  The public key corresponding to the private key that will be used to sign messages
* `3 Z& A. I( p4 A0 H0 }' I5 F/ H8 o$ ?  O5 W) w; @
  The withdrawal credentials (hash of the public key that will be used to withdraw funds once the validator is done validating)
# P4 f! V/ c0 k+ v' r# o
) e) j$ r7 H% T( ]$ Z8 G  The deposit amount" W7 ?4 _# o0 c6 X, W
6 p, M3 e& r6 j
  把deposit.json文件上传到ETH2 launchpad后,就会要求抵押32ETH了,连上我的metamask钱包,找到Goerli testnet,就把钱转过去了,所以这个系统应该是知道谁抵押过32ETH的。这也是我一直之前疑惑的地方,怎么把谁抵押了ETH这个事情跟生成的两组key联系起来。但是我觉得这个事情是中心化系统做的,然后写进合约里去。5 Q1 }" C5 K( p1 V- J6 _+ z
/ y- T0 `5 f3 N" Q3 ?0 X
  我觉得自己搞还是要小心的,要考虑好各种网络安全,还要注意不要因为无知而被罚款,这里是官方的一个防止罚款指南。还有就是机器性能真的很重要,这边的家庭网络,可能只能满足最低带宽需求。
+ t' P% I  H8 ?% q- N) n
( k7 f0 n* i8 t9 w* q  还有些小工具用来检查节点运行是否正常的:
! H4 b+ l' E% @: H; e3 n- W* i1 R
  这个检查ETH1的节点是否正常。5 [. l1 e3 b9 b' A/ h( E- N" ]& T
8 t3 t7 {( ]+ O4 F
  geth attach localhost:8545& P8 v; c1 C. F+ U3 |( T" w

! \9 D) a4 L; r/ g; u* \  eth.syncing
6 ^; @, a, W- ^5 l( ~# l
; B' g% r* D# d/ Z& b  检查ETH 2.0 的Beacon Chain节点运行状况:9 {: R* W6 K' m. v8 e

5 w4 I) u2 j0 P  lighthouse --debug-level debug `bn% \- W/ w! h' [( z. I( M2 C
& `3 g( K3 K- n6 a9 h
  再所有配置文件里,都要填上网络配置:
" `5 v2 O2 H4 e9 m5 Z; ]# T& [) m" n* {" t1 q( D; O- I# j
  –network pyrmont
& R, N! p; N( y, R, k; Q/ O+ {# g: H6 V: y3 [
  在Beacon Node 同步上之前,Validator还工作不了。总之速度非常慢。然后Validator Client还要去排队,据说需要好几天才能轮上。我觉得币价是个刺激因素,以后是否会冷下来,让普通人能快速排上队。
6 Q5 e' g* P0 J: I# b& F* ~
6 H3 P4 y8 ]" y5 T  X) C  最后,nano是个很难玩的编辑器,然后ubuntu里很多文件都需要超级用户才能打开的,它自身带的text edit很好用,所以我用这个命令打开所有要编辑的文件:9 ~" Q; D0 J2 h6 C$ x% S* f$ Q; L
1 R8 f+ o9 M4 B2 R+ O9 w
  sudo gedi
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

博上 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    3