Improvements to Requirements language from review

Co-authored-by: Daira-Emma Hopwood <daira@jacaranda.org>
This commit is contained in:
Jack Grigg 2024-07-16 02:37:31 +01:00
parent beeaa53342
commit 0d33eee0a2
1 changed files with 21 additions and 10 deletions

View File

@ -38,6 +38,12 @@ Transaction output (TXO)
An output (transparent coin or shielded note) of a transaction on the consensus An output (transparent coin or shielded note) of a transaction on the consensus
block chain or in the mempool visible to a wallet. block chain or in the mempool visible to a wallet.
TODO: Add informal definitions of:
* known-spendable and confirmed-spendable TXOs;
* trusted and untrusted TXOs.
These should forward-reference the specification section with the formal definitions.
Motivation Motivation
========== ==========
@ -88,24 +94,29 @@ share some of their keys.
Prompt accessibility of funds Prompt accessibility of funds
----------------------------- -----------------------------
Wallets need to take account of two concerns: Wallets need to take account of two main concerns with respect to
accessibility of funds:
* enabling funds to be spent as quickly as possible to reduce latency; * enabling funds to be spent as quickly as possible to reduce latency;
* waiting long enough before spending TXOs to ensure that the * ensuring that the confirmed-spendable balance is not overestimated,
confirmed-spendable balance is not overestimated, and so can be trusted and so can be trusted by the user.
by the user.
These concerns affect the way that balances should be computed, which
notes are selected for spending, and how the wallet should ensure that
sufficient notes are available to cover multiple spends within a short
period.
To support this we define two kinds of TXOs: To support this we define two kinds of TXOs:
* A trusted TXO is a TXO received from a party where the wallet trusts a * A trusted TXO is a TXO received from a party where the wallet trusts that
double-spend not to occur, e.g. TXOs created by the wallet's internal TXO it will remain mined in its original transaction, such as TXOs created by
handling. the wallet's internal TXO handling.
* An untrusted TXO is a TXO received by the wallet that is not trusted. * An untrusted TXO is a TXO received by the wallet that is not trusted.
Wallets can then require that untrusted TXOs need more confirmations before Wallets can then require that untrusted TXOs need more confirmations before
they become spendable than trusted TXOs. This provides an improved trade-off they become confirmed-spendable than trusted TXOs. This provides an improved
between latency on the one hand, and reliability and safety on the other. trade-off between latency on the one hand, and reliability and safety on the
other.
Specification Specification