Re: [Bitcoin-development] Chain dust mitigation: Demurrage based Chain Vacuuming

2012-12-04 Thread Andy Parkins
On Monday 03 December 2012 11:19:37 Michael Gronager wrote:

 The aged coins are simply included in the block mining reward, creating
 another incentive for miners. Further, if we include all coins in this
 recycle scheme coins will never be lost forever.

Ignoring the cost of storing these never-spent outputs; there is absolutely no 
reason we need to ensure that coins aren't lost.  Nor worry about those that 
are.

The total bitcoins produced is an entirely arbitrary number -- a function of 
the 210,000 halving rate and the initial block reward.  Satoshi could have 
picked anything for them and bitcoin would work exactly the same.

Lost coins never enter the economy ever again, and so supply is slightly lower 
than it would have been, making all the non-lost coins worth ever so slightly 
more.  Effectively: price adjustments will take care of lost coins.


Andy

-- 
Dr Andy Parkins
andypark...@gmail.com

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Payment Protocol Proposal: Invoices/Payments/Receipts

2012-12-04 Thread Mike Hearn
 So, if a bitcoin client is getting Invoice messages via email or from
 a web server, the version will be specified as part of the MIME type;
 for example:
Content-Type: application/x-bitcoin-invoice; version=1
 The version= syntax is part of the MIME standard.

I think that's OK. However, you should only be getting the version you
expect because when you request an invoice, your client should be
telling the merchant what protocol version you implement.

Does it make sense to have this spec not include the details of
bootstrapping? It's not complicated - we extend the URI spec in a
backwards compatible way:

   
bitcoin:1AbCdEfG?value=10.0label=Pay%20for%20Fooinvoice=https://merchant.com/inv/aB425az

When a compatible client sees the invoice param, it ignores the rest
of the URI and downloads the URL
https://merchant.com/inv/aB425az?ver=1.0

A server on merchant.com sees that the client expects a version 1.0
invoice and vends it. If ver=2.0 or whatever, it knows it can use 2.0
features. If extensions are supported, add new query params.

We should define a simple mechanism for extending the protocol now, so
people who want to make proprietary extensions don't conflict. The
simplest is to just say, if you want to add new fields to an Invoice
message, please update a wiki page with the tag numbers you're going
to use, and start from number X. Protobufs have a simple way to
formalize this in the language:

   https://developers.google.com/protocol-buffers/docs/proto#extensions

message Invoice {
  extensions 1000 to max;
}

The point of this is to allow you to define new parts of the messages
in separate .proto files. It's only a minor convenience but it means
if you want to use, say, two extensions that weren't yet folded into
the main spec, you can more easily do so without having to do a manual
merge of the message definitions together.

For instance, if you wanted to extend the protocol to support
specification of recurring billing, you could make a file called
recurring-invoices.proto containing:

message Recurrences {
  required uint32 every_seconds = 1;
  optional uint32 start_time = 2;
}

extend Invoice {
  optional Recurrences recurrences = 1005;
}

then you update the wiki page to claim tag number 1005 and apps can
easily use your new features. If/when the feature gets standardized
via a BIP, the core .proto definition can be extended to include these
messages and the extensions can go away.

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Roadmap to getting users onto SPV clients

2012-12-04 Thread Gregory Maxwell
On Tue, Dec 4, 2012 at 12:46 PM, Mike Hearn m...@plan99.net wrote:
 The alternative, I guess, is to make Bitcoin-Qt have an SPV mode. I'm
 not convinced this is the best use of time, but if somebody steps up
 to do it, that could also work.

I strongly believe that if community leads with client software which
is not a full _capable_ node (e.g. which can begin life as a SPV node
but at least eventually become full if the system resources permit)
then Bitcoin will fail, or at least fail to be anything but the
world's most inefficient centralized payment system.  Obviously SPV
nodes are excellent tools for getting bitcoin into less capable
systems, but they aren't a general replacement for the software the
participants in Bitcoin run.

— Because the properties promised by the system can not be upheld if
there is only a fairly small number of self selecting nodes enforcing
the rules. If we wanted a system where its security against theft,
denial of service, and non-inflation were governed by the consensus of
{mtgox,blockchain.info, deepbit, bitpay, slush, btcguild, bitminter}
we could have something infinitely more scalable by just using
something OT like with a simple O(N) consensus between these parties.
No disrespect intended to any of these services— but a system whos
rules were only enforced at the good graces of a small number of
interested parties is not what the users of bitcoin signed up for.

People obviously care about supporting the goals and security of a the
system they use but actions speak louder than words.  If a
non-validating node is promoted then we're telling people that it's
not important that many people run them.  If running a full node
requires using different software (with a different interface) or a
much more painful initialization than another promoted option then it
will be correctly perceived as costly. If people perceive it to be
both costly and not important then rational participants will not run
it. The result will be fragile to non-existent security, where
dishonest or exploitative parties benefit from running all the full
nodes until they start ripping people off and shift the equilibrium
just a little towards running costly nodes.

It sounds to me that you're insisting that you're asking people who
oppose degrading our recommendations to commit to a costly rushed
development timeline. I think this is a false choice.

There is no set timeline for the adoption of Bitcoin— man has survived
eons without Bitcoin just fine— and there are many practical reasons
why slow adoption is beneficial, including reducing the harm users
experience from growing pains.  By allowing things to mature at their
own pace we can preserve the principles that make the system valuable.

If the new user experience is sufficiently bad (and I agree it's bad,
esp with the current release versions of Bitcoin-Qt) then that should
justify more support of work that improves it without compromising the
system. If it's not bad enough to apply those resources, then it's not
bad enough to justify compromising it: as this sort of change is hard
to reverse.

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Roadmap to getting users onto SPV clients

2012-12-04 Thread Mark Friedenbach
Alan's UTxO meta-chain proposal becomes vastly easier to do now that
ultraprune is merged. That would allow the Satoshi client to know it's
wallet balance and operate with a =SPV level of security during the
initial block download, and keep them on the path of becoming a full node.
If users can see their balances, send and receive transactions, and
otherwise go about their business (except for mining) during the initial
block download, would that not address your concerns?

IMHO the only time bitcoin.org should recommend a SPV-only client is when
it is dynamically when it is being accessed from a mobile device, but
that's a separate issue.

Mark


On Tue, Dec 4, 2012 at 9:46 AM, Mike Hearn m...@plan99.net wrote:

 At the moment if you visit bitcoin.org then you're recommended to
 download the full client. I think we all agree that at some point we
 need to start presenting users with something more like this:


 To get started, download wallet apps A or B.

 If you'd like to contribute your computing resources to the Bitcoin
 network and have a fast computer with an unfiltered internet
 connection, download:

- for desktop machines, Bitcoin-Qt
- for servers, bitcoind



 Obviously not that exact wording.

 I personally feel it's a bit early for this, but it's true that users
 are being turned away by the fact that they're pointed to Bitcoin-Qt
 by default, so having some kind of roadmap or plan for changing that
 would be good.

 I think MultiBit is maturing into a client that I'd feel comfortable
 recommending to end users who take the fast-start path, though it
 still has a few serious lacks (encrypted wallets aren't released yet,
 bloom filters will help performance a lot, needs to catch up with some
 newer features). But there doesn't have to be a one true client.

 The alternative, I guess, is to make Bitcoin-Qt have an SPV mode. I'm
 not convinced this is the best use of time, but if somebody steps up
 to do it, that could also work. MultiBit has some unique features that
 are quite useful like integrating charting and exchange rate feeds.

 What does everyone think on this?


 --
 LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
 Remotely access PCs and mobile devices and provide instant support
 Improve your efficiency, and focus on delivering more value-add services
 Discover what IT Professionals Know. Rescue delivers
 http://p.sf.net/sfu/logmein_12329d2d
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Roadmap to getting users onto SPV clients

2012-12-04 Thread Will
...or should we be directing people to a (vetted) list of cloud services -
I think this has a significantly lower entry cost than any client. I know
the mybitcoin debacle has clouded (pun intended) people's views of these
providers, but blockchain.info (for example) really does seem quite well
engineered, and satisfies many of the features in particular a very low
cost of entry, cross platform support and what appears to be very good
security (e.g. two factor)

Will

On 4 December 2012 17:46, Mike Hearn m...@plan99.net wrote:

 At the moment if you visit bitcoin.org then you're recommended to
 download the full client. I think we all agree that at some point we
 need to start presenting users with something more like this:


 To get started, download wallet apps A or B.

 If you'd like to contribute your computing resources to the Bitcoin
 network and have a fast computer with an unfiltered internet
 connection, download:

- for desktop machines, Bitcoin-Qt
- for servers, bitcoind



 Obviously not that exact wording.

 I personally feel it's a bit early for this, but it's true that users
 are being turned away by the fact that they're pointed to Bitcoin-Qt
 by default, so having some kind of roadmap or plan for changing that
 would be good.

 I think MultiBit is maturing into a client that I'd feel comfortable
 recommending to end users who take the fast-start path, though it
 still has a few serious lacks (encrypted wallets aren't released yet,
 bloom filters will help performance a lot, needs to catch up with some
 newer features). But there doesn't have to be a one true client.

 The alternative, I guess, is to make Bitcoin-Qt have an SPV mode. I'm
 not convinced this is the best use of time, but if somebody steps up
 to do it, that could also work. MultiBit has some unique features that
 are quite useful like integrating charting and exchange rate feeds.

 What does everyone think on this?


 --
 LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
 Remotely access PCs and mobile devices and provide instant support
 Improve your efficiency, and focus on delivering more value-add services
 Discover what IT Professionals Know. Rescue delivers
 http://p.sf.net/sfu/logmein_12329d2d
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Roadmap to getting users onto SPV clients

2012-12-04 Thread Gregory Maxwell
On Tue, Dec 4, 2012 at 1:57 PM, Mark Friedenbach m...@monetize.io wrote:
 Alan's
  :(

 UTxO meta-chain proposal becomes vastly easier to do now that
 ultraprune is merged.

No, not really. Somewhat easier due to some structural changes, but it
still needs to invent and get consensus on a normative data structure
and people need to write implementations of the required operations on
it (implementations probably required to prove performance for
consensus).  We still have to sort through the tradeoff of making a
_single_ data structure the normative merkle tree representation for
the UTxO set to the preclusion of other implementations— including
ones which are  asymptotically faster, such as a straight hash table.

There are also issues that need to be sorted out like key structure—
the most useful index for validation is txid:vout keyed, but Alan
wanted 'address' prefixed, which is not friendly for validation but
enables robust query by address— a query that the referce normal
bitcoin software doesn't even optionally support right now.  Any
disagreements on this point must be hammed out because the structure
would be normative.

 That would allow the Satoshi client to know it's
 wallet balance and operate with a =SPV level of security during the initial
 block download, and keep them on the path of becoming a full node. If users
 can see their balances, send and receive transactions, and otherwise go
 about their business (except for mining) during the initial block download,
 would that not address your concerns?

The above said, that is all good stuff too. And I do thing starting
fast with reduced security (be it to SPV+ or SPV) is a good idea.

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Roadmap to getting users onto SPV clients

2012-12-04 Thread Mike Hearn
 It sounds to me that you're insisting that you're asking people who
 oppose degrading our recommendations to commit to a costly rushed
 development timeline. I think this is a false choice.

Hardly. I don't have any particular timeline in mind. But I disagree
we have forever. New ideas have a certain time window to take off
and become credible. If they never overcome their problems in that
time window, eventually people just give up and move on. Does anyone
take desktop Linux seriously anymore? No. The year of desktop Linux
is a joke. People took it seriously in 2001 but despite great progress
since, the excitement and attention has gone. There were steady
improvements over the last 10 years but nobody is creating desktop
Linux startups anymore - Bitcoin shouldn't go the same way.

It's unclear we need to have every man and his dog run a full node.
Tor is a successful P2P network where the number of users vastly
outstrips the number of nodes, and exit nodes in particular are a
scarce resource run by people who know what they're doing and commit
to it.

The Tor guys could have said every node should be an exit if
possible, but that would have been a short term optimization at the
cost of long term stability, and anyway doesn't seem to have been
necessary so far. Even with no incentives, they were able to obtain
the resources they need.

So why should Bitcoin be different? If there are a million users
supported by 50,000 full nodes, that wouldn't sound unhealthy to me.
We can easily send a clear and consistent this is important, please
help message without complicated auto-upgrade/downgrade schemes that
risk annoying users.

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Roadmap to getting users onto SPV clients

2012-12-04 Thread Gregory Maxwell
On Tue, Dec 4, 2012 at 3:58 PM, Mike Hearn m...@plan99.net wrote:
 It sounds to me that you're insisting that you're asking people who
 oppose degrading our recommendations to commit to a costly rushed
 development timeline. I think this is a false choice.

 Hardly. I don't have any particular timeline in mind. But I disagree
 we have forever. New ideas have a certain time window to take off
 and become credible.

Marketing initiatives have limited windows.  This matters, perhaps,
when you're some VC pumping cash into a startup with the hopes of
being the next stockmarket pump and dump darling.  Outside of that
people use whatever they use because it works for them.

And by the numbers Linux desktops are more common than they've ever
been— and certainly Linux kernel _systems_ half the people I know have
one in their pocket and its hard to go more than a few hours without
touching one.  To some extent the Year of the Linux desktop is a bit
like the Year of being able to turn lead into gold ... we can turn
lead into gold now, but the particle accelerators, atomic power, and
atomic weapons enabled by the same technology are far more interesting
due to the particle realities of this. So we didn't get the ubiquitous
Linux desktop: We got the ubiquitious Linux server, the ubiquitous
Linux-kernel smart phone, the ubiquitous Linux television, media
player, HVAC controller, etc. instead.

Desktops— well, that didn't meet people's hopes though I think not for
the lack of marketing on the part of Linux, but because Apple stepped
up and produced middle ground products that attracted a larger
audience. Especially as MSFT dropped the ball. They did some things
better, had a running start, and had a non open source software
business model which made reaping rewards easier.

But I don't see how any of this has anything to do with Bitcoin...
Except for the point that if Bitcoin doesn't become the money system
everyone uses and instead becomes the money system infrastructure all
the systems people use depend on— just as Linux has with the desktop,
where it might not be on the desktop but its in router firmware, cloud
servers, and just about everything else— I wouldn't consider that much
of a loss.

 time window, eventually people just give up and move on. Does anyone
 take desktop Linux seriously anymore? No. The year of desktop Linux
 is a joke. People took it seriously in 2001 but despite great progress
 since, the excitement and attention has gone. There were steady
 improvements over the last 10 years but nobody is creating desktop
 Linux startups anymore

Bitcoin already missed its first— and perhaps only— fad window in any
case. Today people say Bitcoin? Thats still around? I thought it got
hacked. ... thanks to compromised centralized services.

 It's unclear we need to have every man and his dog run a full node.

Every man and his dog? Perhaps not.  But as many as can— probably so.

If we depend on the organic need for full nodes to overcome cost and
effort to run one there will always be major incentives to let someone
else do that, and the system would have its equilibrium right on the
brink of insecurity. Perhaps worse, since insecurity is most obvious
retrospectively. Security doesn't make for a good market force.

 Tor is a successful P2P network where the number of users vastly
 outstrips the number of nodes, and exit nodes in particular are a
 scarce resource run by people who know what they're doing and commit
 to it.

Tor is a distributed but controlled, by a small number of directory
authority operators, system.

It is a good system. But it has a trust model which is categorically
weaker than the one in Bitcoin.  If you want something where a
majority of a dozen signing keys— hopefully in the hands of trusted
parties— can decide the state of the system you can produce someting
far superior to Bitcoin— something that gives near instant
non-reversable transactions, something that gives good client security
without the complexity of a SPV node, etc.

But that isn't Bitcoin.

 Even with no incentives, they were able to obtain
 the resources they need.

And yet every tor user— if the have the bandwidth available can be a
full internal relay and the software nags them to do it (and also nags
them to act as invisible bridges for blocking avoidance), and every
user is technically able to run an exit (though they don't bludgeon
users to do that, because of the legal/political/technical issues
involved).  To do any of this doesn't require a user to switch to
different software, and the tor project has previously opposed client
only software.

 So why should Bitcoin be different?

It's less different than you make it out to be— but it _is_ different.
  Bitcoin is a distributed currency. The value of bitcoin comes from
the soundness of its properties and from the persistence of its
security. If the integrity of the distributed ledger is disrupted the
damage produced, both in funds stolen and in undermining the

Re: [Bitcoin-development] Roadmap to getting users onto SPV clients

2012-12-04 Thread slush
Jim, perfect idea with some logo indicating wallet compatibility! This
should cover BIP32 + some mnemonic algorithm for easy transferring of
wallets across various clients.

Btw I asked ThomasV for making BIP from his mnemonic algorithm and he
agreed, so I believe some proposal will be here pretty soon.

slush

On Tue, Dec 4, 2012 at 7:56 PM, Jim jim...@fastmail.co.uk wrote:

 Also, as BIP32 support is added to clients and codebases then the actual
 variant of software to use to access your wallet will become relatively
 less important. Combined with a standardised seed - passphrase
 algorithm the user can just type in their long passphrase into any BIP32
 compliant software and click/ buzz/ whirr : there is their wallet. We
 should have a little logo for HD wallet compliance ! :-)


--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Roadmap to getting users onto SPV clients

2012-12-04 Thread Gregory Maxwell
On Tue, Dec 4, 2012 at 5:44 PM, Alan Reiner etothe...@gmail.com wrote:
 Greg's point looks like it's veering towards we don't want to grow
 the network unless we're going to get more full nodes out of it.

No…

There is no fundamental completion between taking what actions we can
to maximize the decentralization of the network and making the
software maximally friendly and painless to get started with and use.
It's possible— not even deep rocket science— to create software that
accommodates both.

And because of this, I don't think it's acceptable to promote
solutions which may endanger the decentralization that makes the
system worthwhile in the first place.  If the current experience is so
poor that you'd even consider talking about promoting directions which
reduce its robustness then thats evidence that it would be worth
finding more resources to make the experience better without doing
anything the that reduces the model, even if you've got an argument
that maybe we can get away with it.  If there isn't interest in
putting in more resources to make these improvements then maybe the
issue isn't as bad as we think it is?

 I think it is very much in everyone's interest here to encourage new users to 
 start using Bitcoin, even if they don't support it.

Absolutely— and yet that has nothing to do with promoting software to
users which only consumes without directly contributing and which
doesn't even have the capability to do so even if the user wants to
(or much less, is indifferent).

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Roadmap to getting users onto SPV clients

2012-12-04 Thread Alan Reiner
Our divergence is on two points (personal opinions):

(1) I don't think there is any real risk to the centralization of the
network by promoting a SPV (purely-consuming) node to brand-new users. 
In my opinion (but I'm not as familiar with the networking as you), as
long as all full nodes are full-validation, the bottleneck will be
computation and bandwidth, long before a constant 10k nodes would be
insufficient to support propagating data through the network.  In fact,
I was under the impression that connectedness was the real metric of
concern (and resilience of that connectedness to large percentage of
users disappearing suddenly).  If that's true, above a certain number of
nodes, the connectedness isn't really going to get any better (I know
it's not really that simple, but I feel like it is up to 10x the current
network size).

(2) I think the current experience *is* really poor.  You seem to
suggest that the question for these new users is whether they will use
full-node-or-lite-node, but I believe it will be a decision between
lite-node-or-nothing-at-all (losing interest altogether).  Waiting a day
for the full node to synchronize, and then run into issues like
blkindex.dat corruption when their system crashes for some unrelated
reason and they have to resync for another day... they'll be gone in a
heartbeat.

Users need to experience, as quickly and easily as possible, that they
can move money across the world, without signing up for anything or
paying any fees.  After they understand the value of the system and want
to use it, they are much more likely to become educated and willing to
support the network with full node. 

-Alan




On 12/04/2012 07:27 PM, Gregory Maxwell wrote:
 On Tue, Dec 4, 2012 at 5:44 PM, Alan Reiner etothe...@gmail.com wrote:
 Greg's point looks like it's veering towards we don't want to grow
 the network unless we're going to get more full nodes out of it.
 No…

 There is no fundamental completion between taking what actions we can
 to maximize the decentralization of the network and making the
 software maximally friendly and painless to get started with and use.
 It's possible— not even deep rocket science— to create software that
 accommodates both.

 And because of this, I don't think it's acceptable to promote
 solutions which may endanger the decentralization that makes the
 system worthwhile in the first place.  If the current experience is so
 poor that you'd even consider talking about promoting directions which
 reduce its robustness then thats evidence that it would be worth
 finding more resources to make the experience better without doing
 anything the that reduces the model, even if you've got an argument
 that maybe we can get away with it.  If there isn't interest in
 putting in more resources to make these improvements then maybe the
 issue isn't as bad as we think it is?

 I think it is very much in everyone's interest here to encourage new users 
 to start using Bitcoin, even if they don't support it.
 Absolutely— and yet that has nothing to do with promoting software to
 users which only consumes without directly contributing and which
 doesn't even have the capability to do so even if the user wants to
 (or much less, is indifferent).


--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Roadmap to getting users onto SPV clients

2012-12-04 Thread Gregory Maxwell
On Tue, Dec 4, 2012 at 9:08 PM, Alan Reiner etothe...@gmail.com wrote:
 Our divergence is on two points (personal opinions):

 (1) I don't think there is any real risk to the centralization of the
 network by promoting a SPV (purely-consuming) node to brand-new users.
 In my opinion (but I'm not as familiar with the networking as you), as
 long as all full nodes are full-validation, the bottleneck will be
 computation and bandwidth, long before a constant 10k nodes would be
 insufficient to support propagating data through the network.

Not so— a moderately fast multicore desktop machine can keep up with
the maximum possible validation rate of the Bitcoin network and the
bandwidth has a long term maximum rate of about 14kbit/sec— though
you'll want at least ten times that for convergence stability and the
ability feed multiple peers.

Here are the worst blocks testnet3 (which has some intentionally
constructed maximum sized blocks),E31230 :
(with the new parallel validation code)
- Verify 2166 txins: 250.29ms (0.116ms/txin)
- Verify 3386 txins: 1454.25ms (0.429ms/txin)
- Verify 5801 txins: 575.46ms (0.099ms/txin)
- Verify 6314 txins: 625.05ms (0.099ms/txin)
Even the slowest one _validates_ at 400x realtime. (these measurements
are probably a bit noisy— but the point is that its fast).
(the connecting is fast too, but thats obvious with such a small database)

Although I haven't tested leveldb+ultraprune with a really enormous
txout set or generally with sustained maximum load— so there may be
other gaffs in the software that get exposed with sustained load, but
they'd all be correctable. Sounds like some interesting stuff to test
with on testnet fork that has the POW test disabled.

While syncing up a behind node can take a while— keep in mind that
you're expecting to sync up weeks of network work in hours. Even
'slow' is quite fast.

 In fact,
 I was under the impression that connectedness was the real metric of
 concern (and resilience of that connectedness to large percentage of
 users disappearing suddenly).  If that's true, above a certain number of
 nodes, the connectedness isn't really going to get any better (I know
 it's not really that simple, but I feel like it is up to 10x the current
 network size).

Thats not generally concern for me. There are a number of DOS attack
risks... But attacker linear DOS attacks aren't generally avoidable
and they don't persist.

Of the class of connectedness concerns I have is that a sybil attacker
could spin up enormous numbers of nodes and then use them to partition
large miners.  So, e.g. find BitTaco's node(s) and the nodes for
miners covering 25% hashpower and get them into a separate partition
from the rest of the network. Then they give double spends to that
partition and use them to purchase an unlimited supply of digitally
delivered tacos— allowing their captured miners to build an ill fated
fork— and drop the partition once the goods are delivered.

But there is no amount of full nodes that removes this concern,
especially if you allow for attackers which have compromised ISPs.
It can be adequately addressed by a healthy darknet of private
authenticated peerings between miners and other likely targets. I've
also thrown out some ideas on using merged mined node IDs to make some
kinds of sybil attacks harder ... but it'll be interesting to see how
the deployment of ASICs influences the concentration of hashpower— it
seems like there has already been a substantial move away from the
largest pools. Less hashpower consolidation makes attacks like this
less worrisome.

 (2) I think the current experience *is* really poor.

Yes, I said so specifically.  But the fact that people are flapping
their lips here instead of testing the bitcoin-qt git master which is
an 1-2 order of magnitude improvement suggests that perhaps I'm wrong
about that.  Certainly the dearth of people testing and making bug
reports suggests people don't actually care that much.

 You seem to
 suggest that the question for these new users is whether they will use
 full-node-or-lite-node, but I believe it will be a decision between
 lite-node-or-nothing-at-all (losing interest altogether).

No. The question that I'm concerned with is do we promote lite nodes
as equally good option— even for high end systems— remove the
incentive for people to create, improve, and adopt more useful full
node software and forever degrade the security of the system.

 Waiting a day
 for the full node to synchronize, and then run into issues like
 blkindex.dat corruption when their system crashes for some unrelated
 reason and they have to resync for another day... they'll be gone in a
 heartbeat.

The current software patches plus parallelism can sync on a fast
system with luck network access (or a local copy of the data) in under
an hour.

This is no replacement for start as SPV, but nor are handicapped
client programs a replacement for making fully capable ones acceptably
performing.

 Users need to 

[Bitcoin-development] String-based Hierarchical Deterministic Keys - Alternative to BIP 32

2012-12-04 Thread Mike Koss
I've implemented an alternative to the BIP 32 proposal.  I wanted a system
based on a hierarchical string representation (rather than hierarchy of
integers as BIP 32 proposes).  For example I name keys like this:

[hd1.7549].store.1. 1D7GM5dkUtxvGeWgn7SYtanBuyj1MD1EZy
[hd1.7549].store.2. 1QAqDbzpNKViGSjVe1XmnGbmZtvz5hM7t1
[hd1.7549].store.3. 14XkSN92QLGeorYPpoVbG87DQhowEx3mFn
[hd1.7549].store.4. 1JLcGdod6Wm33rMZuZZUmAEE6osLhM4QMn

First draft of proposal:

https://gist.github.com/4211704


I envision using this in services, so I've not done any work to recommend
how the keys would be represented directly in the client (I just map from a
seed value and
a hierarchy string in order to deterministic ally derive ECDSA public and
private keys).

I'm happy to release my source code for this (Python).  But I'd first like
to get feedback about any security concerns with my scheme (I note that I
don't introduce the enlarged
key space that BIP 32 does with its chain code - I'm wondering if that
represents a weakness of my scheme vs. BIP 32).

On Mon, Dec 3, 2012 at 12:44 PM, Pieter Wuille pieter.wui...@gmail.comwrote:

 On Mon, Dec 03, 2012 at 06:48:34AM -0800, Amir Taaki wrote:
  ok, also what is the reasoning behind serialising points using a
 compressed
  format before going into the hash function? I'm looking at the
 sec1-v2.pdf
  and the compression format is a little confusing.

 I don't think there is a compelling reason to encourage uncompressed public
 keys anymore on the network. They take more space in the block chain for no
 additional value whatsoever. Software may of course continue supporting
 uncompressed keys if they wish to provide compatibility, but for a new
 standard, I think it makes sense to standardize on just compressed keys.
 And since that software thus needs to support the compressed encoding,
 there is no reason to use a different encoding inside the derivation scheme
 itself.

 Regarding the encoding itself, it is not hard: just 0x02 or 0x03 (depending
 on whether Y is even or odd) followed by the 32-byte encoding of X.
 Decoding
 is harder, but is never needed in the derivation. Software internally can
 use
 any representation (and it will), which in almost all circumstances stores
 both X and Y (and even more). Decoding compressed public keys is somewhat
 harder, as Y must be reconstructed (but the algorithm isn't hard) - this is
 only necessary when someone wants to import an extended public key though
 for
 watch-only wallets.

 --
 Pieter


 --
 Keep yourself connected to Go Parallel:
 BUILD Helping you discover the best ways to construct your parallel
 projects.
 http://goparallel.sourceforge.net
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development




-- 
Mike Koss
CTO, CoinLab
(425) 246-7701 (m)

A Bitcoin Primer http://coinlab.com/a-bitcoin-primer.pdf - What you need
to know about Bitcoins.
--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] String-based Hierarchical Deterministic Keys - Alternative to BIP 32

2012-12-04 Thread Gregory Maxwell
On Tue, Dec 4, 2012 at 10:06 PM, Mike Koss m...@coinlab.com wrote:
 I've implemented an alternative to the BIP 32 proposal.  I wanted a system
 based on a hierarchical string representation (rather than hierarchy of
 integers as BIP 32 proposes).  For example I name keys like this:

 [hd1.7549].store.1. 1D7GM5dkUtxvGeWgn7SYtanBuyj1MD1EZy
 [hd1.7549].store.2. 1QAqDbzpNKViGSjVe1XmnGbmZtvz5hM7t1
 [hd1.7549].store.3. 14XkSN92QLGeorYPpoVbG87DQhowEx3mFn
 [hd1.7549].store.4. 1JLcGdod6Wm33rMZuZZUmAEE6osLhM4QMn

 First draft of proposal:

 https://gist.github.com/4211704

As Pieter pointed out recently— it's not (realistically) possible to
blindly iterate through strings.  This means your proposal loses the
backup recoverablity property which is part the point of a
deterministic wallet:  If you have a backup prior to a new string name
being established you must also have a reliable backup of the string
as well.

Of course, if you're backing up the strings then you can also backup a
map equating the hdwallet indexes to your strings, and in the event of
a catastrophic loss where you are only left with the original ultimate
root you lose no coins (only metadata) with the BIP32 scheme. If,
instead, we have your scheme and the backup of strings is incomplete
then some or all assigned coin may be lost forever.

Your extended hierarchy of multiplers also makes me uncomfortable.
BIP32 uses a HMAC in its construction to obtain strongly unstructured
points.

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] String-based Hierarchical Deterministic Keys - Alternative to BIP 32

2012-12-04 Thread Watson Ladd
On Tue, Dec 4, 2012 at 9:23 PM, Gregory Maxwell gmaxw...@gmail.com wrote:
 On Tue, Dec 4, 2012 at 10:06 PM, Mike Koss m...@coinlab.com wrote:
 I've implemented an alternative to the BIP 32 proposal.  I wanted a system
 based on a hierarchical string representation (rather than hierarchy of
 integers as BIP 32 proposes).  For example I name keys like this:

 [hd1.7549].store.1. 1D7GM5dkUtxvGeWgn7SYtanBuyj1MD1EZy
 [hd1.7549].store.2. 1QAqDbzpNKViGSjVe1XmnGbmZtvz5hM7t1
 [hd1.7549].store.3. 14XkSN92QLGeorYPpoVbG87DQhowEx3mFn
 [hd1.7549].store.4. 1JLcGdod6Wm33rMZuZZUmAEE6osLhM4QMn

 First draft of proposal:

 https://gist.github.com/4211704

 As Pieter pointed out recently— it's not (realistically) possible to
 blindly iterate through strings.  This means your proposal loses the
 backup recoverablity property which is part the point of a
 deterministic wallet:  If you have a backup prior to a new string name
 being established you must also have a reliable backup of the string
 as well.

I would like to note that BIP32 and this new proposal have a missing
feature: being able to spend
a coin sent to an address generated by this scheme implies being able
to spend any coin generated
by this scheme.

The easiest deterministic wallet construction is simply to use a
stream cipher to generate random
bytes used as the private keys in a wallet. Hierarchical constructions
do not seem to me to add more,
other then distinguishing transactions by sending to unique addresses,
which could be done by other means.


 Of course, if you're backing up the strings then you can also backup a
 map equating the hdwallet indexes to your strings, and in the event of
 a catastrophic loss where you are only left with the original ultimate
 root you lose no coins (only metadata) with the BIP32 scheme. If,
 instead, we have your scheme and the backup of strings is incomplete
 then some or all assigned coin may be lost forever.

 Your extended hierarchy of multiplers also makes me uncomfortable.
 BIP32 uses a HMAC in its construction to obtain strongly unstructured
 points.

I read BIP32. And while the multipliers at each level are
unstructured, the ones in the next level are products
of the ones before i.e. we have a multiplication tree with random
looking branches.
Note that the order of the basepoint is prime or a small cofactor
times a prime, so this isn't an issue (usually:
the cofactor could be annoying).

--
Those who would give up Essential Liberty to purchase a little
Temporary Safety deserve neither  Liberty nor Safety.
-- Benjamin Franklin

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] String-based Hierarchical Deterministic Keys - Alternative to BIP 32

2012-12-04 Thread Gregory Maxwell
On Tue, Dec 4, 2012 at 10:36 PM, Watson Ladd w...@uchicago.edu wrote:
 being able to spend
 a coin sent to an address generated by this scheme implies being able
 to spend any coin generated
 by this scheme.

If you have the the full extended secret there then you can spend
along the chain— but just the plain ecdsa secret by itself is not
enough to spend anything but that address itself.

Or have I misunderstood you here?

 The easiest deterministic wallet construction is simply to use a
 stream cipher to generate random
 bytes used as the private keys in a wallet. Hierarchical constructions
 do not seem to me to add more,
 other then distinguishing transactions by sending to unique addresses,
 which could be done by other means.

Sadly that construction has no ability to separate address generation
from spending— an important element for merchant applications.  Not
just for their own own distinguishing of transactions but because the
use of fresh addresses is essential to the limited privacy properties
of the Bitcoin system.

I called that a type-1 deterministic wallet in some old forum post
where I wrote about the different derivation schemes as opposed to the
point combining type-2 construction. The hope in BIP32 was that we
could get away just using a single one.

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Roadmap to getting users onto SPV clients

2012-12-04 Thread Jim Nguyen
Gavin's grandma needs to be able to use bitcoin.  Here is a real world
sampling of the types of people wanting to use bitcoin but are having some
difficulty which I have collected from Facebook.  Should we listen to the
end user? :-P

*what is the intention of Bitcoin? Is it supposed to be - eventually - for
dummies like myself or is it just for those individuals who are code and
algorithm writers? I downloaded a wallet but how do I know if I need more
software or a massive computer system to solve the problem for the next
block? With all the talk of mathematical problem solving on a world wide
network of computers I can't see a small laptop figuring out anything thus
not gaining any bitcoins. Why should I be interested in this if it appears
it's just for computer scientists?*

*hi, instaled bitcoin qt, but after it dowladed all the stuff, now i get
DEP protecction from windows, and it tells me bitcoinQT need to run with
DEP on, dont let me make an exception for it, nor work it i turn DEP only
for sys, so hwat i should do?*

*hi, i'm new to bitcoin, i got a bunch of free bitcoins from a bunch of
the free sites. how come when i tried to send my bitcoins to myself, it
says the fee exceeds the balance? I thought there was no fees?*

*Is there a way to speed up the process of synchronisation with the
network? It has been taken ages on my MAC.*
*Any help would be nice*
*
*
*and more...*

Sorry if this doesn't belong to the bitcoin-development email list.  I just
see this as end-user/customer data gathering to refine the requirements,
since this is software engineering...isn't it?

Jim

On Tue, Dec 4, 2012 at 6:54 PM, Gregory Maxwell gmaxw...@gmail.com wrote:

 On Tue, Dec 4, 2012 at 9:08 PM, Alan Reiner etothe...@gmail.com wrote:
  Our divergence is on two points (personal opinions):
 
  (1) I don't think there is any real risk to the centralization of the
  network by promoting a SPV (purely-consuming) node to brand-new users.
  In my opinion (but I'm not as familiar with the networking as you), as
  long as all full nodes are full-validation, the bottleneck will be
  computation and bandwidth, long before a constant 10k nodes would be
  insufficient to support propagating data through the network.

 Not so— a moderately fast multicore desktop machine can keep up with
 the maximum possible validation rate of the Bitcoin network and the
 bandwidth has a long term maximum rate of about 14kbit/sec— though
 you'll want at least ten times that for convergence stability and the
 ability feed multiple peers.

 Here are the worst blocks testnet3 (which has some intentionally
 constructed maximum sized blocks),E31230 :
 (with the new parallel validation code)
 - Verify 2166 txins: 250.29ms (0.116ms/txin)
 - Verify 3386 txins: 1454.25ms (0.429ms/txin)
 - Verify 5801 txins: 575.46ms (0.099ms/txin)
 - Verify 6314 txins: 625.05ms (0.099ms/txin)
 Even the slowest one _validates_ at 400x realtime. (these measurements
 are probably a bit noisy— but the point is that its fast).
 (the connecting is fast too, but thats obvious with such a small database)

 Although I haven't tested leveldb+ultraprune with a really enormous
 txout set or generally with sustained maximum load— so there may be
 other gaffs in the software that get exposed with sustained load, but
 they'd all be correctable. Sounds like some interesting stuff to test
 with on testnet fork that has the POW test disabled.

 While syncing up a behind node can take a while— keep in mind that
 you're expecting to sync up weeks of network work in hours. Even
 'slow' is quite fast.

  In fact,
  I was under the impression that connectedness was the real metric of
  concern (and resilience of that connectedness to large percentage of
  users disappearing suddenly).  If that's true, above a certain number of
  nodes, the connectedness isn't really going to get any better (I know
  it's not really that simple, but I feel like it is up to 10x the current
  network size).

 Thats not generally concern for me. There are a number of DOS attack
 risks... But attacker linear DOS attacks aren't generally avoidable
 and they don't persist.

 Of the class of connectedness concerns I have is that a sybil attacker
 could spin up enormous numbers of nodes and then use them to partition
 large miners.  So, e.g. find BitTaco's node(s) and the nodes for
 miners covering 25% hashpower and get them into a separate partition
 from the rest of the network. Then they give double spends to that
 partition and use them to purchase an unlimited supply of digitally
 delivered tacos— allowing their captured miners to build an ill fated
 fork— and drop the partition once the goods are delivered.

 But there is no amount of full nodes that removes this concern,
 especially if you allow for attackers which have compromised ISPs.
 It can be adequately addressed by a healthy darknet of private
 authenticated peerings between miners and other likely targets. I've
 also thrown out some ideas on using 

Re: [Bitcoin-development] Roadmap to getting users onto SPV clients

2012-12-04 Thread Wladimir
Jim,

Most of those issues don't have to do with the SPV versus non-SPV problem.

First person doesn't understand what Bitcoin is supposed to do (he's
confusing mining and running a node). An information problem that could be
solved by explaining what is going on.

Another one seems to have a problem with DEP. That's probably an issue with
his OS configuration.

The third one is confused about the fees. Again, an information problem.

Only the fourth one is concerned with synchronization. The other ones could
happen with any client, as they're either based on misconceptions about
bitcoin as a whole or computer problems.

This doesn't in any way make switching to another, reduced security model
client preferable. Let's first try to improve the Bitcoin experience with
full security model, and if that somehow turns out to be impossible it's
always possible to recommend some other client based on the 'user type'.

I don't agree that this point is now. Anyway, security and stability of the
network is of utmost importance to do anything in the future, better to
grow organically than explode.

Many initiatives are underway to improve the Satoshi client (for example to
have Bitcoin-Qt behave as SPV client during initial block download, and as
full node after that), but as usual in open source development, many of us
are doing this basically for fun in our free time it does not always go as
fast as users would like.

I wish there was a straightforward solution for that, yeah pooling together
our development on one or two clients instead of a zillion different ones
could help, but everyone has more fun working on their own client that's
just how things go :)

Wladimir

On Wed, Dec 5, 2012 at 6:38 AM, Jim Nguyen jimmy.w...@gmail.com wrote:

 Gavin's grandma needs to be able to use bitcoin.  Here is a real world
 sampling of the types of people wanting to use bitcoin but are having some
 difficulty which I have collected from Facebook.  Should we listen to the
 end user? :-P

 *what is the intention of Bitcoin? Is it supposed to be - eventually -
 for dummies like myself or is it just for those individuals who are code
 and algorithm writers? I downloaded a wallet but how do I know if I need
 more software or a massive computer system to solve the problem for the
 next block? With all the talk of mathematical problem solving on a world
 wide network of computers I can't see a small laptop figuring out anything
 thus not gaining any bitcoins. Why should I be interested in this if it
 appears it's just for computer scientists?*

 *hi, instaled bitcoin qt, but after it dowladed all the stuff, now i get
 DEP protecction from windows, and it tells me bitcoinQT need to run with
 DEP on, dont let me make an exception for it, nor work it i turn DEP only
 for sys, so hwat i should do?*

 *hi, i'm new to bitcoin, i got a bunch of free bitcoins from a bunch of
 the free sites. how come when i tried to send my bitcoins to myself, it
 says the fee exceeds the balance? I thought there was no fees?*

 *Is there a way to speed up the process of synchronisation with the
 network? It has been taken ages on my MAC.*
 *Any help would be nice*
 *
 *
 *and more...*

 Sorry if this doesn't belong to the bitcoin-development email list.  I
 just see this as end-user/customer data gathering to refine the
 requirements, since this is software engineering...isn't it?

 Jim

 On Tue, Dec 4, 2012 at 6:54 PM, Gregory Maxwell gmaxw...@gmail.comwrote:

 On Tue, Dec 4, 2012 at 9:08 PM, Alan Reiner etothe...@gmail.com wrote:
  Our divergence is on two points (personal opinions):
 
  (1) I don't think there is any real risk to the centralization of the
  network by promoting a SPV (purely-consuming) node to brand-new users.
  In my opinion (but I'm not as familiar with the networking as you), as
  long as all full nodes are full-validation, the bottleneck will be
  computation and bandwidth, long before a constant 10k nodes would be
  insufficient to support propagating data through the network.

 Not so— a moderately fast multicore desktop machine can keep up with
 the maximum possible validation rate of the Bitcoin network and the
 bandwidth has a long term maximum rate of about 14kbit/sec— though
 you'll want at least ten times that for convergence stability and the
 ability feed multiple peers.

 Here are the worst blocks testnet3 (which has some intentionally
 constructed maximum sized blocks),E31230 :
 (with the new parallel validation code)
 - Verify 2166 txins: 250.29ms (0.116ms/txin)
 - Verify 3386 txins: 1454.25ms (0.429ms/txin)
 - Verify 5801 txins: 575.46ms (0.099ms/txin)
 - Verify 6314 txins: 625.05ms (0.099ms/txin)
 Even the slowest one _validates_ at 400x realtime. (these measurements
 are probably a bit noisy— but the point is that its fast).
 (the connecting is fast too, but thats obvious with such a small database)

 Although I haven't tested leveldb+ultraprune with a really enormous
 txout set or generally with sustained maximum