Re: [Bitcoin-development] Is this a safe thing to be doing with ECC addition? (Oracle protocol)
On 8 March 2014 17:10, Alan Reiner etothe...@gmail.com wrote: I create a new keypair, c_pub with c_priv which I know (it can be any arbitrary key pair). But I don't give you c_pub, I give you b_pub = c_pub minus a_pub (which I can do because I've seen a_pub before doing this). Sure, I don't know the private key for b_pub, but it doesn't matter... because what b_pub + a_pub = c_pub (mine) You have no way to detect this condition, because you don't know what c_pub/c_priv I created, so you can only detect this after it's too late (after I abuse the private key) Thanks Alan and Forrest, that makes sense. So to salvage the situation in the original case, we have to make sure the parties exchange their public keys first, before they're allowed to see the public keys they'll be combining them with. -- -- Edmund Edgar Founder, Social Minds Inc (KK) Twitter: @edmundedgar Linked In: edmundedgar Skype: edmundedgar http://www.socialminds.jp Reality Keys @realitykeys e...@realitykeys.com https://www.realitykeys.com -- Subversion Kills Productivity. Get off Subversion Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/4140/ostg.clktrk___ Bitcoin-development mailing list Bitcoin-development@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bitcoin-development
Re: [Bitcoin-development] Is this a safe thing to be doing with ECC addition? (Oracle protocol)
On 4 March 2014 14:07, Odinn Cyberguerrilla odinn.cyberguerri...@riseup.net wrote: Nothing is safe. This is true. To rephrase, imagine I gave you an ECC public key ed_pub, you gave me back a public key odinn_pub of your own devising, then I paid some money to the address resulting from add_pubkeys(ed_pub,odinn_pub) [1]. Can anyone either: a) Think of a way that Odinn could make an odinn_pub such that they could spend the resulting money without having ed_priv. b) Opine, somewhat knowledgeably, that this probably wouldn't be an easy thing to do, and they wouldn't be alarmed to see people running software that did this kind of thing. [1] https://github.com/vbuterin/pybitcointools/blob/master/pybitcointools/main.py#L173 -- Edmund Edgar Founder, Social Minds Inc (KK) Twitter: @edmundedgar Linked In: edmundedgar Skype: edmundedgar http://www.socialminds.jp Reality Keys @realitykeys e...@realitykeys.com https://www.realitykeys.com -- Subversion Kills Productivity. Get off Subversion Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/4140/ostg.clktrk___ Bitcoin-development mailing list Bitcoin-development@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bitcoin-development
[Bitcoin-development] Is this a safe thing to be doing with ECC addition? (Oracle protocol)
Some people may have seen my service Reality Keys, which can perform a role a bit like an External State Oracle as described previously by Mike Hearn and others. (I like to think of it as a Certificate Authority for propositions, doing for facts what Verisign do for identities.) You register a possible outcome with us, we publish a public key for yes and another for no, and once the outcome happens or fails to happen, we publish the appropriate private key. A few people have been asking for advice on the best way to use our keys to make m-of-n contracts, where each party locks up their stake in a transaction, then the winner gets their private key from Reality Keys and uses it to release the funds. Peter Todd suggested what seems like a very nice way to do this without needing non-standard transactions or refund transactions. I've had a go at implementing it and it seems to work, but I don't know enough about this to distinguish the ECC bit of it from magic, so I'm wondering if people who do understand it could comment on whether it's a safe thing to be doing. What I'm trying to do here is to combine the public key of each party with the public key of the outcome they're representing, eg I make a public key with: alice-pub + reality-key-yes-pub ...and another with: bob-pub + reality-key-no-pub That goes into a 1/2 P2SH address (in the simplest possible case), which is spendable by one of Alice or Bob after the outcome occurs with either: alice-priv + reality-key-yes-priv ...or bob-priv + reality-key-no-priv I'm making the transaction with add_pubkeys, then spending it with add_privkeys, both from: https://github.com/vbuterin/pybitcointools/blob/master/pybitcointools/main.py#L173 What's worrying my superstitious mind is that knowing reality-key-no-pub before he has to produce bob-pub, I'm wondering if there's something Bob could do with bob-pub to intentionally weaken the resulting (bob-pub + reality-key-no-pub) so that he could sign a transaction with it without needing to know reality-key-no-priv. My example script (and specifically the bit that's scaring me) is here: https://github.com/edmundedgar/realitykeys-examples/blob/master/realitykeysdemo.py#L247 PS. I hope I'm not too far off-topic. Peter Todd suggested it might be worth talking about here as it potentially has implications for other protocols. If people prefer to respond at bitcointalk instead, we've been discussing it here: https://bitcointalk.org/index.php?topic=260898.60 -- Edmund Edgar Founder, Social Minds Inc (KK) Twitter: @edmundedgar Linked In: edmundedgar Skype: edmundedgar http://www.socialminds.jp Reality Keys @realitykeys e...@realitykeys.com https://www.realitykeys.com -- Subversion Kills Productivity. Get off Subversion Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951iu=/4140/ostg.clktrk___ Bitcoin-development mailing list Bitcoin-development@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bitcoin-development