Ethereum 2.0阶段0 -- 信标链官方文档

介绍

本文档描述了Ethereum 2.0第0阶段——信标链的规范。

以太坊2.0的核心是一个被称为“信标链”的系统链,信标链存储和管理验证人的注册。在Ethereum 2.0的初始部署阶段,成为验证人的唯一机制是在Ethereum 1.0上发起单向ETH交易质押合约里面。当信标链处理Ethereum 1.0存款收据,达到激活余额,并完成排队处理时,验证人将会激活。自愿退出或是对不当行为的惩罚而强制退出,信标链上的主要负载来源是证明(attestations)信息,证明(attestations)对于分片区块(阶段1)的投票和信标区块(阶段0)权益证明的投票同时可用。

自定义类型

为了类型提示和可读性,我们定义了以下Python自定义类型:

名字SSZ 编码描述
Slotuint64a slot number
Epochuint64an epoch number
Sharduint64a shard number
ValidatorIndexuint64a validator registry index
Gweiuint64an amount in Gwei
HashBytes32a hash
VersionBytes4a fork version number
DomainTypeBytes4a domain type
DomainBytes8a signature domain
BLSPubkeyBytes48a BLS12-381 public key
BLSSignatureBytes96a BLS12-381 signature

常量

以下值是整个规范中使用的(不可配置的)常量。

名字
GENESIS_SLOTSlot(0)
GENESIS_EPOCHEpoch(0)
FAR_FUTURE_EPOCHEpoch(2**64 - 1)
BASE_REWARDS_PER_EPOCHuint64(4)
DEPOSIT_CONTRACT_TREE_DEPTHuint64(2**5) (= 32)
JUSTIFICATION_BITS_LENGTHuint64(4)
ENDIANNESS'little'

配置

注意: 这里包含默认mainnet配置值是为了规范设计的目的。对于mainnet、testnet和基于yaml的测试,可以在configs/constant_presets目录中找到不同的配置。这些配置会在发布时进行更新,在dev更改期间可能会不同步。

杂项

名字
ETH1_FOLLOW_DISTANCEuint64(2**10) (= 1,024)
MAX_COMMITTEES_PER_SLOTuint64(2**6) (= 64)
TARGET_COMMITTEE_SIZEuint64(2**7) (= 128)
MAX_VALIDATORS_PER_COMMITTEEuint64(2**11) (= 2,048)
MIN_PER_EPOCH_CHURN_LIMITuint64(2**2) (= 4)
CHURN_LIMIT_QUOTIENTuint64(2**16) (= 65,536)
SHUFFLE_ROUND_COUNTuint64(90)
MIN_GENESIS_ACTIVE_VALIDATOR_COUNTuint64(2**14) (= 16,384)
MIN_GENESIS_TIMEuint64(1578009600) (Jan 3, 2020)
HYSTERESIS_QUOTIENTuint64(4)
HYSTERESIS_DOWNWARD_MULTIPLIERuint64(1)
HYSTERESIS_UPWARD_MULTIPLIERuint64(5)
  • 为了委员会的安全,TARGET_COMMITTEE_SIZE超过了推荐的委员会最小大小111;有了足够的激活验证人(至少SLOTS_PER_EPOCH * TARGET_COMMITTEE_SIZE),洗牌算法确保委员会的大小至少为TARGET_COMMITTEE_SIZE。(具有可验证延迟函数(VDF)的不可偏随机性将提高委员会的鲁棒性,并降低安全的最小委员会规模。)

Gwei值

名字
MIN_DEPOSIT_AMOUNTGwei(2**0 * 10**9) (= 1,000,000,000)
MAX_EFFECTIVE_BALANCEGwei(2**5 * 10**9) (= 32,000,000,000)
EJECTION_BALANCEGwei(2**4 * 10**9) (= 16,000,000,000)
EFFECTIVE_BALANCE_INCREMENTGwei(2**0 * 10**9) (= 1,000,000,000)

初始化值

名字
GENESIS_FORK_VERSIONVersion('0x00000000')
BLS_WITHDRAWAL_PREFIXBytes1('0x00')

时间参数

名字单位时间
GENESIS_DELAYuint64(172800)seconds2 days
SECONDS_PER_SLOTuint64(12)seconds12 seconds
SECONDS_PER_ETH1_BLOCKuint64(14)seconds14 seconds
MIN_ATTESTATION_INCLUSION_DELAYuint64(2**0) (= 1)slots12 seconds
SLOTS_PER_EPOCHuint64(2**5) (= 32)slots6.4 minutes
MIN_SEED_LOOKAHEADuint64(2**0) (= 1)epochs6.4 minutes
MAX_SEED_LOOKAHEADuint64(2**2) (= 4)epochs25.6 minutes
MIN_EPOCHS_TO_INACTIVITY_PENALTYuint64(2**2) (= 4)epochs25.6 minutes
EPOCHS_PER_ETH1_VOTING_PERIODuint64(2**5) (= 32)epochs~3.4 hours
SLOTS_PER_HISTORICAL_ROOTuint64(2**13) (= 8,192)slots~27 hours
MIN_VALIDATOR_WITHDRAWABILITY_DELAYuint64(2**8) (= 256)epochs~27 hours
SHARD_COMMITTEE_PERIODuint64(2**8) (= 256)epochs~27 hours

状态列表长度

名字单位时间
EPOCHS_PER_HISTORICAL_VECTORuint64(2**16) (= 65,536)epochs~0.8 years
EPOCHS_PER_SLASHINGS_VECTORuint64(2**13) (= 8,192)epochs~36 days
HISTORICAL_ROOTS_LIMITuint64(2**24) (= 16,777,216)historical roots~52,262 years
VALIDATOR_REGISTRY_LIMITuint64(2**40) (= 1,099,511,627,776)validators

奖励和惩罚

NameValue
BASE_REWARD_FACTORuint64(2**6) (= 64)
WHISTLEBLOWER_REWARD_QUOTIENTuint64(2**9) (= 512)
PROPOSER_REWARD_QUOTIENTuint64(2**3) (= 8)
INACTIVITY_PENALTY_QUOTIENTuint64(2**24) (= 16,777,216)
MIN_SLASHING_PENALTY_QUOTIENTuint64(2**5) (= 32)
  • NACTIVITY_PENALTY_QUOTIENT= INVERSE_SQRT_E_DROP_TIME**2,其中INVERSE_SQRT_E_DROP_TIME:= 2**12 epochs(大约18天)是不活动惩罚,将不参与验证 人的余额减少到大约1/sqrt(e) ~= 60.6%的时间。实际上,在nepoch之后,脱机验证人保留的余额大约是(1 - 1/INACTIVITY_PENALTY_QUOTIENT)**(n**2/2);所以在’INVERSE_SQRT_E_DROP_TIMEepoch后,它大概是(1 - 1/ INACTIVITY_PENALTY_QUOTIENT)**(INACTIVITY_PENALTY_QUOTIENT/2)~= 1/sqrt(e)

每个区块最大操作数

NameValue
MAX_PROPOSER_SLASHINGS2**4 (= 16)
MAX_ATTESTER_SLASHINGS2**1 (= 2)
MAX_ATTESTATIONS2**7 (= 128)
MAX_DEPOSITS2**4 (= 16)
MAX_VOLUNTARY_EXITS2**4 (= 16)

域类型

名字
DOMAIN_BEACON_PROPOSERDomainType('0x00000000')
DOMAIN_BEACON_ATTESTERDomainType('0x01000000')
DOMAIN_RANDAODomainType('0x02000000')
DOMAIN_DEPOSITDomainType('0x03000000')
DOMAIN_VOLUNTARY_EXITDomainType('0x04000000')
DOMAIN_SELECTION_PROOFDomainType('0x05000000')
DOMAIN_AGGREGATE_AND_PROOFDomainType('0x06000000')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值