Yes, that prevents double counting. But why should we include borrowed positions rather than lending positions?
Lending XRD typically preserves long-term economic exposure to XRD, borrowing XRD is typically driven by a utilization need (e.g. collateralization, short selling, or acquiring voting power). While borrowing may be neutral in some cases, it can also be negatively aligned with XRD price appreciation ā for example, when borrowed XRD is used to take a short position.
If that principle is applied consistently, what about DEX pool positions? LPs could be viewed as providing an interest-free loan to the pool, while retaining a claim on the poolās assets, similar in nature to a lending position. Would these positions be excluded under the same logic?
Given these cases, I would argue that, for now, we should perhaps stick to LSU only. Decisions like this should be built carefully from first principles, as you have advocated, with a solid rationale that would survive scrutiny from an external observer. The approach taken here sends a signal about our credibility.
More broadly, I think this discussion points to a bigger question: how should rights embedded in assets be handled? Radix positions itself as asset-oriented and ready for modern finance, yet the engine today appears to model assets primarily as things, rather than as claims that carry intrinsic rights and issuer obligations. Is there room to have a broader debate on this first?
Capital market assets (equities and bonds) are fundamentally claims on issuers and come with rights. An equity holder, for example, has an entitlement to dividends and a right to vote at an AGM. In an asset-oriented model with accounts, resources, and components, should the onus really be on the issuer to trace through every application and component to identify the entitled owner at the relevant record or snapshot date?
If not, should we consider whether this can be handled more elegantly at the protocol level ā i.e. revisiting what it means to be an āassetā in Radix Engine / Scrypto? For example, and for illustration purposes:
Should there be a rights manager alongside the resource manager?
Should rights be represented by a separate token linked to the primary asset?
Should rights always travel with the asset, or should they be separable?
Should rights be optionally non-transferable when an asset is lent out?
If we explore solving this harder problem directly, we may arrive at a more natural foundation for governance and other entitlement-based mechanisms at the protocol level, rather than inferring rights indirectly from balances and DeFi positions. The conclusion may ultimately be that modelling assets as things at the protocol layer is optimal, and that assets as claims belong at the application layer. However, if we reach a conclusion that assets as claims could belong at protocol level, this could really strengthen Radixās positioning as a true global asset layer. The direction taken here could also potentially have implications for how scalability is achieved in a practical sense.