5 ms·
>In addition, if the network were ever to go offline, there isn't a deterministic way to get it back online. I haven't heard anyone say this about Algorand. Ca
by EthanHeilman 8y ago
>In addition, if the network were ever to go offline, there isn't a deterministic way to get it back online.
I haven't heard anyone say this about Algorand. Can you provide more details? Lets say a bug causes all the Algorand nodes to crash. After a patch is released 90% of the network comes back online. What prevents the selected users from arriving at consensus over the next block?
- thesausageking 8y agoIf the network goes down completely, as it's coming back up, groups of nodes will start adding blocks before all of the other nodes are back online. When connectivity is completely restored, you end up with different parallel chains, each of which thinks it's the main chain. With Bitcoin, there's a simple, deterministic way to decide which chain to trust: the one which has had the most work done it. With Algorand, it's not clear what would happen.
- justicz 8y ago(I work for Algorand) This is false. The BFT protocol that Algorand uses guarantees that each round may have exactly one block (up to our security assumptions with regard to honest stake); this is one of the protocol’s “safety” guarantees. In the case that a large number of participating nodes crash, the network will refuse to produce a block until a sufficient amount of stake begins participating again. Nodes that fall behind can use the standard catchup protocol — the one that nodes new to the network make use of — to pick up where they left off.
- thesausageking 8y agoCalling the case of the network halting "safety" doesn't help things. To walk through a plausible example: let's say 3 Chinese services control 35% of the stake of Algorand. Without warning or any public announcement, the Chinese government steps in and forces them to turn off their servers. The Algorand network will now stop functioning as it can't reach 2/3rds. Hours go by and no one is able to transact. At this point, the network needs to decide how to proceed. Does everyone just agree to take a complete loss? Most likely, a group of other stakers would work on a proposal to deal with it, maybe by removing the offline tokens. How do they get consensus for this proposal? And, if they do it, what do they do if the Chinese stakers come back online?
- justicz 8y agoIn this case the Chinese government can kill the liveness of the network (preventing it from producing new blocks), but not the safety of the network (they can't fork the chain). Your question has changed into: "doesn't the system break when a malicious party controls 35% of the stake?" To which the answer is yes. If a malicious party can control 35% of the stake, that is very bad. I should add, though, that if you know your machine is going to be taken down, you can mark your account as "offline" via a special transaction, which will allow the network to proceed without you by increasing the probability that others will be chosen to be on a committee.
- thesausageking 8y ago"If a malicious party can control 35% of the stake, that is very bad." That didn't happen in this case. The Chinese government never took anyone's keys or controlled any stake, which is the point of the example. The malicious parties don't need control. They don't need to take anyone's keys or access their servers. They just need to be able to bring it offline, which is much easier to do. Which raises the question I asked and you didn't answer: if 35% of the stake goes offline with no signs of coming back, how do participants reach consensus?
- justicz 8y agoYou are right to call out the difference between "control" in the sense of keys and "control" in the sense of a network adversary. I should have been more careful with my wording there. It is true that if 35% of the participating stake is suddenly prevented from contacting the network, no new blocks will be created. The word "participating" is important -- you can have stake that is not participating in the agreement protocol, but that is still spendable. The only way I can think of to mitigate the scenario you've described would be this: before going offline, you can broadcast a transaction which essentially removes your stake from the pool of participating coins until you're able to come online again. This would ensure the network can proceed without you.
- Vervious 8y ago
- throwaway415415 8y agoFalse. Algorand has safety, unless you get confirmation from 2/3 of the "money", you don't go forward. The best you can get here is a denial of service.
- EthanHeilman 8y agoThe CAP theorem [0] states that during a network partition a consensus system must either lose availability or consistency. * Bitcoin loses consistency * Algorand loses availability I'm glad Algorand exists so that systems which value consistency over availability can be built. [0]: https://en.wikipedia.org/wiki/CAP_theorem https://en.wikipedia.org/wiki/CAP_theorem
- throwaway415415 8y agoUsually, for distributed systems in adversarial settings we talk about safety and liveness. Bitcoin doesn't have safety, and both bitcoin and algorand seems to fail the liveness test as well. In your terms, both bitcoin and algorand have weak availability.