Algorand consensus, is BA not necessary?

With respect to this paper here:
Another Look at ALGORAND

Can someone here address their claim that
6 Byzantine Agreement is not necessary in ALGORAND?

Please advise.
Thank You

Assuming the description of the alternative algorithm is complete and it isn’t a sketch or similar:

If the block proposer is malicious it may propose multiple blocks to honest users. If that’s the case, in his step b), nobody will finish. So, the question is: what does the protocol say about this case? do they hang forever?.

Going a step further, I’ll assume that they will not hang forever since this would mean the blockchain will freeze forever and decide to retry the protocol again for the same round.

There would be three options, start from zero, start using the same block they voted in the previous try, or vote for a default value.

If they start from zero or vote for a default value, they can’t be sure that some node in the phase before considered step b) as true (for example, due to a network partition). This would mean that this node would commit to a block value A, and the rest will commit to a new block value B (new or default). A possible fatal situation for safety, it doesn’t seem to be discussed.

If they start again voting for the same block they voted in the previous try, thus skipping the block proposal steps, if the original block proposer was malicious and sent multiple blocks to many honest users, they will be stuck forever. They would just be replaying the same situation of the previous try, which again won’t reach the voting threshold needed to make progress. They would be stuck in a loop.

I’m not an expert in this kind of protocols, so take it with a grain of salt. But in this case, it seems that some problems are quite clear or need further discussion.

I’m new to the community and am quite interested in Algorand, but the foundation does seem oddly silent on some of the various papers that have been published re. the Algorand protocols.
I searched a bit and basically found nothing of substance in reply to any of the papers I found.

This paper was posted several times in the community and it is wrong. Runtime Verification verified that the protocol doesn’t fork:
https://runtimeverification.com/blog/formally-verifying-algorand-reinforcing-a-chain-of-steel-modeling-and-safety/

You can check this blog post that addresses some of your questions:

1 Like

I should have posted links for the two that I ran into:
The first was the ‘another look at algorand’ that the OP mentioned.
Another is this one: https://arxiv.org/pdf/1901.10019.pdf ( Blockchain Trilemma Solver Algorand has Dilemma over Undecidable Messages )

Thanks for the links. I’ll take a look.