Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1SbiDd-0000ug-KP for bitcoin-development@lists.sourceforge.net; Tue, 05 Jun 2012 01:05:57 +0000 X-ACL-Warn: Received: from zinan.dashjr.org ([173.242.112.54]) by sog-mx-2.v43.ch3.sourceforge.com with esmtp (Exim 4.76) id 1SbiDc-0006pM-R9 for bitcoin-development@lists.sourceforge.net; Tue, 05 Jun 2012 01:05:57 +0000 Received: from ishibashi.localnet (unknown [97.96.85.141]) (Authenticated sender: luke-jr) by zinan.dashjr.org (Postfix) with ESMTPSA id 4F08B560556; Tue, 5 Jun 2012 01:05:51 +0000 (UTC) From: "Luke-Jr" To: Mike Koss Date: Tue, 5 Jun 2012 01:05:18 +0000 User-Agent: KMail/1.13.7 (Linux/3.2.12-gentoonestfix-intelwr; KDE/4.8.1; x86_64; ; ) References: <201206030052.17128.luke@dashjr.org> <201206042105.27064.luke@dashjr.org> In-Reply-To: X-PGP-Key-Fingerprint: E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F X-PGP-Key-ID: BD02942421F4889F X-PGP-Keyserver: hkp://pgp.mit.edu MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <201206050105.21685.luke@dashjr.org> X-Spam-Score: -0.0 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay domain X-Headers-End: 1SbiDc-0006pM-R9 Cc: Bitcoin Dev Subject: Re: [Bitcoin-development] Defeating the block withholding attack X-BeenThere: bitcoin-development@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Jun 2012 01:05:57 -0000 On Tuesday, June 05, 2012 12:00:25 AM Mike Koss wrote: > I don't understand how your proposal will work for decentralized pools - > can you explain it more concretely? > > What would the new block header look like? For example (just a draft; in reality, merged mining would probably be integrated in a hardfork) 4 bytes: Block version number = 2 31 bytes: Hash of the block 2 back, except for the minimum last 8 bits of zero 1 byte : Share difficulty (measured in "zero" bits) 4 bytes: Timestamp 4 bytes: "Bits" (current target in compact format) 4 bytes: Nonce > What is required for a share to to be earned? The final bits (minimum 32) of the block header are zero. > What is required for a block to be valid (added to Block Chain)? The hash of this block header, concatenated with a valid share candidate for the next block header, must hash to a value less than the current target offset against the share difficulty (this algorithm may need adjustment). > I don't think I understand what you mean by NextBlockCandidate. Perhaps a > concrete example using difficulty 1.7 million would be instructive. The first share becomes a block only after a second share is found that combined hashes to meet the real difficulty. That second share becomes a block when a third is found. Etc.