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