Thank you very much LoyceV for reviewing Anonymixer. it's really appreciated!
After I entered 3 Output addresses (all Bech32), I clicked the gray Confirm tab. This emptied my Output addresses and I tried to enter them again. It showed red: "Warning: Your maximum limit right now is 0 BTC. Please reduce the total Bitcoin."
This error didn't go away, even after reloading or trying in a private Tor window. It turns out something went wrong on the site. After anonymixer fixed the problem, they said they've added a "maintenance mode" so it becomes more obvious when the mixer is taken down in the future.
I've created
Issue #1: Add "System Maintenance" flag mechanism which means no-one will face that in the future once completed.
Unfortunately, despite the tx creation/coin-selection code working just fine for weeks, After noticing odd things in the logs, to be on the safe side I decided to stop accepting new trades by setting the maximum limits to 0 whilst I had a closer inspection.
Trying again, the same thing happened when I clicked the gray Confirm tab: this emptied my Output addresses again. I think this should be fixed, I get now that I have to click "Continue", but I intuitively assumed going back and forth through the tabs would work.
Totally agree about that not being intuitive, I created
Issue #2: Clicking Confirm "tab" destroys user's entered data. Now
fixed.
It took me a while to notice the Maximum amount that can be mixed in the bottom-left corner. It's a lot of scrolling to get there, maybe this can be placed closer to where you enter the Output Addresses.
Agreed. The maximum limit should be more prominent. I'm going to have a
think about showing users the maximum limit, closer to output addresses. These limits were previously visible on the Outputs Screen prior to adding in the marketing material.
I don't like that I can't change the amounts sent to each address on the Confirm tab. I want to spend a certain total amount, but I have to go back to get to the Outputs tab to adjust for the Bitcoin Network Fee and Anonymixer fee. It would be better to show the Total amount including fees on the Outputs tab. Now it's difficult to get to the right amount, because everytime I go back, the Bitcoin Network Fee changes. I'm probably not the only user who wants to send an exact amount so I don't receive a small change amount.
You want to avoid sending change to yourself, which is very understandable. This would require a bit of deep surgery on my part, which can done. I've created
Issue #4: Ability to update Output Amounts on Confirm screen in-case you would like to track that feature's progress.
Hypothetical question: what would happen if my transactions don't confirm within 72 hours?
As things stand, the trade would expire - which is bad. However, providing we have a Letter of Guarantee, any trades can and will be completed manually. I've created
Issue #5: Extend the life of trades with low-priority unconfirmed transactions which should help even if incoming deposits are coming in with 1 sat/byte during a high fee season.
Letter of GuaranteeI confirm this checks out. A question though:
within a 72 hour time period
~snip~
Current Timestamp: 5th December 2020 at 12:26 PM UTC
Trade Expires on: 8th December 2020 at 12:54 PM UTC
I guess the 72 hour started when I started entering data on the site. It's a small difference now, but if someone takes 2 days making changes, this shouldn't be taken from his 72 hours. So I suggest to add exactly 72 hours from the moment the Letter of Guarantee is created.
Quotes last for a maximum of 30 minutes before they time-out and where you would be presented with an updated grand total / set of fees. However, I agree this is odd to look at and a user should be given exactly 72 hours from the moment they press the Confirm button. I've created
Issue #6: Trade Timestamps on Confirmation of Trade.
For your business model: you're currently not charging any additional fee when someone funds 20 different addresses, while the cost for you will be higher. As an example: CoinPlaza.it (a small exchange) used to charge no mining fees on Bitcoin, but they've changed that. For several of my past transactions with them they earned less from me than they paid on network fees alone. So I wonder if this will be sustainable, especially when transaction fees rise a lot.
Let's see how things go, things can change. At the moment, I'm personally in favor of a variety of UTXOs both large and small. More UTXOs to choose from is better for the coin-selection / transaction creation code in terms of both getting lucky with change avoidance as well as when we do have to create change, doing so in such a way that makes it very difficult or impossible to spot which are the change outputs(s).
Sending individual output transactions also increases fees a lot, and I think you're
overpaying miners. Especially if you target small amounts, transaction fees should be as low as possible. One third of the fee would still have been enough for a fairly fast confirmation, and in most cases I prefer lower fees over faster confirmation.
We also believe transaction fees should be as low as possible, but bear in mind that trades wait for deposits within a 72 hour time window. The mempool may be relatively empty at the point-in-time they create the trade, but it may be busy when their final deposit confirms and/or their scheduled outgoing transactions are due to go out (say 40 hours later). So we must be conservative, but not overly conservative if that makes sense.
On the plus side of being conservative like this, it means that even during times of high fees, users who want to get funds mixed, can do so quickly.
I have created
Issue #7: Add ability to adjust Bitcoin Network/Mining Fees on Confirm Screen, in-case you wish to track this feature.
Just a note, Outgoing Transactions which are due to go out at the same scheduled time do in-fact go out in the same batched transaction, which reduces network/mining fees.
In the
faq, it shows a screenshot of the maximum mixing size. This is an "Example", but I'd suggest adding real-time values instead of a picture. Make it show the actual values. People usually don't read, so the images is the first thing they'll see.
I will get that sorted. I've created
Issue #8: FAQ: Maximum Fees should show actual real-time fees, not just a picture.From the
faq:
We have many Wallets. The Wallet which received coins into it last has the least likelihood and priority of being used to send out coins in subsequent mixes.
Are coins used in exact chronological order? If so, doesn't that make it likely that my two input transactions end up being used at the same time, possibly even using them together as inputs for a new withdrawal? That would make it obvious my transactions were both sent to the same service.
- Many wallets
- Many UTXOs in each wallet, e.g. 100+ per wallet
- It is Wallets, but not UTXOs are cycled in chronological order
The code tries it's best to not combine UTXOs in outgoing transactions, however that can happen, of which it would be unlikely to pick another deposit UTXO from the same trade due to the amount of UTXOs available within a Wallet.
For the moment, one could ensure that UTXOs can not be co-spent if they happen to both originate from the same deposit input transaction, but we could not follow the same logic across multiple input transactions as that would mean keeping a permanent record of which UTXOs were linked to which trades, which goes against the 100% no-logs policy. We could however try to influence it so that UTXOs in the same Wallet with more disparate block heights are preferred as potential partners as opposed to those confirmed closer to each other. We will continue to have a think about this.
What we can do and actually do manually, from time to time, is shift coins around internally, not co-spending any of them in a variety of ways.
For internal UTXOs "at rest" not associated with any users or trades, we were previously thinking about writing code to participate in JoinMarket CoinJoins as a Maker or connecting to a Wasabi co-ordinator node and joining in with their CoinJoins, but for the moment have decided against this because of the possibility of exchanges then flagging-up coins that have come from Anonymixer as being suspected of participating in CoinJoins, because they would've been. So internally shifting stuff around for the moment is the weapon of choice.
This is the first mixer that introduces anything new in more than 3 years.
We know you like the Lightning Network and in this case you were sending some funds to your Pheonix Wallet, presumably to open a new channel. It may or may not interest you to know that we've been working on adding Lightning into Anonymixer.
The suggestion is, in the future you could give Anonymixer a Lightning Invoice on the Outputs Screen and then send a regular on-chain deposit to Anonymixer which would then pay your Lightning Invoice(s), re-balancing and re-populating your existing open channel(s).
Likewise, the reverse: say you have received many payments via Lightning and can no longer accept funds into these channels and wish to on-chain some of those funds without closing your channels, you could deposit funds to an Anonymixer Deposit Lightning Invoice(s), which would result in your chosen on-chain Output Addresses getting regular Bitcoin payments.