In this Ethereum github page (Link to the page: https://github.com/ethereum/wiki/wiki/Sharding-FAQ#what-are-the-security-models-that-we-are-operating-under) there is a very brief definition of the adaptive vs. non-adaptive adversaries as follows:

an adversary is adaptive if they can quickly choose which portion of the validator set to "corrupt", and non-adaptive if they can only make that choice far ahead of time.

But this definition is not clear to me. And it also only consider Ethereum platform.

For example, What does it mean that an adversary choose quickly a portion of validator set to corrupt them ? How to say their choice was quickly or not ?

From my point of view, the definition is not clear and precise enough by which we could recognize if an adversary is adaptive or non-adaptive.

P.S. I found a definition in this paper (Link to the paper: https://arxiv.org/ftp/arxiv/papers/1206/1206.6400.pdf) as follow. But I am not sure if this definition is the same that in the above github page has been mentioned.

All adversary types are strategic and possibly malicious, have unlimited computational power, and are free to use random bits when choosing their loss functions. If the adversary is not restricted beyond the setting described above, he is called an adaptive adversary. Other adversary types are restricted in various ways.

Important note: Regarding to the paper that I added to my question (in P.S: arxiv.org/ftp/arxiv/papers/1206/1206.6400.pdf), can we say that adaptive adversary is a general term in security?

And if yes, what is the best and most precise and general definition?

Important Update (1): To the best of my knowledge, the term "adaptive adversary" is used in many scientific papers in computer security, but I could not find any clear and precise definition for this term yet.

As another example, I bring another quote here from another paper as follows: (there are many other similar examples.)

We note that some previous works like Algorand and Ouroboros consider a stronger fully-adaptive adversary that can freely choose controlled participants for each time window. Our take is that such a fully-adaptive adversary is interesting, and worth studying, but often not realistic. In practice, platform compromise is hard to detect and repair. Furthermore, a compromise of one computing platform does not mean that another is no longer in control of the adversary. For these reasons, we focus on non-adaptive adversaries in this work.

Link: https://arxiv.org/pdf/1804.07391.pdf

Important Update (2): I brought up this question in security.stackexchange and I received this answer: "An adaptive adversary can adapt to the environment and responses from the environment as part of the attack. A non-adaptive adversary cannot." (https://security.stackexchange.com/a/213278/187204) that could mean this term is a general term in security. I also found this term in many papers on computer security, and it is used in even non-blockchain-based fields. As a result, "adaptive adversary" seems to be a general term and is not used only for validator set.

2 Answers 2


In the context of Blockchain, non-adaptive adversary means:

  • the adversary is required to choose a list nodes to attack immediately after the genesis block is released,
  • the adversary can attack/control these nodes in the future,
  • but cannot attack other nodes later.

Adaptive adversary can choose new nodes to attack at any time based on its real-time view of the system. In the family of Ouroboros protocols, semi-adaptive adversary is a relatively weaker adversary that waits for some time to really control a node after it decides to attack it. A fully adaptive adversary can control a node immediately after it decides to attack it.

In the context of multi-party communication, there can be more fine-grained categories of adaptive adversary. An rushing adaptive adversary can know the message sent by a party sender to another party receiver, before it is received by the receiver. Then based on the message and other information, it can decide whether to corrupt the sender or not. If the rushing adaptive adversary chooses to corrupt the sender, it is able to change the message and delivers another message to the receiver in the name of the corrupted sender.


I also found a definition in the following paper that I think could be a general definition used in any decentralized and Peer-to-Peer network.

In this paper, we read:

Adaptive Corruptions. The adversary influences the protocol execution by interacting with the available functionalities, and by corrupting parties. To corrupt a party, the adversary has to first ask the environment Z for a permission. If the corruption is approved by Z (via a special message from Z to A), the adversary corrupts Pi immediately.

Link: https://pdfs.semanticscholar.org/6116/a7c1c0820e357204e9277901c82bd38c35a5.pdf

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.