Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New BIP: Ordinal Numbers #1408
base: master
Are you sure you want to change the base?
New BIP: Ordinal Numbers #1408
Changes from 8 commits
f013681
9f81a71
7c7de8b
7950891
93a7ae6
b802f83
bfff902
b9506fb
bda5cc7
d1a5fda
bcb21c5
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not clear to me which BIP type this draft would correspond to WRT BIP2. An Informational BIP does not propose a new feature. Nor does this seem to fit the criteria for a Standards Track BIP or a Process BIP.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Taking a look at the three kinds of BIPS:
Ordinals does not affect most or all Bitcoin implementations, so it shoudn't be a Standards Track BIP.
Ordinals is essentially an application-level technology, so I think it fits into "guidelines or information", and doesn't propose a new feature, so I think it should be a Informational BIP. For example, see BIP-32, Hierarchical Deterministic Wallets. Anyone is free to use HD wallets, or not, similar to ordinals, so I think Informational BIP fits best.
Ordinals does not require consensus and users are free to ignore ordinals, so this shouldn't be a Process BIP.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Whereas BIP32 describes a design implemented in the Bitcoin reference client, these appear to clearly describe features, thus my own hesitation with respect to
Informational
. There has been discussion to update or improve BIP 2, and perhaps a clarification on BIP scope will be an aspect of that.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like ordinals and inscriptions. However, the concept of assigning serial numbers to sats or transferring them based on size and order isnt a part of bitcoin protocol. So ordinals do not really require a BIP and could work at layer 2 or externally.
Note: This repo is considered an official bitcoin repo for improvements. However, you can always maintain such docs outside this repo and could be used by other bitcoin projects if necessary.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BIPs are not just about layer 1 protocols. As an example, BIPs 173/350 (bech32 and bech32m) define an address format that never touches the p2p layer at all. BIP32 describes a key derivation scheme that is not even visible on the blockchain or p2p layer.
Essentially, to get a BIP, you just need to post something on the mailing list and then post a well-formatted well-specified document here. It doesn't need to be something that anybody needs to use, or even something that anybody should use. I guess it needs to be sorta Bitcoin-related, but this meets that threshold :).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed. This doc could be maintained outside the BIPs repo but if the author wants a BIP I don't see a reason to prevent this.
From BIP 2:
The "must represent a net improvement" is a bit of a grey area but when unsure I think the BIP editors should lean towards giving the BIP number. If people want to use ordinals a specification on how to use ordinals (ideally using block space as efficiently as possible) seems like a net improvement to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This paragraph and next could use more clarification. If the input order is coinbase subsidy + inputs of fee-paying transactions, what is the result when a miner forgoes either the subsidy and/or fees? Which ordinals are "burned" those from the subsidy, or those from the fees paid? E.g., at time of writing, subsidy is 625,000,000 sats. If fees paid are another 10,000,000 and the miner erroneously accepts 322,500,000 does that burn effectively burn the ordinals of all the fees paid and part of the subsidy that should have been ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Specification in BIPs is (as far as I understand) usually given in plain English with well-defined notation where necessary, not in code (reference implementation can be included in the BIP's corresponding folder). This is (again, as far as I understand) not a hard requirement for merging, just something to consider.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This portion of the spec means that when a miner underpays the subsidy, the first sat destroyed is the last sat from the fee of the last transaction. While it would complicate the spec slightly, there are 2 alternatives I think worth considering:
lost_sats = len(fee_ordinals)+subsidy(block.height)-sum(outs)
and then before appending fee ordinals docoinbase_ordinals = coinbase_ordinals[:-lost_sats]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Despite facilitating non-fungible behavior, there is nothing in this that inhibits treating the sats as fully-fungible which means that the value of a single 'fee sat' is the same as the value of a single 'subsidy sat'. Given that, the priority should be on the single large range from the subsidy as that is the simpler range to track/store/lookup whereas the fee will be made, typically, of many small ranges.