user131636: I'm writing up lecture notes and attempting to put the language on the most logical footing.  I'm hoping to distinguish attacks on the consensus itself from exploits of the protocol, as these seem to be separate categories.  For example an empty-block attack is clearly an attack: the purpose is to damage Bitcoin, whereas Finney's attack is not attempting to strike a blow to the consensus, it's an attempt to exploit consensus rules in a way that is more favorable to the attacker.
Am I going against a decade of convention or is there some precedent here?
More generally, is there a definition an "attack"?

user5406: An exploit makes use of a software bug or security vulnerability to induce unintended or unanticipated behavior in software to the attacker's advantage.
Neither a Finney attack nor an "empty-block attack"¹ are exploits. In both cases, the software is working as designed. A Finney attack would be classified as either a user error (relying on an unconfirmed transaction) or social engineering attack (misallocated trust), and a majority attack breaks the main security assumption of the protocol that the majority of the hashrate is not colluding to attack.
"Attack" is a hypernym collecting any sort of attempt to harm the network or take advantage of other users. Exploits are a specific subcategory of attacks. It's not obvious to me what you're exactly trying to disambiguate, but perhaps you're trying to distinguish attacks on users and attacks on the whole network?

¹ I'm operating under the assumption that "empty-block attack" is supposed to refer to a majority attacker displacing any blocks that confirm transactions, or monopolizing block creation and only mining empty block, to subject the network to a denial-of-service attack.

131636: <p>I'm writing up lecture notes and attempting to put the language on the most logical footing.  I'm hoping to distinguish attacks on the consensus itself from exploits of the protocol, as these seem to be separate categories.  For example an empty-block attack is clearly an attack: the purpose is to damage Bitcoin, whereas Finney's attack is not attempting to strike a blow to the consensus, it's an attempt to exploit consensus rules in a way that is more favorable to the attacker.</p>
<p>Am I going against a decade of convention or is there some precedent here?</p>
<p>More generally, is there a definition an &quot;attack&quot;?</p>
 5406: <p>An <em><a href="https://en.wikipedia.org/wiki/Exploit_(computer_security)" rel="nofollow noreferrer">exploit</a></em> makes use of a software bug or security vulnerability to induce unintended or unanticipated behavior in software to the attacker's advantage.</p>
<p>Neither a <a href="https://bitcoin.stackexchange.com/q/4942/5406">Finney attack</a> nor an &quot;empty-block attack&quot;¹ are exploits. In both cases, the software is working as designed. A Finney attack would be classified as either a user error (relying on an unconfirmed transaction) or social engineering attack (misallocated trust), and a majority attack breaks the main security assumption of the protocol that the majority of the hashrate is not colluding to attack.</p>
<p>&quot;Attack&quot; is a hypernym collecting any sort of attempt to harm the network or take advantage of other users. <em>Exploits</em> are a specific subcategory of attacks. It's not obvious to me what you're exactly trying to disambiguate, but perhaps you're trying to distinguish <em>attacks on users</em> and <em>attacks on the whole network</em>?</p>
<hr />
<p><sup>¹ I'm operating under the assumption that &quot;empty-block attack&quot; is supposed to refer to a majority attacker displacing any blocks that confirm transactions, or monopolizing block creation and only mining empty block, to subject the network to a denial-of-service attack.</sup></p>
