The aspect of Ordinals I find most contentious is the application of Ordinal theory. The concept that individual satoshis have a unique identifier based on their issuance order on the network (i.e., the first coinbase transaction being 0-50 billion sats) is intriguing to me. However, my main issue lies in the method used by Ordinals to store data. This method involves making the data appear like it is valid signature data and exploits a feature intended for multiple parties. As it stands, using this to store arbitrary data is similar to having an unlimited op_return—except for the overall blocksize/weight limit.
While op_returns, which are technically spent outputs, are a network-acknowledged method for storing arbitrary data, the debate continues over whether Bitcoin should be used for this purpose at all. However, between the two methods (op_return or hijacking the witness data), the one based on op_return is more widely accepted.
Currently, transferring ownership of an Ordinal is highly inefficient. Every time you want to send it to someone else, the entire weight of the data must be included in the transaction.
If the data which is actually stored in an Ordinal was nothing more than a pointer, including a signature (witness) and a hash, CID, url or whatever of the actual full-fat data, the misuse of the blockchain could have been mitigated. As it stands it's like just a total cramming in of data, with 0 regard on how that looks being moved around full-fat each time.
By requiring all data to be included directly in the input and UTXO for each transaction, the data transfer, fees, and network overhead remain high every time. Moreover, there's a lack of delta-encoding in Ordinals, exacerbating these issues.
Moving to a layer 2 solution could represent a step in the right direction, in my opinion.
I concur with others who view the capacity to store unlimited amounts of arbitrary data within the witness (limited only by the block size) as a potential attack vector.