0

In Bitcoin and Ethereum PoW, we have probabilistic BFT. I.e., the transaction finality will never reach 100%, but it will be very close to that with every further confirmation.

How about Geth POA Clique or Paritiy POA Aura? Is there a point in time where a transaction can be considered as 100% final.

For instance, in a Clique network with 3 sealers (S1, S2, S3), with the following block structure:

...
Block #100 [TX1], sealed by: S1 (in-order -> block-difficulty:2)
Block #101 [], sealed by: S2 (in-order -> block-difficulty:2)
...

At Block #102: can I consider TX1 as being 100% final in a setting with 3 sealers?

At this point, it is impossible to present an alternative chain as long as 50%+1 sealers are honest (?)

Related to: What number of confirmations is considered secure for Geth PoA Clique?

  • I think it's not finality; racing seal can happen and we cannot sure a block can propagate to other nodes quickly, it depends on the nature of network. – Ha ĐANG Sep 7 '18 at 11:57
  • But if I relax the condition, let's say, I am considering the transaction final, if 50%+1 sealears have confirmed it? Then there should be a point in time where I have this situation, right? – ivicaa Sep 7 '18 at 12:05
  • in the source code, ethereum regards 5 confirmed block was include in canonical chain a.k.a finality – Ha ĐANG Sep 7 '18 at 12:08
  • Could you point me to the code location please. – ivicaa Sep 7 '18 at 12:09
  • seems they just increase to 7 confirmed block ` miningLogAtDepth = 7` go-ethereum/miner/worker.go – Ha ĐANG Sep 7 '18 at 12:21
1

You can consider a transaction 100% final, if there is an upper limit to network delay between nodes and 51% of validators are honest and have signed your block.

If you can't guarantee 51% honest validators, you need 100% of validators signing your block, 66% of them being selfish and 1 being honest.

0

According to my research for "What number of confirmations is considered secure for Geth PoA Clique?", a transaction in a clique network with 3 sealers can only be considered as final (no reorg for this transaction is possible anymore), if all three sealers have confirmed the block where the transaction has been included. In general, the required number of distinct sealers in confirmation blocks is: n - floor((n-1) / 3), where n = total number of sealers in the network.

See the answer in the linked post for explanation.

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.