0064 XLS - 64d: Pseudo-Account #191
Tapanito
started this conversation in
Standard Proposals
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Pseudo-Account
Abstract
In this document, we propose a standard for a pseudo-account, an
AccountRoot
object that can be associated with one or more other ledger entries. This feature allows one to link an account with multiple ledger entries to track XRP and Token Balances or issue Fungible Tokens on behalf of the linked ledger entries.1. Introduction
The XLS-30 specification introduced an
AMMID
field to theAccountRoot
ledger entry. It associates a pseudo-account with anAMM
instance to track XRP and Token balances in the pool and issueLPTokens
on behalf of the AMM Instance. However, theAMMID
DOES NOT allow us to associate theAccountRoot
with other ledger entries.This proposal addresses this limitation by introducing a new
LedgerEntries
field to theAccountRoot
that allows linking the object with one or more other ledger entries. Implementing this specification will deprecate theAMMID
.Furthermore, the proposal introduces minimum requirements for any protocol creating a pseudo-account.
2. Changes to the
AccountRoot
The
LedgerEntries
field links theAccountRoot
object with one or more ledger entries.2.1 New fields
LedgerEntries
Vector256
AccountRoot
.3. Creating a pseudo-account
The address of the
AccountRoot
must be randomized to prevent users from identifying and funding the address before its creation. The protocol that creates anAccountRoot
must ensure the account address is unoccupied.The
AccountRoot
object for a pseudo-account MUST have the following settings:lsfDisableMaster
enabled to ensure that no one can control the account directly and send transactions on its behalf.lsfDepositAuth
enabled to ensure that the only way to add funds to the account is by using adeposit
transaction.The unique ID of the
AccountRoot
object, a.k.a.AccountRootID
is computed as follows:AccountRootID
=SHA512-Half
(i || Parent Ledger Hash ||LedgerEntries[*]
)AccountRootID
exists, repeatAccountRootID
The list of ledger entries associated with a pseudo-account is modifiable. However, adding or removing object IDs WILL NOT change the
AccountRootID
.Beta Was this translation helpful? Give feedback.
All reactions