Weāll talk about how to do automatic payments; automatic payments is more ideal if we want a service with enough uptime that tier 1 LPs feel they can rely on it.
I have a rough idea of a semi-decentralized rubber-stamp multisig mechanism. This probably looks like a vastly dumbed-down version of what BCE might be doing, and needs polishing. Itās slow and not as convenient as clicking a few buttons, but probably good enough for tier 3.
User side
A trader needs to first register with the platform. A refundable small deposit may be needed for anti-DDOS.
For example:
To buy NBT with BTC, Alice will send about $1 dollar of BTC to a deposit address 1yyyy specified by the platform. Then she will sign an NBT address Bxxxx using a BTC address 1xxxx and send the message to the platform.
The platform will confirm the BTC deposit and register Aliceās addresses. Alice can then send BTC from 1xxxx to receive NBT at Bxxxx.
If Alice sent funds without registering by making a deposit, $1 of the funds will be treated as a deposit and the rest refunded. She can register and enjoy the platform features if she registers relevant addresses.
Server side - front end
A centralized server is used to host a website. It mainly handles registrations as a front end and broadcasts useful information such as price references. Weāll aim to sandbox the hardest security issues within the server and not directly affect transactions.
Server side - back end
There will be N independent operators controlling and approving transactions, with funds held at m-of-N multisig addresses. Each operator receives registration information from a broadcasting medium, and store their own copies. They will monitor the blockchain and do the following:
- Confirm registration states, by looking for $1 deposits
- Create, sign and broadcast transactions if deposits are received at registered addresses.
Server side - front / back end interface
There will be no exclusive channels between the front end and the backend, but the front end server should know the public keys of the operators. Front end maintenance needs to be carried out separately. The front end stores and broadcasts registration information as well as the states of multisig transactions.
As long as the public keys and addresses of the signers held on the server are correct, these cannot be spoofed or replayed; things like MITM can only prevent access to this information. The most probable risks, at first glance, are that a user may see a wrong deposit address on the website, or their registration information is lost, or multisig transactions cannot complete. On the other hand, there is a reduced risk that the operators lose their own funds.