Repository navigation
Amendment Idea: Delegate auto-expiry by time and/or ledger sequence #657
bwif
started this conversation in
XLS Ideas (pre standard proposal)
Replies: 2 comments 3 replies
|
Fantastic idea - So would the time lock be over ridden by a general Revoke transaction? (Thinking about how Escrow time lock works) From a use case perspectve the timed revoke allows for an institution to grant temp access to contractors/users etc. Also use cases for Contracts - Timing a revoke to sit alongside a cancellation period. At minimum this represents a way to safeguard against regular/master key loss by user leaving assets exposed to a delegate indefinately. Whilst the logic could likely be achieved of chain, the reliance on this detracts from the delegation being on chain in the first instance. |
0 replies
|
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
title: Delegate auto-expiry
description: Optional time and/or ledger-sequence expiry on a Delegate grant, enforced by the ledger
status: Idea
category: Amendment
requires: XLS-75
Delegate auto-expiry
Abstract
XLS-75 lets an account grant another account a fixed set of permissions, and revoke that grant by sending
DelegateSetwith an emptyPermissionslist. Revocation is active only. If the delegator is offline, the key that can revoke is unavailable, or nobody sends the revoke, the grant lasts until someone does.This idea adds an optional expiry to the
Delegateobject, by Ripple-epoch time, ledger sequence, or both. Once it passes, the ledger rejects delegated transactions for that grant without a follow-upDelegateSet.Motivation
Delegation exists so the master key can stay offline while a narrower key does day-to-day work. That only holds if the narrow grant can end without the master key coming back online.
Today it cannot. A compromised delegate, a lost revoke key, or a forgotten grant stays valid indefinitely. Escrow and Checks already bound lifetime on the ledger (
FinishAfter/CancelAfter,Expiration). A delegate grant should be able to do the same.Active revoke stays as it is. Expiry is the case where nobody sends a revoke.
Proposal
Optional fields on
DelegateSet, stored on theDelegateobject:Expiration: last valid Ripple-epoch time. Omitted means no time limit.ExpireLedger: last ledger sequence in which the grant is valid. Omitted means no ledger limit.If both are set, the grant ends when either is reached. A
DelegateSetthat replaces the permission list may set, change, or clear them. An emptyPermissionslist still deletes the object immediately.After expiry:
Delegateset for that pair fails. It must not claim a fee for a grant the ledger has already ended.Delegateobject is removed or becomes removable so the reserve is recoverable without the delegator having to notice.No new transaction type. This is a new amendment on top of Permission Delegation, not a change to the Final XLS-75 text.
Open questions for discussion
All reactions