Transactions

買方試圖獲得系統時如何處理?(法幣價格的線上商店,也可以使用 BTC 付款)

  • July 26, 2020

我是一名開發人員。我有一個定制的線上商店,程式碼是我自己編寫的,我在那里以法定貨幣銷售產品。我計劃引入比特幣支付。

**問題:**客戶可能會試圖利用比特幣價格總是波動的事實來獲得系統。

**例如:**週一 BTC 或任何抽象代幣的價格為 100 美元,週二則為 75 美元。

一位客戶週一下單 500 美元,打算用 BTC 付款。商店將為其生成價格:500 美元 => 5 BTC。但是客戶等了一天(“可能明天 BTC 會下降?讓我們看看”)並在周二發送這 5 個 BTC,但聲稱他真的在周一發送了比特幣。

也就是說,他應該給我 6.66…. BTC(週二匯率,500 美元 = 6.66 BTC)而不是 5 BTC(週一匯率,500 美元 = 5 BTC)。**截至週二,**我最終損失了 6.66 - 5 BTC = 1.66 BTC 。

題:

如何處理這種情況?我怎麼知道客戶在星期一給我發了硬幣,當時 BTC 更貴,而不是在星期二?

筆記:

  • 在這一點上,我不想執行一個完整的節點,因為我想讓事情變得簡單。這是現在。我正在使用 Electrum,我認為它的 API 可以。或者至少半手動檢查比特幣支付會起作用,因為我不希望有大量訂單,更不用說比特幣了。
  • 我不考慮使用第三方支付處理器或軟體來解決此問題。我可能會使用其中的一些公共 API,但我不想與他們簽約,通過 KYC,向他們支付費用……Electrum 錢包在這個階段還可以,類似的事情也會做。
  • 問題與算法有關,與軟體或支付服務無關。

您似乎對貨幣市場(特別是比特幣)的運作方式有些困惑,因此我將使用您的範例來分解使用比特幣的支付服務是如何運作的。

您有一家商店以 500 美元的價格出售一件商品,比如說一個籃子。

週一,1 BTC = 100 美元。客戶在星期一下訂單,您根據該價格生成發票 - 客戶需要向您發送 5 BTC。您記下生成此發票的時間,例如 13:00。

場景一:

客戶在周一向您發送 5 BTC,並在您的發票生成後 60 分鐘內將其開採到一個區塊中。這意味著該區塊必須在周一 14:01 之前開採。

在這種情況下,一切正常 - 你擁有你的 BTC,並且可以繼續以你想要的價格將其清算為法定貨幣

場景二:

該交易在周一廣播,但由於出塊時間慢或費用低,週一沒有被挖到一個區塊中。

在這種情況下,在生成發票 60 分鐘後,您只需取消訂單,然後將退還 BTC 的交易發回給客戶 - 請記住,即使未確認父級,也可以進行退款交易,它們都將按順序開採。

您應該只使用傳入的硬幣進行退款,以避免某些類別的攻擊。

現在,如果客戶仍希望繼續,客戶可以嘗試下新訂單 - 新訂單將使用新訂單時的匯率開具發票。

場景 3:

該交易直到週二才廣播,但客戶聲稱它是在周一發送的。

這實際上與場景 2 相同 - 訂單在下達 60 分鐘後被取消,一旦週二在網路上看到交易,您就進行了退款交易。


這是實現您所要求的那種價格波動保護的唯一明智的方法 - 如果這對於您的案例來說是不可接受的,您應該考慮使用波動性較小的代幣或具有更快出塊時間的代幣,而這不太可能成為一個問題。

引用自:https://bitcoin.stackexchange.com/questions/97186