# Algorand consensus, is BA not necessary?

**URL:** https://forum.algorand.co/t/algorand-consensus-is-ba-not-necessary/837
**Category:** General
**Created:** [July 24, 2019, 3:15am UTC](https://forum.algorand.co/t/algorand-consensus-is-ba-not-necessary/837 "2019-07-24T03:15:05Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![CryptoDude](https://avatars.discourse-cdn.com/v4/letter/c/bbce88/32.png) [@CryptoDude](https://forum.algorand.co/u/CryptoDude)
#### Post date: [July 24, 2019, 3:15am UTC](https://forum.algorand.co/t/algorand-consensus-is-ba-not-necessary/837/1 "2019-07-24T03:15:05Z")

</div>

With respect to this paper here:  
Another Look at ALGORAND

> **[Another Look at ALGORAND](https://arxiv.org/abs/1905.04463)**
>
> ALGORAND is a celebrated public ledger technology. In this paper, we identify
> several design flaws of the ALGORAND protocol. In particular, we show that the
> claimed (proved) fork-free property is not true and several assumptions in
> ALGORAND are not...

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

Please advise.  
Thank You

---

<div class="post-metadata">

### Author: ![ihagopian](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.algorand.co/ihagopian/32/2042_2.png) [@ihagopian](https://forum.algorand.co/u/ihagopian)
#### Post date: [July 24, 2019, 3:04pm UTC](https://forum.algorand.co/t/algorand-consensus-is-ba-not-necessary/837/2 "2019-07-24T15:04:36Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![aojjazz](https://avatars.discourse-cdn.com/v4/letter/a/91b2a8/32.png) [@aojjazz](https://forum.algorand.co/u/aojjazz)
#### Post date: [April 11, 2020, 9:07pm UTC](https://forum.algorand.co/t/algorand-consensus-is-ba-not-necessary/837/3 "2020-04-11T21:07:39Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![pipaman](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.algorand.co/pipaman/32/219_2.png) [@pipaman](https://forum.algorand.co/u/pipaman)
#### Post date: [April 13, 2020, 8:38pm UTC](https://forum.algorand.co/t/algorand-consensus-is-ba-not-necessary/837/4 "2020-04-13T20:38:25Z")

</div>

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/](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:

> **[Various Questions about the Algorand Blockchain](https://www.algorand.com/resources/blog/various-questions/)**
>
> Defining the standard for blockchain technology with the first-of-its-kind pure proof-of-stake protocol built to support the scale, open participation, and transaction finality for billions of users

---

<div class="post-metadata">

### Author: ![aojjazz](https://avatars.discourse-cdn.com/v4/letter/a/91b2a8/32.png) [@aojjazz](https://forum.algorand.co/u/aojjazz)
#### Post date: [April 13, 2020, 9:25pm UTC](https://forum.algorand.co/t/algorand-consensus-is-ba-not-necessary/837/5 "2020-04-13T21:25:11Z")

</div>

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](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.
