2

I am going to send out products to user when they pay me EOS. I have a service monitor the blockchain transaction. Should I send the product to the user once I see the transaction in the blockchain? Or should I only send the product if the transaction in the block becomes irreversible (with ~2.5 minute delay)?

2

According to the whitepaper:

Transaction Confirmation

Typical DPOS blockchains have 100% block producer participation. A transaction can be considered confirmed with 99.9% certainty after an average of 0.25 seconds from time of broadcast.

In addition to DPOS, EOS.IO adds asynchronous Byzantine Fault Tolerance (aBFT) for faster achievement of irreversibility. The aBFT algorithm provides 100% confirmation of irreversibility within 1 second.

However, you are right that these numbers don't apply in practice on the EOS mainnet, as the BFT commitments communication is not yet implemented. Thus, similar to other blockchains, it becomes a balance between UX and safety.

You can consider it confirmed before being irreversible, but you incur the risk of having the transaction ending up on an orphaned chain. I wish I could quantify that risk in some way, but few months of empirical data is too limited to really draw any reliable results from. For some reference, you could check what exchanges expect for deposits.

Theoretically, DPoS BFT is designed to offer guaranteed finality for irreversible blocks if 2/3+1 BPs are honest. If at least 1/3 BPs are byzantine, then there is no way to obtain 100% guaranteed confirmation of irreversibility under all network conditions.


Edit: Found this relevant quote from Dan:

the LIB algorithm was an optional addition designed to identify the number of confirmations required before an exchange has sufficient guarantees that a block will not get orphaned.

Note, however, that the quote refers to an older version of DPoS. In the current version, a LIB should provide 100% finality if 2/3+1 of the BPs are honest, not only sufficient guarantees.

| improve this answer | |
  • Is asynchronous Byzantine Fault Tolerance (aBFT) in effective now? – Anson Wong Sep 19 '18 at 6:25
  • I used Newdex and I find that they deposit my money and exchange immediately when I send them money. Is that imply they don't expect any irreversible later? – Anson Wong Sep 19 '18 at 6:27
  • Newdex is not a decentralised exchange, use it at your own risk because their application got exploited recently and lost quite a huge number of tokens in their exchange – Jeff Zheng Sep 19 '18 at 8:03
  • Yes. Newdex is not decentrallised and that's why they must only exchange tokens when they confirm they receive it. But it seems that they can do it instantly and do not need to wait. Anyway, as you said, they are risky and don't know if it have any value to reference. – Anson Wong Sep 19 '18 at 9:42
  • @AnsonWong no, aBFT is not implemented yet. also, edited my post to add a quote from Dan about recommended practices for exchanges – confused00 Oct 7 '18 at 0:37
0

As soon as you see the transaction included in a block, it is considered safe.

You don't really need to wait for the block to become irreversible.

| improve this answer | |
  • As long as I see the transaction in the blockchain, it is consider as safe and I can give the product? – Anson Wong Sep 19 '18 at 6:26
  • I'm just using EOSBet as an example since it is the hottest game now. Players play the game by sending their EOS and less than 2 seconds later, the bet is resolved which means that the platform accepted players' bet without considering if the blocks are irreversible. – Jeff Zheng Sep 19 '18 at 8:06
  • 1
    I think EOSBet is a different case as it really use a contract. If a transaction is reversed, they won't got any lost as bet is resolved through the contract too. – Anson Wong Sep 19 '18 at 9:40
  • Not exactly because the way how they resolve bets are triggered outside of the blockchain and not done through smart contract – Jeff Zheng Sep 19 '18 at 9:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.