summaryrefslogtreecommitdiff
path: root/0d/06574a478ac2879f8e26e9e4a14851fd25d6e4
blob: ec3513a1622ffbf3861ffe84a5a030c200e682d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194]
	helo=mx.sourceforge.net)
	by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <jtimon@monetize.io>) id 1X39zU-0007SI-4m
	for bitcoin-development@lists.sourceforge.net;
	Fri, 04 Jul 2014 20:21:52 +0000
Received: from mail-la0-f50.google.com ([209.85.215.50])
	by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
	(Exim 4.76) id 1X39zR-0008AF-Ob
	for bitcoin-development@lists.sourceforge.net;
	Fri, 04 Jul 2014 20:21:52 +0000
Received: by mail-la0-f50.google.com with SMTP id pv20so1403993lab.23
	for <bitcoin-development@lists.sourceforge.net>;
	Fri, 04 Jul 2014 13:21:43 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type
	:content-transfer-encoding;
	bh=QrL7AWvXQze16GbnexyWo+JGd/0I1z/CGYxlauMGG7A=;
	b=UqS7BD4gnRREt7yTPUrrjkLLG8XgcheNpmUsjXz6zXP6zI7hiamxn075GNAJry4pVB
	MMHPSMa9igpNy2WSaKlG6HfyJksyHYveyPNpz5oGR3Db3/HM/dQd5EQ+oCFqsqmkx+6M
	N1dcRuFW3Jbzg8zQLtUMGGDAIQkWeja/0uzeqyd7lcDgnkY0LBcRRI72GbwJWIW1+Bqw
	BK6DCLgGWxft1H/8eN3msgfbmjs1bviAy6FfZQMxmPD+0POHloTSGQIF5QAg+rZgoN/P
	PWOrV6qX+30pzn3wCbszbE0WjoOEZFipzH3hOZHsgDeAoUvyn2MODcjLg4ve5jk5XLDr
	Elfg==
X-Gm-Message-State: ALoCoQlUFqYxLijqhlFQXTch4d4te6mT0vGINMRfyGg0vbpVNG1H1/6TBdhDXqPvXGdAJaB+qWqW
MIME-Version: 1.0
X-Received: by 10.152.198.39 with SMTP id iz7mr3094720lac.67.1404505302979;
	Fri, 04 Jul 2014 13:21:42 -0700 (PDT)
Received: by 10.112.185.6 with HTTP; Fri, 4 Jul 2014 13:21:42 -0700 (PDT)
X-Originating-IP: [85.53.220.193]
In-Reply-To: <53B6DB38.7010709@jerviss.org>
References: <10566815.3CllqoMfON@momentum>
	<53B6DB38.7010709@jerviss.org>
Date: Fri, 4 Jul 2014 22:21:42 +0200
Message-ID: <CAC1+kJOSAoz_BBaFnv4u-Dng7Y4h2tqOHSFRfuKvY87eBR71Gw@mail.gmail.com>
From: =?UTF-8?B?Sm9yZ2UgVGltw7Nu?= <jtimon@monetize.io>
To: kjj <bitcoin-devel@jerviss.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
X-Headers-End: 1X39zR-0008AF-Ob
Cc: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] ASIC-proof mining
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Fri, 04 Jul 2014 20:21:52 -0000

On 7/4/14, kjj <bitcoin-devel@jerviss.org> wrote:
> I suspect that there exist no algorithms which cannot be done better in
> an application-specific device than in a general purpose computer.  And
> if there is such a thing, then it must necessarily perform best on one
> specific platform, making that platform the de facto application
> specific device.
>
> I'm not sure how one would go about proving or disproving that, but it
> seems very likely to be true.

I assumed this was obvious and self-evident for anyone who knows what
a Turing machine is, but judging from the number of smart people
wasting their time on the pursue of the "anti-ASIC" myth (also known
as pow wankery) it seems I was wrong.
Anything you can do with software you can do with hardware and
viceversa (you can even do it with ropes and fire in Minecraft!!)
Does this really need any proof?
I think it's the hard-pow cultists who have to provide a counterexample.

Very often you just need to query-replace "ASIC" with "specialized
hardware" to prove that what they're saying makes no sense.

> Keeping the algorithm simple, and ASIC-easy, has one other advantage.
> Just about anyone can sit down and design an ASIC for SHA, for example,
> leading to diversity in the marketplace.  A harder algorithm can still
> be made into an ASIC (or more generally into an ASD), but will require
> more skilled designers, more expensive fabrication, etc.  This actually
> concentrates the ASIC advantage into the hands of fewer people, which
> again, is contrary to the stated goals.

Yep, I think this is the strongest argument against "hard-pow".
But unfortunately you even find people that want "anti-ASIC without
being anti-GPU", which is funny because GPU just has Nvidia and AMD
and because unlike "anti-ASIC", anti-GPU is actually possible (despite
Litecoin's Scrypt having miserably failed on both accounts).

Interestingly enough, Greg Maxwell told me that the energetc advantage
of memory-hard pow ASICs is even greater than the advantage for SHA
ASICs.

Anyway, I'm working on a branch to encapsulate the proof of work that
should serve people to more easily experiment with alternate proofs on
top of bitcoind's code. I plan to use it for private chains ("proof of
signature" or "proof of script" if you prefer), and although it's not
ready yet, some people may be interested or may want to give some
feedback:

https://github.com/jtimon/bitcoin/tree/proof

I don't know if it will make it into master, but by specializing
ProofOfWork with TestnetProofOfWork we could remove
Params().AllowMinDifficultyBlocks() and its checks.

--=20
Jorge Tim=C3=B3n