<div dir="ltr">UNSUBSCRIBE</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 11, 2015 at 2:25 AM,  <span dir="ltr">&lt;<a href="mailto:bitcoin-development-request@lists.sourceforge.net" target="_blank">bitcoin-development-request@lists.sourceforge.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Send Bitcoin-development mailing list submissions to<br>
        <a href="mailto:bitcoin-development@lists.sourceforge.net">bitcoin-development@lists.sourceforge.net</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="https://lists.sourceforge.net/lists/listinfo/bitcoin-development" target="_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-development</a><br>
or, via email, send a message with subject or body &#39;help&#39; to<br>
        <a href="mailto:bitcoin-development-request@lists.sourceforge.net">bitcoin-development-request@lists.sourceforge.net</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:bitcoin-development-owner@lists.sourceforge.net">bitcoin-development-owner@lists.sourceforge.net</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than &quot;Re: Contents of Bitcoin-development digest...&quot;<br>
<br>
<br>
Today&#39;s Topics:<br>
<br>
   1. Re: Proposal for P2P Wireless (Bluetooth LE) transfer of<br>
      Payment URI (Eric Voskuil)<br>
   2. Proposal: Requiring a miner&#39;s signature in        the block header<br>
      (Hector Chu)<br>
   3. Re: Proposal: Requiring a miner&#39;s signature in the block<br>
      header (Natanael)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Tue, 10 Feb 2015 09:56:39 -0800<br>
From: Eric Voskuil &lt;<a href="mailto:eric@voskuil.org">eric@voskuil.org</a>&gt;<br>
Subject: Re: [Bitcoin-development] Proposal for P2P Wireless<br>
        (Bluetooth LE) transfer of Payment URI<br>
To: M?rtin H?bo??tiak &lt;<a href="mailto:martin.habovstiak@gmail.com">martin.habovstiak@gmail.com</a>&gt;<br>
Cc: Bitcoin Dev &lt;<a href="mailto:bitcoin-development@lists.sourceforge.net">bitcoin-development@lists.sourceforge.net</a>&gt;,    Paul Puey<br>
        &lt;<a href="mailto:paul@airbitz.co">paul@airbitz.co</a>&gt;<br>
Message-ID: &lt;<a href="mailto:54DA4657.5080604@voskuil.org">54DA4657.5080604@voskuil.org</a>&gt;<br>
Content-Type: text/plain; charset=&quot;utf-8&quot;<br>
<br>
On 02/10/2015 09:16 AM, M?rtin H?bo??tiak wrote:<br>
&gt; I&#39;m not sure if I was clear enough. Handshake should be used to<br>
&gt; establish authenticated AND encrypted communication using ECDH (or<br>
&gt; just DH, but I think it&#39;s easier to use ECDH, since required functions<br>
&gt; are already used in Bitcoin protocol), like RedPhone does. BTW<br>
&gt; knowledge of verification string is useless to the attacker.<br>
<br>
Yes, I think this was clear from your description.<br>
<br>
&gt; Yes, the customer must verify it verbally and the merchant shouldn&#39;t<br>
&gt; send the transaction before verification. Other possibility is that in<br>
&gt; case of differing verification strings new address is generated, so<br>
&gt; attacker doesn&#39;t know the address. But in this case, amount is leaked<br>
&gt; and there is quite high probability it can be found in the Blockchain.<br>
<br>
Yes, for each handshake the payment request would need to contain a<br>
different address, mitigating some of the privacy loss.<br>
<br>
&gt; Anyway, I don&#39;t believe the transaction can be made securely without<br>
&gt; such interaction except with white-listing public keys, so I see no<br>
&gt; reason why interaction should be problematic.<br>
<br>
It can be done securely and privately by transfer of a shared secret<br>
through a private channel.<br>
<br>
&gt; We don&#39;t have such strict regulations but I agree that security is<br>
&gt; important. Currently I think that verbal verification and manual<br>
&gt; confirmation is the best way to achieve high security and reasonable<br>
&gt; user-friendliness.<br>
<br>
I think for a broadcast model (e.g. Bluetooth only) that is the only<br>
want to ensure integrity and privacy. A narrow cast can use proximity to<br>
establish trust.<br>
<br>
&gt; 2015-02-10 17:55 GMT+01:00 Eric Voskuil &lt;<a href="mailto:eric@voskuil.org">eric@voskuil.org</a>&gt;:<br>
&gt;&gt; Martin,<br>
&gt;&gt;<br>
&gt;&gt; I like your idea for the commit protocol in that it resolves the<br>
&gt;&gt; vandalous address substitution attack. However, I don&#39;t see a way to<br>
&gt;&gt; prevent privacy loss without adverse impact to the scenario.<br>
&gt;&gt;<br>
&gt;&gt; Anyone could perform the handshake and thereby obtain the payment<br>
&gt;&gt; request. Therefore to prevent inadvertent disclosure the customer must<br>
&gt;&gt; visually confirm the &quot;phrase&quot; and then verbally tell the merchant to<br>
&gt;&gt; proceed by sending the payment request.<br>
&gt;&gt;<br>
&gt;&gt; One might argue that it&#39;s sufficient to preserve the integrity of the<br>
&gt;&gt; transaction while suffering the privacy loss, especially given that a<br>
&gt;&gt; hijacked handshake should never result in a completed transaction -<br>
&gt;&gt; unless of course the hijacker pays.<br>
&gt;&gt;<br>
&gt;&gt; But imagine someone purchasing their meds. HIPAA requires the checkout<br>
&gt;&gt; queue to form behind a yellow line. That speaks directly to this question.<br>
&gt;&gt;<br>
&gt;&gt; e<br>
&gt;&gt;<br>
&gt;&gt; On 02/06/2015 01:07 AM, M?rtin H?bo??tiak wrote:<br>
&gt;&gt;&gt; 2015-02-06 2:29 GMT+01:00 Eric Voskuil &lt;<a href="mailto:eric@voskuil.org">eric@voskuil.org</a>&gt;:<br>
&gt;&gt;&gt;&gt; On 02/05/2015 04:36 PM, Martin Habov?tiak wrote:<br>
&gt;&gt;&gt;&gt;&gt; I believe, we are still talking about transactions of physical<br>
&gt;&gt;&gt;&gt;&gt; people in physical world. So yes, it&#39;s proximity based - people<br>
&gt;&gt;&gt;&gt;&gt; tell the words by mouth. :)<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Notice from my original comment:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; A MITM can substitute the key. If you don&#39;t have verifiable<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; identity associated with the public key (PKI/WoT), you need<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; a shared secret (such as a secret phrase).<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I said this could only be accomplished using a shared secret or a<br>
&gt;&gt;&gt;&gt; trusted public key. Exchanging a value that is derived from a pair of<br>
&gt;&gt;&gt;&gt; public keys is a distinction without a difference. The problem remains<br>
&gt;&gt;&gt;&gt; that the parties must have a secure/out-of-band channel for<br>
&gt;&gt;&gt;&gt; communicating this value.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; The fact that they are face-to-face establishes this channel, but that<br>
&gt;&gt;&gt;&gt; brings us back to the original problem, as it requires manual<br>
&gt;&gt;&gt;&gt; verification - as in visual/audible scanning of the two values for<br>
&gt;&gt;&gt;&gt; comparison. At that point the visual comparison of the address, or some<br>
&gt;&gt;&gt;&gt; value derived from it, is simpler.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I have never been against manual verification. What I&#39;m trying to say<br>
&gt;&gt;&gt; is let&#39;s just make manual verification easier and more secure.<br>
&gt;&gt;&gt; Comparison of address is simpler for the coder but also simpler to<br>
&gt;&gt;&gt; attack. It has these problems:<br>
&gt;&gt;&gt; - Addresses broadcasted in plaintext (privacy issue)<br>
&gt;&gt;&gt; - Amounts broadcasted in plaintext (privacy issue)<br>
&gt;&gt;&gt; - Address is long - takes lot of time to verify (user experience issue)<br>
&gt;&gt;&gt; - Address prefix can be brute-forced, if too short or used to make<br>
&gt;&gt;&gt; &quot;black hole&quot; address if longer (vandalism issue)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Commit protocol can be used for both the encryption and the<br>
&gt;&gt;&gt; authentication while user experience is not bad and everything is<br>
&gt;&gt;&gt; still secure.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; In case of RedPhone, you read those words verbally over not-yet-<br>
&gt;&gt;&gt;&gt;&gt; verified channel relying on difficulty of spoofing your voice. Also<br>
&gt;&gt;&gt;&gt;&gt; the app remembers the public keys, so you don&#39;t need to verify<br>
&gt;&gt;&gt;&gt;&gt; second time.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; This is reasonable, but wouldn&#39;t help in the case of an ad-hoc<br>
&gt;&gt;&gt;&gt; connection between parties who don&#39;t know each other well.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; I suggest you to try RedPhone (called Signal on iPhone) yourself.<br>
&gt;&gt;&gt;&gt;&gt; It&#39;s free/open source, Internet-based and end-to-end encrypted. You<br>
&gt;&gt;&gt;&gt;&gt; may find it useful some day. Also I&#39;m willing to help you with<br>
&gt;&gt;&gt;&gt;&gt; trying it after I wake up. (~8 hours: Send me private e-mail if<br>
&gt;&gt;&gt;&gt;&gt; you want to.)<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I appreciate the offer. I really don&#39;t trust *any* smartphone as a<br>
&gt;&gt;&gt;&gt; platform for secure communication/data. But encrypting on the wire does<br>
&gt;&gt;&gt;&gt; of course shrink the attack surface and increase the attacker&#39;s cost.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; e<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; D?a 6. febru?ra 2015 1:22:23 CET pou??vate? Eric Voskuil<br>
&gt;&gt;&gt;&gt; &lt;<a href="mailto:eric@voskuil.org">eric@voskuil.org</a>&gt; nap?sal:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; On 02/05/2015 04:04 PM, M?rtin H?bo??tiak wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; That&#39;s exactly what I though when seeing the RedPhone code, but after<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; I studied the commit protocol I realized it&#39;s actually secure and<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; convenient way to do it. You should do that too. :)<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; I was analyzing the model as you described it to me. A formal analysis<br>
&gt;&gt;&gt;&gt;&gt;&gt; of the security model of a particular implementation, based on<br>
&gt;&gt;&gt;&gt;&gt;&gt; inference<br>
&gt;&gt;&gt;&gt;&gt; &gt;from source code, is a bit beyond what I signed up for. But I&#39;m<br>
&gt;&gt;&gt;&gt;&gt;&gt; perfectly willing to comment on your description of the model if you<br>
&gt;&gt;&gt;&gt;&gt;&gt; are<br>
&gt;&gt;&gt;&gt;&gt;&gt; willing to indulge me.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Shortly, how it works:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; The initiator of the connection sends commit message containing the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; hash of his temporary public ECDH part, second party sends back their<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; public ECDH part and then initiator sends his public ECDH part in<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; open. All three messages are hashed together and the first two bytes<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; are used to select two words from a shared dictionary which are<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; displayed on the screen of both the initiator and the second party.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; The parties communicate those two words and verify they match.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; How do they compare words if they haven&#39;t yet established a secure<br>
&gt;&gt;&gt;&gt;&gt;&gt; channel?<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; If an attacker wants to do MITM, he has a chance of choosing right<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; public parts 1:65536. There is no way to brute-force it, since that<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; would be noticed immediately. If instead of two words based on the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; first two bytes, four words from BIP39 wordlist were chosen, it would<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; provide entropy of 44 bits which I believe should be enough even for<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; paranoid people.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; How this would work in Bitcoin payment scenario: user&#39;s phone<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; broadcasts his name, merchant inputs amount and selects the name from<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; the list, commit message is sent (and then the remaining two<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; messages), merchant spells four words he sees on the screen and buyer<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; confirms transaction after verifying that words match.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; So the assumption is that there exists a secure (as in proximity-based)<br>
&gt;&gt;&gt;&gt;&gt;&gt; communication channel?<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; e<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; 2015-02-06 0:46 GMT+01:00 Eric Voskuil &lt;<a href="mailto:eric@voskuil.org">eric@voskuil.org</a>&gt;:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; On 02/05/2015 03:36 PM, M?rtin H?bo??tiak wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; A BIP-70 signed payment request in the initial broadcast can<br>
&gt;&gt;&gt;&gt;&gt;&gt; resolve the<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; integrity issues, but because of the public nature of the<br>
&gt;&gt;&gt;&gt;&gt;&gt; broadcast<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; coupled with strong public identity, the privacy compromise is<br>
&gt;&gt;&gt;&gt;&gt;&gt; much<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; worse. Now transactions are cryptographically tainted.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; This is also the problem with BIP-70 over the web. TLS and other<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; security precautions aside, an interloper on the communication,<br>
&gt;&gt;&gt;&gt;&gt;&gt; desktop,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; datacenter, etc., can capture payment requests and strongly<br>
&gt;&gt;&gt;&gt;&gt;&gt; correlate<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; transactions to identities in an automated manner. The payment<br>
&gt;&gt;&gt;&gt;&gt;&gt; request<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; must be kept private between the parties, and that&#39;s hard to do.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; What about using encryption with forward secrecy? Merchant would<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; generate signed request containing public ECDH part, buyer would<br>
&gt;&gt;&gt;&gt;&gt;&gt; send<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; back transaction encrypted with ECDH and his public ECDH part. If<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; receiving address/amount is meant to be private, use commit<br>
&gt;&gt;&gt;&gt;&gt;&gt; protocol<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; (see ZRTP/RedPhone) and short authentication phrase (which is hard<br>
&gt;&gt;&gt;&gt;&gt;&gt; to<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; spoof thanks to commit protocol - see RedPhone)?<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Hi Martin,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; The problem is that you need to verify the ownership of the public<br>
&gt;&gt;&gt;&gt;&gt;&gt; key.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; A MITM can substitute the key. If you don&#39;t have verifiable identity<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; associated with the public key (PKI/WoT), you need a shared secret<br>
&gt;&gt;&gt;&gt;&gt;&gt; (such<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; as a secret phrase). But the problem is then establishing that<br>
&gt;&gt;&gt;&gt;&gt;&gt; secret<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; over a public channel.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; You can bootstrap a private session over the untrusted network using<br>
&gt;&gt;&gt;&gt;&gt;&gt; a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; trusted public key (PKI/WoT). But the presumption is that you are<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; already doing this over the web (using TLS). That process is subject<br>
&gt;&gt;&gt;&gt;&gt;&gt; to<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; attack at the CA. WoT is not subject to a CA attack, because it&#39;s<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; decentralized. But it&#39;s also not sufficiently deployed for some<br>
&gt;&gt;&gt;&gt;&gt;&gt; scenarios.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; e<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;<br>
<br>
-------------- next part --------------<br>
A non-text attachment was scrubbed...<br>
Name: signature.asc<br>
Type: application/pgp-signature<br>
Size: 473 bytes<br>
Desc: OpenPGP digital signature<br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Wed, 11 Feb 2015 08:54:15 +0000<br>
From: Hector Chu &lt;<a href="mailto:hectorchu@gmail.com">hectorchu@gmail.com</a>&gt;<br>
Subject: [Bitcoin-development] Proposal: Requiring a miner&#39;s signature<br>
        in      the block header<br>
To: <a href="mailto:bitcoin-development@lists.sourceforge.net">bitcoin-development@lists.sourceforge.net</a><br>
Message-ID:<br>
        &lt;<a href="mailto:CAAO2FKEFxC_byt4xVJb0S-7yy0M7M-Av7MHUH-RBDuri_GAFtw@mail.gmail.com">CAAO2FKEFxC_byt4xVJb0S-7yy0M7M-Av7MHUH-RBDuri_GAFtw@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=&quot;utf-8&quot;<br>
<br>
A proposal for stemming the tide of mining centralisation -- Requiring a<br>
miner&#39;s signature in the block header (the whole of which is hashed), and<br>
paying out coinbase to the miner&#39;s public key.<br>
<br>
Please comment on whether this idea is feasible, has been thought of before,<br>
etc., etc. Thank you.<br>
<br>
Motivation<br>
----------<br>
<br>
Mining is centralising to a handful of pool operators. This is bad for a<br>
number of political reasons, which we won&#39;t go into right now. But I have<br>
always believed that some years down the line, they could hold the users<br>
hostage and change the rules to suit themselves. For instance by eliminating<br>
the halving of the block reward.<br>
<br>
Solution<br>
--------<br>
<br>
Currently the block header is formed by the pool operator and distributed<br>
for<br>
hashing by the pooled miners. It is possible to divide the work among the<br>
miners as the only thing that is used to search the hash space is by<br>
changing<br>
a nonce or two.<br>
<br>
I propose that we require each miner to sign the block header prior to<br>
hashing. The signature will be included in the data that is hashed. Further,<br>
the coinbase for the block must only pay out to the public key counterpart<br>
of<br>
the private key used to sign the block header.<br>
<br>
A valid block will therefore have a signature in the block header that is<br>
verified by the public key being paid by the coinbase transaction.<br>
<br>
Ramifications<br>
-------------<br>
<br>
Work can no longer be divided among the pooled miners as before, without<br>
sharing the pool&#39;s private key amongst all of them. If the pool does try to<br>
take this route, then any of the miners may redeem the coinbase when it<br>
matures. Therefore, all miners will use their own key pair.<br>
<br>
This will make it difficult to form a cooperating pool of miners who may not<br>
trust each other, as the block rewards will be controlled by disparate<br>
parties<br>
and not by the pool operator. Only a tight clique of trusted miners would be<br>
able to form their own private pool in such an environment.<br>
<br>
Attacks<br>
-------<br>
<br>
Pooled hashpower, instead of earning bitcoins legitimately may try to break<br>
the system instead. They may try a double-spending attack, but in order to<br>
leverage the pool to its full potential the pool operator would again have<br>
to<br>
share their private key with the whole pool. Due to the increased<br>
cooperation<br>
and coordination required for an attack, the probability of a 51% attack is<br>
much reduced.<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
<br>
------------------------------<br>
<br>
Message: 3<br>
Date: Wed, 11 Feb 2015 10:25:27 +0100<br>
From: Natanael &lt;<a href="mailto:natanael.l@gmail.com">natanael.l@gmail.com</a>&gt;<br>
Subject: Re: [Bitcoin-development] Proposal: Requiring a miner&#39;s<br>
        signature in the block header<br>
To: Hector Chu &lt;<a href="mailto:hectorchu@gmail.com">hectorchu@gmail.com</a>&gt;<br>
Cc: <a href="mailto:bitcoin-development@lists.sourceforge.net">bitcoin-development@lists.sourceforge.net</a><br>
Message-ID:<br>
        &lt;CAAt2M1_qj0r03=<a href="mailto:Ref9mN7bJLg-odep3m5teZ7JWDLC%2BzknQdQQ@mail.gmail.com">Ref9mN7bJLg-odep3m5teZ7JWDLC+zknQdQQ@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=&quot;utf-8&quot;<br>
<br>
Den 11 feb 2015 09:55 skrev &quot;Hector Chu&quot; &lt;<a href="mailto:hectorchu@gmail.com">hectorchu@gmail.com</a>&gt;:<br>
&gt;<br>
&gt; A proposal for stemming the tide of mining centralisation -- Requiring a<br>
&gt; miner&#39;s signature in the block header (the whole of which is hashed), and<br>
&gt; paying out coinbase to the miner&#39;s public key.<br>
&gt;<br>
&gt; Please comment on whether this idea is feasible, has been thought of<br>
before,<br>
&gt; etc., etc. Thank you.<br>
&gt;<br>
&gt; Motivation<br>
&gt; ----------<br>
&gt;<br>
&gt; Mining is centralising to a handful of pool operators. This is bad for a<br>
&gt; number of political reasons, which we won&#39;t go into right now. But I have<br>
&gt; always believed that some years down the line, they could hold the users<br>
&gt; hostage and change the rules to suit themselves. For instance by<br>
eliminating<br>
&gt; the halving of the block reward.<br>
<br>
[...]<br>
<br>
&gt; I propose that we require each miner to sign the block header prior to<br>
&gt; hashing. The signature will be included in the data that is hashed.<br>
Further,<br>
&gt; the coinbase for the block must only pay out to the public key<br>
counterpart of<br>
&gt; the private key used to sign the block header.<br>
<br>
[...]<br>
<br>
&gt; This will make it difficult to form a cooperating pool of miners who may<br>
not<br>
&gt; trust each other, as the block rewards will be controlled by disparate<br>
parties<br>
&gt; and not by the pool operator. Only a tight clique of trusted miners would<br>
be<br>
&gt; able to form their own private pool in such an environment.<br>
<br>
People already trust things like cloud mining, so your solution with<br>
increasing technical trust requirements won&#39;t help. But you will however<br>
break P2Pool instead.<br>
<br>
Also, note that threshold signatures (group signatures) could probably be<br>
used by an actual distrusting pool&#39;s miners. There are already a proof of<br>
concept for this implemented with secp256k1 that works with Bitcoin clients<br>
silently. This wouldn&#39;t prevent such a pool from working.<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
<br>
------------------------------<br>
<br>
------------------------------------------------------------------------------<br>
Dive into the World of Parallel Programming. The Go Parallel Website,<br>
sponsored by Intel and developed in partnership with Slashdot Media, is your<br>
hub for all things parallel software development, from weekly thought<br>
leadership blogs to news, videos, case studies, tutorials and more. Take a<br>
look and join the conversation now. <a href="http://goparallel.sourceforge.net/" target="_blank">http://goparallel.sourceforge.net/</a><br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
Bitcoin-development mailing list<br>
<a href="mailto:Bitcoin-development@lists.sourceforge.net">Bitcoin-development@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/bitcoin-development" target="_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-development</a><br>
<br>
<br>
End of Bitcoin-development Digest, Vol 45, Issue 37<br>
***************************************************<br>
</blockquote></div><br></div>