Skip to content
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

Some BTC addresses utilized by Bisq are receiving both trade fees and time-locked deposits #5762

Closed
pazza83 opened this issue Oct 18, 2021 · 4 comments · Fixed by #5764
Closed

Comments

@pazza83
Copy link

pazza83 commented Oct 18, 2021

Description

Following discussion on Running the numbers of the Bisq DAO #5171 and the subsequent discussions with other contributors a recent Bisq call. I thought it would be beneficial to open a separate issue to discuss the fact the some BTC addresses utilized by Bisq are receiving both trade fees and time-locked deposits.

Bisq utilizes BTC addresses to receive trade fees (for users not paying in BSQ) and to receive delayed payouts (time-locked deposits to a donation address) when either trader decides to send funds to arbitration.

The addresses in current use can be seen here in a comment by @chimp1984 #5171 (comment)

Ideally, from an accounting / auditing perspective, Bisq would have addresses that only received either trade fees OR delayed payouts.

The issue with addresses receiving both trade fees AND delayed payouts is that it makes accounting / auditing more difficult.

Version

1.7.4

Steps to reproduce

Looking at all the addresses used by Bisq to receive trade fees and delayed payouts I compiled the following table. It appears that most addresses used by Bisq for this purpose receive both trade fees and time-locked deposits.

Address Notes Receiving trade fees Receiving time-locked deposits Last Active / Comments
1BVxNn3T12veSK6DgqwU4Hdn7QHcDDRag7 Default donation address Yes Yes April 2021, nit sure if this address has now been retired?
3EtUWqsGThPtjwUczw27YCo6EWvQdaPUyp burning2019 Yes Yes August 2021 - Sporadic use, not sure if due to people running old versions of Bisq?
3A8Zc1XioE2HRzYfbb5P8iemCS72M6vRJV burningman2 Yes Yes August 2021 - Sporadic use, not sure if due to people running old versions of Bisq?
38bZBj5peYS3Husdz7AH3gEUiUbYRD951t burningman3 Yes No In constant use - I assume this is the main address for BTC trade fees. It is only receiving trade fees so this is good
34VLFgtFKAtwTdZ5rengTT2g2zC99sWQLC burningman3 Yes Yes In constant use - Mainly used as a donation address. Not sure why it is still receiving sporadic trade fees?

Expected behaviour

If possible the following addresses to be retired:

  • 1BVxNn3T12veSK6DgqwU4Hdn7QHcDDRag7
  • 3EtUWqsGThPtjwUczw27YCo6EWvQdaPUyp
  • 3A8Zc1XioE2HRzYfbb5P8iemCS72M6vRJV

If possible the following address to receive no trade fees:

  • 34VLFgtFKAtwTdZ5rengTT2g2zC99sWQLC

Additional info

If the above can be achieved would it be possible have a script or similar that could calculate:

  • Trade fees received per month to 38bZBj5peYS3Husdz7AH3gEUiUbYRD951t
  • Time locked deposit amounts per month sent to 34VLFgtFKAtwTdZ5rengTT2g2zC99sWQLC

Ideally the above would be included in the DAO charts:

dao

Failing the above a script or something similar to differentiate total trade fees vs total delayed payouts per calendar month, cycle, or year would be a useful tool for accounting / auditing.

@chimp1984
Copy link
Contributor

The Default donation address is used by people who have deactivated the DAO.

The old addresses are likely used because of out of sync DAO state. Really old Bisq nodes cannot be used for trading as there is an requirement for newer versions by the newer trade protocol.
We could detect if one of the old addresses are used and then enforce a DAO resync, this should clean up that problem for those who update to that version, so might take also a bit until its effective. Later we could let trades fail if those addresses are still used to enforce that users update, but not sure it that's justified.

I would recommend to ignore in the meantime those values or to include it in the tracking of the main addresses.

I will have a look why 34VLFgtFKAtwTdZ5rengTT2g2zC99sWQLC is receiving the trade fee. This should not be the case, but I guess its also from older versions... I guess we added the dedicated other address later...

In the meantime until a script for monthly reports on 38bZBj5peYS3Husdz7AH3gEUiUbYRD951t and 34VLFgtFKAtwTdZ5rengTT2g2zC99sWQLC are in place, we could just check each start of month manually the total balance received of those addresses and subtract the past balance to get the diff of that month.

@pazza83
Copy link
Author

pazza83 commented Oct 18, 2021

Thanks for the comments and explanation.

Maybe a script could be used to differentiate between single signature and multisig transactions to the above addresses.

  • single signature transactions = trade fees
  • multisig transactions = Delayed payouts

That way it does not matter which of the above addresses is used for what.

chimp1984 added a commit to chimp1984/bisq that referenced this issue Oct 18, 2021
Avoid that outdated donation and fee addresses are used.

In case we get an outdated donation address (RECIPIENT_BTC_ADDRESS)
we trigger a dao resync. The user get a popup for doing a restart
in that case.
For the fee address selection we do not fall back to the
RECIPIENT_BTC_ADDRESS in case no address from filter is provided
but we use the hard coded address of the current fee receiver address.
@chimp1984
Copy link
Contributor

chimp1984 commented Oct 18, 2021

I just looked into Electrum. There you can create a new wallet with adding an address as watch only and you get all the transactions. Then under wallet/history you can export it as csv and do some filtering for data in a spreadsheet.

@pazza83
Copy link
Author

pazza83 commented Oct 24, 2021

Many thanks for sorting, will try and import the transactions into a spreadsheet, will close this issue.

@pazza83 pazza83 closed this as completed Oct 24, 2021
chimp1984 added a commit to chimp1984/bisq that referenced this issue Nov 9, 2021
Avoid that outdated donation and fee addresses are used.

In case we get an outdated donation address (RECIPIENT_BTC_ADDRESS)
we trigger a dao resync. The user get a popup for doing a restart
in that case.
For the fee address selection we do not fall back to the
RECIPIENT_BTC_ADDRESS in case no address from filter is provided
but we use the hard coded address of the current fee receiver address.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants