public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Eric Lombrozo <elombrozo@gmail•com>
To: Mark Friedenbach <mark@friedenbach•org>
Cc: Bitcoin Dev <bitcoin-dev@lists•linuxfoundation.org>
Subject: Re: [bitcoin-dev] Why Satoshi's temporary anti-spam measure isn't temporary
Date: Tue, 28 Jul 2015 19:40:21 -0700	[thread overview]
Message-ID: <4F7FB1A0-E201-40F2-80BA-4C8D6ECC4DC4@gmail.com> (raw)
In-Reply-To: <35B780B8-7282-4C98-9A0D-C7774028E277@gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 5861 bytes --]

In the interest of promoting some constructive discussion on this, let me start by making a few proposals to correct the listed issues.

Note: many of these ideas are neither my own nor really all that new, but it seems in the past we’ve given up too easily on actually moving forward on them despite their critical importance.


——

1) A fee market never really got created, we don’t really know how transaction fees would  work in practice.

The only way to see how fees would work in practice is to have scarcity. If the network is still not sufficiently mature to be able to handle actual resource limits securely, the safest way to do this is to artificially impose limits. Some economists might bicker about the problems with production quotas and what not…but how else are we to solve the real, non-trivial engineering problems without risking system collapse? The eventual goal would be to remove these artificial limits once we’re confident that the economic incentives are properly aligned to maintain security. We’re still quite far from this goal, though, and it would be irresponsible, IMHO, to insist on letting the system hit its real limits.


2) Turns out the vast majority of validation nodes have little if anything to do with mining - validators do not get compensated…validation cost is externalized to the entire network.
3) Miners don’t even properly validate blocks. And the bigger the blocks get, the greater the propensity to skip this step. Oops!

Issues (2) and (3) are inextricably related so I’ll cover both together.

The obvious problem here is that as long as the cost of checking validators is the same as the cost of validating itself, there’s really little we can do to properly have any sort of division of labor. Requiring, at the very least, random checks might be a start. Perhaps some clever use of SNARKs might eventually be secure and practical.

It might also be possible to directly pay validators for satisfying random checks or providing SNARKs. If only we could trustlessly and securely outsource this work we’d make tremendous progress.

Of all the issues I’ve listed, these are perhaps the ones for which practical solutions seem most tentative at present.


4) A satisfactory mechanism for thin clients to be able to securely obtain reasonably secure, short proofs for their transactions never materialized.

The first part of the solution to this issue is the use of better data structures. Satoshi’s SPV can prove that transactions are included in blocks…and that outputs are spent. But it has no mechanism for proving that a given transaction is *not* included in any block…or that some particular output remains unspent. The structures to which we’re committing extremely inefficient for querying some of the most important things required for validation…i.e. whether an output exists and whether it is spent.

The second part is shifting the responsibility for constructing proofs to the parties who already have the greatest incentives to store the necessary data to construct these proofs to allow efficient prunability. Outsourceability of proofs would also be highly desirable.

——

If we want to be able to raise the block size limit…or perhaps get rid of it altogether, I would suggest we start by addressing these specific issues and work to find practical solutions. Since raising the block size limit is already a hard forking consensus rule change, at least the need for hard forks isn’t what’s stopping us.

- Eric


> On Jul 28, 2015, at 5:55 PM, Eric Lombrozo <elombrozo@gmail•com> wrote:
> 
> I agree that the historical reasons are irrelevant from an engineering perspective. But they still set a context for the discussion…and might help shed some insight into the motivations behind some of the participants. It’s also good to know these things to counter arguments that start with “But Satoshi said that…”
> 
> What’s critically important to note is that several of the assumptions that were being made at the time this limit was decided have turned out wrong…and that these other issues should probably be of greater concern and more highly prioritized in any discussion considering the merits of deploying potentially incompatible consensus rule changes. It seems if these other issues were fixed perhaps no block size limit would be required at all (as was originally hoped).
> 
> - Eric
> 
>> On Jul 28, 2015, at 5:46 PM, Mark Friedenbach <mark@friedenbach•org <mailto:mark@friedenbach•org>> wrote:
>> 
>> Does it matter even in the slightest why the block size limit was put in place? It does not. Bitcoin is a decentralized payment network, and the relationship between utility (block size) and decentralization is empirical. Why the 1MB limit was put in place at the time might be a historically interesting question, but it bears little relevance to the present engineering issues.
>> 
>> On Tue, Jul 28, 2015 at 5:43 PM, Jean-Paul Kogelman via bitcoin-dev <bitcoin-dev@lists•linuxfoundation.org <mailto:bitcoin-dev@lists•linuxfoundation.org>> wrote:
>> 
>> > Enter a “temporary” anti-spam measure - a one megabyte block size limit. Let’s test this out, then increase it once we see how things work. So far so good…
>> >
>> 
>> The block size limit was put in place as an anti-DoS measure (monster blocks), not "anti-spam". It was never intended to have any economic effect, not on spam and not on any future fee market.
>> 
>> 
>> jp
>> 
>> _______________________________________________
>> bitcoin-dev mailing list
>> bitcoin-dev@lists•linuxfoundation.org <mailto:bitcoin-dev@lists•linuxfoundation.org>
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>
>> 
> 


[-- Attachment #1.2: Type: text/html, Size: 8167 bytes --]

[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 842 bytes --]

  reply	other threads:[~2015-07-29  2:40 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-28 22:25 Eric Lombrozo
2015-07-29  0:43 ` Jean-Paul Kogelman
2015-07-29  0:44   ` Eric Lombrozo
2015-07-29  0:46   ` Mark Friedenbach
2015-07-29  0:55     ` Eric Lombrozo
2015-07-29  2:40       ` Eric Lombrozo [this message]
2015-07-29  3:37         ` Eric Lombrozo
2015-07-29  3:46           ` Milly Bitcoin
2015-07-29  5:17             ` Eric Lombrozo
2015-07-29 11:18         ` Thomas Zander
2015-07-29  9:59 ` Mike Hearn
2015-07-29 10:43   ` Eric Lombrozo
2015-07-29 11:15     ` Mike Hearn
2015-07-29 12:03       ` Eric Lombrozo
2015-07-29 12:13         ` Thomas Zander
2015-07-29 17:17       ` [bitcoin-dev] Why Satoshi's temporary anti-spam measure isn'ttemporary Raystonn .
2015-07-29 19:56       ` [bitcoin-dev] Why Satoshi's temporary anti-spam measure isn't temporary Owen
2015-07-29 20:09         ` Gregory Maxwell
2015-07-29 21:28           ` [bitcoin-dev] Why Satoshi's temporary anti-spam measure isn'ttemporary Raystonn .
2015-07-29 22:11             ` Venzen Khaosan
2015-07-29 23:10               ` Raystonn .
2015-07-30  3:49                 ` Adam Back
2015-07-30  4:51                   ` Andrew LeCody
2015-07-30  8:21                     ` [bitcoin-dev] Why Satoshi's temporary anti-spam measure isn't temporary Eric Lombrozo
2015-07-30  9:15                       ` Eric Lombrozo
2015-07-30 12:29                       ` Gavin
2015-07-30 12:50                         ` Pieter Wuille
2015-07-30 14:03                           ` Thomas Zander
2015-07-30 14:05                           ` Gavin Andresen
2015-07-30 14:28                             ` Pieter Wuille
2015-07-30 15:36                             ` Jorge Timón
2015-07-30 23:33                         ` Eric Lombrozo
2015-07-31  0:15                           ` Milly Bitcoin
2015-07-31 21:30                             ` Jorge Timón
2015-07-31 21:43                               ` Eric Lombrozo
2015-07-31  6:42                           ` Thomas Zander
2015-07-31 20:45                             ` Eric Lombrozo
2015-07-31 20:57                               ` Eric Lombrozo
2015-08-01 20:22                               ` John T. Winslow
2015-08-01 21:05                                 ` Pieter Wuille
2015-07-30  9:16                   ` [bitcoin-dev] Why Satoshi's temporary anti-spam measure isn'ttemporary Venzen Khaosan
2015-07-30  9:38                     ` Jorge Timón
2015-07-30 13:33                       ` Venzen Khaosan
2015-07-30 14:10                         ` Jorge Timón
2015-07-30 14:52                       ` Thomas Zander
2015-07-30 15:24                         ` Bryan Bishop
2015-07-30 15:55                           ` Gavin Andresen
2015-07-30 17:24                             ` Thomas Zander
2015-07-31 15:27                             ` Bryan Bishop
2015-07-30 16:07                           ` Thomas Zander
2015-07-30 17:42                             ` Thomas Zander
2015-07-30 18:02                               ` Mark Friedenbach
2015-07-31  0:22                                 ` [bitcoin-dev] Why Satoshi's temporary anti-spam measure isn't temporary Eric Lombrozo
2015-07-31  8:06                                 ` [bitcoin-dev] Why Satoshi's temporary anti-spam measure isn'ttemporary Thomas Zander
2015-07-30 15:41                         ` Jorge Timón
2015-07-30  9:44             ` odinn
2015-07-29 20:23         ` [bitcoin-dev] Why Satoshi's temporary anti-spam measureisn't temporary Raystonn .
2015-07-29 11:29     ` [bitcoin-dev] Why Satoshi's temporary anti-spam measure isn't temporary Thomas Zander
2015-07-29 18:00     ` Jorge Timón
2015-07-30  7:08       ` Thomas Zander
2015-07-29 16:53   ` Gregory Maxwell
2015-07-29 17:30     ` Sriram Karra
2015-07-29 18:03     ` Mike Hearn
2015-07-29 19:53       ` Gregory Maxwell
2015-07-30 14:15         ` Thomas Zander
2015-07-30  9:05       ` odinn
2015-07-31  1:25 Raystonn
2015-07-31  3:18 ` Milly Bitcoin
     [not found] <f9e27b28-f967-45f7-bd1b-c427534ade9c@me.com>
2015-07-31 23:05 ` Jean-Paul Kogelman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F7FB1A0-E201-40F2-80BA-4C8D6ECC4DC4@gmail.com \
    --to=elombrozo@gmail$(echo .)com \
    --cc=bitcoin-dev@lists$(echo .)linuxfoundation.org \
    --cc=mark@friedenbach$(echo .)org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox