Reading some unstructured sources, here is what I learned:
With that in mind, we would like to accept 0-conf payment for these small (somewhere between 0-2 BCH)
How can we safely do that? Given our node is reliably connecting to 99% of hash power.
My first thougth is that when a pending transaction arrive, we can wait 30 seconds until it and its double-spent version has reach most of the network and then check with our bitcoind node again. If the transaction still there then we accept it. To do this we need to know explicitly what will our bitcoind (Bitcoin-ABC) node will behave if it see a double spent version. Would it mark the original transaction with some flag or it just simply rejected the double spent version?
Simply rejected the double spent version could mean another miner may have received the double spent version first and will include it in a potential block so I would like to think that's not the case.
Please advice.
@phuongnd08 I think 2 BCH would be too large for 0-confirmation, given the price now is about $1000.
The amount that is less than $50 might be more appropriate.
Agree with you on your opinion as a whole.
Hi,
As you should know by now, There is a HF on Nov, 13 to fix you point 3. So that's already something.
On a more general strategy, I would first limit the amount I'd accept as 0-conf. It's probably ok for $100 , maybe not for $1000 . It all depends on the risk profile you are willing to take.
The way I'd handle it is that way: have a few nodes across the globe. If you don't see a double spend in say 20s (the exact number would also depends here on the risk profile you want to have) then consider it good. If you see a double spend, then you'll have to wait for a confirmation in a block.
Sorry for asking noob question: Given my flow is like this, and now I'm at a single node:
I have an address at A1
I listen to bitcoind for new transactions.
Then bitcoind send me transaction T1 funding A1
Somehow in 20 seconds, a double spend T2 arrived. Would my bitcoind also send T2 to me or will it just silently drop T2?
If you are reliably connected to 99.9% of hashpower;
then 30 second wait time is not significantly better than 5 second wait time.
For point of sale terminals, I expect eventually there would be eventually be a good business for a PoS terminal serving merchants to charge something like 0.15% to guarantee such transactions under 1BCH in 5 sec as a transaction insurance against double spends. Its far less than credit cards and a better service to the merchant, (no charge back). These ways to transfer risk are outside the scope of a reference implementation, but could reasonably be in a specialty implementation for PoS.
@josephNLD Great idea indeed!
It looks like this question was answered by deadalnix already.
Most helpful comment
Hi,
As you should know by now, There is a HF on Nov, 13 to fix you point 3. So that's already something.
On a more general strategy, I would first limit the amount I'd accept as 0-conf. It's probably ok for $100 , maybe not for $1000 . It all depends on the risk profile you are willing to take.
The way I'd handle it is that way: have a few nodes across the globe. If you don't see a double spend in say 20s (the exact number would also depends here on the risk profile you want to have) then consider it good. If you see a double spend, then you'll have to wait for a confirmation in a block.