Subject: Re: [bitcoin-dev] Why Satoshi's temporary anti-spam measure isn't temporary

From: Gregory Maxwell <[email-masked]>
Date: Wed, 29 Jul 2015 19:53:02 +0000

On Wed, Jul 29, 2015 at 6:03 PM, Mike Hearn <[email-masked]> wrote:
>> It was _well_ .... understood that the users of Bitcoin would wish to
>> protect its decenteralization by limiting the size of the chain to keep it
>> verifyable on small devices.
>
> No it wasn't. That is something you invented yourself much later. "Small
> devices" isn't even defined anywhere, so there can't have been any such
> understanding.
>
> The actual understanding was the opposite. Satoshi's words:
[...]
> Then he went on to talk about Moore's law and streaming HD videos and the
> like. At no point did he ever talk about limiting the system for "small
> devices".
>
> I have been both working on and using Bitcoin for longer than you have been
> around, Gregory. Please don't attempt to bullshit me about what the plan
> was. And stop obscuring what this is about. It's not some personality cult -
> the reason I keep beating you over the head with Satoshi's words is because
> it's that founding vision of the project that brought everyone together, and
> gave us all a shared goal.

Mike, my first use of Bitcoin was in 2009.  I wasn't vigorously active
in the Bitcoin community until the beginning of 2011, indeed. But this
is just a couple months after you (E.g. first code available for
BitcoinJ was March 2011-- if you go by forums.bitcoin.org account
times my account was created May 5th 2011 vs yours Dec 14th 2010; less
than five months after yours). I was also working with related systems
long before (E.g. RPOW in 2004). So give me a break, there is no rank
to pull here.

Yet again you've managed to call me a bullshitter and guilty of
"invention" when in fact I'm actually quoting the system's creator
(although without the explicit fallacious argument from authority
style you seem prefer). For someone who seems to base all his
arguments on interpretations of someone's words you sure seem to call
their words lies awfully often:

"Piling every proof-of-work quorum system in the world into one
dataset doesn't scale."
[...]
"Bitcoin users might get increasingly tyrannical about limiting the
size of the chain so it's easy for lots of users and small devices."
----  https://bitcointalk.org/index.php?topic=1790.msg28917#msg28917

If you'll note,, the post was Dec 10th 2010 and, presumably, made with
an improved understanding of the implications of the system then
comments made in 2008 before the system was even operational.

(The same message also mentions that smart contracts can be used to
create trustless trade with off-chain systems;  As well, later in that
thread: "it will be much easier if you can freely use all the space
you need without worrying about paying fees for expensive space in
Bitcoin's chain.")

I haven't bothered arguing from old posts in the past because I find
the practice of argument from authority on this subject abhorrent. It
undermines the unique value of Bitcoin to argue based on a single
personal opinion, to do so is to miss the point of Bitcoin in a deep
and fundamental way. And in my opinion what you're doing is actually
much worse: arguing from distortions of random quotations.  But it's
hard to tolerate the continue revision of history from you in silence.

Moreover, I find those arguments with respect Moore's law especially
unconvincing because while I cannot read the mind of people who are
not a part of this discussion and haven't chosen to comment, I've used
the same argument myself and I know what I was thinking when I used it
(and can establish as much, since I'm more verbose I elaborated on
it):  When someone pointed at Bitcoins _global_ broadcast medium and
loudly said that it cannot work because its absurd; and it's very easy
to point out broad scaling behavior about what Bitcoin could achieve
with complete centralization. Once this has been accepted the argument
is _over_ in Bitcoin's favor: Bitcoin's competition has highly
centralized administration and so once someone has accepted Bitcoin
can (in some way) accommodate the worlds transactions, even if that
comes at the cost of 99% of the decentralization, it's clear that
Bitcoin offers something interesting. (And for example, I elaborated
on this in a Wiki edit in Aug 2011,
https://en.bitcoin.it/w/index.php?title=Scalability&action=historysubmit&diff=14273&oldid=14112
 -- though I shouldn't need to point this out to you, since it was you
who subsequently erased these words from the page.)

> Since when have we "campaigned" to "ignore problems" in the mining
> ecosystem?
[...]
> Gregory, you are getting really crazy now. Stop it. The trend towards mining
> centralisation is not the fault of Gavin or myself, or anyone else.

For example, you fought vigorously to get Bitcoin Core off
Bitcoin.org, which would ensure that users were not previously
equipped with a node suitable for operating mining (which then
contributed substantially to the poor usability of solutions like
P2Pool; with 98% of it's install time spent waiting for Bitcoin Core
to sync).

You've (in my view) aggressively advocated increasing the resource
utilization of Bitcoin-- increasing the cost to participate in mining
without delegation, with no consideration (or at least disclosure) of
the ramifications on the system overall:
https://bitcointalk.org/index.php?topic=149668.0

Gavin, for example, has advocated removing mining support from Bitcoin
core on several occasions; and constantly professes ignorance on
anything mining.  His own interests are up to him, but to not be
concerned about a central part of the system for anyone working on
changing it at such a deep level is-- I think-- a bit problematic.

But I didn't intend to lay blame here, if anything I blame myself for
not being more proactive in arguing against things things in the past.

The trend towards mining centralization is a result of various forces,
many of which are modulated by the very things we're discussing here
(or could be modulated by things we haven't discussed).  You're the
principle advocate of increasing the cost of a decentralized ecosystem
around verification and driving the system towards a state where it is
only viable in a more centralized mode.  Bitcoin is an artificial
construction, not a force of nature, and when someone seeks to change
it they ought to take responsibility for what happens--- it's not
acceptable to say "oh well, it's not eh fault of anyone" when the
incentives drive it in a bad direction.

Is that your strategy on the systems resource consumption in general?
Full throttle, no action when it goes off the rails,  when the easily
foreseeable negative outcomes happen it won't be the "fault" of
anyone? If so, I don't think that is acceptable. We need to face the
areas in which the system is failing, now and in the future... and not
just pump for growth at all cost and shrug and say "oh well, we tried"
when the predictable failure happens. It's far from clear to me that
the world will get a second shot at this in the next several decades
if Bitcoin lapses into the same-old, same-old.

> And SPV
> is exactly what was always intended to be used. It's not something I
> "fixated" on, it's right there in the white paper. Satoshi even encouraged
> me to keep working on bitcoinj before he left!

The fixation comment was a specific reply to your long list of the
"only reasons" to run a full node, which seemed to be basically said
that the only reason to run one was to act as a server for SPV
clients; as it listed several points on that-- all three of the
numbered points were "serving SPV wallets"-- and buried the rest.  I'm
sorry if I read too much into it, though it's also consistent with
your prior responses that the non-scalability of Bitcoin as a whole is
irrelevant due to SPV.

I don't think there is anything fundamentally bad with SPV, it is what
it is; it's a tool and an important one. But at the moment it is far
more limited than you give it credit for both because it is only
secure under certain assumptions which have been provably violated not
just at risk of violation, and because the more complete vision of it
(e.g. with fraud proofs) has never been implemented.

> Look, it's clear you have decided that the way Bitcoin was meant to evolve
> isn't to your personal liking. That's fine. Go make an alt coin where your
> founding documents state that it's intended to always run on a 2015
> Raspberry Pi, or whatever it is you mean by "small device". Remove SPV
> capability from the protocol so everyone has to fully validate. Make sure
> that's the understanding that everyone has from day one about what your alt
> coin is for. Then when someone says, gee, it'd be nice if we had some more
> capacity, you or someone else can go point at the announcement emails and
> say "no, GregCoin is meant to always be verifiable on small devices, that's
> our social contract and it's written into the consensus rules for that
> reason".

Now that I've established the "small device" text you're railing on
here actually came from the system's creator prior to your
involvement, can I expect an admission that your own "personal liking"
doesn't have special authority over the system?  But I hope you don't
create an altcoin: I think it's possible to find ways to accommodate
people with very different preferences under one tent, and if we are
to build and support a worldwide system we _must_ find those ways
rather than fragmenting the marketplace.