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 considers 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 quick 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.

I found a definition in this paper. 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.

Can we say that an adaptive adversary is a general term in security?

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

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

  • This question was cross-posted to Ethereum SE, and answers are relevant there.
    – Rory Alsop
    Nov 30, 2021 at 9:21

2 Answers 2


The term is conceptual and is not a standard term in the field. The conceptual nature of the term means there is not going to be the type of definition that I think you are going for.

It broadly means what your first quote says. An adaptive adversary can adapt to the environment and responses from the environment as part of the attack. A non-adaptive adversary cannot.

Someone (or a bot) with a pre-written script to exploit a vulnerability is non-adaptive. They have one thing they can do. An expert with experience, creativity, and a suite of tools can devise new approaches while they attack in order to achieve their goal.


I also found a definition in the following paper that I think is in line with the answer of @schroeder.

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

Not the answer you're looking for? Browse other questions tagged .