-
Notifications
You must be signed in to change notification settings - Fork 219
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: console and FFI should have setting to not choose outputs that reveal the address #4403 #4516
feat: console and FFI should have setting to not choose outputs that reveal the address #4403 #4516
Conversation
…ontrols whether outputs received via a simple one-sided transaction are automatically selected by `select_utxos` when spending added `source` field to `outputs` table Signed-off-by: Andrei Gubarev <[email protected]>
Signed-off-by: Andrei Gubarev <[email protected]>
Signed-off-by: Andrei Gubarev <[email protected]>
Signed-off-by: Andrei Gubarev <[email protected]>
1d37cf7
to
c827735
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM - just the eprintln to remove (this will bork the console wallet)
@@ -200,13 +202,22 @@ impl OutputSql { | |||
.filter(outputs::status.eq(OutputStatus::Unspent as i32)) | |||
.order_by(outputs::spending_priority.desc()); | |||
|
|||
eprintln!( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Debug print
base_layer/wallet/src/output_manager_service/storage/output_source.rs
Outdated
Show resolved
Hide resolved
Signed-off-by: Andrei Gubarev <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, just one nit
Co-authored-by: SW van Heerden <[email protected]>
…urce.rs Co-authored-by: Stan Bondi <[email protected]>
Signed-off-by: Andrei Gubarev <[email protected]>
Signed-off-by: Andrei Gubarev <[email protected]>
@@ -151,6 +152,7 @@ where | |||
&self.rewind_data, | |||
None, | |||
Some(proof), | |||
OutputSource::Recovered, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Even when recovered, the output should be marked according to its script (one-sided, stealth, standard, etc.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but it looks like recovered outputs are not categorized. This can be done in another PR.
Co-authored-by: stringhandler <[email protected]>
…reveal the address tari-project#4403 (tari-project#4516) Description --- tari-project#4403 Wallet (console and FFI) should have setting to not choose outputs that reveal the address tari-project#4403 Motivation and Context --- Problem Wallets currently will choose the best outputs as inputs when spending, however since a lurking base node can generate a transaction graph of inputs to outputs with relative ease, a wallet may reveal its transaction history by including a (non-stealth address) one-sided payment. For example, an attacker wishing to know the transaction graph of a public key PK_Alice can send a one-sided payment to PK_Alice using the Tariscript Push(PK_Alice). At some point, Alice's wallet spends this transaction without realizing it. Possible solution Could change the wallet to have a config setting, to not include one-sided payments by default when spending How Has This Been Tested? ---
Description
#4403
Wallet (console and FFI) should have setting to not choose outputs that reveal the address #4403
Motivation and Context
Problem
Wallets currently will choose the best outputs as inputs when spending, however since a lurking base node can generate a transaction graph of inputs to outputs with relative ease, a wallet may reveal its transaction history by including a (non-stealth address) one-sided payment.
For example, an attacker wishing to know the transaction graph of a public key PK_Alice can send a one-sided payment to PK_Alice using the Tariscript Push(PK_Alice). At some point, Alice's wallet spends this transaction without realizing it.
Possible solution
Could change the wallet to have a config setting, to not include one-sided payments by default when spending
How Has This Been Tested?