From 1b2eb07bf16b9df5a69f42566aa4dc4a783d97d8 Mon Sep 17 00:00:00 2001 From: theStack Date: Tue, 30 Jan 2018 17:40:59 -0500 Subject: [PATCH 1/2] corrected standard multisignature tx limit to N=3 see BIP11: "A new standard transaction type (scriptPubKey) that is relayed by clients and included in mined blocks: m {pubkey}...{pubkey} n OP_CHECKMULTISIG But only for n less than or equal to 3." also see the code in function IsStandard() in Bitcoin Core since v0.6.0: "// Support up to x-of-3 multisig txns as standard if (n < 1 || n > 3) return false;" --- ch07.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch07.asciidoc b/ch07.asciidoc index a6fae6c6..72da4d7e 100644 --- a/ch07.asciidoc +++ b/ch07.asciidoc @@ -12,7 +12,7 @@ First, we will look at _multisignature_ scripts. Next, we will examine the secon [[multisig]] === Multisignature -((("transactions", "advanced", "multisignature scripts")))((("transactions", "advanced", id="Tadv07")))((("scripting", "multisignature scripts", id="Smulti07")))((("multisignature scripts")))Multisignature scripts set a condition where N public keys are recorded in the script and at least M of those must provide signatures to unlock the funds. This is also known as an M-of-N scheme, where N is the total number of keys and M is the threshold of signatures required for validation. For example, a 2-of-3 multisignature is one where three public keys are listed as potential signers and at least two of those must be used to create signatures for a valid transaction to spend the funds. At this time, standard multisignature scripts are limited to at most 15 listed public keys, meaning you can do anything from a 1-of-1 to a 15-of-15 multisignature or any combination within that range. The limitation to 15 listed keys might be lifted by the time this book is published, so check the +isStandard()+ function to see what is currently accepted by the network. +((("transactions", "advanced", "multisignature scripts")))((("transactions", "advanced", id="Tadv07")))((("scripting", "multisignature scripts", id="Smulti07")))((("multisignature scripts")))Multisignature scripts set a condition where N public keys are recorded in the script and at least M of those must provide signatures to unlock the funds. This is also known as an M-of-N scheme, where N is the total number of keys and M is the threshold of signatures required for validation. For example, a 2-of-3 multisignature is one where three public keys are listed as potential signers and at least two of those must be used to create signatures for a valid transaction to spend the funds. At this time, standard multisignature scripts are limited to at most 3 listed public keys, meaning you can do anything from a 1-of-1 to a 3-of-3 multisignature or any combination within that range. The limitation to 3 listed keys might be lifted by the time this book is published, so check the +isStandard()+ function to see what is currently accepted by the network. The general form of a locking script setting an M-of-N multisignature condition is: From 41014a8c3a554ceab12c99735590b4fbe90631ec Mon Sep 17 00:00:00 2001 From: theStack Date: Sat, 3 Feb 2018 05:28:31 -0500 Subject: [PATCH 2/2] Revert "corrected standard multisignature tx limit to N=3" This reverts commit 1b2eb07bf16b9df5a69f42566aa4dc4a783d97d8. --- ch07.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch07.asciidoc b/ch07.asciidoc index 72da4d7e..a6fae6c6 100644 --- a/ch07.asciidoc +++ b/ch07.asciidoc @@ -12,7 +12,7 @@ First, we will look at _multisignature_ scripts. Next, we will examine the secon [[multisig]] === Multisignature -((("transactions", "advanced", "multisignature scripts")))((("transactions", "advanced", id="Tadv07")))((("scripting", "multisignature scripts", id="Smulti07")))((("multisignature scripts")))Multisignature scripts set a condition where N public keys are recorded in the script and at least M of those must provide signatures to unlock the funds. This is also known as an M-of-N scheme, where N is the total number of keys and M is the threshold of signatures required for validation. For example, a 2-of-3 multisignature is one where three public keys are listed as potential signers and at least two of those must be used to create signatures for a valid transaction to spend the funds. At this time, standard multisignature scripts are limited to at most 3 listed public keys, meaning you can do anything from a 1-of-1 to a 3-of-3 multisignature or any combination within that range. The limitation to 3 listed keys might be lifted by the time this book is published, so check the +isStandard()+ function to see what is currently accepted by the network. +((("transactions", "advanced", "multisignature scripts")))((("transactions", "advanced", id="Tadv07")))((("scripting", "multisignature scripts", id="Smulti07")))((("multisignature scripts")))Multisignature scripts set a condition where N public keys are recorded in the script and at least M of those must provide signatures to unlock the funds. This is also known as an M-of-N scheme, where N is the total number of keys and M is the threshold of signatures required for validation. For example, a 2-of-3 multisignature is one where three public keys are listed as potential signers and at least two of those must be used to create signatures for a valid transaction to spend the funds. At this time, standard multisignature scripts are limited to at most 15 listed public keys, meaning you can do anything from a 1-of-1 to a 15-of-15 multisignature or any combination within that range. The limitation to 15 listed keys might be lifted by the time this book is published, so check the +isStandard()+ function to see what is currently accepted by the network. The general form of a locking script setting an M-of-N multisignature condition is: