Design Specification for Delegation and Incentives in Cardano
Total Page:16
File Type:pdf, Size:1020Kb
Engineering Design Specification for Delegation and Incentives in Cardano–Shelley AN IOHK TECHNICAL REPORT Philipp Kant Lars Brunjes¨ Duncan Coutts [email protected] [email protected] [email protected] [email protected] April 11, 2019 Abstract This document describes the requirements and design for a delegation and incentives mechanism to be used in the Shelley release of Cardano. List of Contributors Lars Brunjes,¨ Jared Corduan, Duncan Coutts, Philipp Kant, Dimitris Karakostas, Aggelos Kiayias, Elias Koutsoupias, Mario Larangeira, Damian Nadales, Aikaterini-Panagiota Stouka. Contents 1 Purpose 4 2 Requirements 5 2.1 Functional Requirements . .5 2.1.1 Proof of Eligibility . .5 2.1.2 Visibility of Delegation on the Blockchain . .5 2.1.3 Restricting Chain Delegation . .5 2.1.4 Cheap Re-Delegation . .5 2.1.5 Neutral Addresses . .5 2.2 Security Requirements . .6 2.2.1 Sybil Attack Protection at Stake Pool Level . .6 2.2.2 Address Non-malleability . .6 2.2.3 Public Spending Keys Should not be Disclosed Prematurely . .6 2.2.4 Mitigate Key Exposure . .6 2.2.5 Handle Inactive Stake Pools . .6 2.2.6 Avoid Hard Transition . .6 2.2.7 Change Delegation Without Spending Key . .7 2.3 Non-functional Requirements . .7 2.3.1 Asymptotic space and time complexity . .7 2.3.2 Minimise economic attacks . .7 2.4 Requirements to Preserve Existing Features . .7 2.4.1 Master Recovery Key . .7 1 2.4.2 Address Recognition . .7 2.4.3 Wallet should be Runnable on Independent Devices . .7 2.4.4 Maintain Privacy . .8 2.4.5 Short Addresses . .8 2.4.6 No lookup of old blocks . .8 2.5 Design Goals . .8 2.5.1 No Special Wallet for Stake Pool Operators . .8 3 Design of Delegation 8 3.1 Overview of Delegation . .8 3.2 Address Structure . 10 3.2.1 Base Address . 10 3.2.2 Pointer Address . 11 3.2.3 Enterprise Address . 11 3.2.4 Reward Account Address . 12 3.2.5 Bootstrap Address . 12 3.2.6 Script Address . 12 3.2.7 HD Wallet Structure in Shelley . 13 3.3 Address Recognition . 13 3.4 Certificates and Registrations . 13 3.4.1 Certificates on the Blockchain . 13 3.4.2 Certificate Replay Prevention . 14 3.4.3 Stake key Registration Certificates . 15 3.4.4 Stake Pool Registration Certificates . 15 3.4.5 Single Operator, Possibly Multiple Owners . 16 3.4.6 Delegation Certificates . 17 3.4.7 Operational Key Certificates . 17 3.4.8 Certificate Precedence and Validity . 18 3.5 Delegation Relations . 19 3.5.1 Address Delegation Relation . 19 3.5.2 Staking Key Delegation Relation . 19 3.5.3 Overall Stake Distribution . 20 3.5.4 Chain Delegation . 20 3.6 State Tracking for delegation . 20 3.6.1 Staking Keys . 20 3.6.2 Reward Accounts . 21 3.6.3 Stake Pools . 21 3.6.4 Active Delegation Certificates . 21 3.6.5 Stake per Staking Key . 21 3.7 Slot Leader Schedule and Rewards Calculation . 21 3.8 Block Validity and Operational Key Certificates . 22 3.9 Transition to Decentralization . 22 3.9.1 Motivation . 22 3.9.2 Proposal . 23 3.9.3 Rewards during the Transition Phase . 23 3.9.4 Transition Plan . 24 3.10 Rewards . 24 3.10.1 Distributing Rewards . 25 3.11 Fees . 26 3.11.1 Transaction fees . 26 3.11.2 Deposits . 26 3.12 Time to Live for Transactions . 27 2 3.13 Robustness at the Epoch Boundary . 27 3.13.1 Calculating the Leader Schedule . 27 3.13.2 Calculating and Distributing Rewards . 27 3.14 Wallet Recovery Process . 28 3.14.1 Trees of Depth 1 . 28 3.14.2 Taller Trees . 29 3.14.3 Maximal Address Gap . 29 4 Delegation Scenarios 30 4.1 Stake Pool Registration . 30 4.2 Stake Pool Metadata . 30 4.3 Display of Stake Pools in the Wallet . 31 4.4 Basic Delegation . 32 4.5 Delegation of Cold Wallets . 33 4.6 Individual Staking . 33 5 Design of Incentives 34 5.1 Overview of Incentives . 34 5.2 Parameters . 35 5.3 Reminder: Stake Pool Registration . 35 5.4 Epoch Rewards . 36 5.4.1 Transaction Fees . 36 5.4.2 Deposits . 36 5.4.3 Monetary Expansion . 36 5.4.4 Treasury . 37 5.5 Reward Splitting . 37 5.5.1 Stake, Performance, and Block Production . 37 5.5.2 Pool Rewards . 38 5.5.3 Reward Splitting inside a pool . 39 5.6 Non-Myopic Utility . 40 5.6.1 Pool Desirability and Ranking . 40 5.6.2 Non-Myopic Pool Stake . 40 5.6.3 Non-Myopic Pool Operator Rewards . 40 5.6.4 Non-Myopic Pool Member Rewards . 41 5.6.5 Average Apparent Performance . 41 5.6.6 Apparent Performance of New Pools . 41 5.7 Utility . ..