Skip to content

Latest commit

 

History

History
69 lines (34 loc) · 4.94 KB

6.threat-models-and-security.md

File metadata and controls

69 lines (34 loc) · 4.94 KB

Threat Models and Security

Common Threat Mitigations

Byzantine Generals Problem

Proof of Stake empowers the uncoordinated "Generals" to agree, based on the consensus mechanism, Ouroborous. Since there is a preset algorithm deciding which "General" is the leader, all the other "Generals" accept them as the leader, and by extension, accept the block that the leader creates, which can be verified to be valid.

51% Attack

No blockchain can prevent a 51% attack. Also, a BGP hijack (routing layer) can easily enable that - no protection mentioned.

Sybil Attack

Ideally, the stake pool operator who controls a large amount of stake pools could control the entire network.

Sybil attacks are prevented in Cardano, by having the concept of "Pledging" of ADA by Stake Pool operators. By pledging a portion of their own funds, stake pool operators are entitled to having a bonus reward. By having a lower pledge, the stake pool operator obtains a smaller reward. This incentivizes stake pool operators to have a higher pledge, thereby, discouraging them from creating multiple stake pools

Double spending attack

Once a transaction is confirmed by an honest player, all other honest players from that point on will never disagree regarding this transaction. Thus it will be impossible to bring the system to a state where the confirmed transaction is invalidated.

Grinding attacks

In stake grinding attacks, the adversary tries to influence the slot leader selection process to improve its chances of being selected to generate blocks. Cardano uses a coin tossing protocol that is proven to generate unbiased uniform randomness to elect the new block producer.

Transaction denial (censorship) attacks

In a transaction denial attack, the adversary wishes to prevent a certain transaction from becoming confirmed. liveness ensures that, provided the transaction is attempted to be inserted for a sufficient number of slots by the network, it will be eventually confirmed.

Desynchronization attacks

In a desynchronization attack, a shareholder behaves honestly but is nevertheless incapable of synchronizing correctly with the rest of the network. No guarantees of liveness and persistence are provided for desynchronized parties and thus the network is secured as long as parties with less than 50% of stake get desynchronized. If more than 50% parties get desynchronized the protocol can fail.

Bribery attacks

In bribery attacks, an adversary deliberately pays block producers to work on specific blocks and forks, aiming at generating an arbitrary fork that benefits the adversary. However, malicious slot leaders who agree to deliberately attack the system not only risk to forego any potential profit they would earn from behaving honestly but may also risk to lose equity. Because they need money invested in the systems in order to be able to generate new blocks, the loss from currency devaluation can easily offset any additional profits made by participating in this attack.

Selfish Mining

In this type of attack, an attacker withholds blocks and releases them strategically attempting to drop honestly generated blocks from the main chain. This is prevented by the slot mechanism, the elected slot leader is able to make one new block. If it withholds its block, the next elected slot leader will produce the next block.

Nothing At Stake Attack

Nothing-at-stake is a theoretical security issue in proof-of-stake consensus systems in which validators have a financial incentive to build on every fork of the blockchain that takes place, which is disruptive to consensus and potentially makes the system more vulnerable to attacks. This is however prevented by the randomness of the next block creator.

Secure Transactions

Cardano uses the following to provide secure transactions:

  • Deterministic Finality - all transactions are guaranteed to exist on the ledger after at least 36 hours has passed.

  • eUTXO - prevents double spending, secured by a chain of signatures

Two things we liked about the security of Cardano

  • The upgradability of cryptographic primitives, which allow for future quantum security.

  • Stake pools securing the PoS consensus protocol.

Two things we disliked about the security of Cardano

  • The total supply of ADA is very high compared to Bitcoin, which could lead to less fees being paid out to Stake Pool Operators, which in turn, could disincentivize them from participating in the network.

  • Most of the security proofs are argued for on a theoretical basis, yet it is unclear to which extent the actual implementation satisfies the theory. This is an issue across the various topics. An example is the governance system, there is a formal treasury system defined in an academic paper which is stated to be implemented in Voltaire (the final release of Cardano). However, the current implementation of the treasury system, Project Catalyst, cannot provide the same guarantees and seems to be developed under a different set of assumptions.