1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194]
helo=mx.sourceforge.net)
by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
(envelope-from <roconnor@theorem.ca>) id 1Rhky6-0004G8-Ob
for bitcoin-development@lists.sourceforge.net;
Mon, 02 Jan 2012 16:42:38 +0000
X-ACL-Warn:
Received: from erdos.theorem.ca ([72.2.4.176] helo=theorem.ca)
by sog-mx-4.v43.ch3.sourceforge.com with smtp (Exim 4.76)
id 1Rhky5-0000Ae-FS for bitcoin-development@lists.sourceforge.net;
Mon, 02 Jan 2012 16:42:38 +0000
Received: (qmail 21282 invoked by uid 603); 2 Jan 2012 16:42:31 -0000
Received: from localhost (sendmail-bs@127.0.0.1)
by localhost with SMTP; 2 Jan 2012 16:42:31 -0000
Date: Mon, 2 Jan 2012 11:42:31 -0500 (EST)
From: roconnor@theorem.ca
To: Gavin Andresen <gavinandresen@gmail.com>
In-Reply-To: <CABsx9T3gNNmPen=WtCpG8RCChSwpJ73r7WU2Kz_fP31wAQ+jQg@mail.gmail.com>
Message-ID: <alpine.LRH.2.00.1201021134030.21247@theorem.ca>
References: <alpine.LRH.2.00.1112290111310.22327@theorem.ca>
<1325148259.14431.140661016987461@webmail.messagingengine.com>
<alpine.LRH.2.00.1112291135040.22327@theorem.ca>
<CALn1vHHjY6Qq0zEUcWaNzm_eP_JekjrK26zMXfcrfPSydwSKig@mail.gmail.com>
<alpine.LRH.2.00.1112301214380.9419@theorem.ca>
<4F01C9D8.10107@justmoon.de>
<CABsx9T3gNNmPen=WtCpG8RCChSwpJ73r7WU2Kz_fP31wAQ+jQg@mail.gmail.com>
User-Agent: Alpine 2.00 (LRH 1167 2008-08-23)
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
X-Spam-Score: -1.3 (-)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
See http://spamassassin.org/tag/ for more details.
-1.3 RP_MATCHES_RCVD Envelope sender domain matches handover relay
domain
X-Headers-End: 1Rhky5-0000Ae-FS
Cc: bitcoin-development@lists.sourceforge.net
Subject: Re: [Bitcoin-development] Alternative to OP_EVAL
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Mon, 02 Jan 2012 16:42:38 -0000
Seems ... acceptable from first glance.
Though I propose an ammendent to either
(1)
make the script: OP_NOP1 HASH160 <push-20-byte-hash> EQUAL to make it
extremely easy to see from the first byte that this is verly likely to be
a special transaction (or more accurately if the first byte isn't
OP_NOP1 then you immediately know it isn't a special script and can even
disregard the token).
or
(2)
If you are feel like spending another byte make the script:
OP_NOP1 <push-special-script-version-number> <special-script>
and assign 1 to this special script, making this case:
OP_NOP1 OP_1 HASH160 <push-20-byte-hash> EQUAL
On Mon, 2 Jan 2012, Gavin Andresen wrote:
> Here are my latest thoughts on a safer OP_EVAL alternative, inspired
> by all the ideas and agitated IRC and email
> discussions of the last week or so:
>
> Goal: Let users publish a short "funding address" that is the hash of
> an arbitrary redemption Script revealed when they spend the funds,
> implemented in a backwards-compatible-in-the-blockchain way.
>
> Proposal:
>
> A new 'standard' transaction type, "pay to Script hash":
>
> scriptPubKey: HASH160 <push-20-byte-hash> EQUAL
>
> Redeemed with the same scriptSig as the OP_EVAL proposal:
> <signatures> <serialized Script>
>
> Old clients/miners will ignore <signatures> and just validate that the
> hash of <serialized Script> matches.
>
> New clients/miners will recognize the new type of transaction and will
> do the following additional validation:
>
> 1. Fail validation if there were any operations other than "push data"
> in the original scriptSig.
> 2. Deserialize the top (last) item on the scriptSig stack (fail
> validation if it fails to deserialize properly).
> 3. Run an additional validation on the deserialized script, using the
> remaining items on the scriptSig stack and the deserialized script as
> the scriptPubKey.
>
>
> ---------------
>
> As Amir said in IRC chat today, "the idea is a hack.... but I like it."
>
> I like it, too-- it is cleaner than OP_EVAL, more straightforward to
> implement, and pretty much exactly matches the feature I care about
> (moving code from the scriptPubKey to the scriptSig). There are no
> special cases like "CODESEPARATORS not allowed in <serialized
> script>".
>
>
--
Russell O'Connor <http://r6.ca/>
``All talk about `theft,''' the general counsel of the American Graphophone
Company wrote, ``is the merest claptrap, for there exists no property in
ideas musical, literary or artistic, except as defined by statute.''
|