Wallet

接受零確認付款時如何將風險降至最低?

  • March 7, 2019

我正在嘗試設置一種在現實生活中接受比特幣付款的方式,在這種情況下,等待確認通常不是一種選擇。我知道這絕不是 100% 無風險的(尤其是像 bitundo.com 這樣的垃圾),我只是想將風險降到最低。

我有一個比特幣核心錢包,裡面有一堆未使用的地址。我給客戶一個地址,他寄錢,現在我可以做一些事情:(全部自動化,即通過某種應用程序或腳本)

  1. 檢查(未確認的)交易是否出現在我自己的節點/我的錢包中
  2. 使用 blockr.io 和 blockchain.info 等線上 API 檢查(未確認的)交易是否出現在網站上
  3. 檢查我是否在我的節點或 API 站點上沒有看到類似的交易(來自相同的輸入地址,但到另一個輸出地址,即雙花嘗試)。

如果 1 或 2 正常且 3 沒有發生例如 5 到 10 秒,那麼此時交易如何(不確定)確定?

我注意到像 bitpay 和 coinbase 這樣的支付提供商可以立即接受付款,他們如何區分合法交易和雙重支付嘗試?

從 <http://www.cryptocoinsnews.com/news/the-mathematically-secure-way-to-accept-zero-confirmation-transactions/2014/02/13>可以看到像 MyCelium 和 BitPay 這樣的服務可能在做什麼:

更具體地說,每增加一秒,就會有更大比例的活躍比特幣節點聽到原始交易,並且查看區塊鏈的每個人都可以越來越確定該交易將在下一個區塊中被探勘並收到一個確認,然後是兩個,依此類推等等。

這意味著任何比特幣交易都可以在零確認的情況下被接受,並具有數學推導的置信水平,有些人稱之為“交易可信度”。這種交易可信度測量向我們保證,即使嘗試了雙花,原始且正確的交易已經被過度傳播而無法被超越。

但是正如您恰當地指出的那樣,如果您不信任發件人,就沒有 100% 無風險的方法可以做到這一點。這就是為什麼區塊鏈首先存在的原因。

依賴“交易信心”的一個風險是,網路中沒有任何東西可以阻止某人直接向礦工送出雙花交易,而無需將其廣播到整個網路,根據協議,任何阻止這些礦工find 應該選擇他們的秘密,而不是他們向網路廣播的那個。無論網路中有多少人看到公開交易,這都是一種風險,這就是為什麼你不能對從未進入區塊的交易有 100% 的信心的原因之一。

特別是,如果您接受一個 0 確認交易,該交易花費了其他 0 確認交易的輸入,則風險要大得多,因為直接給您的交易或其任何 0 確認輸入都可能對您的損害。

坦率地說,即使是一確認交易也不是沒有風險的。即使在正常情況下,區塊也會成為孤立的,這可能會為雙花創造一個視窗,因為獲勝的分支可能無法像失敗的分支那樣解決交易。

如果你真的想盡量減少在速度很重要的“現實生活”(又名實體)情況下接受 BTC 的風險,我想不出比使用像這樣的服務更好的主意了Coinbase(無從屬關係)。這些服務的運作規模足以承受雙花造成的損失,這種情況應該很少見,因此您不必擔心。目前,他們通過對選擇這樣做的商家非常有吸引力來增加採用貨幣的經濟動機。

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