Pages:
Author

Topic: NFTs in the Bitcoin blockchain - Ordinal Theory (Read 9138 times)

legendary
Activity: 2884
Merit: 1810
It appears that there are some efforts being made to take BRC-20 to the 2nd layer:

https://twitter.com/BRC20com/status/1745477227636982253

Some data will still be settled on L1 but this is a great initiative which is driven by a couple of factors:

1. fees
2. the need to perform advanced, virtual machine-type transactions that can't be done on L1.

This is hard to read but it further explains the thinking of our new bitcoin shittoken friends, for anyone who may be interested:

https://brc20.com/wiki/brc20-strategic-partnership-to-release-first-brc20-focussed-l2-ecosystem

Welcome news.  This also lends credence to the notion that, rather than being a deliberate "attack", as some claim, this was largely just an inconsiderate use of resources.  A near-miss of a "Tragedy of the commons", if you will. 

If they're genuinely trying to make their usage more efficient, this should eventually bring some resolution to the conflict.  And is a far more constructive approach than looking to block or otherwise prevent people doing stuff.


It obviously IS an inconsiderate use of resources, especially precious limited capital held in Bitcoin units. Although, the high fees that were paid to mint those NFT/BRC-20 were also good for the health of the network, because they were redistributed back to the Bitcoin economy through the miners selling those coins to pay for their expenses.

If BRC-20 users keep trying to sustain the unsustainable by sending more money into the Bitcoin economy, then that's absolutely good for the growth of the network.
sr. member
Activity: 190
Merit: 234
Not your coins, not your business
This also lends credence to the notion that, rather than being a deliberate "attack", as some claim, this was largely just an inconsiderate use of resources.

Surely if ordinal people switch to using this second layer, but until that happens, I would not be so sure.  If the layer is ready for production and they insist on transacting ordinals on the main layer, then that gives us a hint.
legendary
Activity: 3724
Merit: 3063
Leave no FUD unchallenged
It appears that there are some efforts being made to take BRC-20 to the 2nd layer:

https://twitter.com/BRC20com/status/1745477227636982253

Some data will still be settled on L1 but this is a great initiative which is driven by a couple of factors:

1. fees
2. the need to perform advanced, virtual machine-type transactions that can't be done on L1.

This is hard to read but it further explains the thinking of our new bitcoin shittoken friends, for anyone who may be interested:

https://brc20.com/wiki/brc20-strategic-partnership-to-release-first-brc20-focussed-l2-ecosystem

Welcome news.  This also lends credence to the notion that, rather than being a deliberate "attack", as some claim, this was largely just an inconsiderate use of resources.  A near-miss of a "Tragedy of the commons", if you will. 

If they're genuinely trying to make their usage more efficient, this should eventually bring some resolution to the conflict.  And is a far more constructive approach than looking to block or otherwise prevent people doing stuff.
legendary
Activity: 2940
Merit: 7892
It appears that there are some efforts being made to take BRC-20 to the 2nd layer:

https://twitter.com/BRC20com/status/1745477227636982253

Some data will still be settled on L1 but this is a great initiative which is driven by a couple of factors:

1. fees
2. the need to perform advanced, virtual machine-type transactions that can't be done on L1.

This is hard to read but it further explains the thinking of our new bitcoin shittoken friends, for anyone who may be interested:

https://brc20.com/wiki/brc20-strategic-partnership-to-release-first-brc20-focussed-l2-ecosystem
hero member
Activity: 789
Merit: 1909
Quote
If there isn't truly any separation for witness data and non-witness data, then does that mean that making the block size larger, let's make "triple" the current size, won't truly help the network if the demand for block space increases as well?
Exactly.

1. If you want to increase maximum block size from 4 MB witness into 12 MB "second witness", then you need another soft-fork, if you want to have that data processed, and stored by every single full node (because if not, then it is easy, and you can have "unlimited commitments", that would be recognized only by upgraded nodes, and nobody else).

2. If you would have for example 12 MB "second witness", then each block would still have "1 MB legacy" limit, which means, if you can consume M UTXOs, and create N UTXOs on average, within a 4 MB witness, then that value will not increase in case of 12 MB "second witness", or even 1 GB "second witness", because all UTXOs are consumed and created in a "1 MB legacy" section, which means, that all non-Segwit nodes, still need to get that information in a backward-compatible way.

Quote
What it might actually do is encourage more developers to inscribe and mint BRC-20 tokens and NFTs.
If someone really want that functionality, then it is better to use commitments, than to push those data on-chain. Which means, if you have any signature, then you can convert R-value of that, into a matching Taproot address, and then upgraded nodes can store commitments to that data. Then, it is cheaper, and it is enforced by consensus rules in the same way, because Ordinals are just huge OP_NOPs, which means, you only need a matching connection between your data, and a particular address. And you don't need to push that data on-chain, to reach such connection. And also, moving things from TapScript into "any signature" means, that people could use those features on all address types, where OP_CHECKSIG is available, including altcoins like Grin.

Quote
Because, there are some users that are suggesting that they want a block size increase under the display of "It's merely a joke, bro".
I guess many people didn't try to change witness factor from 4 into 12 or anything bigger, and check, what is the final outcome of changes like that. Because I guess they think about it as "1 MB legacy + 3 MB witness", but this is not the case.

Edit: Also, in case of commitments, it is really "4 MB witness + unlimited commitments", which is what some people want, so I don't understand, why they don't want to implement it in that way, and they want block size increase instead.
legendary
Activity: 2884
Merit: 1810
Quote
They go to the part of the block where the witness data reside


There is one problem: there is no other space than witness. You have 1 MB non-witness limit or 4 MB witness limit. Which means, if you create a transaction with 100 kB witness, then it means, you take a space, which could be taken by 25 kB regular data, in a plain, old, 1 MB block limit, or you can take 100 kB witness of another transactions, used for regular payments.

Which means: there is always a choice: confirm this Ordinal, or confirm this regular payment. It is not "1 MB non-witness plus 3 MB witness-only". It is just "4 MB witness", which means, every four bytes of witness, just take the space of one byte of non-witness, which could be there.

Also, note that the famous "almost 4 MB ordinal transaction" included in block 774628, took a lot of space from regular transactions. Note that this particular block has only 63 transactions! Which means, there is no separation, like "witness here, and non-witness there". Because everything is counted into "4 MB witness limit".

Edit:

Quote

There's no part of block dedicated to store UTXO set. UTXO set is created by your full node. As a reminder, SegWit and Taproot TX include data classified as witness data.


Exactly. The ability to create and spend UTXOs didn't change with Segwit. You still need to specify transaction inputs and outputs in a "legacy 1 MB" space. Which means, if you assume that all outputs are just set to OP_TRUE, and all inputs are just empty, then you can count the maximum amount of UTXOs, which could be consumed and created within a block. And this value is identical for Segwit and legacy.

Unless you put the whole transaction inside the witness, but then, it means a single "coin" is used by more than one user (which means for example N-of-N multisig, behind a single UTXO). But of course, Ordinals do not help there, instead they make things worse, because they fill blocks with data, which could be evaluated always into a huge OP_NOP, and which take the space of regular payments, that could be handled instead.


TIL, thank you!

OK, then for my next question. I may already know the answer, but I would like to hear it from people smarter than me.

- If there isn't truly any separation for witness data and non-witness data, then does that mean that making the block size larger, let's make "triple" the current size, won't truly help the network if the demand for block space increases as well?

What it might actually do is encourage more developers to inscribe and mint BRC-20 tokens and NFTs.

Because, there are some users that are suggesting that they want a block size increase under the display of "It's merely a joke, bro".
hero member
Activity: 789
Merit: 1909
Quote
They go to the part of the block where the witness data reside
There is one problem: there is no other space than witness. You have 1 MB non-witness limit or 4 MB witness limit. Which means, if you create a transaction with 100 kB witness, then it means, you take a space, which could be taken by 25 kB regular data, in a plain, old, 1 MB block limit, or you can take 100 kB witness of another transactions, used for regular payments.

Which means: there is always a choice: confirm this Ordinal, or confirm this regular payment. It is not "1 MB non-witness plus 3 MB witness-only". It is just "4 MB witness", which means, every four bytes of witness, just take the space of one byte of non-witness, which could be there.

Also, note that the famous "almost 4 MB ordinal transaction" included in block 774628, took a lot of space from regular transactions. Note that this particular block has only 63 transactions! Which means, there is no separation, like "witness here, and non-witness there". Because everything is counted into "4 MB witness limit".

Edit:
Quote
There's no part of block dedicated to store UTXO set. UTXO set is created by your full node. As a reminder, SegWit and Taproot TX include data classified as witness data.
Exactly. The ability to create and spend UTXOs didn't change with Segwit. You still need to specify transaction inputs and outputs in a "legacy 1 MB" space. Which means, if you assume that all outputs are just set to OP_TRUE, and all inputs are just empty, then you can count the maximum amount of UTXOs, which could be consumed and created within a block. And this value is identical for Segwit and legacy.

Unless you put the whole transaction inside the witness, but then, it means a single "coin" is used by more than one user (which means for example N-of-N multisig, behind a single UTXO). But of course, Ordinals do not help there, instead they make things worse, because they fill blocks with data, which could be evaluated always into a huge OP_NOP, and which take the space of regular payments, that could be handled instead.
legendary
Activity: 2884
Merit: 1810
--snip--
1. While it's true you can prune witness data, AFAIK there's no full node which let you do that.
2. It's still waste of block size since Ordinals TX has size more than 0. Possibility of pruning witness data actually means it's not waste of storage space.
The point is Ordinals embeds data in the structure of the blocks that store witness data, not the part of the block where the UTXO set resides. In that context, I don't know what's "wasted" because none of the embedded data is "stealing" space from actual Bitcoin transactions. Plus as a consensus rule, the block size is regulated up to 4MB. It's allowed to be that large.

What? There's no part of block dedicated to store UTXO set. UTXO set is created by your full node. As a reminder, SegWit and Taproot TX include data classified as witness data.


Pardon me, I try to learn but I'm not very technical, but I believe you already knew what I was trying to say, that those dick pics and fart sounds in Ordinals are not embedded in the part of the block where the transactions reside if a user sends Bitcoin. They go to the part of the block where the witness data reside.

Quote
It's definitely more concerning, although it's easier to make such TX become non-standard.
Does making them non-standard come with a hard fork?


No, it only requires node operator update their node software which doesn't relay non-standard TX. But miner could include those non-standard TX on their block and deemed valid by other node.


Technically, from the viewpoint of the Bitcoin network with the current consensus rules, are Bitcoin Stamps "non-standard" transactions?
legendary
Activity: 2842
Merit: 7333
Crypto Swap Exchange
--snip--
1. While it's true you can prune witness data, AFAIK there's no full node which let you do that.
2. It's still waste of block size since Ordinals TX has size more than 0. Possibility of pruning witness data actually means it's not waste of storage space.
The point is Ordinals embeds data in the structure of the blocks that store witness data, not the part of the block where the UTXO set resides. In that context, I don't know what's "wasted" because none of the embedded data is "stealing" space from actual Bitcoin transactions. Plus as a consensus rule, the block size is regulated up to 4MB. It's allowed to be that large.

What? There's no part of block dedicated to store UTXO set. UTXO set is created by your full node. As a reminder, SegWit and Taproot TX include data classified as witness data.

Quote
It's definitely more concerning, although it's easier to make such TX become non-standard.
Does making them non-standard come with a hard fork?

No, it only requires node operator update their node software which doesn't relay non-standard TX. But miner could include those non-standard TX on their block and deemed valid by other node.
legendary
Activity: 2884
Merit: 1810
--snip--
It's obviously wrong, Ordinals TX has size more than 0.
I didn't say Ordinals transaction size isn't zero. I said technically it isn't a waste in block space. Why? Because the data isn't embedded within the structure where the UTXO set is stored. It goes to the structure of the block where witness data are stored, which is prunable.

1. While it's true you can prune witness data, AFAIK there's no full node which let you do that.
2. It's still waste of block size since Ordinals TX has size more than 0. Possibility of pruning witness data actually means it's not waste of storage space.


The point is Ordinals embeds data in the structure of the blocks that store witness data, not the part of the block where the UTXO set resides. In that context, I don't know what's "wasted" because none of the embedded data is "stealing" space from actual Bitcoin transactions. Plus as a consensus rule, the block size is regulated up to 4MB. It's allowed to be that large.

But Bitcoin Stamps is something different, and it should be more concerning in my opinion.


It's definitely more concerning, although it's easier to make such TX become non-standard.


Does making them non-standard come with a hard fork?
legendary
Activity: 2842
Merit: 7333
Crypto Swap Exchange
--snip--
It's obviously wrong, Ordinals TX has size more than 0.
I didn't say Ordinals transaction size isn't zero. I said technically it isn't a waste in block space. Why? Because the data isn't embedded within the structure where the UTXO set is stored. It goes to the structure of the block where witness data are stored, which is prunable.

1. While it's true you can prune witness data, AFAIK there's no full node which let you do that.
2. It's still waste of block size since Ordinals TX has size more than 0. Possibility of pruning witness data actually means it's not waste of storage space.

But Bitcoin Stamps is something different, and it should be more concerning in my opinion.

It's definitely more concerning, although it's easier to make such TX become non-standard.
legendary
Activity: 2884
Merit: 1810
Quote
Ordinals are a waste of block space but what can we do? miners just want profits and they'll mine blocks irrespective of what they contain.
Technically it isn't a waste in block space. It doesn't take the space from actual Bitcoin transactions.

It's obviously wrong, Ordinals TX has size more than 0.


I didn't say Ordinals transaction size isn't zero. I said technically it isn't a waste in block space. Why? Because the data isn't embedded within the structure where the UTXO set is stored. It goes to the structure of the block where witness data are stored, which is prunable.

But Bitcoin Stamps is something different, and it should be more concerning in my opinion.
legendary
Activity: 2842
Merit: 7333
Crypto Swap Exchange
Quote
Ordinals are a waste of block space but what can we do? miners just want profits and they'll mine blocks irrespective of what they contain.
Technically it isn't a waste in block space. It doesn't take the space from actual Bitcoin transactions.

It's obviously wrong, Ordinals TX has size more than 0.

Ordinals NFTs reside in the part of the block where witness data resides. They are prunable.

Aside from prune node which only store latest blocks, you still need to store UTXO created by Ordinals inscription. Ordinals (mainly BRC-20) popularity massive increase total UTXO where it already impact IBD (initial block download) speed for Raspberry Pi and other device with <= 8GB of RAM.
legendary
Activity: 2884
Merit: 1810

That gives bad actors the opportunity to build a months/years long sustainable ecosystem to price many users out from using the network. The "protocol" of Ordinals by itself is not the attack, but it could be used as an attack vector. It's going to be an annoying few months until the hype goes down, but it might not be the end of that. It goes, then it comes back.


No one is pushed out of using the network . Anyone has the right to increase the fee to a level that will make his transaction enter into the next block . Isn't that the purpose of the fee market , to make blockchain space as much valuable as possible ? Well , mission accomplished . To be honest , i see current fee market at a low level . As soon as more protocols start to create defi's etc on btc , fees will increase in thousands of dollars for a single tx .
The unfortunate ones will be those that will have to exit from LN for whatever reason and those stacking sats . A new era is coming .

Really? Tell that to a person willing to buy $10 worth of BTC. According to you, he now has to pay like what? $50 in fees?  Grin No, we're not pushing anyone out, never.  Grin  And to "make blockchain space as much valuable as possible" is the ultimate goal for miners not for all bitcoiners or market in general...


depends if he buys at an exchange.  coinbase won't charge high fee to buy it.

they will charge a high fee to move it off the exchange.


But technically in an exchange it's not actual Bitcoin that you're buying, but mere numbers in their ledger. It only become actual Bitcoin if those units are transferred in a public address with a private key that's under your custody.

In the subject of Ordinals and transaction fees, have we seen the network maintain such high fees that users are willing to pay more than one month? I believe not, but if it does, wouldn't it make Bitcoin more profitable to mine that BCH and BSV miners would start pointing hashing power to Bitcoin?

Governments have an huge incentive to not have people withdrawing bitcoin from exchanges and putting them into local wallets they can't control, so high fees play on their favor in this sense. At the same time, it limits the use of bitcoin as cash easily, or at least for now, when LN is not that mainstream and well understood.

On the other hand, governments would like big blocks, since they could just control the nodes at will. They would be datacenters that are registered and basically would get told what to do and what software to run.

So you have to factor in both. What is more important? I think it's clear, the second one is. Paying higher fees is worth avoiding datacenters as nodes scenario.


From a long-term perspective and from the network's point of view, Bitcoin's survival depends on that it should be decentralized enough and that the blockchain should be redundant enough. But it will be at the cost of users being priced out, temporarily, from using the network for simple Bitcoin transfers.

Quote

Ordinals are a waste of block space but what can we do? miners just want profits and they'll mine blocks irrespective of what they contain.


Technically it isn't a waste in block space. It doesn't take the space from actual Bitcoin transactions. Ordinals NFTs reside in the part of the block where witness data resides. They are prunable.
sr. member
Activity: 281
Merit: 408

That gives bad actors the opportunity to build a months/years long sustainable ecosystem to price many users out from using the network. The "protocol" of Ordinals by itself is not the attack, but it could be used as an attack vector. It's going to be an annoying few months until the hype goes down, but it might not be the end of that. It goes, then it comes back.


No one is pushed out of using the network . Anyone has the right to increase the fee to a level that will make his transaction enter into the next block . Isn't that the purpose of the fee market , to make blockchain space as much valuable as possible ? Well , mission accomplished . To be honest , i see current fee market at a low level . As soon as more protocols start to create defi's etc on btc , fees will increase in thousands of dollars for a single tx .
The unfortunate ones will be those that will have to exit from LN for whatever reason and those stacking sats . A new era is coming .

Really? Tell that to a person willing to buy $10 worth of BTC. According to you, he now has to pay like what? $50 in fees?  Grin No, we're not pushing anyone out, never.  Grin  And to "make blockchain space as much valuable as possible" is the ultimate goal for miners not for all bitcoiners or market in general...


depends if he buys at an exchange.  coinbase won't charge high fee to buy it.

they will charge a high fee to move it off the exchange.


But technically in an exchange it's not actual Bitcoin that you're buying, but mere numbers in their ledger. It only become actual Bitcoin if those units are transferred in a public address with a private key that's under your custody.

In the subject of Ordinals and transaction fees, have we seen the network maintain such high fees that users are willing to pay more than one month? I believe not, but if it does, wouldn't it make Bitcoin more profitable to mine that BCH and BSV miners would start pointing hashing power to Bitcoin?

Governments have an huge incentive to not have people withdrawing bitcoin from exchanges and putting them into local wallets they can't control, so high fees play on their favor in this sense. At the same time, it limits the use of bitcoin as cash easily, or at least for now, when LN is not that mainstream and well understood.

On the other hand, governments would like big blocks, since they could just control the nodes at will. They would be datacenters that are registered and basically would get told what to do and what software to run.

So you have to factor in both. What is more important? I think it's clear, the second one is. Paying higher fees is worth avoiding datacenters as nodes scenario.

Ordinals are a waste of block space but what can we do? miners just want profits and they'll mine blocks irrespective of what they contain.
copper member
Activity: 33
Merit: 152
But they will always claim that their network has higher transaction throughput and therefore "scales", but how do we define "scale". Higher throughput but sacrifices decentralization? That's not scaling. It actually scales the network down, reducing node count, and therefore centralizing the network.

Exactly. With one caveat, if we can verify zero knowledge proofs and merkle proofs in bitcoin script, can process millions of transactions in a single uxto without sacrificing and scale, no trade offs, just proof of math (constant size proof -> proves arbitrary number of transactions -> user proves balance via merkle proof -> unlock uxto).
legendary
Activity: 2884
Merit: 1810
--snip--
You're right, but I was just wondering why LTC/DOGE can have merged mining, while BTC/BCH/BSV cannot do the same (which makes BCH/BSV prone to 51% attacks):

https://www.coindesk.com/tech/2019/05/24/bitcoin-cash-miners-undo-attackers-transactions-with-51-attack/
https://www.coindesk.com/markets/2021/08/04/bsv-suffers-51-attack-report/

People would perceived that BCH or BSV community acknowledge BTC is superior in some ways. There's no way BSV community and faketoshi would do that.


There's no need to mention what they believe or if there's actually a need to acknowledge that Bitcoin is superior because it IS superior by all comparisons. People will know it, either the easy way or the hard way.

But they will always claim that their network has higher transaction throughput and therefore "scales", but how do we define "scale". Higher throughput but sacrifices decentralization? That's not scaling. It actually scales the network down, reducing node count, and therefore centralizing the network.
legendary
Activity: 2842
Merit: 7333
Crypto Swap Exchange
--snip--
You're right, but I was just wondering why LTC/DOGE can have merged mining, while BTC/BCH/BSV cannot do the same (which makes BCH/BSV prone to 51% attacks):

https://www.coindesk.com/tech/2019/05/24/bitcoin-cash-miners-undo-attackers-transactions-with-51-attack/
https://www.coindesk.com/markets/2021/08/04/bsv-suffers-51-attack-report/

People would perceived that BCH or BSV community acknowledge BTC is superior in some ways. There's no way BSV community and faketoshi would do that.

Quote
but they can't inject themself into a transaction
It depends on sighashes. And if mempools will be permanently flooded, then batching will be needed, and there will be services, which will batch transactions, and grab some fees for doing that. But yes, users have to agree on that, by constructing a transaction in a different way. And if you have a choice: create your transaction alone, and have 1 GB of other pending transactions before it will be confirmed, or batch it, and get it confirmed faster, then it is not that hard to imagine, that many people will choose batching, if that option will be available.

Rather than services, we might as well as add protocol which allow non-interactive cut-through or CoinJoin.
hero member
Activity: 789
Merit: 1909
Quote
But how will the be batched?
We have the first tool to batch things, which is called Full-RBF. And more tools will come. Because if you have a chain of unconfirmed transactions, for example Alice->Bob->Charlie, then Alice can create a Full-RBF transaction, sending coins directly to Charlie, and it will be smaller, so even if you preserve all amounts, the feerate will increase.

But of course, the perfect scenario would mean doing that things, without asking Alice, just by observing your mempool, and combining transactions, without invalidating signatures. And of course, to make it possible, it is needed to create tools, which will allow making transactions, which will be "opened for being joined" in the first place.

Quote
In the order on when the transactions were broadcasted?
Well, if you want to batch some transactions, then you need an exact match. It is possible to construct a transaction in a way, where you can replace Alice->Bob->Charlie into Alice->Charlie, without asking anyone for making another signature, and only into Alice->Charlie transaction (or any other combination, for which you have proper signatures).

Quote
Because as the fees become a more and more important source of incentivization for mining a block, wouldn't batching shake up the fee market, and therefore shaking up the network's incentive structure too?
No, because fees will be left unchanged. If you paid 0.01 BTC for Alice->Bob->Charlie, then you will also pay at least 0.01 BTC for Alice->Charlie transaction. But because it will be smaller, miners will have an incentive to include a shorter version, which will give the same outcome.

Quote
Plus if there's such a service that could put your transaction first in line before the user who paid a higher fee, how and by who is the service subsidized?
It is not about paying less, if you count the fees in final blocks. It is about joining forces to pay less per user, while having the same fee per transaction. But yes, it will affect the network, but in a positive sense: it is easier to batch regular payments, than for example Ordinals, because they will lose their precious on-chain data in the process. But it is a feature, not a bug: regular users need a way to compete, and batching is one of possible ways to have any chance.
legendary
Activity: 2884
Merit: 1810
Quote
non-mining nodes have no way of making money in the bitcoin ecosystem
Why do you think so? What about Lightning Network? What about casinos? What about exchanges? They don't have to mine new coins to get them.

Quote
but they can't inject themself into a transaction


It depends on sighashes. And if mempools will be permanently flooded, then batching will be needed, and there will be services, which will batch transactions, and grab some fees for doing that. But yes, users have to agree on that, by constructing a transaction in a different way. And if you have a choice: create your transaction alone, and have 1 GB of other pending transactions before it will be confirmed, or batch it, and get it confirmed faster, then it is not that hard to imagine, that many people will choose batching, if that option will be available.


But how will they be batched? In the order on when the transactions were broadcasted? Because as the fees become a more and more important source of incentivization for mining a block, wouldn't batching shake up the fee market, and therefore shaking up the network's incentive structure too?

Plus if there's such a service that could put your transaction first in line before the user who paid a higher fee, how and by who is the service subsidized?
Pages:
Jump to: