链上原生实现,可以参考 Steem :
https://steemit.com/escrow/@ xtar/open-source-standalone-gui-for-steem-escrow-transactions
不改底层的话,目前可以用 2/3 多重签名来搞,虽然流程稍微有点复杂,但是可以自动化完成,也就是说,需要做个 UI 。
设想流程如下:
1. 中介组织 A 创建一批账号,比如A1~A100,拥有完全权限。账号数量决定可以同时进行的交易数量。
2. 卖方B在系统外比如taobao上挂单,比如卖 1 BTC,要价 10000 BITCNY,BTS账号为 B
3. 买方C看到卖方的挂单,发起包含如下几个操作的提案(提案一):
a) 预付中介费
b) 从A1-A100中选择一个空闲账号比如 AX,修改AX权限为 A+B+C 的2/3多重签名
c) 将货款付到 AX
4. 买方C批准提案一,对a、c操作授权
5. 中介A批准提案一,对b操作授权
如果AX和C账号余额足够,则操作完成,货款到达AX;如果余额不足,则所有操作不生效。
6. 中介A或者买方C通知卖方B发货
7. 卖方B发货后,发起包含如下几个操作的提案(提案二):
d)从AX支付款项到B
e)将AX权限设置为A完全控制
8. 卖方B批准提案二,对d、e操作部分授权
9. 买方C收到货,批准提案二,对d、e操作完成授权。
正常情况下,交易完成,AX账号回收到A所有,可以后续使用。
如果发生意外,B和C可自行协商款项去向,无需中介参与。
发生争议的情况下,由中介仲裁,决定多少货款返回C,多少付给B
有个情况是买卖家可能合谋“偷走“中介账号。这个问题,一开始可以多收点中介费,包含一个押金,这样交易双方有动力归还账号。退押金的操作需要中介参与。
交易量大的买家、卖家可以自备多个账号,这样的话,只有在发生争议的时候,才需要中介参与。
理论上中介可能和任何一方合谋欺骗另一方。这个采用系统外的口碑、第三方监测来尽量避免发生。同时,单笔交易标的不宜过大。也可以采用中介交押金到理事会、或者威望更高的第三方组织用多重签名的方式来管理。
以上,望抛砖引玉。