[MIP 004] Deposit/widthdrawal system without centralised bank account
So i know there has been the idea to stop programming and start testing. And i know that we have a lot of crazy ideas and not much actually usable. So think of this as a possible longer-term idea...
I by no means want to further complicate the widthdrawal system keiran has been working on... and i dont really feel able to contribute to that cos ive never done anything with state machines.
But I have been thinking how to make deposits and widthdrawals to and from fiat for mmt in a non-hierarchical way without needing a group bank account.
TL;DR - I am suggesting we use our personal bank accounts, with any oweings to the project backed up by a crypto stake on our mmt account. The project itself would have no bank account and own no fiat currency.
Heres my suggestion:
- Alice is an mmt member who owns some crypto 'on mmt' (in best case stored in a multi-signature wallet). Alice is happy to do some administration for mmt.
- Bob is a new member who would like to buy some crypto for 200 euros.
- Bob makes a request to deposit euros to mmt
- Alice responds to the request by marking it as 'in progress', and sending her personal bank details to Bob via some secure communication method.
- Bob transfers euros to alice and posts 'payment sent' to mmt.
- Alice acknoledges 'payment recieved' and her mmt euro balance is debited 200eur. If this gives her a negative balance (suppose she has no euros on her mmt account so she now owes the project 200 euro) a corresponding amount of her crypto assets are 'locked' in that she cannot widthdraw them. This doesnt have to involve anything too complicated, just a portion of her crypto is moved to a 'non-widthdrawable' section of her account.
- Bobs mmt account is credited 200 euro. Bob can now buy some cryptocurrency on mmt.
...then sometime later...
- Along comes Charlie, an mmt member who wants to 'cash out' (widthdraw fiat) euros from his mmt account.
- Charlie makes a widthdrawal request.
- Alice accepts and Charlie sends her his bank details.
- Alice transfers euros to Charlie and once he acknowledges that she is credited euros on mmt. If she had a negative euro balance, a portion of her crypto on mmt will be 'unlocked' and available for her to widthdraw again.
If, in the time inbetween Alice was to disappear to the Bahamas (or Fiji) whilst still oweing euros to mmt, that wouldnt be a problem as she has her crypto stake 'locked'.
I would be happy to do this myself. That is, i would put my crypto on mmt, and make and recieve small bank transactions (say under eur1000) with other members.
Different people might feel differently about doing this and might want to for example only do bank transactions with members they know personally or who have been members for a long time - that would be fine, they can decide themselves which deposit/widthdrawal requests they want to take on, and nobody has obligations.
- Does not require anybody to be constantly available.
- We can avoid international bank transfer fees only taking on transactions with people using the same currency.
- Might create a feeling of 'we are all crew'.
- By spreading the bank transactions accross many of us, we are much less likely to get problems from our bank suspecting money laudering.
- We would definately need a conflict resolution system. What if alice lies and says she never recieved payment from Bob?
- Relies to some extent on trust. Might make it difficult for newcomer or people nobody knows to make withdrawals.
- People could end up waiting a long time for a big widthdrawal.
- Much more complicated than having a single fiat account
- It will only work if there are roughly equal tendencies to deposit and widthdraw. Otherwise someone will need to buy or sell crypto externally.