Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: genjix on July 09, 2011, 07:33:44 AM



Title: Non-standard transactions in the block chain
Post by: genjix on July 09, 2011, 07:33:44 AM
Hi,

I noticed that BitcoinJ doesn't verify non standard transactions. Are there any non standard transactions in the current block chain?

When I say standard transactions, I mean only

[sig] [pubkey] OP_DUP OP_HASH160 <pubkeyhash> OP_EQUALVERIFY OP_CHECKSIG

And,

[sig] [pubkey] OP_CHECKSIG

Thanks


Title: Re: Non-standard transactions in the block chain
Post by: hashcoin on July 09, 2011, 07:42:12 AM
Does bitcoinj verify any transactions?

http://code.google.com/p/bitcoinj/source/browse/trunk/src/com/google/bitcoin/core/Script.java

opCheckSig just returns true...


Title: Re: Non-standard transactions in the block chain
Post by: theymos on July 09, 2011, 07:42:49 AM
There are. BitcoinJ only does SPV, though, so it doesn't need to verify everything.


Title: Re: Non-standard transactions in the block chain
Post by: genjix on July 10, 2011, 02:48:06 AM
Are we talking about a huge list here or just a select few?

If not, would someone link a random selection of them?

Anything that uses more than:

OP_PUSHDATA1
OP_PUSHDATA2
OP_PUSHDATA4
OP_DUP
OP_DROP
OP_HASH160
OP_EQUALVERIFY
OP_CHECKSIG


Title: Re: Non-standard transactions in the block chain
Post by: Mike Hearn on July 10, 2011, 01:19:04 PM
See the "strange transactions" list on blockexplorer.com



Title: Re: Non-standard transactions in the block chain
Post by: genjix on July 10, 2011, 02:21:19 PM
Hhahaha! That's why IsStandard exists :)

Are those 3 the only non-standard transactions? They're very old it seems.

Thanks for that.

EDIT: How did that transaction not fail? OP_CHECKSIG pops twice from the stack and after the first pass, the stack would be 0 and then fail.


Title: Re: Non-standard transactions in the block chain
Post by: Mike Hearn on July 10, 2011, 02:24:00 PM
There are more on the testnet. Also depending on how you define "standard" there's a tx somewhere that has lots of zero value outputs that steganographically encodes the Bitcoin logo. It passes the IsStandard checks but is not financial in nature.


Title: Re: Non-standard transactions in the block chain
Post by: genjix on July 10, 2011, 02:49:07 PM
That's fine. As long as they don't use more than:

OP_PUSHDATA1
OP_PUSHDATA2
OP_PUSHDATA4
OP_DUP
OP_DROP
OP_HASH160
OP_EQUALVERIFY
OP_CHECKSIG

(for the time being at least ;D)