Author

Topic: Does reversal occur with bitcoin transaction. (Read 233 times)

sr. member
Activity: 854
Merit: 424
I stand with Ukraine!
It was fixed by Jameson Lopp. He even informed us here.

The rounding error was an unintentional result of me taking the form input and running it through parseInt, which truncates all decimal precision. I've changed that to parseFloat - the discrepancy is now resolved.
legendary
Activity: 2310
Merit: 4085
Farewell o_e_l_e_o
I remember there's detailed formula and website which show such calculation, but i couldn't recall either of them.

Edit: Check https://jlopp.github.io/bitcoin-confirmation-risk-calculator for risk calculator.
I linked them in my above post.  Cheesy

In addition, the tool from J. Lopp has a small bug. It does not take into account number after the decimal point. You can test it with two numbers like 30 and 30.1 or 30.99 and 31. Difference only occurs for numbers 30 and 31.

That tool is more accurate: https://web.archive.org/web/20181231045818/https://people.xiph.org/~greg/attack_success.html

Anyone uses Github, please pull a request to J. Lopp and inform him about the bug.
legendary
Activity: 1512
Merit: 4795
Leading Crypto Sports Betting & Casino Platform
Why some services require only 2?
Probably due to either specific risk mitigation or avoid stale/orphan block. Alternatively they simply follow what other service does.
@PawGo
If two miners mine the same block and one become orpan as miners build on the block with the longest chain, transactions in the orpan block are most likely on the block that is not orphaned. If the transaction is not there and it got back to the mempool, the transaction would be confirmed again. There is possibility that the mempool congestion can increase and cause the transaction to be dropped from mempool, but I think the chance that this can happen is negligible.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
Yes, of course, but show me please the proof why 6 confirmations are safe and 5 not. Is it just a "unwritten standard"?
Bitcoin Core uses 6 confirmations by default, so I guess that's where it comes from. But other than that, it's more or less arbitrary. I stop worrying about a transaction much sooner Smiley
legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
Quote
The more the confirmation, the better the security.
Although true, for most practical applications 1 confirmation is enough. If it's a very large amount, 6 is enough.

I always forgot to check - is there any particular reason for 6 confirmations? Why 6 not 7 or 5?

IIRC because with less than 50% hashrate, replacing 6 block has low chance to success. I remember there's detailed formula and website which show such calculation, but i couldn't recall either of them.

Edit: Check https://jlopp.github.io/bitcoin-confirmation-risk-calculator for risk calculator.
Edit 2: As @tranthidung said on below post, https://web.archive.org/web/20181231045818/https://people.xiph.org/~greg/attack_success.html is better/more accurate tool.

Why some services require only 2?

Probably due to either specific risk mitigation or avoid stale/orphan block. Alternatively they simply follow what other service does.

I guess it is related to amount of work needed to create 6 blocks, but is there any correlation with amount transmitted?

Yes. With extremely high amount, theoretically miner/pool could earn more money by perform double-spend attack rather than mining block.
legendary
Activity: 952
Merit: 1385
I always forgot to check - is there any particular reason for 6 confirmations? Why 6 not 7 or 5? Why some services require only 2? I guess it is related to amount of work needed to create 6 blocks, but is there any correlation with amount transmitted?
Because with more confirmations, the possibility of the transaction to be reversed is more difficult.

Yes, of course, but show me please the proof why 6 confirmations are safe and 5 not. Is it just a "unwritten standard"? Has it something to do with block rewards? Or with total hash-rate?
legendary
Activity: 1512
Merit: 4795
Leading Crypto Sports Betting & Casino Platform
I always forgot to check - is there any particular reason for 6 confirmations? Why 6 not 7 or 5? Why some services require only 2? I guess it is related to amount of work needed to create 6 blocks, but is there any correlation with amount transmitted?
Because with more confirmations, the possibility of the transaction to be reversed is more difficult.
legendary
Activity: 952
Merit: 1385
Quote
The more the confirmation, the better the security.
Although true, for most practical applications 1 confirmation is enough. If it's a very large amount, 6 is enough.

I always forgot to check - is there any particular reason for 6 confirmations? Why 6 not 7 or 5? Why some services require only 2? I guess it is related to amount of work needed to create 6 blocks, but is there any correlation with amount transmitted?
legendary
Activity: 3472
Merit: 10611
Never accept a transaction that has not been confirmed.

Also, if you run a restaurant, never bring your customers any food or drinks until after they have paid you.

Can you see how silly that sounds?

Yes, if you accept a bitcoin payment before it is confirmed, then you are accepting a certain amount of risk.  However, there are LOTS of ways we accept some risk in our lives.  What you need to do is to understand the risks, and then decide if you feel it is a worthwhile risk given the situation.
If mempool minimum recommended fee is 200 sat/byte and this tendency continues growing and someone sends you transaction with 5 sat/byte, definitely you won't receive that transaction for days and if you don't receive it for weeks, then it returns automatically to the sender, so, you shouldn't accept that transaction until you actually receive funds.
But if one sends transaction with fee that's enough to get transaction confirmed in 12-24 hours, then you should accept that transaction and shouldn't start whining on 1 or 6 confirmations.
That's what he means by "understanding the risks". Amount of fee a transaction pays (and fee rate) is one of the factors that can be used to determine the risk of accepting a transaction. There are other factors to analyze such as the parents of the transaction and whether they are confirmed or not. Another would be analyzing the transaction to see if there is anything non-standard or uncommon in it that would lead to miners not be willing to pick it up.

And some more. With these things one can use some sort of scoring system where 1 is super risky while 100 is risk free. Then the closer the "score" is to 100 the safer it is to accept.
hero member
Activity: 784
Merit: 672
Top Crypto Casino
As a general rule one should never accept unconfirmed transactions if the transaction is a part of business because if you are releasing the goods than the transaction should be confirmed otherwise you may not see a confirmed transaction if blindly accepted the unconfirmed transaction far a trade.

However, if the transaction is a personal and is either sent by a relative or friend then in that case one should even accept the unconfirmed transactions. One should also accept unconfirmed transaction from a trusted person.

Still, it's highly recommended to wait for confirmation before completing the trade. The one who sent the transaction should also wait for the confirmation before asking the complete the trade, and if they force you to complete the trade with unconfirmed transaction and give excuses, then you should be careful as there are many scammers these days.
legendary
Activity: 2380
Merit: 5213
But if one sends transaction with fee that's enough to get transaction confirmed in 12-24 hours, then you should accept that transaction and shouldn't start whining on 1 or 6 confirmations.
No. You should never accept an unconfirmed transaction, unless you trust the sender (or as mentioned by DannyHamilton, you have accepted the risk.)
Even if the fee rate is high enough, there is no guarantee that an unconfirmed transaction will be finally confirmed. It's possible that the network becomes congested and the unconfirmed transaction is dropped from the mempool. It's also possible that the sender makes a double-spend and invalidate the unconfirmed transaction.
hero member
Activity: 882
Merit: 792
Watch Bitcoin Documentary - https://t.ly/v0Nim
Never accept a transaction that has not been confirmed.

Also, if you run a restaurant, never bring your customers any food or drinks until after they have paid you.

Can you see how silly that sounds?

Yes, if you accept a bitcoin payment before it is confirmed, then you are accepting a certain amount of risk.  However, there are LOTS of ways we accept some risk in our lives.  What you need to do is to understand the risks, and then decide if you feel it is a worthwhile risk given the situation.
If mempool minimum recommended fee is 200 sat/byte and this tendency continues growing and someone sends you transaction with 5 sat/byte, definitely you won't receive that transaction for days and if you don't receive it for weeks, then it returns automatically to the sender, so, you shouldn't accept that transaction until you actually receive funds.
But if one sends transaction with fee that's enough to get transaction confirmed in 12-24 hours, then you should accept that transaction and shouldn't start whining on 1 or 6 confirmations.




legendary
Activity: 2310
Merit: 4085
Farewell o_e_l_e_o
I had some fiat transactions within the weekend, sending money to a number of persons in my unit and I discovered some hours later that one of the transaction has been reversed, a transaction which I have already gotten a debit alert to the credit of the receiver which he confirmed the reception. I had to then resend it once again.
Some payment methods have charge back like Paypal. It is more risky for you if you use Paypal for your deal.

But do not accept a transaction that has no confirmation only means a warning to people
It's not a warning by word but it has its meaning in practice too. The importance of transaction confirmation depends on each person who is in the deal and what is big or small that deal is for the person.

Yes, if you accept a bitcoin payment before it is confirmed, then you are accepting a certain amount of risk.  However, there are LOTS of ways we accept some risk in our lives.  What you need to do is to understand the risks, and then decide if you feel it is a worthwhile risk given the situation.

There are many situations where you may want to accept an unconfirmed bitcoin transaction.
True, Danny.

Different exchanges have different requirements on minimum confirmations of their user deposit transaction before they will credit that deposit amount to user account.
Big exchanges tend to require less confirmations than small exchanges, 1 compares to 3 confirmations for big and small exchanges respectively.

Casinos are usually more keen on accept 0 confirmation but still allow users to bet. However, they don't allow users to withdraw after that deposit transaction has like 1 confirmation minimally.

Risk consideration and accepted confirmation in recommendations from Jameson Lopp (but each person, each platform has to make decisions).
How many bitcoin confirmations is enough?
Quote
If you are patient enough to wait for at least one confirmation then you are no longer vulnerable to race attacks or Finney attacks. Now your only concern is 51% attacks. What's the rule of thumb for an acceptable number of confirmations?
  • 1 confirmation: sufficient for small payments less than $1,000.
  • 3 confirmations: for payments $1,000 - $10,000. Most exchanges require 3 confirmations for deposits.
  • 6 confirmations: good for large payments between $10,000 - $1,000,000. Six is standard for most transactions to be considered secure.
  • 10 confirmations: suggested for large payments greater than $1,000,000.
Bitcoin confirmation risk calculator
legendary
Activity: 1512
Merit: 4795
Leading Crypto Sports Betting & Casino Platform
@DannyHamilton. You are correct. But do not accept a transaction that has no confirmation only means a warning to people, to let them know that there is a possibility of cancelling an unconfirmed transaction in a way that the recipient can lose through spend double attack, or during mempool congestion if the mempool is full and the fee used is too low to make the transaction to stay in the mempool but dropped, a means that the sender can decide to spend the coins to another address. Because a transaction is risky to be accepted as successful does not mean that I can not accept such a transaction from my sister, but just because I trust her. But that I should apply my brain if it is a stranger or someone that I do not trust.
legendary
Activity: 3472
Merit: 4801
Never accept a transaction that has not been confirmed.

Also, if you run a restaurant, never bring your customers any food or drinks until after they have paid you.

Can you see how silly that sounds?

Yes, if you accept a bitcoin payment before it is confirmed, then you are accepting a certain amount of risk.  However, there are LOTS of ways we accept some risk in our lives.  What you need to do is to understand the risks, and then decide if you feel it is a worthwhile risk given the situation.

There are many situations where you may want to accept an unconfirmed bitcoin transaction.

Some examples are:

You have an alternative method available to you to force the person to make the payment
Perhaps you have their credit card number on file with an authorization to charge the card if the bitcoin payment isn't provided. Perhaps they have placed some cash on deposit with you and you can just take the payment from the deposit. Perhaps you have enough information about them that you can take them to court and have the law force them to pay you. Perhpas you have some form of collarteral that they have provided that you can refuse to return to them until they pay.

It is a small value transaction, and the customer is unlikely to be committing fraud, but you are willing to accept the loss if they do.
Perhaps this person makes small value transactions with you regularly, and is likely to want to continue to engage in transactions with you in the future.

This is a trusted individual, and your relationship is worth more to both of you than the value of the transaction
I would accept an unconfirmed transsaction from a spouse, parent, sibling, best friend, etc.
hero member
Activity: 504
Merit: 625
Pizza Maker 2023 | Bitcoinbeer.events
I had some fiat transactions within the weekend, sending money to a number of persons in my unit and I discovered some hours later that one of the transaction has been reversed, a transaction which I have already gotten a debit alert to the credit of the receiver which he confirmed the reception. I had to then resend it once again.

There has been cases of this which others have experienced too due to network issues and it's not new to many of us.

After that encounter I said to myself what if this was some bitcoin transaction, can or does it happen this way too? And if it does, what are the ways to rectifying it on the side of the receiver just Incase the sender refused to resend it again.

Please if it doesn't work that way as that of the fiat transfer then I'll be glad to get an elaborated explanation to it. I'll be waiting to read your replies. Thank you.

In the case of fiat transactions, once the transaction has been processed and confirmed, it is more difficult to cancel or change it.  If a problem occurs, as in your case, you should contact your financial institution's customer service to resolve the error and request a refund or correction.  However, the process can take some time and there may be complications depending on your financial institution's policies and procedures.

 As for Bitcoin transactions, the system is based on blockchain technology and has some significant differences.  Once a Bitcoin transaction is submitted and included in a network-confirmed block, it becomes part of the blockchain and cannot be directly reversed or changed.This immutability feature is one of the main properties of Bitcoin.
hero member
Activity: 770
Merit: 538
Leading Crypto Sports Betting & Casino Platform
I had some fiat transactions within the weekend, sending money to a number of persons in my unit and I discovered some hours later that one of the transaction has been reversed, a transaction which I have already gotten a debit alert to the credit of the receiver which he confirmed the reception. I had to then resend it once again.

There has been cases of this which others have experienced too due to network issues and it's not new to many of us.

After that encounter I said to myself what if this was some bitcoin transaction, can or does it happen this way too? And if it does, what are the ways to rectifying it on the side of the receiver just Incase the sender refused to resend it again.

Please if it doesn't work that way as that of the fiat transfer then I'll be glad to get an elaborated explanation to it. I'll be waiting to read your replies. Thank you.

Bank transactions and Bitcoin transactions don't work the same way; with bank transactions, you cannot check the number of confirmations the same way you can with Bitcoin on the Blockchain explorer. In a bank transaction, you will just see a notification of the transaction being successful but can't check the success rate. If the bank network is bad, you might get debited, but the receiver will not get credited, and after some hours or minutes, you will receive back your money. But for Bitcoin transactions, you can go on the Blockchain to trace the level of confirmation your transaction has received, depending on the wallet or platform you are using, but if there is no single confirmation on your transaction for like four, five, or more hours, the Bitcoin you are sending might fail and your Bitcoin will come back to your wallet. There is a difference between a bitcoin transaction and a bank transfer.

For banks, the transaction can be successful, and you will even be debited, but the money could get reversed to you, and the receiver will not get the money you sent.

For Bitcoin transactions, if the transaction status has changed to "Completed" after some number of confirmations, there is no way the bitcoin can be reversed to you.

Awaiting confirmation of bitcoin transaction



completed bitcoin transaction.



You will also get a Notification when the transaction fails.

I also had a case where I sent money from my bank account to a client; I got debited, but the client did not get credited, but after like 24 hours, the money got refunded to my account. You can read about it here. This bank transaction issues is not experienced in some countries.

Although true, for most practical applications 1 confirmation is enough. If it's a very large amount, 6 is enough.

There was a mobile wallet I sent from last week, just with 1 network confirmation, I received it from the other end and even spend it.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
Never accept a transaction that has not been confirmed.
Unless you trust the sender, in that case you can accept it before it's confirmed.

Quote
The more the confirmation, the better the security.
Although true, for most practical applications 1 confirmation is enough. If it's a very large amount, 6 is enough.
legendary
Activity: 1512
Merit: 4795
Leading Crypto Sports Betting & Casino Platform
Most nodes by default set unconfirmed transactions to be dropped from their mempool after 14 days. But this can be frustrating as some transactions will rebroadcast itself, especially if the wallet is synchronizing with the blockchain. Some transactions can stay for weeks while some people have reported that they were able to spend their coins again after it has been dropped from mempool.

Another is when the mempool is full, high fee transactions will replace low fee transactions, and low fee transactions would be dropped from mempool. The sender will be able to spend the coins again.

Never accept a transaction that has not been confirmed. The more the confirmation, the better the security.
sr. member
Activity: 644
Merit: 262
I had some fiat transactions within the weekend, sending money to a number of persons in my unit and I discovered some hours later that one of the transaction has been reversed, a transaction which I have already gotten a debit alert to the credit of the receiver which he confirmed the reception. I had to then resend it once again.

There has been cases of this which others have experienced too due to network issues and it's not new to many of us.

After that encounter I said to myself what if this was some bitcoin transaction, can or does it happen this way too? And if it does, what are the ways to rectifying it on the side of the receiver just Incase the sender refused to resend it again.

Please if it doesn't work that way as that of the fiat transfer then I'll be glad to get an elaborated explanation to it. I'll be waiting to read your replies. Thank you.
Jump to: