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

Proposal to increase trade deposit to 30% #233

Closed
sqrrm opened this issue Jun 25, 2020 · 72 comments
Closed

Proposal to increase trade deposit to 30% #233

sqrrm opened this issue Jun 25, 2020 · 72 comments
Labels

Comments

@sqrrm
Copy link
Member

sqrrm commented Jun 25, 2020

This is a Bisq Network proposal. Please familiarize yourself with the submission and review process.

Due to the amount of cases reaching the arbitrator (about 1 per day) I have made a PR to increase the deposit to 30% to incentivize following the trade protocol, as can be seen in bisq-network/bisq#4330

I realize that this is a crude tool that's not helping usability. That has to be weighed against the cost of too many non bug trades not getting resolved before going to arbitration.

@wiz
Copy link
Member

wiz commented Jun 25, 2020

Thanks for proposing this. A few thoughts:

  1. Why do you feel that having 1 case per day going into arbitration is excessive? Trades can go into arbitration for many simple reasons, such as the maker simply not noticing their trade offer has been accepted, so shouldn't we work on adding native OS notifications or other methods to push traders to complete trades using the trade protocol?

  2. Locking up more Bitcoin for use in security deposits reduces the amount of Bitcoin that users can use to make offers, so I'd expect this will reduce the amount of trade offers on Bisq - can @bisq-network/growth team predict approximately how much this will reduce Bisq offers?

  3. Requiring more Bitcoin for use in security deposits increasing friction to take offers, so I'd expect this will reduce the amount of trade volume on Bisq - can @bisq-network/growth team run some numbers to predict approximately how much this will reduce Bisq volume?

  4. A few months ago, the minimum security deposit requirement was increased from 6% to 15% - how did this affect the number of arbitration cases, and how did this affect Bisq trade volume? can @bisq-network/growth team run some numbers to analyze the before and after effects of the 6% to 15% increase?

  5. How did you arrive at the 30% number, and how much do you predict this will affect the number of arbitration cases per day? If the 30% increase is not sufficient to reduce the number of arbitration cases to what you feel is acceptable, do you think we plan to again propose to increase a third time?

Regardless of all of the above, isn't having an efficient arbitration process that traders can use a necessary requirement for any decentralized P2P trading network? What if the the actual problem isn't that the security deposits are too low, but that the arbitration system itself should be improved so that 1 case per day is not "excessive" ?

@sqrrm
Copy link
Member Author

sqrrm commented Jun 25, 2020

The trade protocol we have is built to have a very low number of arbitration cases. For now we're surviving by the fact that we have an arbitrator that handles these cases. There is a rather high probability that the arbitrator will leave.

Once there is no arbitrator each user would have to go to the DAO to ask for reimbursement for each case that goes to arbitration as the DAO is the ultimate arbitrator. That leads to users not getting their funds back for a month or two, a pretty bad situation for both users and DAO contributors alike.

The jump from 15% to 30% is meant to be a significant increase. If the extra incentive doesn't help we can lower it.

I think we should have notifications, that would be great. I think the api can help with that, but that's not ready for production.

@MwithM
Copy link

MwithM commented Jun 25, 2020

Before taking this decision, we need to have a deeper understanding about why trades get into arbitration: Are sellers or buyers causing more arbitration cases? Low amounts have more cases? What about fiat vs altcoins?
Also, what happens once the trades get to mediation? Will the refund agent always give 30% of the trade funds to the victim of an unresponsive trader? What if the protocol violator claims that he just forgot, or has a bug and is not cooperating with mediators?

Before increasing the security deposit, we should enforce sellers to follow the protocol. Now they can get through a protocol violation without any penalty. #224 (comment)

I'm only willing to use a higher deposit than the default for face to face transactions. I don't see why Bisq should impose something that I, and advanced user, don't feel necessary.

@RefundAgent
Copy link

Virtually all cases that go to the Refund Agent are because one of the traders abandons the trade. The number of abandoned trades is higher when the market is volatile and most of the cases can be suspected to be future trades. That is, the price moved against the buyer who simply leaves. There are also cases where the seller don't release the btc, probably because he/she does not care enough about the security deposit.

Increasing the security deposit will give both buyer and seller more skin in the game, they will do much more to overcome any difficulty in paying, they will have incentives to speed up the trade and they will be less inclined to "forget" the trade. They will be more secure that the other trader will honour the contract and do so quickly.

If a 30% security deposit is a suitable amount is unclear but it should be tried to see how traders react. Better would be a security deposit which reflects the price of the option that an offer in reality is. I. e. the past volatility could be used to estimate the correct price of the option. The DAO must realise that an offer is an option and trying to force traders to fulfill their obligations using other means (reputation, blacklisting by "trusted" team members, ...) will be a very cludgy method indeed, probably with plenty of not intended consequences.

As it is now the Refund Agent follows the mediators suggestion since in essentially all cases one trader does not respond. Even if both traders do respond there is never anything to change. There are no known cases where the mediators have made any mistake.

Bisq should not need any mediation at all. Bisq is a platform where traders meet and make their trade, secured by the security deposit. Mediation and refunding should only be used in those rare cases where there is a bug in Bisq.

As it is now I doubt that the DAO will find anyone to replace the Refund Agent. The Refund Agent is a single point of failure which goes against the philosophy of Bisq.

@flix1
Copy link
Member

flix1 commented Jun 26, 2020

I agree that the security deposit is the most important feature securing trades and we should do much more with it.

HOWEVER it is also the biggest barrier to entry in Bisq and I'm certain it is what turns away most newbies. Consider the learning curve!

I would really NOT make a high security deposit a default, forced feature. It should be as voluntary and customizable as possible.

One thing that we could do is make the % of the security deposit much more visible in the order book and and warn accordingly. Also allow users to filter by security deposit %. Between the Payment method and Time since signing columns there should be a Security Deposit column. If it's an important feature, let's make it prominently visible for everyone!

The philosophy is to give users tools, not to force them onto a path.

image

@wiz
Copy link
Member

wiz commented Jun 26, 2020

Well of course having a TTP / CPOF for Arbitration goes against the spirit of Bisq, nobody is going to disagree with this statement, and I agree it’s an obvious security hole. But this proposal doesn’t acknowledge or address the real issue.

The elephant in the room that nobody wants to talk about, is that when the Bisq v1.2 trade protocol update removed the 2 of 3 multisig Arbitration system to eliminate the TTP, it neglected to provide a replacement Arbitration system, despite the need for Arbitration remaining present in the trade protocol.

So now Bisq is in the awkward situation where Bisq traders still need an Arbitration system and due to the lack of one they are not happy. This is very obvious in hindsight and I deal with it every day as a Mediator. I understand that our Growth team has hard data showing the XMR trading volume declined sharply immediately after the v1.2 update.

This proposal to raise the security deposits only serves to lockup more trading capital, introducing more friction and makes users less happy, driving them away further. It didn’t work last time and it won’t work this time. We will only lose more and more users and trading volume.

Instead of another band-aid, can we please address the real issue here and discuss how to best implement a properly decentralized and secure Arbitration system to give the users what they really want? Until the need for Arbitration is completely removed, which seems nearly impossible to do, Bisq still needs an Arbitration system. If you raise security deposits higher and higher you are only removing the need for Arbitration because no users will be trading on Bisq anymore.

In the past I have proposed implementing a new Arbitration system by utilizing multiple different pre-signed timelocked payout transactions that are encrypted to mediators or arbitrators, so they can decrypt and publish the one they feel is best. While my idea is still raw and needs additional discussion to resolve the remaining issues, I feel it has merit and would address the core issue Bisq is now facing.

So with all due respect I feel I need to NACK this proposal and I again ask the dev team to try harder to address the core issue here - please come up with a proposal for the new decentralized Arbitration system that was painfully missing from the v1.2 update last year.

@flix1
Copy link
Member

flix1 commented Jun 26, 2020

In the past I have proposed implementing a new Arbitration system by utilizing multiple different pre-signed timelocked payout transactions that are encrypted to mediators or arbitrators, so they can decrypt and publish the one they feel is best.

@wiz
This would definitely be a superior model to the refund agent, especially if voluntary. But I would consider operating Bisq on a sort of "freemium" model where the basic platform without arbitration, mediation or refund agent is totally free to use but you can sign up to extra services (mediation, arbitration, etc) by paying a fee. This would make the cost of those services very clear.

Arbitration has a cost. Any trade that reaches arbitration/refund agent should be heavily penalized. Not just the guilty party, both parties should suffer some cost. That is the only way to make sure that people make an effort in avoiding it.

I don't see how arbitration will ever scale 'though, unless it is 1/1000 trades. I don't see Bisq having millions of users and hundreds of arbitrators.

The trade protocol we have is built to have a very low number of arbitration cases. For now we're surviving by the fact that we have an arbitrator that handles these cases. There is a rather high probability that the arbitrator will leave

@sqrrm if we are having these problems keeping 1 arbitrator. Can you imagine what it would be like with dozens? hundreds?

@wiz
Copy link
Member

wiz commented Jun 26, 2020

Please don't confuse the removal of the need for an Arbitration system with the removal the Arbitration system, like the v1.2 update did. If you remove the system before you remove the need for the system, you just piss off the users. And even when you get the need for Arbitration down to 1 case for every 1000 trades, you still need an Arbitration system, so you can never remove the Arbitration system.

@flix1
Copy link
Member

flix1 commented Jun 26, 2020

And even when you get the need for Arbitration down to 1 case for every 1000 trades, you still need an Arbitration system, so you can never remove the Arbitration system.

No?

You could conceivably have a 2-of-2 multisig Bisq with no arbitration.

Fill or kill. Either the trade is completed or the funds are timelocked for 100 days and return to original addresses.

Consider the possibility. With a high (voluntary!) security deposit it could work well. It would be scalable and require no human interaction whatsoever.

@wiz
Copy link
Member

wiz commented Jun 26, 2020

Either the trade is completed or the funds are timelocked for 100 days and return to original addresses.

Okay, I'll sell you Bitcoin, wire the money to my bank account 1234567. Then after I get your bank wire I just wait 100 days and I get my Bitcoin back. Since there is no Arbitration you have no way to prevent this.

@flix1
Copy link
Member

flix1 commented Jun 26, 2020

Okay, I'll sell you Bitcoin, wire the money to my bank account 1234567. Then after I get your bank wire I just wait 100 days and I get my Bitcoin back. Since there is no Arbitration you have no way to prevent this.

You are right.

Then Mutually Assured Destruction: Either trade is completed or funds are locked up forever until it is.

@wiz
Copy link
Member

wiz commented Jun 26, 2020

Then Mutually Assured Destruction: Either trade is completed or funds are burned.

Okay, now that I got your bank wire. I'll only sign my key for the 2 of 2 multisig for a payout TX that pays 50% to me and 50% to you, this is also known as a ransom attack. Since you'd rather get 50% than 0% you would have no choice to accept it.

@flix1
Copy link
Member

flix1 commented Jun 26, 2020

@wiz you are making a very good case for arbitrators.

Why not have them be a voluntary feature with a fee? If they provide so much value compared to a no-arbitration system... most users will happily click on the "pick arbitrator" option.

Or even have the arbitration system be independent from Bisq. Users can still sign transactions affecting the funds locked in multisig after the fact...

@wiz
Copy link
Member

wiz commented Jun 26, 2020

The problem with using a 2 of 3 system for Arbitration is that the Arbitrators can steal all Bisq trade capital because they can just take all offers and then they have 2 of 3 keys. My proposal to keep the 2 of 2 model but have both parties create pre-signed timelocked payout TX for various scenarios, and encrypt these payout TXs to a group of trusted people who would all have to collude together to steal the funds, is also vulnerable to this attack, but using SSSS it would require several people to collude together which distributes the risk enough to make it much harder to do the attack. The risk can never be eliminated, so the only thing we can do is spread out the risk to more people and slow things down with timelocks.

@flix1
Copy link
Member

flix1 commented Jun 26, 2020

My proposal to keep the 2 of 2 model but have both parties create pre-signed timelocked payout TX for various scenarios

You have convinced me that this is the best solution.

and encrypt these payout TXs to a group of trusted people

This is the part I have a problem with. If we could remove the trusted people from the equation and have some rule-based mechanism or automatic system doing this part...

@wiz
Copy link
Member

wiz commented Jun 26, 2020

No, you can never remove trusted people from the equation, especially for fiat trades. You can only spread the trust around to more people, and slow down their action with timelocks.

When one party says they sent the funds and one party says they didn't receive the funds, someone needs to examine the evidence and make a judgement call about who they think is the fraudster. There is no way to automate this.

@flix1
Copy link
Member

flix1 commented Jun 26, 2020

Then those trusted third parties have to be:

  1. Independent from Bisq
  2. Paid
  3. Have reputation / be policed

...and if Bisq is to scale to millions of users there will have to be 100s of them.

@wiz
Copy link
Member

wiz commented Jun 26, 2020

I feel we're getting a bit off topic, the core issue that should be discussed in this proposal is that the v1.2 trade protocol has many obvious flaws, and this proposal attempts to band-aid over them. Here's another example of a major flaw in v1.2 trade protocol: bisq-network/bisq#4162

This proposal would put a very heavy burden directly onto users as an attempt to solve the shortcomings of the v1.2 trade protocol, which will not work and only drive users away. We need to talk about the v1.2 trade protocol flaws and how to fix them.

@flix1
Copy link
Member

flix1 commented Jun 26, 2020

Sorry if it's off-topic, but for me the Trusted Third Parties discussion is the most important one for Bisq. If there is no way of trading without them it... well it removes one of the biggest reasons for Bisq. The moment you have TTPs you are open to censorship since it would be easy to shut down Bisq by going after 10s or even 100s of arbitrators. If you are going to have to trust the platform you might as well go to localbitcoins or hodlhodl or another P2P market that is not a DEX.

Atomic swaps or similar would remove this problem for any Bitcoin-based altcoin (including BSQ).

An open source automated check on payment could work for other altcoins (eg: Monero) while still removing the need for TTP. If it's on a blockchain there should be a way to verify payment programatically.

Fiat payments will always be the hardest problem to solve, hence the most important. There has to be a way...

Of course the moment you get fiat on a blockchain (govt- or bank- backed stablecoins) you can use to atomic swaps...

@flix1
Copy link
Member

flix1 commented Jun 26, 2020

Fiat payments will always be the hardest problem to solve, hence the most important. There has to be a way...

There once was a project called Coinffeine that used payment channels to "stream" funds by doing consecutive micropayments while reusing a small security deposit in Bitcoin that was 100% of each micropayment. So that each micro-trade was fully backed but still you could never lose more than a small amount if something went wrong. It required an instant-payment API-enabled payment processor. It worked, although the project never took off.

But now that Lightning Network has advanced a lot, there might be a way to combine it with a Revolut, CashApp, Venmo style app to do something similar..

@wiz
Copy link
Member

wiz commented Jun 26, 2020

Bisq should not need any mediation at all. Bisq is a platform where traders meet and make their trade, secured by the security deposit.

The key word in your statement is "should" - you describe a beautiful vision of what Bisq can aspire to become someday. If Bisq actually achieves a near-zero rate of Arbitration cases, then we could discuss removing the Arbitration system, and doing so wouldn't upset users and trading volume wouldn't drop. However, it's precisely because Bisq removed the Arbitration before removing the need for Arbitration that Bisq users are unhappy and trading volume has dropped. So while everyone will likely agree that Bisq "should not need" mediation or arbitration, it still does.

Mediation and refunding should only be used in those rare cases where there is a bug in Bisq.

Again, that would "should" appearing. Again, this is a great goal. But in reality, every day we see Bisq users make mistakes, users forget about trades, users aren't properly notified on trade events, we still have the occasional scam or fraud attempt, etc. etc. - so until Bisq is absolutely perfect Bisq will still need support agents, mediators, arbitrators, etc. for the community, and if Bisq does not provide that users will go elsewhere. Increasing security deposits only drives users away.

@flix1
Copy link
Member

flix1 commented Jun 26, 2020

@wiz what do you think about making arbitration optional (and charge a fee for it)?

If it is that important then most users would choose it... and those that don't would know the risk they face without it.

Also it would allow us to gauge demand for it, play around with the fees and eventually make it self-sustaining since it would be easy to recruit more arbitrators knowing how much they get paid. It would put a clear value on it. In fact the arbitrator should decide how much to charge.

Since you only need to provide the pre-signed txs to the arbitrator... there's no need to change the 2-of-2 multisig protocol. It would not require any changes to Bisq protocol. It could even happen outside Bisq. Being an external service it would not pose a censorship threat.

@flix1
Copy link
Member

flix1 commented Jun 26, 2020

Virtually all cases that go to the Refund Agent are because one of the traders abandons the trade. The number of abandoned trades is higher when the market is volatile and most of the cases can be suspected to be future trades. That is, the price moved against the buyer who simply leaves.

@RefundAgent

Do these ever happen with faster payment methods ( <24h trade time)?

@freimair
Copy link
Member

Fiat payments will always be the hardest problem to solve, hence the most important. There has to be a way...

isn't that why we have notary trust accounts (please forgive if I got the translation wrong) in the real world?

could we do something like this? just food for thought, though...

@sqrrm
Copy link
Member Author

sqrrm commented Jun 26, 2020

It seems the discussion here has veered off topic. The question is if we should increase the trade deposit to 30%. If we don't it seems the refund agent will leave and a much worse user experience when trades go to the arbitrator-less arbitration.

This is not a proposal to ignore the issues with the trade protocol, it's a proposal to keep us going while we find better solutions.

@MwithM
Copy link

MwithM commented Jun 26, 2020

The question is if we should increase the trade deposit to 30%

Not without making sellers accountable first, and not without running some numbers to evaluate the impact. What % of total trades are going to arbitration? Maybe the trades going to arbitration aren't reduced just because there are more daily trades at Bisq, but the overall % is decreasing as the platform improves and people learns.

If it's about giving refund agents incentives to stay, I'd rather just raise the min security deposits to 20% and charge 2-5% (or a fixed fiat rate, like 10-50 USD) as arbitration costs. Those who follow the trading protocol should not suffer the costs of those who don't.

@flix1
Copy link
Member

flix1 commented Jun 26, 2020

@sqrrm

Regarding only the topic of this proposal:

It's not the first time that a security measure is put in place for everything, even payment methods or currencies that have never had an issue.

If instant payment methods never have a problem with "future trades" then any increase in the security deposit should not affect them.

I would like to recall a concept we used to have in the past and has now been almost forgotten: the demo experience. For small trades (0.01 BTC) or trades in markets with zero activity we should have fewer hurdles and as little friction as possible. I even recall the discussion on having 0% security deposit for small JPY/BTC trades when trying to kickstart that market.

What is the point of having a 15% security deposit for ARS/BTC when there hasn't been a trade in that market in 9 months? Why would you need a 30% compulsary security deposit for GBP/BTC via UK Faster Payments if there has never been fraud in that market?

If there is one area in which Bisq is still awful compared to anything we might consider competition it's the onboarding experience and first trades ever for a new user.

Please let us have some broken down data so that we only increase security where needed.

@clearwater-trust
Copy link
Member

clearwater-trust commented Jun 26, 2020

Bisq is a DEX because it cannot require KYC- NOT because it lacks trusted third parties. The developers are trusted third parties. Everyone that holds a bond is a trusted third party. Fiat trading must include a trusted third party. I don't know if that's in the form of a refund agent, arbitrator, bozo the clown... or whatever. But you MUST provide a trusted third party to fiat traders or this project is doomed.

And really the opportunity to make MONEY in this market is going to be enormous. We want BSQ to INCREASE in value. Think like a business- Not a crypto nerd.

Don't think of them as arbitrators- think of them as developers with arbitration roles.

@Conza88
Copy link

Conza88 commented Jun 26, 2020

Why does the security deposit have to be set?!

There should be a market for it.

Maybe keep the minimum, but really - I would have NO problem doing a 100% security deposit. Having made that as an offer to BUY BTC, the BTC seller would be more likely to take my trade, knowing they're secure in the trade being done?

As opposed to someone with 15% security deposit.

@ricardosaurio
Copy link

I belive this to be a no brainer. If I could use more than 50% i would.... at least for my country. If im offering a 50% security deposit, the other trader would feel safer too.

@flix1
Copy link
Member

flix1 commented Jun 29, 2020

8 buyer unresponsive or quit
8 seller does not confirm or respond.

16/28 (57%) are "unresponsive". This could easily be heavily penalized by awarding both security deposits to the responsive party. This could even be automatic, requiring little work from arbitrator/mediator/refund agent.

It would automatically:
1 Punish the unresponsive party.
2 Reward the responsive trader
3 Reduce workload for arbitrators.
4 Reduce total mediation time or at least make it predictable.

It also combines well with higher (voluntary) security deposits. It can be done with pre-signed txs so no need to change trade protocol or 2-of-2 multisig.

AND it does not require funds to flow through the donation address. So no centralized honeypot to hack, refunds to make or decisions for the DAO.

@chimp1984
Copy link

A "cancel trade" button will make the option more exotic but not change anything fundamental. The buyer will then get some refund if he defaults (uses the "cancel trade" button) which makes the option cheaper for the buyer. This needs to be compensated by a higher security deposit. Payment account reputation is separate from the issue of correctly pricing the options.

I made some statistics of the last 28 trades dating back to May 20:

8 buyer unresponsive or quit
5 buyer claims problems and does not pay
8 seller does not confirm or respond.
3 seller confirms in chat.
1 genuine bank trouble.
1 late payment
1 genuine bug
1 seller gave incorrect bank info. no trade occurred.

Three of these trades have been xmr with a trade value above 0.1 btc and two xmr below 0.1 btc. In two of those cases the seller stopped responding despite the trade value being 2.6 btc and 1.95 btc. In one xmr-trade valued above 0.1 btc the seller confirmed in the chat for unclear reasons. Of the 23 fiat trades there is only one above 0.1 btc in value.

It is impossible to say for me if buyers that claim trouble or bugs are honest or not. In all cases they don't pay.
One can also note that a seller can give wrong bank information in order to get the option of accepting a payment or not.

Thanks for the overview.

Is that distribution similar to the past months? I am surprised that there are so many seller not confirm cases. Could you post the data in more details to see amounts associated with issue (trade amount | cause for dispute)?

Those cases could be resolved by higher deposits:

8 buyer unresponsive or quit -> Future trade
5 buyer claims problems and does not pay -> Might be future trade where buyer is dishonest
8 seller does not confirm or respond. -> Here the trade amounts would be important to know. I assume with low trade amount/deposits they dont care enough.
3 seller confirms in chat. -> Can you explain more what that means? Seller did not confirm in app but in dispute chat? Why he did not confirm in app?

So we have 28% future trades, 17% likely future trades, 28% careless sellers (need more info to confirm assumption) and 10% likely careless sellers (need more info to confirm assumption).

If the above assumptions are right 83% could be avoided by a higher deposit.

I think it would be good to get a longer time period and more details from the data to be sure our analysis is correct before taking action, but so far the data confirmed our assumption that most cases could be avoided if deposit would be significantly higher.

@chimp1984
Copy link

It also combines well with higher (voluntary) security deposits. It can be done with pre-signed txs so no need to change trade protocol or 2-of-2 multisig.

AND it does not require funds to flow through the donation address. So no centralized honeypot to hack, refunds to make or decisions for the DAO.

I dont understand how that could work from a technical and security point of view. If you refer to the closed proposal with SSSS, that got considered as unsafe and was closed after I posted my concerns. In short: pre-signed payout txs cannot be held by traders as that would incentivise them to try to execute the best outcome for themselves. If it is sent to a 3rd party we have a TTP problem and are back to old arbitration system but just with a more complicated implementation.
The only way it could work would be if there would be trustless oracles and altcoin transfer could be validated in a secure way. But even there might be reasonable good solutions out there they might not be good enough when higher amounts are at stake. As well we don't have dev and research resources to go that direction.

@chimp1984
Copy link

@flix1 Actually the founders of Bisq implemented a really cool BSQ reputation bond system, it's just not hooked up to offers yet, so it's not hard at all, we just need a way to associate bonds with offers, see #138 for one idea I had

The main problem with reputation is privacy. Reputation requires identity and that does not work well with privacy. So if you link offers to a bond, one could see all trades/offers of that trader. Once the trader get de-anonymised, all his trade history is public.
The trade protocol v2 tries to solve that as well, but it is likely not feasible.

@chimp1984
Copy link

@wiz it's very hard to do user reputation. However it should be relatively easy to do payment account reputation now that we have account signing, etc...

"relatively easy" is actually a "pretty hard problem". See previous comment about identity and privacy. To get both is a hard problem. Sure we have account signing and that is a better form of identity than other forms but connecting that to offers/trades and preserve privacy is a challenge.

@chimp1984
Copy link

I like your suggestion to add a "cancel trade" button! As a mediator, I feel this would reduce the majority of cases, as users would be able to resolve it themselves. However, to financially incentivize the buyer to actually press the button, they would need to be able to recover some of their deposit back, which I feel should should start at 50% and go down to 0% over time until the timelock expires and arbitration is possible. It can be calculated in realtime and displayed as an option to the buyer.

Yes I agree that would be a good option, and refunding a part of the deposit is important to give incentive to use the feature (as well mediators cannot do a payout suggestion with 0 BTC for one side to incentivise them to accept the suggestion). The current refund might be too small though (or overall deposit too small).

@RefundAgent
I think that would solve quite a few cases as it would incentivise future traders to accept a small loss instead risking to go to arbitration and experience a larger loss. So our main problem of having too many cases would get support. Future trades would still happen but would turn more into a supported feature which might be easier to handle than a weakness in the protocol which we cannot avoid easily with punishment.

@wiz
Copy link
Member

wiz commented Jun 29, 2020

The main problem with reputation is privacy. Reputation requires identity and that does not work well with privacy. So if you link offers to a bond, one could see all trades/offers of that trader. Once the trader get de-anonymised, all his trade history is public.

Well sure, but obviously posting a bond is an optional thing, so if you care about privacy then just don't link your trades to a bond. But let's be honest, you can already do blockchain analysis to link multiple trades together unless you coinjoin before and after every single trade. So it's not like Bisq has perfect privacy right now anyway. I would be happy to link my trades together, and I would expect others would prefer to trade with me if I had a bonded reputation score, because they know I'm less likely to default on the trade and more likely to complete the trade quickly and without issues.

@wiz
Copy link
Member

wiz commented Jun 29, 2020

I dont understand how that could work from a technical and security point of view. If you refer to the closed proposal with SSSS, that got considered as unsafe and was closed after I posted my concerns.

You're right, the idea is still very early and not fully developed into something that can be implemented yet, but I feel it has potential. Maybe if we brainstorm on it together we can figure out the missing pieces.

@flix1
Copy link
Member

flix1 commented Jun 30, 2020

"relatively easy" is actually a "pretty hard problem". See previous comment about identity and privacy. To get both is a hard problem. Sure we have account signing and that is a better form of identity than other forms but connecting that to offers/trades and preserve privacy is a challenge.

I meant that Payment Account reputation is easier than User reputation... But yeah, it still brings a lot of privacy concerns. Agreed.

@flix1
Copy link
Member

flix1 commented Jun 30, 2020

In short: pre-signed payout txs cannot be held by traders as that would incentivise them to try to execute the best outcome for themselves. If it is sent to a 3rd party we have a TTP problem and are back to old arbitration system but just with a more complicated implementation.

@chimp1984

Sure, I meant that given that we do still have arbitrators, giving them signed txs, like we already do to send funds to the donation address, could open the door to more automated resolution and thus reduce workload for existing arbitrators which was the problem that this proposal brought up.

If the options are very clearly defined and based on objective parameters (eg: buyer/seller does not respond) it would allow the arbitrator to just click on a box and spend only a few seconds to resolve (once time runs out).

What's more this "multiple choice" conflict resolution would eventually open the door to automated arbitration once the API is up and running.

If the Trusted Third Party is an open source algorithm that would be very easy to scale.

Thinking particularly of XMR/BTC trades I don't see why we cannot fully automate it:

A

  1. BTC buyer does not make payment and time runs out
  2. BTC seller opens dispute
  3. BTC buyer does not respond and dispute time runs out
  4. BTC seller recovers funds and is also awarded buyers security deposit.

B

  1. BTC buyer does not make payment and time runs out
  2. BTC seller opens dispute
  3. BTC buyer responds and says they have paid
  4. Prompt requests BTC buyer to paste blockchain proof of payment
  5. Payment checked by program.
    --> IF paid THEN trade complete.
    -->IF NOT paid then trade failed. --> BTC seller recovers funds and is also awarded buyers security deposit.

C

  1. BTC buyer makes payment and time runs out
  2. BTC buyer opens dispute
  3. BTC seller does not respond and dispute time runs out
  4. BTC buyer receives BTC funds and is also awarded sellers security deposit.

D

  1. BTC buyer makes payment and time runs out
  2. BTC buyer opens dispute
  3. BTC seller responds
  4. BTC buyer responds
  5. There is a real bug or misunderstanding
  6. We are back to manual arbitration...

But from what @RefundAgent has said... it seems that case D is a very small minority of disputes.

8 buyer unresponsive or quit --> A
5 buyer claims problems and does not pay --> A?
8 seller does not confirm or respond. --> C
3 seller confirms in chat. --> B
1 genuine bank trouble. --> N/A to XMR/BTC
1 late payment --> B
1 genuine bug --> D
1 seller gave incorrect bank info. no trade occurred. --> N/A to XMR/BTC

@wiz I'm counting on you to poke wholes in this logic ;-)

@RefundAgent
Copy link

RefundAgent commented Jun 30, 2020

A more detailed breakdown of the latest disputes:

b payment problem did not pay 0.08 usd z
s did not respond 1.95 xmr
b did not respond 0.02 usd z
s no confirmation 0.022 usd z
b did not pay 0.0436 usd z
b computer problem no pay 0.022 eur s
b bug no pay 0.022 eur s
b did not respond 0.165 usd z
b bug did not pay 0.0725 usd z
s gave incorrect info n trade 0.0144 eur HalCash
b did not respond 0.022 eur s
b did not respond 0.022 eur s
genuine bug no trade 0.022 usd z
seller confirmed in chat 0.08 eur 6 june s
b bug did not pay 0.022 eur 3 june s
b did not respond 0.022 eur 3 june v1.3.4 s
s did not respond 0.033 eur s
s confirmed in chat 0.022 eur revolut
s no confirmation 0.052 eur s
s no answer 0.0359 xmr
s no answer 0.022 eur revolut
s conf in chat 0.879 xmr
s no answer 0.022 brl nbt
bank name prob no trade 0.0471 usd z
b did not respond 0.0189 gbp faster payment
b did not respond 0.022 eur 21 may v1.3.4 s
late payment 0.0426 xmr
s no answer 2.6 xmr
s no confirm 0.022 brl nbt
s no answer 2.6 xmr
s no answer 2.6 xmr
s no answer 0.022 xmr
b did not respond 0.022 eur s
b refused to pay 0.065 eur s
b did not pay 0.0219 eur revolut
b did not pay claiming bug 0.022 brl nbt
b did not respond 0.0219 usd z
s could not confirm, bug 0.0377 usd z
s did not confirm 0.052 usd 5 may v1.3.4 z
some bug 0.014 bsq
s could not respond 0.074 xmr
b did not respond 0.016 eur s
s did not respond 2.6 xmr 25 april
b did not respond 0.022 eur sepa instant
s did not respond 0.032 eur
s did not respond 2.6 xmr
s could not confirm, bug 0.237 eur 7 april, v1.2.7 s

The numbers are the trade value in btc, including the security deposits. In most cases (in particular with non-responding traders) the RA has no further information, and relies on the mediators suggestion. b means buyer and s means seller. The last entry is the payment method, s = sepa, z = zelle, nbt = national bank transfer

There are two problems. The first is too many mediation cases which will to some extent be solved with a "cancel trade" button. This will not solve the mispriced option problem. Sellers will leave Bisq when they discover that trades that will be concluded only if the price moves against them or does not move much. This problem can be alleviated either by having a correctly set security deposit or policing. Note that the price of options is high when the volatility is high and this is a real cost of volatility. The cost of a security deposit in Bisq is not very high since it corresponds to the lost interest during the trading time. A well-set security deposit will not only decrease the trading time, it will also incentivise the traders to publish offers which are close to the market price.

@flix1
Copy link
Member

flix1 commented Jun 30, 2020

Thinking some more about this... the closer we can get human dispute resolution to how a true oracle would work... the easier it will be in the future to remove TTPs completely.

Bisq is a DEX because it cannot require KYC- NOT because it lacks trusted third parties. The developers are trusted third parties. Everyone that holds a bond is a trusted third party. Fiat trading must include a trusted third party.

And really the opportunity to make MONEY in this market is going to be enormous. We want BSQ to INCREASE in value. Think like a business- Not a crypto nerd.

I have to disagree with you @clearwater-trust. Unfortunately experience has taught me that any central point of failure will be attacked by regulators and they will impose KYC or censor the market. I have seen it a million times. But let me just point you to one example:

Shapeshift.

They had the best legal advice on how to not be custodians so that they would not have to do KYC. Erik Voorhees was adamant that they would never do KYC. He left NY after the Bitlicense was approved. They built it all the right way: no custody, no touching user funds, no accumulating user data, etc... They were so proud of their NoAccountNeeded hashtag!

The minute that their volume grew large enough they were called up and given a choice: submit or close. When you have employees, a company, investors... it's a very tough choice. Now they have KYC.

I am glad that the founders of Bisq have followed Satoshi's example and left. Otherwise they could be pressured.

It would be so easy for regulators to doxx a few dozen Bisq arbitrators to shut Bisq down or destroy trust in the market. They will be a target the minute that volumes grow to be significant.

@flix1
Copy link
Member

flix1 commented Jun 30, 2020

@RefundAgent thank you very much for the additional detail. This is very useful. Any chance that you would have info on payment methods? It would help test my theory that faster payment methods have fewer "future trades" problems.

BTW less than 30 disputed trades out of more than 3000 completed trades in the period is absolutely amazing!
It gives me great hope that Bisq is on its way to success!

@clearwater-trust
Copy link
Member

clearwater-trust commented Jun 30, 2020

@flix1
Erik Voorhees is a Corporate Shill.

Bisq is not a corporation. Do not be afraid of the DAO. Let it be our guide in these matters.

Your blind faith in the machine world of code, as if it can someday replace people of good standing (and massive bonds), is disturbing.

You cannot code "the oracle".

A human arbitrator is just like a developer- with the arbitrator role.

@RefundAgent
That is very helpful info. Thank you.

What are you doing with the security deposits?
Why have you not posted a bond?

@flix1
Copy link
Member

flix1 commented Jun 30, 2020

@clearwater-trust Ignoring your ad-hominems and dismissive tone and moving past it to focus on the arguments...

10 years of experience in Bitcoin shows that every single exchange, be it centralized or P2P, has been pressured to become regulated or forced to close the moment that their volume became sufficient to merit attention. Being a DAO affords some protection, but it is not a complete safeguard. The day a terrorist is caught using Bisq there will be headlines and there will be massive regulator scrutiny. As Bisq grows to 100.000s of users the probability of a bad actor being among them approaches 1.

100s of years of contract law shows what even with recourse to human judges and arbitration, the simpler and clearer a contract is, the easier it is to enforce and the less need for dispute resolution. Since the problem here as referenced by @sqrrm at the top is too many disputes... I think that simplifying and clarifying the Bisq contract is a good direction to go regardless of whether an ultimate goal of full disintermediation can be reached.

If it could be reached (I'm definitely not certain that it can and have no blind faith in perfect code) it would be very superior to a system with TTP. Even if it can only be partially reached (say 99% of cases are automatic and only 1% of disputes require TTP intervention) it would still be a major breakthrough.

In fact Bisq already achieves over 95% P2P trades without requiring mediation or arbitration. 1 arbitration case a day is a huge success. If we can get it down to 0.1% we would have gained a lot.

@clearwater-trust
Copy link
Member

100s of years of contract law...

Corporate Law is Over! They are all going to hell where they belong! Don't get stuck in the past.

We have real accountability on our side!

Use the DAO!

@RefundAgent
Copy link

Introducing a "cancel trade" button makes the offers into options also for the seller and the security deposits should be symmetric. It will make the offers more similar to American options (with a user-chosen expiration date) than European options (with a fixed strike date). I assume here that both traders can choose to cancel the trade.

@flix1 Payment methods are now in the data.

@sqrrm
Copy link
Member Author

sqrrm commented Jul 1, 2020

@RefundAgent with the PR Deposit improvements that introduces symmetric deposits and Add feature to cancel a trade being worked on I think that's what we'll have.

@MwithM
Copy link

MwithM commented Jul 3, 2020

I like the ideas on the Deposits pull request because it still leaves the option to use the 15% security deposit and only suggests a security deposit based on current volatility.

But still, sellers stop answering and they can omit mediator's suggestion: that's as critical as the security deposit, maybe even more. Symmetric deposits won't help buyers if sellers are not accountable when they don't follow the trading protocol. To fix this, a software lock seems good ennough

Furthermore, I'd like to study a few changes for arbitration:

  1. Reduce timelock trigger time, to reduce collateral needs and let users get back their money earlier.
  2. Copayment for arbitration, to make the costs of arbitration more explicit.
  3. Allow more than 1 arbitrator, to reduce the high amount of capital needs for this role.

We should keep discussing at #proposals channel the pros and cons of this changes, and what numbers should be used. I'll make the proposals after considering your points.

@chimp1984
Copy link

chimp1984 commented Jul 5, 2020

I assume here that both traders can choose to cancel the trade.

If we allow that we must make very clear that buyer only can accept cancelation if he has not started payment yet. If users read instructions that should be not an issue, but we know they often don't read and it might be just a new source of problems. It also would increase number of "option trades" which should be not the preferred operation mode in Bisq. It might be frustrating for users who just want to get in or out of BTC to be the "victim" of speculative traders and might decrease user experience for such traders. I think we should only use the cancel button for the buyer as we cannot avoid option trades in that case.

@MwithM
Copy link

MwithM commented Aug 17, 2020

Closed as approved (with several changes from the original proposal): bisq-network/bisq#4347

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests