ordinals / ord

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

Ordinal NFT Blog Post #269

Closed casey closed 2 years ago

casey commented 2 years ago

Dumping rough notes here:

ordinals are just a global namespace that maps numbers to addresses. addresses can be public keys, and public keys have private keys that can sign challenges to prove ownership, so it maps numbers to owners.

ordinal NFTs

What does an NFT or token even mean? I think of it as being about imbuing something with meaning.

What can be imbued?

Provenance! Provenance is where something came from, or who made it. Art and collectables revolve around provenance. Public key cryptography is a great way to establish provenance. If an artist has a well-known public key, they can sign messages with their private key that nobody can forge.

In a similar vein, sometimes provenance is used to make something redeemable for another. Stable coins, bearer shares, membership etc. All this can be done by signing something.

Ordinals already have the provenance of their number, and thus their origin in a particular bitcoin block. But we want to allow assigning additional provenance.

. But how?

There are a few different ways I can think of:

  1. Verbally agree between interested parties to imbue some ordinals with a particular provenance. This happens completely off-chain and without any cryptography. It can be done in high-trust environments, or environments where the provenance matters only to a closed set of people. It is low overhead, and due to its informal nature, requires no special software beyond an ordinal aware wallet.
  2. Create a message imbuing some ordinals with a particular provenance and sign it with a public key known to interested parties.
  3. Create a message imbuing some ordinals with a particular provenance and sign it with a public key and publish it.
  4. Create a message imbuing some ordinals with a particular provenance and commit to it in a transaction that moves those ordinals. Note that the message isn't signed. This commitment isn't meaningful because of a well-known public key. Instead it is meaningful because it was made by a particular ordinal owner.
  5. Like the above, but also sign that message. Now it's a commitment that ties together an ordinal owner and an identity.
  6. Like the above, but just commit to it in any old transaction. Proves age.
  7. Like the above, but also reveal the message on-chain, for example by committing to it in a taproot script, and then revealing it on spend. This is expensive, but makes the data available on-chain. This is expensive, which increases rarity, so good for collectors and art. Publishing data on-chain also prevents equivocation, because the chain can be scanned for publication.
casey commented 2 years ago

Link types:

casey commented 2 years ago

This is really a personal blog post, so not a project issue.