ordinals / ord

👁‍🗨 Rare and exotic sats
https://ordinals.com
Creative Commons Zero v1.0 Universal
3.85k stars 1.38k forks source link

what is a "cursed" inscription? #2330

Closed cvasqxz closed 1 year ago

cvasqxz commented 1 year ago

Hi, I just want to know what is a cursed inscription

The implementation of cursed inscriptions happened on release 0.6, but there are not explicit explanation of the concept, it just says Cursed Inscriptions [1/n]

The pull request #2145 implements a way to index inscriptions that are not the first envelope of OP_IF's in the transaction and call it "cursed"

Inscription content is serialized using data pushes within unexecuted conditionals, called "envelopes". Envelopes consist of an OP_FALSE OP_IF … OP_ENDIF wrapping any number of data pushes. Because envelopes are effectively no-ops, they do not change the semantics of the script in which they are included, and can be combined with any other locking script.

But the Ordinal Theory Handbook also says that the inscription is related to the 1st satoshi of "it's input"

The inscription content is contained within the input of a reveal transaction, and the inscription is made on the first sat of its input. This sat can then be tracked using the familiar rules of ordinal theory, allowing it to be transferred, bought, sold, lost to fees, and recovered.

So if you make multiple envelopes in multiple inputs inside a transaction, what satoshi is being inscribed?, are cursed inscriptions not being inscribed in a satoshi?

If an envelope is stored in an input of a transaction that is not a P2TR, is that a cursed inscription? if somebody makes a P2SH transaction and puts an "envelope" in the scriptsig, is that a cursed inscription?

There's no way for a new developer to understand what is a cursed inscription based on the current documentation

DrJingLee commented 1 year ago

The simplest definition of a cursed inscription is any inscription that does not currently get indexed and identified by ord. You may get more info here : https://bitcoinmagazine.com/technical/the-debate-around-cursed-ordinal-inscriptions

DrJingLee commented 1 year ago

What are cursed ordinals?

Since then, the serial number drama died down, with users continuing to use ordinals to create NFTs and unregistered securities in the form of BRC-20, BRC-30 and ORC-20 tokens. But it looks like serial numbers on Ordinals have come into question once again with what is being dubbed “Cursed Ordinals”.

When you create an inscription, the Ordinals protocol needs to assign a satoshi a serial number, which references the file in the blockchain. When everything is going swimmingly, the inscription count will rise by the number of files inscribed.

In the case of cursed inscriptions, it works in the opposite manner, where negative values are displayed and counted backwards with each inscription that is created. Cursed inscriptions have been created in the following instances.

Multiple inscriptions per transaction for efficient batching.
Inscriptions on inputs after the first, which is useful for collections.
Multiple inscriptions on the same Satoshi, so that the entire history of a sat doesn’t need to be checked to determine if a new inscription is valid.
Inscriptions with unrecognised even headers, so that new even headers don’t cause upgraded clients to disagree about inscription numbers.
Using unsupported OP_CODES like OP_66 

Cursed inscriptions were found when a group of developers discovered a bug in the existing Ordinals code responsible for the standardisation of inscriptions.

Casey Rodarmor, @casey the creator of Ordinals, became aware of the loophole and posted on GitHub his thoughts and potential solutions for the bug, where he mentioned:

“Consider these new inscriptions “cursed” and assign them negative inscription numbers.”