<oembed><type>rich</type><version>1.0</version><author_name>npub1uvtfvcegcn9kds68r8he57emc480vqtx8t22kpsctxgjxae44gvsksaxrt</author_name><author_url>https://nostr.ae/npub1uvtfvcegcn9kds68r8he57emc480vqtx8t22kpsctxgjxae44gvsksaxrt</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2013-06-03&#xA;📝 Original message:On 1 June 2013 21:30, Peter Todd &lt;pete at petertodd.org&gt; wrote:&#xA;&#xA;&gt; Currently the most compact way (proof-size) to sacrifice Bitcoins that&#xA;&gt; does not involve making them unspendable is to create a anyone-can-spend&#xA;&gt; output as the last txout in the coinbase of a block:&#xA;&gt;&#xA;&gt; scriptPubKey: &lt;data&gt; OP_TRUE&#xA;&gt;&#xA;&gt; The proof is then the SHA256 midstate, the txout, and the merkle path to&#xA;&gt; the block header. However this mechanism needs miner support, and it is&#xA;&gt; not possible to pay for such a sacrifice securely, or create an&#xA;&gt; assurance contract to create one.&#xA;&gt;&#xA;&#xA;Sorry if this is a stupid question, but why would someone want to sacrifice&#xA;their bitcoins?&#xA;&#xA;&#xA;&gt;&#xA;&gt; A anyone-can-spend in a regular txout is another option, but there is no&#xA;&gt; way to prevent a miner from including a transaction spending that txout&#xA;&gt; in the same block. Once that happens, there is no way to prove the miner&#xA;&gt; didn&#39;t create both, thus invalidating the sacrifice. The announce-commit&#xA;&gt; protocol solves that problem, but at the cost of a much larger proof,&#xA;&gt; especially if multiple parties want to get together to pay the cost of&#xA;&gt; the sacrifice. (the proof must include the entire tx used to make the&#xA;&gt; sacrifice)&#xA;&gt;&#xA;&gt; However if we add a rule where txouts ending in OP_TRUE are unspendable&#xA;&gt; for 100 blocks, similar to coinbases, we fix these problems. The rule&#xA;&gt; can be done as a soft-fork with 95% support in the same way the&#xA;&gt; blockheight rule was implemented. Along with that change&#xA;&gt; anyone-can-spend outputs should be make IsStandard() so they will be&#xA;&gt; relayed.&#xA;&gt;&#xA;&gt; The alternative is sacrifices to unspendable outputs, which is very&#xA;&gt; undesirable compared to sending the money to miners to further&#xA;&gt; strengthen the security of the network.&#xA;&gt;&#xA;&gt; We should always make it easy for people to write code that does what is&#xA;&gt; best for Bitcoin.&#xA;&gt;&#xA;&gt; --&#xA;&gt; &#39;peter&#39;[:-1]@petertodd.org&#xA;&gt; 00000000000000ce3427502ee6a254fed27e1cd21a656a335cd2ada79b7b5293&#xA;&gt;&#xA;&gt;&#xA;&gt; ------------------------------------------------------------------------------&#xA;&gt; Get 100% visibility into Java/.NET code with AppDynamics Lite&#xA;&gt; It&#39;s a free troubleshooting tool designed for production&#xA;&gt; Get down to code-level detail for bottlenecks, with &lt;2% overhead.&#xA;&gt; Download for free and get started troubleshooting in minutes.&#xA;&gt; http://p.sf.net/sfu/appdyn_d2d_ap2&#xA;&gt; _______________________________________________&#xA;&gt; Bitcoin-development mailing list&#xA;&gt; Bitcoin-development at lists.sourceforge.net&#xA;&gt; https://lists.sourceforge.net/lists/listinfo/bitcoin-development&#xA;&gt;&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20130604/0230ef96/attachment.html&gt;</html></oembed>