public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
* [Bitcoin-development] To prevent arbitrary data storage in txouts — The Ultimate Solution
@ 2013-04-10  2:53 Gregory Maxwell
  2013-04-10  3:03 ` Peter Todd
  2013-04-10  3:52 ` Robert Backhaus
  0 siblings, 2 replies; 10+ messages in thread
From: Gregory Maxwell @ 2013-04-10  2:53 UTC (permalink / raw)
  To: Bitcoin Development

(1) Define a new address type, P2SH^2 like P2SH but is instead
H(H(ScriptPubKey)) instead of H(ScriptPubKey). A P2SH^2 address it is
a hash of a P2SH address.

(2) Make a relay rule so that to relay a P2SH^2  you must include
along the inner P2SH address.  All nodes can trivially verify it by
hashing it.

(2a) If we find that miners mine P2SH^2 addresses where the P2SH
wasn't relayed (e.g. they want the fees) we introduce a block
discouragement rule where a block is discouraged if you receive it
without receiving the P2SH^2 pre-images for it.

With this minor change there is _no_ non-prunable location for users
to cram data into except values.  (and the inefficiency of cramming
data into values is a strong deterrent in any case)

The same thing could also be done for OP_RETURN PUSH value outputs
used to link transactions to data. Make the data be a hash, outside of
the txn include the preimage of the hash.



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2013-04-11 11:27 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-10  2:53 [Bitcoin-development] To prevent arbitrary data storage in txouts — The Ultimate Solution Gregory Maxwell
2013-04-10  3:03 ` Peter Todd
2013-04-10  3:08   ` Peter Todd
2013-04-10 15:58     ` Jorge Timón
2013-04-11 11:27       ` Peter Todd
2013-04-10  6:53   ` Peter Todd
2013-04-10  7:15     ` Gregory Maxwell
2013-04-10  7:29       ` Peter Todd
2013-04-10  3:52 ` Robert Backhaus
2013-04-10  3:58   ` Gregory Maxwell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox