What are "Ghost Inscriptions"?

What are "Ghost Inscriptions"?

We recently discovered a new type of inscription, a "missing" inscription type that didn't even have the chance to be recognized as "cursed". Some of us have started calling them "ghost inscriptions". Perhaps the nomenclature, definition of "ghost inscription" will evolve with time, but let's dive in and explain what is happening:

The ord client will soon begin recognizing a new type of inscription. There are currently only 4 types of curses that create a cursed inscription, but there could be many more – we just don't know what they might be. OrdinalHub developer Psifour coined the term "ghost inscription" to describe this new class of inscription, but it is unclear whether we will use ghost inscription to refer to a specific mechanic that created these missing inscriptions or whether "ghost" will refer to an entire category of inscriptions.

How ghost inscriptions were discovered

We here at OrdinalHub first publicly identified what we now call ghost inscriptions last May in our video "the Cursed Inscriptions Rabbithole. We initially created the video because the market was uneducated about what cursed inscriptions were. Additionally, the documentation on the official ordinals.com site was inaccurate and was causing a lot of confusion.

In the video, we demonstrated how the documentation on ordinals.com would have produced a cursed inscription. However, as the definition of cursed as evolved, it appears that we would no longer consider the inscription produced from the documentation "cursed". Cursed seems to have evolved into meaning "an inscription that is considered valid but not yet recognized by the ord reference client" whereas this was an inscription type that was not yet considered valid nor appeared to be recognized by anyone but us at OrdinalHub. Therefore, we may need a new name or category to describe it.

Ghost inscriptions from pushnum opcodes

The first type of ghost inscription we've identified results from using "pushnum opcodes" in the inscription envelope. (If you don't know what an envelope is, go read our other blog!)

Pushnum opcodes are opcodes like OP_1 (or OP_2 -> OP_16) are pushed onto the stack in a taproot script-path spend scripts. Upon release of ord 0.4.0 and still to-date in ord 0.9.0, including a pushnum opcode results in the ord client (and we assume all other clients) not parsing the inscription, meaning that it doesn't recognize the inscription at all.

Here is what the original documentation on docs.ordinals.com said:

Notice that following the documentation OP_1 would be pushed instead of what the updated documentation says today, now updated to the correct OP_PUSH 1.

TL;DR: it was a simple mistake early on in the ord documentation that resulted in a lot of confusion and a fun new type of missing inscription.

While the documentation was fixed after we identified it, there wasn't much discussion about the existence of inscriptions that were created because of the misleading docs. In fact, it appears that Casey Rodarmor only recently discovered that these inscription existed after Psifour was discussing it on a twitter spaces during the "Inscription renumbering debate" the past few weeks:

What are we doing about ghost inscriptions?

Recently, with the "Refactoring the Inscription parsing" PR #2461, many new inscription envelopes in taproot script path spends would be recognized. With Casey now aware of ghost inscriptions, the new envelope parser makes it easy to allow explicit recognition of this new type of inscription resulting from pushnum opcodes "breaking" ord parsing.

A nice upside to this new recognition is that using OP_1 and other pushnum opcodes would also allow us to save one byte per field. This would be a nice minor efficiency improvement for inscriptions overall and I expect this technique to eventually be utilized by more inscribers, especially in the distant future when Bitcoin becomes more expensive to use and every byte counts.

One downside is that due to the obscurity of this issue with ord inscription parsing, this topic has gone entirely unnoticed and undiscussed by the community. Should these inscriptions be recognized? Would this new inscription recognition be considered a "Pareto Improvement"?

*Personal opinion alert*

I believe that most everyone would agree that they should be recognized, however I do want to point out the risks in recognizing more inscription types without a strong agreed upon definition for "what is a valid inscription" or a protocol development/governance structure in place. It is as if the entire Inscription renumbering debate has just ended with no resolution about the core conflicts. There is little to no discussion on the ord github about the very things we were passionately arguing about now fewer than 10 days ago, making me question whether or not people actually care about ordinals or if they just want to make money.

At the moment, I'm still the only person who has commented on the Jubilee issue and I have seen no discussion about it anywhere on twitter or the github. This dumbfounds me.