<oembed><type>rich</type><version>1.0</version><author_name>npub18xqykhf26udeq2nyk98ee0a5q4w3s2f75m405a6zswpdy573lxeqmhg6zk</author_name><author_url>https://nostr.ae/npub18xqykhf26udeq2nyk98ee0a5q4w3s2f75m405a6zswpdy573lxeqmhg6zk</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2014-03-04&#xA;📝 Original message:Nothing is safe.&#xA;&#xA;Take risks.  Engage one trouble at a time.&#xA;&#xA;Perform unexpected actions.&#xA;&#xA;Observe the results.&#xA;&#xA;Rinse and repeat.&#xA;&#xA;Ignore the lions.  They too shall pass.&#xA;&#xA;&#34;Do not sleep under a roof. Carry no money or food. Go alone to places&#xA;frightening to the common brand of men. Become a criminal of purpose. Be&#xA;put in jail, and extricate yourself by your own wisdom.&#34;&#xA;&#xA;-- Miyamoto Musashi (Niten Ichi-ryū)&#xA;&#xA;&#xA;&#xA;&gt; Some people may have seen my service Reality Keys, which can perform a&#xA;&gt; role&#xA;&gt; a bit like an External State Oracle as described previously by Mike Hearn&#xA;&gt; and others. (I like to think of it as a Certificate Authority for&#xA;&gt; propositions, doing for facts what Verisign do for identities.) You&#xA;&gt; register a possible outcome with us, we publish a public key for &#34;yes&#34; and&#xA;&gt; another for &#34;no&#34;, and once the outcome happens or fails to happen, we&#xA;&gt; publish the appropriate private key.&#xA;&gt;&#xA;&gt; A few people have been asking for advice on the best way to use our keys&#xA;&gt; to&#xA;&gt; make m-of-n contracts, where each party locks up their stake in a&#xA;&gt; transaction, then the winner gets their private key from Reality Keys and&#xA;&gt; uses it to release the funds. Peter Todd suggested what seems like a very&#xA;&gt; nice way to do this without needing non-standard transactions or refund&#xA;&gt; transactions. I&#39;ve had a go at implementing it and it seems to work, but I&#xA;&gt; don&#39;t know enough about this to distinguish the ECC bit of it from magic,&#xA;&gt; so I&#39;m wondering if people who do understand it could comment on whether&#xA;&gt; it&#39;s a safe thing to be doing.&#xA;&gt;&#xA;&gt; What I&#39;m trying to do here is to combine the public key of each party with&#xA;&gt; the public key of the outcome they&#39;re representing, eg I make a public key&#xA;&gt; with:&#xA;&gt;  &lt;alice-pub&gt; + &lt;reality-key-yes-pub&gt;&#xA;&gt; ...and another with:&#xA;&gt;  &lt;bob-pub&gt; + &lt;reality-key-no-pub&gt;&#xA;&gt;&#xA;&gt; That goes into a 1/2 P2SH address (in the simplest possible case), which&#xA;&gt; is&#xA;&gt; spendable by one of Alice or Bob after the outcome occurs with either:&#xA;&gt;  &lt;alice-priv&gt; + &lt;reality-key-yes-priv&gt;&#xA;&gt; ...or&#xA;&gt;  &lt;bob-priv&gt; + &lt;reality-key-no-priv&gt;&#xA;&gt;&#xA;&gt; I&#39;m making the transaction with add_pubkeys, then spending it with&#xA;&gt; add_privkeys, both from:&#xA;&gt; https://github.com/vbuterin/pybitcointools/blob/master/pybitcointools/main.py#L173&#xA;&gt;&#xA;&gt; What&#39;s worrying my superstitious mind is that knowing &lt;reality-key-no-pub&gt;&#xA;&gt; before he has to produce &lt;bob-pub&gt;, I&#39;m wondering if there&#39;s something Bob&#xA;&gt; could do with &lt;bob-pub&gt; to intentionally weaken the resulting (&lt;bob-pub&gt; +&#xA;&gt; &lt;reality-key-no-pub&gt;) so that he could sign a transaction with it without&#xA;&gt; needing to know &lt;reality-key-no-priv&gt;.&#xA;&gt;&#xA;&gt; My example script (and specifically the bit that&#39;s scaring me) is here:&#xA;&gt; https://github.com/edmundedgar/realitykeys-examples/blob/master/realitykeysdemo.py#L247&#xA;&gt;&#xA;&gt; PS. I hope I&#39;m not too far off-topic. Peter Todd suggested it might be&#xA;&gt; worth talking about here as it potentially has implications for other&#xA;&gt; protocols. If people prefer to respond at bitcointalk instead, we&#39;ve been&#xA;&gt; discussing it here:&#xA;&gt; https://bitcointalk.org/index.php?topic=260898.60&#xA;&gt;&#xA;&gt; --&#xA;&gt; Edmund Edgar&#xA;&gt; Founder, Social Minds Inc (KK)&#xA;&gt; Twitter: @edmundedgar&#xA;&gt; Linked In: edmundedgar&#xA;&gt; Skype: edmundedgar&#xA;&gt; http://www.socialminds.jp&#xA;&gt;&#xA;&gt; Reality Keys&#xA;&gt; @realitykeys&#xA;&gt; ed at realitykeys.com&#xA;&gt; https://www.realitykeys.com&#xA;&gt; ------------------------------------------------------------------------------&#xA;&gt; Subversion Kills Productivity. Get off Subversion &amp; Make the Move to&#xA;&gt; Perforce.&#xA;&gt; With Perforce, you get hassle-free workflows. Merge that actually works.&#xA;&gt; Faster operations. Version large binaries.  Built-in WAN optimization and&#xA;&gt; the&#xA;&gt; freedom to use Git, Perforce or both. Make the move to Perforce.&#xA;&gt; http://pubads.g.doubleclick.net/gampad/clk?id=122218951&amp;iu=/4140/ostg.clktrk_______________________________________________&#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;</html></oembed>