Hacker News new | ask | show | jobs
by vecio 1789 days ago
The miner can include some non-standard transactions makes Bitcoin not so perfect, and once that non-standard transactions included in a block, other miners won't validate its script at all, that make it worse.
4 comments

I can't quite follow what you're thinking.

The bitcoin transaction format has numerous points of intentional forward compatibility: Fields, flags, bits, etc. which intentionally have no effect at this time but which could be further restricted in the future in order to create functionality. Examples include future transaction version numbers and future script version numbers.

Use of these forward compatibility features is "non-standard" which means that unmodified software will not relay, mine, or display-while-unconfirmed transactions which use them. But if they happen to show up inside blocks, they'll be accepted.

This protects these fields for future use. Otherwise, some software would start randomly setting them (e.g. due to programming mistakes or confusion) and then these systems would catch fire when later the fields were given a defined meaning.

This article is about output with version 1 instead of version 0. Currently v1 is defined to have no effect. At block 709632 (in November roughly) that will change and v1 will have a meaning defined by BIP-341 (https://github.com/bitcoin/bips/blob/master/bip-0341.mediawi...).

once that non-standard transactions included in a block, other miners won't validate its script at all

I don't think this is correct. Miners (are supposed to) validate all transactions in all blocks.

>other miners won't validate its script at all, that make it worse.

What do you mean by "validate" here? All nodes check for validity, in the sense that the transaction is properly authorized.

Nodes don't relay non standard transactions to be mined, but blocks with non standard transactions are relayed and accepted by all nodes. These rules together make soft forks possible.