家住合肥的资深比特币玩家王尼玛,持有比特币 41391.58 BTC,是知名的比特币高帅富,但是王尼玛最近有一些烦恼。
后来王尼玛了解到了 Digcoin 时价交易行:不挂单!卖出比特币没有手续费!三次确认之后直接付款!
如此的方便快捷,他和他的小伙伴们都惊呆了!
https://digco.in/exchange欢迎来 Digcoin 时价交易行卖币~
其實有更好的方法, 而且你們和客戶皆沒有風險 (現在你們承受了因價格上升帶來的double-spend風險)
1. 客戶向交易所提供其public key (pubkey-1)
2. 交易所產生一個新的public key (pubkey-2), 加上客戶的pubkey-1, 產生一個2-of-2 P2SH地址 (address-1)
3. 客戶向address-1制作一個存款交易(tx-1), 但不廣播
4. 客戶把tx-1的hash及相應的output index告訴交易所, 並告知一個客戶獨佔的退款地址(address-2)
5. 根據客戶提供的hash及output index, 交易所制作一個交易(tx-2), 把tx-1收到的bitcoin以locktime形式發回address-2. (locktime就象期票, 有關交易在locktime後才生效)
6. 客戶收到tx-2, 覺得滿意後, 廣播tx-1
7. 交易所看到tx-1, 覺得滿意後, 經過數個確認, 承認tx-1
在locktime到期前, 如客戶想賣出bitcoin:
1. 客戶以pubkey-1簽署address-1, 把bitcoin發送到交易所獨佔的地址 (address-3), 稱為tx-3
2. 交易所以pubkey-2簽署tx-3, 並立即(*)發佈
3. 由於沒有double-spend風險, 交易所可以立即承認到賬.
(* 其實不一定要立即發佈, 只要在locktime到期前數小時發佈即可; 不立即發佈還可做到micropayment, 參閱bitcoinj的最新發佈)
在locktime到期前, 如客戶想提早取回bitcoin:
1. 客戶把自己的地址 (address-4)告訴交易所
2. 交易所以pubkey-2簽署, 把address-1的錢送到 address-4, 稱為tx-4; 簽署後, 交易所不再承認tx-1
3. 客戶以pubkey-1簽署tx-4並發佈, 成功取回鎖定的bitcoin
在locktime接近到期, 或到期後:
1. 交易所因double spend風險而不再承認tx-1
2. 客戶廣播tx-2, 取回bitcoin
若交易所突然倒閉, 客戶只需等到locktime之後, 就可取回bitcoin. 除非是剛好在發佈tx-3後立即倒閉, 則沒有辦法了. 但風險已大大減低
現在bitcoinj已可做到以上功能, 我相信在兩年以內這種付款方式必成主流. 其實我很有興趣制作首個這樣的項目.
(為簡化討論我用了很多術語, 如有不明白可再問)