Bitcoin Forum
August 27, 2024, 06:04:50 PM *
News: All versions of Windows are affected by a critical security bug; make sure you update.
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Is emtpy ScriptPubKey nonstandard or illegal?  (Read 217 times)
Coding Enthusiast (OP)
Legendary
*
Offline Offline

Activity: 1040
Merit: 2785


Bitcoin and C♯ Enthusiast


View Profile WWW
March 23, 2019, 06:29:47 AM
Merited by ABCbits (1)
 #1

If illegal, since when?

(If any readers are curious, here is an example: 8ec3e3dd39150798d71c61ffb7cc18ade6f2a2958378e18b7a98eefb709e7322 spent by f21b099d67070a7639d384f30e9b139bab58c27e47368a2d8152f05c14e187b7 which is the smallest tx record)

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.19.1)Ann-git
Denovo(0.7.0)Ann-git
Bitcoin.Net(0.26.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.2.1)Ann-git
SharpPusher(0.12.0)Ann-git
Pmalek
Legendary
*
Offline Offline

Activity: 2870
Merit: 7415


Playgram - The Telegram Casino


View Profile
March 23, 2019, 08:27:03 AM
 #2

I am not sure if this will help you any further but give it a try.
Have a look at this work by Peter Todd, RFC: empty scriptPubKeys and OP_RETURN for marking unspendable txouts
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2013-February/002159.html

I also found an older thread from 2015.
https://bitcointalk.org/index.php?topic=1038794.msg11208171#msg11208171


▄▄███████▄▄███████
▄███████████████▄▄▄▄▄
▄████████████████████▀░
▄█████████████████████▄░
▄█████████▀▀████████████▄
██████████████▀▀█████████
████████████████████████
██████████████▄▄█████████
▀█████████▄▄████████████▀
▀█████████████████████▀░
▀████████████████████▄░
▀███████████████▀▀▀▀▀
▀▀███████▀▀███████

▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 
Playgram.io
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

▄▄▄░░
▀▄







▄▀
▀▀▀░░
▄▄▄███████▄▄▄
▄▄███████████████▄▄
▄███████████████████▄
▄██████████████▀▀█████▄
▄██████████▀▀█████▐████▄
██████▀▀████▄▄▀▀█████████
████▄▄███▄██▀█████▐██████
█████████▀██████████████
▀███████▌▐██████▐██████▀
▀███████▄▄███▄████████▀
▀███████████████████▀
▀▀███████████████▀▀
▀▀▀███████▀▀▀
██████▄▄███████▄▄████████
███▄███████████████▄░░▀█▀
███████████░█████████░░
░█████▀██▄▄░▄▄██▀█████░
█████▄░▄███▄███▄░▄█████
███████████████████████
███████████████████████
██░▄▄▄░██░▄▄▄░██░▄▄▄░██
██░░░░██░░░░██░░░░████
██░░░░██░░░░██░░░░████
██▄▄▄▄▄██▄▄▄▄▄██▄▄▄▄▄████
███████████████████████
███████████████████████
 
PLAY NOW

on Telegram
darosior
Sr. Member
****
Offline Offline

Activity: 279
Merit: 435


View Profile
March 23, 2019, 02:14:22 PM
 #3

If illegal, since when?

(If any readers are curious, here is an example: 8ec3e3dd39150798d71c61ffb7cc18ade6f2a2958378e18b7a98eefb709e7322 spent by f21b099d67070a7639d384f30e9b139bab58c27e47368a2d8152f05c14e187b7 which is the smallest tx record)
A script has to be standard or the transaction won't be accepted, this check is done with the isStandard() boolean function which will return false if the Solver function returns `TX_NONSTANDARD`.
The `Solver()` function will return `TX_NONSTANDARD` if the script is not P2SH, or valid WITNESS, or OP_RETURN, or P2PK, or P2PKH. None of them can be empty, thus a transaction with an output containing an empty scriptPubkey will be non standard and thus not accepted (/illegal).

EDIT : To answer the question in the title, "nonstandard or illegal ?", this is the same : only standard scripts are legal.
Coding Enthusiast (OP)
Legendary
*
Offline Offline

Activity: 1040
Merit: 2785


Bitcoin and C♯ Enthusiast


View Profile WWW
March 23, 2019, 03:43:26 PM
Merited by Foxpup (2)
 #4

EDIT : To answer the question in the title, "nonstandard or illegal ?", this is the same : only standard scripts are legal.

Maybe the term "illegal" was an ambiguous term, my English was not helping me find a better word!
By "illegal" I mea whether the transaction containing an empty script would be invalid in a block. As you can see from the transaction I posted in OP it was perfectly possible in 2015 to have such transactions, I want to know if anything has changed.

BTW nonstandard means bitcoin-core nodes automatically reject these transactions and won't relay them. They are not breaking any rules though which is why they can exist in blocks.

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.19.1)Ann-git
Denovo(0.7.0)Ann-git
Bitcoin.Net(0.26.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.2.1)Ann-git
SharpPusher(0.12.0)Ann-git
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 3486
Merit: 6823


Just writing some code


View Profile WWW
March 23, 2019, 04:38:45 PM
Merited by Foxpup (3), bones261 (2), ABCbits (1), Coding Enthusiast (1)
 #5

It is non-standard but still valid. No consensus changes have been made regarding empty scriptPubKeys.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!