1

Non-segwit nodes (legacy nodes) see segwit transactions as anyone-can-spend (ACS) transactions. It is clear that such a nodes can (and do) validate blocks containing ACS transactions, because the scripts they run are compatible with the original rules of Bitcoin (this is why SegWit is considered a soft fork). However, I see around the statement that a miner running a non-segwit node cannot include a ACS transaction in his own mining block, because, if he had managed to mine that block, segwits nodes would reject it because digital signatures were missing, resulting in an orphaned block.

Is it correct what I’m saying? If yes, let me consider the following scenario BEFORE the creation and implementation of SegWit on Bitcoin:

Before the creation and implementation of SegWit, when all running nodes were non-segwit, if a miner had included an ACS transaction in his own block and he had managed to mine it, would such a block be accepted by others nodes? I don't see the reason why such a block could be forbidden. From the point of view of the other nodes (which are all non-segwit), they see this new block a one containing ACS transactions, and like any other block nowadays, they should validate it.

What I’m trying to say is that, in the previous version of Bitcoin (before SegWit), there was nothing to "prohibit" a miner from spending/stealing someone else's funds. If the answer is that before SegWit nodes would never accept blocks containing ACS transactions, this means that SegWit is in fact a hard fork, because nowadays they do accept them.

Hence, I see the following three “scenarios”

  1. Before SegWit implementation, miners could include ACS transactions in their blocks and all the other nodes should validate them. The fact that it never happened is because all miners were “honest”.
  2. Before SegWit, nodes did not validate blocks containing ACS transactions. But they do validate them now. This results in a HARD fork.
  3. There is something that I’m missing or I’m misunderstanding.

I hope the answer is number 3. I’ll appreciate if somebody could help me.

0

Before the creation and implementation of SegWit, when all running nodes were non-segwit, if a miner had included an ACS transaction in his own block and he had managed to mine it, would such a block be accepted by others nodes?

Yes.

Before SegWit implementation, miners could include ACS transactions in their blocks and all the other nodes should validate them. The fact that it never happened is because all miners were “honest”.

It has happened a number of times. For example tx https://www.blockchain.com/btc/tx/b38bb421d9a54c58ea331c4b4823dd498f1e42e25ac96d3db643308fcc70503e has two ACS outputs. Of course, ANYONE took them already to address 1AJaMSZDGaANx1wd9u83DTznCxkdrJiK8 :))))

In fact, clients do not verify the output scripts at all while verify blocks.

What I’m trying to say is that, in the previous version of Bitcoin (before SegWit), there was nothing to "prohibit" a miner from spending/stealing someone else's funds.

... only in case if the funds were sent to ANYONE :)))))

1
  • 1
    Thanks for the response! I was misunderstanding the concept of ACS. I thought that in the old Bitcoin, any tx was a ACS tx. What I mean, that any miner could redeem any UTXO and sent it to his own address. It looked like a bug of the protocol. Now, I understand that to use an "anyone-can-spend" input, this input came from the output of a previous tx where the sender intentionally sent to an "anyone-can-spend" address, and which has to be signed by the sender (unless the input came from another ACS, and so on). – user922921 Jan 15 at 14:23
2

there was nothing to "prohibit" a miner from spending/stealing someone else's funds

That was never true, so far as I know, miners have never been able to spend other people's funds seen in normal transactions with the right spending scripts.

A more accurate description of the situation you describe is perhaps that there was nothing to prohibit people from freely leaving their money unprotected in a public place for any passerby to take.

1
  • "A more accurate description of the situation you describe is perhaps that there was nothing to prohibit people from freely leaving their money unprotected in a public place for any passerby to take." Yes, thanks! I was misunderstanding the concept of ACS tx. This sentence answers my doubts very precisely. – user922921 Jan 15 at 14:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.