1

I read that transactions spending utxos from a native segwit address ( an address starting with bc1) are seen as anyone can spend transactions by legacy nodes.

So what prevents someone from taking a utxo from a native segwit address and using it to fund a transaction with a scriptsig of OP_TRUE or null ,and submitting it to a legacy node or directly to a miner?

2

Segwit is a soft fork. A supermajority of miners have agreed that they will not include such transactions in their blocks, and will orphan any block that does include such a transaction.

If you send such a transaction to a legacy node, it will see it as a valid unconfirmed transaction, but the network will never confirm it.

Potentially, if there are still some miners running legacy code, the transaction could get included in a block by a miner who also sees it as valid. But the majority of miners will reject this block. The only way that the legacy node would ever see this transaction as reaching, say, 6 confirmations is if those legacy miners were to mine 6 blocks in succession. Since those miners are at bet a tiny minority, this is extremely unlikely.

If you send the transaction directly to an updated miner, they'll reject it. If you send it to a legacy miner, they might include it in a block, but then their block will eventually be orphaned out of the blockchain.

  • But wouldn't a transaction like that be seen as non standard so some miners might accept it? – Errol Mar 29 '18 at 3:02
  • @Errol: I don't understand what you mean. A miner can accept a non-standard transaction only if it is still valid according to that miner's understanding of the consensus rules. For instance, a miner could accept an OP_RETURN transaction with more than 83 bytes of payload; it is nonstandard but still valid. But they can't accept a transaction with an invalid signature, or which spends a nonexistent utxo. – Nate Eldredge Mar 29 '18 at 3:07
  • And even if that miner ran with modified software that somehow treats such a transaction as valid, all that would happen is that the miner creates a block that every other miner and almost every other node in the world will consider invalid, and ignore. – Pieter Wuille Mar 29 '18 at 7:04

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.