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

Off-chain trade protocol for small amounts using merit, bonds and proof of burn #324

Closed
chimp1984 opened this issue Mar 17, 2021 · 5 comments
Labels
a:proposal https://bisq.wiki/Proposals re:features

Comments

@chimp1984
Copy link

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

I would like to propose a model for off-chain trade protocol inspired by the off-chain keybase channel experiment of @pazza83. It will have some limitations and will work only for lower amounts, but I think it could help in that area where the high capital requirements for collateral and high miner fees hurt most.

Overview:

  • Seller is maker and does not need to pay trade fee and do not need to reserve funds
  • A buyer taking the offer need to send the fiat first, and once the seller has received it they send the BTC (outside Bisq trade protocol, could be done via any wallet or even LN if both agree). Buyer do not pay a trade fee (also no tx fee as buyer is receiver of the BTC). The price premium covers the sellers costs on fees (see below), so the fees are indirectly shared via the trade price.
  • A seller gets permission via a combination of DAO merit, bonded BSQ and burned BSQ via proof of burn. The burned BSQ serve as replacement for the trade fees. Merit is hardening security as for a scammer its much harder to earn BSQ by contributions rather than to only buy BSQ for a bond. The bond enables punishment if the seller is a scammer (can be burned via DAO confiscation request).
  • I think limiting it to Fiat is enough as for altcoins there are no low trade limits causing those problems with too high relative costs on miner fees and collateral requirements.

Suggested parameters:

  • Required merit: 10 000 BSQ
  • Required bond: 10 000 BSQ locked up for 4 months
  • Burned BSQ via proof of burn: 100 BSQ/month
  • Max trade amount: Equivalent to 300 USD
  • Max trade duration: 4 days

How to implement it:

The merit, bond and the burned BSQ can be verified in the app (requires the DAO to be activated and synced). Only if those requirements are met a user can make sell-BTC offers. The peer will verify offers as well.

Integrating it into the offerbook, trade domain and UI is a bigger challenge. It comes with similar problems like the BSQ atomic swap project @sqrrm is working on. The current offer/trade domain is tailored around the current trade protocol and data structures. There is no easy way to extend and change that as it has implications all over the place (mediation, trade history, statistics,....).
One approach is to try to squeeze in the new model into the existing, but that will lead to lot of technical debt and ugly code.
To generalize the existing domain to the extent required here is also pretty challenging.
Another approach is to build a parallel more generic infrastructure. The benefit here would be to be more flexible for other future protocols like XMR atomic swaps.

So unfortunately the dev effort for integrating that is quite large.

Risks:

  • There will be only a few such sellers and they can collect more user data as normal users. On the other hand there is privacy gain on the BTC blockchain side as the trade protocol has no fingerprint in the blockchain anymore. Still the sellers wallet once identified can act as root for finding potential Bisq users addresses. CoinJoin would help here but adds more miner fee costs.
  • Sellers might get issues with banks and activity might be considered as a profesional activity requireing licensing. Sellers have to check for themself to not take any legal risks.
  • Sellers lose privacy as their permission is linked to the GH identity for the merit. This identity can be still anonymous but real anonymity is hard...
  • The bond might not cover the potential losses if a seller is a scammer and if open parallel trade amounts exceeds the bond. I think this risk can be communicated to the buyer and be made clear that this trade option carries higher risk than the normal trade protocol. If buyer agrees they carry the risk. I think if we mix in enough merit requirement the realistic risk for scam is very low.
@MwithM
Copy link

MwithM commented Mar 18, 2021

Using merit is a great measure for buyers, but stops me or other contributors from creating a sock puppet account to gain privacy.
I don't think there would be many sellers under this conditions.

@chimp1984
Copy link
Author

For fiat privacy is very limited anyway as the trade peer will know your payment account data which in many cases include the name.

@pazza83
Copy link

pazza83 commented Mar 18, 2021

Thanks @chimp1984 for making this proposal.

Taking away all miner fees would enable small offers of $300 or under to be made more of benefit to both buyers and sellers. This would likely result in more offers of $300 or less being made / taken.

I agree that the risk would be low considering the high bond amount.

I can see how merit hardens security but I also think it would decrease participation of sellers that would like to get involved.

Sellers with bonds having having the ability to make feeless offers, and also a requirement to make enough trades to make the 100 BSQ/month or equivalent, plus profit, could lead to a saturation of small offers from those sellers. This level of saturation, loss of some aspects of privacy, and also counterparties able to take offers at no fee with no penalty for late payment, no payment, spam, bad intentions etc would may be off putting to potential sellers wanting to use such a system.

To protect against privacy
If merit value where not to be used it would require the trade to be proportional to an amount bonded say 50% Trades to bond. This would also give the level of security required but I assume would be more complicated to develop? This would also resolve the potential for over saturation of bonded sellers offers.

To protect against late payment, no payment, spam, bad intentions etc
Maybe the lightning network could be used? Taker would pay buyer $5 worth of BTC equivalent over lightning network when taking offer before account details are released.

I think this proposal also helps lead toward a potential scenario of Bisq potentially being used to trade other small value assets off chain.

@chimp1984
Copy link
Author

To limit offers by bond would not be too complicated, just to follow open/closed trades is the hard part which is likely not possible without a blockchain.
The merit could be also used optionally to signal extra security for the buyer. Bond can be defined by allowed parallel offers, so per offer some bond amount. maybe burned BSQ as well...

But the main problem is still how to add new protocols and support that in parallel in Bisq.
Bisq was not designed as multi-protocol platform (as no other dex I am aware of). It is a bit like changing the drive of a car from a diesel to electric motor. This is a real challenge....

@pazza83
Copy link

pazza83 commented May 31, 2021

Hi @chimp1984 thanks for the proposal. I am doing some housekeeping on the proposals. Please can you take steps to move this forward or alternatively close the proposal.

Not sure if this is something to be considered / included with the development of Misq?

Re: https://bisq.wiki/Proposals

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a:proposal https://bisq.wiki/Proposals re:features
Projects
None yet
Development

No branches or pull requests

3 participants