From 1061571b131c529dd35b8127c8f331dd1ae46abf Mon Sep 17 00:00:00 2001 From: "David A. Harding" Date: Thu, 23 Oct 2014 16:00:53 -0400 Subject: [PATCH] Revise Note About Op Codes In Signature Scripts (closes #563) Based on text and revisions by @petertodd and @luke-jr in pull #563. --- _includes/ref_transactions.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/_includes/ref_transactions.md b/_includes/ref_transactions.md index d5f9c1f6..819dcbf0 100644 --- a/_includes/ref_transactions.md +++ b/_includes/ref_transactions.md @@ -52,10 +52,13 @@ A complete list of OP codes can be found on the Bitcoin Wiki [Script Page][wiki script], with an authoritative list in the `opcodetype` enum of the Bitcoin Core [script header file][core script.h] -Note: non-standard transactions can add non-data-pushing op codes to -their signature script, but signature scripts are run separately from the pubkey scripts (with a -shared stack), so signature scripts can't use arguments such as `OP_RETURN` to -prevent the script from working as expected. +Note: Signature scripts are not signed, so anyone can modify them. This +means signature scripts should only contain data and data-pushing op +codes which can't be modified without causing the pubkey script to fail. +Placing non-data-pushing op codes in the signature script currently +makes a transaction non-standard, and future consensus rules may forbid +such transactions altogether. (Non-data-pushing op codes are already +forbidden in signature scripts when spending a P2SH pubkey script.) {% endautocrossref %}