I already reported to the mods to lock this topic.
Don't ruin it, let us reach to a conclusion. These reports have made lots stay in altcoins as they're constantly kicked out from the Bitcoin community.
Actually Algorand does not allow any forking, so double spends are impossible.
This doesn't make much sense. If it's implementing a blockchain, it's doomed to have forks one way or another.
Not allowing them sounds vague.
Let's start reading the article.
With proof-of-work protocols like Bitcoin, in which users solve crypto puzzles, there is a chance that two users could solve for a valid block at the same time. When two nodes get a valid block simultaneously, the blockchain forks into two because different groups of users may see different candidates for the next block. A fork may persist for a while, and its branches may even be elongated by the addition of new blocks. But eventually, all branches but one (the longest) will die , and all the blocks in the dead branches will disappear. The transactions on the dead branches are considered invalid; they basically never happened.
That's true.
Similarly, an adversary could partition the network, convincing different groups of users to accept different blocks at the same height in the blockchain. As a result, contradicting transactions will be accepted by different users, causing a fork in the chain. This allows the adversary to double-spend their money.
There's a big
IF lying in here.
Let's assume that the adversary is a miner. In order to trick the rest and double-spend their money, they have to mine at least two blocks of the same height, one (A) that includes their transaction and another (B) that doesn't. So, some nodes have block A and some have block B. The miner now solves block C on top of block B. Now, block A is dumped from all nodes as it doesn't follow the longest chain.
There's not a point for a miner to solve both A and B, and then C on top of B. They can try to reverse the previous block by building two blocks on top of the one before that. They'll have essentially reversed their transaction by solving two blocks instead of three.
Back to the
if. This can happen
IF a miner controls a high percentage of the network. Furthermore, the more blocks the users wait, the more the chances to accomplish such attack drop exponentially.
Forks are an unwelcome source of uncertainty and delay.
Sure. The Byzantine generals have had uncertainty at first. Blockchains are known for being the least effective databases.
This is because a branch may overcome the current chain and your block may end up in a dead branch and disappear. Before considering yourself paid, you would need to wait for a sequence of blocks to be added to yours, so as to minimize the chance that the block containing your payment will end up on a dead branch.
Correct.
Some people recommend waiting for six blocks to be added after yours to be confident that your block will remain on the chain
That's excessive, the chain had never reorged more than 1 block. I'd say that 3 blocks are fine in both speed and security. Even someone who owns one fifth of the hash rate has ~10.32% chances to successfully reverse transaction(s) 3 blocks deep. If you're going to move millions, I don't think that's much of a concern.
And then, it doesn't explain
how does Algorand avoid this weakness. It just repeats that it does.
See it yourself:
In contrast, the Algorand blockchain never forks.
Two blocks can never be added to the chain at once because only one block can have the required threshold of committee votes.
At most, one block is certified and written to the chain in a given round.
Accordingly, all transactions are final in Algorand.
When the consensus protocol decides on a block, this decision is never changed.
Every honest user soon learns of this decision, and no honest user ever thinks that a different block at the same height was chosen.
Once a block appears, users can rely on the transactions it contains immediately and they can be confident that the block will forever be part of the chain, which means the money they receive is safe.
And in the event of a network partition in Algorand, the adversary is never able to convince two honest users to accept two different blocks for the same round.
This is true even when the partition may last for an indefinite amount of time and nobody knows when it will be resolved.
Algorand’s chain never forks and users’ balances remain secure.