Try   HackMD

DanGoron: Week 14-15 dev-update

eODS Prototyping

Here are the updated eODS Design notes.

Summary

The design defines design constraints, entities and the conditional relations between them.

During Weeks 14 and 15, I also added 3 case studies.

Week 14, 15 development

1. Open issues from prior weeks

  • Delegator triggered 0x01 withdrawals - this point is going to be covered in the next 2 weeks of case studies phase

  • Increase readability of the Class diagram (add LEGEND, detailing) - this point is going to be covered in the case studies phase, I plan to break the rather big diagram into smaller, more legible diagrams, that will most likely allow readers to grasp the concept better.

2. Added use cases:

2.1 New self-funded heavy operator

This was straightforward, being the current DEPOSIT_CONTRACT -> FUNDING OPERATORS(VALIDATORS)

DEPOSIT
BEACON-STATE
ETH
PROOF
PRINCIPAL
WITHDR_CRED
Depositor
ETH: Gwei
deposit(ETH)
DEPOSIT_CONTRACT
ETH: Gwei
event = Deposit_event
send_PROOF(event)
Accounting
ValidatorIndex
PROOF
get_proof()
operate_balance(Validator(ValidatorIndex)) : PRINCIPAL
Operators
index = ValidatorIndex
Validator.balance(index) : PRINCIPAL
PerformDuties()
USE CASE no.1 - Deposit + Validator funding
2.1 New Delegator, with the intent to delegate to heavy Operators and light Operators

This use case is representative for eODS as it uses the DELEGATION_CONTRACT as ETH deposit gateway.

DEPOSIT
BEACON-STATE
ETH
PROOF
PRINCIPAL
SHARE
RECEIPT(delegation_proof)
RECEIPT(delegation_proof)
SHARE
PRINCIPAL
WITHDR_CRED
Depositor
ETH: Gwei
deposit(ETH)
DELEGATION_CONTRACT
ETH: Gwei
event = Deposit_event
send_PROOF(event)
Accounting
ValidatorIndex
DelegatorIndex
light_ValidatorIndex
RECEIPT
PROOF
get_receipt()
get_proof()
operate_balance(Delegator(DelegatorIndex)) : PRINCIPAL
operate_balance(Delegator(DelegatorIndex)) : SHARE
Delegators
index = DelegatorIndex
ValidatorIndex
light_ValidatorIndex
Delegator.balance(index) : PRINCIPAL
Delegator.balance(index) : SHARE
delegation(Validator(ValidatorIndex)) : PRINCIPAL
delegation(light_Validator(light_ValidatorIndex)) : SHARE
Operators
index = ValidatorIndex
Validator.balance(index) : PRINCIPAL
PerformDuties()
light_Operators
index = light_ValidatorIndex
light_Validator.balance(index) : SHARE
PerformDuties()
USE CASE no.2 - Deposit + Validator funding

WORKFLOW

2.1.1 Deposit
2.1.2 Constitute Delegator's balance in BeaconState
2.1.3 Delegation towards Validators
2.1.4 Delegation towards light_Validators
2.1.5 Protocol services provision
BEACON-STATE
FINALITY
AVS
provision
rewards & penalties
slashings
provision
rewards & penalties
slashings
provision
rewards & penalties
slashings
provision
rewards & penalties
provision
rewards & penalties
provision
rewards & penalties
SHARE
PRINCIPAL
Delegators
index = DelegatorIndex
ValidatorIndex
light_ValidatorIndex
Delegator.balance(index) : PRINCIPAL
Delegator.balance(index) : SHARE
delegation(Validator(ValidatorIndex)) : PRINCIPAL
delegation(light_Validator(light_ValidatorIndex)) : SHARE
Operators
index = ValidatorIndex
Validator.balance(index) : PRINCIPAL
PerformDuties()
light_Operators
index = light_ValidatorIndex
light_Validator.balance(index) : SHARE
PerformDuties()
FFG
source_checkpoint <attestations>
target_checkpoint <attestations>
equivocation <attestations>
rewards(source_checkpoint) : 21.9% * W
rewards(target_checkpoint) : 40.6% * W
slashing(equivocation)
LMD-GHOST
chain_head <attestations>
equivocation <attestations>
rewards(chain_head) : 21.9% * W
slashing(equivocation)
PROPOSER
beaconchain_blocks <proposing>
whistleblower <proposing>
equivocation <proposing>
rewards(beaconchain_blocks) : 12.5% * W
rewards(whistleblower) : B / 512
slashing(equivocation)
PTC
timely_payload <attestations>
rewards(timely_payload)
SYNC_COMMITTEE
sync_reward <signing>
rewards(sync_reward) : 3.1% * W
FOCIL
il_committee <proposing>
il_voting <attestations>
rewards(il_committee) : : <none>
rewards(il_voting) : : <none>
USE CASE no.2 - Protocol services provision

3. Feedback

eODS prototyping file is in peer and mentors review, so, even though the project is solidifying around a clearer prototype, discussions can spur new ideas and approaches.

Week 16, 17 planning

Last two weeks before moving on to the delegator role selection & incentivization research phase of the project.

I plan to:

  • finish the use cases phase
  • add Withdrawals chapter